Please use the alphabetical Index, Contents List, and your browsers search feature to find what you need.

This page generated at Mon Apr 6 21:48:24 PDT 1998.


    PROMPT (PROgress Monitor & PredicTor) Project


    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 software development.

    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) processes.

    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 Group (OMG).


    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.

    Future Developmentso


    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 the other.

    Advanced Courses

    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.


  1. Algorithma::=Algorithm Animation, a project used to train senior CSCI students in software engineering.
  2. RMT::=Recursive MultiThreaded Software Process Model.
  3. PROMPT::=PROgress Monitor & PredicTor.
  4. VICC::=VIsualizer of Coupling and Coherence.
  5. UML::=Unified Modeling Language.
  6. CSCI::= See

Labels and Definitions in Alphabetical Order