Name: Shilpashree Srinivasamurthy Course: ACS 562, System Analysis And Design Paper Reviewed: Designing Real-Time and Embedded Systems with the COMET / UML method Author: Hassan Gomaa Date: 06/25/2010 Combining the object-oriented concepts with the concepts of concurrent processing is very important for successful design of real-time and distributed applications which is lacking in most of the current object oriented analysis and design methods. This paper introduces the key aspects of COMET method which integrates object-oriented and concurrent processing concepts and also uses the UML notation. This method is proven to be useful for designing real-time and embedded systems by proving the example of Elevator Control System. The paper starts with the definition of the COMET method and provides detailed sections explaining of each of its phases namely Requirements Modeling with UML, Analysis Modeling with UML, and Design Modeling with UML. COMET stands for Concurrent Object Modeling and Architectural Design Method. COMET is a UML based, highly iterative object-oriented software development method that addresses the requirements, analysis, and design modeling phases of the object-oriented development life cycle. 1. Requirements Modeling: In this phase, the system is considered as a black box and the Use Case Model is developed. In this model the functional requirements of the system are defined in terms of use cases and actors. 2. Analysis Modeling: In this phase static model of the system is developed which is followed by the development of the dynamic model. Objects to be considered for the analysis model is determined by using Object structuring criteria. (i) Static model: This model defines the structural relationships among problem domain classes. Static modeling is important for real-time and embedded systems. (ii) Dynamic model: In this model use cases from the requirements model are refined to show the objects that participate in each use case and how they interact with each other. State dependent objects are defined using statecharts. Dynamic modeling is important for distributed and real-time applications. Design Modeling: In this phase an Architectural Design Model is developed. The overall software architecture is decided by providing Subsystem structuring criteria. (i) Software Architecture: A collaboration diagram for each use case is developed in the analysis model. The consolidated collaboration diagram is a synthesis of all the collaboration diagrams developed to support the use cases. In this phase a consolidated collaboration diagram is constructed which depicts the objects and messages from all the use case based collaboration diagrams. (ii) Architectural Design of Distributed Real-Time Systems: In this phase a distributed real-time system is structured into distributed subsystems. A subsystem is designed as a configurable component and corresponds to a logical node. Tasks in different subsystems may communicate with each other using several different types of message communication. (iii) Task Structuring: In this phase each subsystem is structured into concurrent tasks and the task interfaces are defined. Task structuring criteria are provided to assist in mapping an object-oriented analysis model of the system to a concurrent tasking architecture. (iv) Detailed Software Design: In this phase the internals of composite tasks that containing nested objects are designed, detailed task synchronization issues are addressed, connector classes are designed that encapsulate the details of inter-task communication, and each task's internal event sequencing logic is defined Performance Analysis of Real-Time Designs Performance analysis of software designs is achieved by applying real-time scheduling theory. Real-time scheduling is an approach that is particularly appropriate for hard real time systems that have deadlines that must be met. Another approach to analyze the performance is using event sequence analysis and integrating this with the real-time scheduling theory