This page generated at Mon Apr 6 21:48:24 PDT 1998.
The PROMPT Project is a research in the software engineering arena
where the progress of a software development system is monitored and
its delivery date predicted.
Need for Research
In the PROMPT Project, the software development uses an object-oriented
software life-cycle model, called RMT (Recursive Multi-Threaded) Model
[Simon 1997]. Many OO software life-cycle models [Booch 91, Berard 93,
Henderson-Sellers 90, Raccoon 95, McGregor 92]
have been proposed
but none of them address the need to monitor the progress of the
The Recursive MultiThreaded Model of the Software Process
RMT is a highly realistic software process model.
It explicitly allows for the parallel and iterative development that is
observed in real projects while imposing a rational structure that
generalizes the traditional top-down (recursive) and sequential (threads)
The RMT model depicts the software development as following an execution thread of specification, planning, analysis, design, implementation, and test phases. At the end of the thread a prototype is produced or the implementation phase is recursively defined as another thread or several other threads. Due to the OO iterative nature, the software development follows several iterative prototypes where each succeeding prototype is derived from a previous prototype until the desired software is produced. The maintenance phase is therefore carried out by a sequence of several iterative prototypes.
The object-oriented analysis and design (OOA/D) methodology used in
RMT is based on the Unified Modeling Language (UML). This methodology was chosen
because it is the accepted design methodology by the Object Management
Both the RMT software life-cycle model and UML design
methodology was used in CSCI 455 (Software Engineering) class in the
Winter Term 1998 in the specification, planning, design, implementation,
integration, and testing of the class project, Algorithma (Algorithm
Animation). The Algorithma Project animates the actions of an algorithm
to the data structures that it operates and manipulates. This tool
assists a student in learning about algorithms and data structures.
A paper was presented
in the Special Interest Group in Computer Science Education (SIGCSE'98)
Technical Symposium in regards to Algorithma Project [Concepcion 1998].
A tool is currently being built that follows the RMT Model. It allows
the representation of threads at three levels of concern: the project
leader view, the team leader view, and the programmer view. The project
leader thread is the OO architectural design and its implementation
phase is partitioned to the different programming teams whose task
is to implement the part of the architectural design. Thus each
team leader has thread that will implement the part assigned to them.
To implement the thread assigned to the team, the team leader will
assigned parts of the task to each programmer in the team. Thus each
programmer will have a thread of the part assigned to the team.
Note that at each level: the project leader, the team leader, and
the programmer may decide to carry out their thread in one or more
iterations until the desired prototype is reached.
Each programmer reports their progress of the thread assigned to them and through the monitoring system in the tool, overall progress of the whole software development can be calculated. Based on a weighted estimation of progress made thus far, a prediction of the final delivery date can be estimated.
A future development of the RMT tool is to include a component called
VICC (VIsualizer of Coupling and Coherence). This component will utilize
a software metric tool which measures and visualizes
coupling and coherence properties of object-oriented code. VICC will
move beyond mere visualization in that it will also be capable of
recommending modifications to current OO code that will improve on
coupling and coherence metrics that are deemed unsatisfactory.
Using the superior computing power
available at CSUSB would allow the automatic generation of two and
three dimensional visualizations of the coupling and cohesion
in an object oriented piece of software.
Published OO metrics estimate the coupling between class
by counting the references in methods in one class to parts of the
other classes. Underlying this is a simple digraph with
classes as nodes and an arc connecting to nodes if one can affect
RMT is currently being used in CSCI 455 (Software Engineering) class
together with UML. It was observed that graduate students going
into The graduate level course, CSCI 655 (Software Engineering
Concepts), are ill-prepared to undertake this course because the graduate
students are not required to take CSCI 455. So it
is proposed that an intermediate course CSCI 555 be
developed so that graduate students can adequately prepare for CSCI 655
by introducing the students to RMT and UML, and also the experience
of designing and implementing a large programming project.