4 Introduction To The Unified Software Development Process and OO Analysis
4 Introduction To The Unified Software Development Process and OO Analysis
4 Introduction To The Unified Software Development Process and OO Analysis
In this chapter we extend the software process discussed earlier to take account of more of the tasks that are necessary in the software development. The extended process is call the Unified Process and expressed in Unified Modeling Language (UML). We also point out the limitations of this process for embedded systems setting the stage for a later enhanced approach based on systems methodology. Finally, we outline a procedure for OO analysis that is a combination of approaches in the literature.
112
Herbert Praehofer
developed are stated in the form of use cases, which define interactions of users with the system in fulfillment of a particular task. The use case model forms the basis for the further development process as shown in Figure.1. The analysis model is specified as an initial object structure in the form of UML class and object diagrams which is able to realize the behavior specified in the use cases. The design model is the software blueprint of the system developed from the analysis model to fulfill the use case requirements. It defines in detail the class and object structures as well as their interactions and dynamic behavior to realize the use cases. It also has to consider all the non-functional requirements posed on the system. The implementation model is the realization of the system in form of program code. The deployment model represents the architecture of the execution environment to run the software. The test model consists of the test cases to verify that the system fulfills all the requirements. The test cases can directly be derived from the use case descriptions.
s p e c i f i e d
b y rd e a l i z e b y d ib s tt rd ie u b y
U s e C a s e M o d e l
ile m p e m n t e d
b y
A n a l y s i s M o d e l
v e r i f i e b d y
D e s i g n M o d e l D e p le o y m n t M o d e l Im m po le e n t a t i n M o d e l
X O K X O K X O K
T e s t M o d e l
113
Besides use cases, architectures play a dominant role in the Unified Process. An architecture embodies the most significant static and dynamic aspects of a the system [11]. Architecture gives the system an initial and overall structure. Architectures represent an important design knowledge orthogonal to use cases. While use cases cast the functions of the system, the architecture gives the system form. Both are essential for a the final product. The use cases must be realized within the architecture and the architecture has to provide room for their realization. The Unified Process is also component-based. The software system is built up of components which have well defined interfaces. Reusable building blocks should be identified during the design process. Ideally, the building blocks then do not have to be further elaborated but can be reused as is.
S y s t e m
A c t o r 1 iu n p t 1 o u t p u t 1 iu n p t 2 o u t p u t 2 A c t o r 2
. . .
. . .
Figure 2: Use case as input/output description between actors and the system
114
Herbert Praehofer
Analysis model
Setting up an analysis model is the first step in the development of the system. The analysis model is intended to define a first structure of the system to be designed in the form of a class and/or an object diagram. The analysis model, therefore, represents an important step in the development process because it gives the system its initial structure which is subject to further refinement in later development steps. According to the Unified Process, the development of the analysis model has to occur on the basis of the use case specifications. The analysis model has to be capable to fulfill the functional requirements stated in the use case descriptions. The Unified Process gives several guidelines for discovering objects and classes for the analysis model. Domain representation or conceptual modeling [13] is derived from the idea that objects in reality can also be found in the software system. A textual analysis of the problem specification can be used to filter out objects together with relevant attributes, associations, and operations. Furthermore, the Unified Process suggests distinguishing three types of objects: Interface objects mediate the communication with the actors. They directly correspond to the actor/system interfaces. Entity objects: are objects to hold information. They often correspond to the objects in reality and can be found by conceptual domain modeling as discussed above. Control objects: are those objects which coordinate and allocate work between the different objects in fulfillment of a particular use case.
115
or much too voluminous to lend themselves to textual analysis. A direct automatic derivation of objects types with data structure and behavior from textual descriptions is not practical. In what follows we suggest a procedure for identifying objects combining several approaches in the literature. What are useful architectures for analysis: Although the Unified Process stresses the importance of architectures in the development process, it does not state what useful architecture for analysis models are, nor how such can be found2
. Later we will outline ideas on how those deficiencies can be overcome. The ideas originate from the systems background [22, 20, 12] which affords a precise methodology for building models and designing systems.
2 The literature on software architectures [4, 17] eonly provide initial structures to cope
with realization issues, and are often restricted to very particular application domains, e.g. classical control systems [1].
116
Herbert Praehofer
(source: http://www.criticaltools.com)
Use Cases
Information that the user will input: tasks, their durations, and their precedence relations (e.g., for each task, give its precursors). Response of the system: critical path, slack for non-critical tasks Interface: textual input, graphical output showing
Analysis
Objects: tasks with attributes: duration, start time, finish time, on-criticalpath flag, slack Classes: time line chart class to hold task objects, user specified task class, system added task classes: start task, finish.
Design
Collaborations: tasks collaborate with their successors and with their predecessors
117
Message exchange interactions: task sends finish time to its successors sequence is started by start task and terminated when it reaches finish task. task sends pair:(start time, identification of critical predecessor) to its predecessors sequence is started by finish task and terminated when it reaches start task task send display signal to successors sequence is started by start task and terminated when it reaches finish task. States and inputs/transitions/outputs states: wait for predecessor finish time, wait for successor start time, wait for display signal set on-critical-path flag from predecessor furnished information compute slack from own finish time and successor start time
Implementation
Use simulation environment: DEVSJava (off the shelf reuse)
Test
Test individual tasks and small PERT charts
References
[1] Albus, J. S., RCS: A Reference Model Architecture Demo III. National Institute of Standards and Technology, Gaithersburg, MD, NISTIR 5994, 1997. [2] Booch, G., Rumbaugh, J., and Jacobson, I., The Unified Modeling Language Users Guide, Addison Wesley, 1999. [3] Brooks, R. A., "Intelligence Without Representation," Artificial Intelligence Journal (47), 1991, pp. 139--159. [4] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M., A System of Patterns, Wiley, 1996. [5] FIPA Foundations for Intelligent Physical Agents, FIPA 97 Spacification, Geneva, Switzerland, October 1998. [6] Hayes-Roth, B., Pfleger, K., Lalanda, P., Morignot, P. and Balabanovic, M., A Domain-Specific Software Architecture for Adaptive Intelligent Systems. IEEE Transactions on Software Engineering, Vol. 21, No. 4, April 1995, pp. 288-301. [7] Jacak, W. and Rozenblit, J.W., Automatic Simulation of a Task-Oriented Robot Program for a Sequential Technological Process, Robotica, 34, 45-56, 1992.
118
Herbert Praehofer
[8] Jacak, W. and Rozenblit, J.W., CAST Tools for Intelligent Control in Manufacturing Automation. In: Lecture Notes in Computer Science No. 763, (Eds. F. Pichler and R. Moreno-Diaz), 203-219, Springer-Verlag, 1994. [9] Jacak, W., Intelligent Robotic Systems, Kluwer Academic/Plenum Publisher, 1999. [10] Jacobson, I., Christenson, M., Jonsson, P. and vergaard, G., Object Oriented Software Engineering, Addison Wesley, 1992. [11] Jacobson, I., Booch, G., and Rumbaugh, J., The Unified Software Development Process, Addison Wesley, 1999. [12] Klir, G.J., Architecture of Systems Complexity, Sauders, NewYork, 1985. [13] Larman, G., Applying UML and Patterns, Prentice Hall, 1998. [14] OHare, G.M.P. and Jennings, N.R. (Eds.), Foundations of Distributed Artificial Intelligence. Wiley Interscience, 1996. [15] Praehofer, H., Jacak, W., Jahn, G., and Haider, G.,"Supervising Manufacturing System Operation by DEVS-based Intelligent Control", AIS '94, Gainesville, FL, IEEE/CS Press, Dec. 1994, pp. 221-226. [16] Rozenblit, J.W. and Zeigler, B.P., Design and Modeling Concepts, In: International Encyclopedia of Robotics. (Ed. R. Dorf), 308-322, John Wiley and Sons, New York, 1988. [17] Shaw, M. and Garlan, D., Software Architecture - Perspectives of an Emerging Discipline, Prentice Hall, 1996. [18] Sun Microsystems: JavaBeans 1.01 API Specification. Sun Microsystems, Inc., 1997. see http://java.sun.com/Beans/spec.html [19] Zeigler, B.P., Cellier, F.E. and Rozenblit, J.W., Design of a Simulation Environment for Laboratory Management by Robot Organizations, Journal of Intelligent and Robotic Systems, 1(1), 299-309, 1988. [20] Zeigler, B.P., Object Oriented Simulation with Modular Hierarchical Models. Academic Press, 1990. [21] Zeigler, B.P, Song, H.S, Kim, T.G, and Praehofer, H. DEVS Framework for Modeling, Simulation, Analysis, Design of Hybrid Systems, Lecture Notes in Computer Science: Hybrid Systems II, pp. 529-551, Springer, 1995. [22] Zeigler, B.P., Praehofer, H., and Kim, T.G., Theory of Modeling and Simulation, 2nd Edition. Academic Press, 2000.