Instructor
Hassan Gomaa, George Mason University, hgomaa@gmu.edu
Abstract
This tutorial addresses how to develop object-oriented requirements, analysis, and design models for concurrent, distributed, and real-time applications. Object-oriented concepts are crucial in software analysis and design because they address fundamental issues of adaptation and evolution. This tutorial uses the industry standard for object-oriented development, the Unified Modeling Language (UML).
Most books and courses on object-oriented analysis and design only address the design of sequential systems or omit the important design issues that need to be addressed when designing real-time systems. It is essential to blend object-oriented concepts with concurrency concepts to successfully design these applications. This tutorial describes the COMET (Concurrent Object Modeling and Architectural Design) Method for the development of concurrent applications, in particular distributed and real-time applications. COMET emphasizes:
- Structuring criteria to assist the designer at different
stages of the analysis and design
process: subsystems, objects, and concurrent tasks. - Dynamic modeling,
using both object interaction models and statecharts, to describe
in
detail how use cases are realized. - Distributed application
design, addressing the design of configurable distributed
components and inter-component message communication interfaces. - Concurrent design, addressing in detail task structuring and the
design of task
interfaces. - Performance analysis of real-time designs using real-time scheduling.
Biography
Dr. Hassan Gomaa is Chair and Full Professor in the Department of Information and Software Engineering at George Mason University, Fairfax, Virginia. He has worked in both industry and academia, and has published over 130 technical papers and three textbooks. He has made conference and tutorial presentations at many international software engineering conferences. He was a keynote speaker at the Asia-Pacific Software Engineering Conference in December 2004. He has taught several in-depth industrial courses on software design in North America, Europe, Japan, and Korea. His book, "Software Design Methods for Concurrent and Real-Time Systems", was published by Addison Wesley in 1993 and was translated into Chinese in 2003. His second book (which this tutorial is based on), entitled "Designing Concurrent, Distributed, and Real-Time Applications with UML", was published by Addison Wesley in 2000 and was translated into Chinese in 2004. His latest textbook entitled "Designing Software Product Lines with UML" was published by Addison Wesley in July 2004.

