In this book, renowned real-time software expert Hassan Gomaa adapts UML to the unique needs of the concurrent, distributed, and real-time applications -- helping developers leverage the powerful flexibility, reliability, and time-to-market benefits associated with UML. Gomaa starts by reviewing the key issues and concepts associated with analysis and design of distributed and real-time applications -- focusing not only on standard object-oriented concepts such as information hiding, classes, and inheritance, but also specialized issues such as finite state machines, concurrent tasks, and real-time scheduling. Next, he introduces the COMET (Concurrent Object Modeling and Architectural Design) Method, a UML-based object-oriented analysis and design method specifically created for concurrent, distributed, and real-time applications. The book presents detailed structuring criteria that assist the designer at every stage of the analysis and design process, and offers exceptional insight into dynamic modeling, concurrency, distributed application design, and performance analysis of real-time designs. Gomaa concludes with several detailed case studies covering a broad range of applications, including systems for banking, e-Commerce, cruise control, factory automation, and more.
"Sinopsis" puede pertenecer a otra edición de este libro.
The UML Notation and
Software Design Methods
This book describes the object-oriented analysis and design of concurrent applications,
in particular distributed and real-time applications. Object-oriented concepts
are crucial in software analysis and design because they address fundamental
issues of adaptation and evolution. With the proliferation of notations and
methods for the object-oriented analysis and design of software systems, the
Unified Modeling Language (UML) has emerged to provide a standardized notation
for describing object- oriented models. However, for the UML notation to be
effectively applied, it needs to be used in conjunction with an object-oriented
analysis and design method.
Most books 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 distributed and real-time applications. Blending object-oriented concepts with the concepts of concurrent processing is essential to the successful designing of these applications. Because the UML is now the standardized notation for describing object-oriented models, this book uses the UML notation throughout.
The COMET Concurrent Object Modeling and Architectural Design Method
COMET is a Concurrent Object Modeling and Architectural Design Method for the development of concurrent applications--in particular, distributed and real- time applications. The COMET Object-Oriented Software Life Cycle is a highly iterative software life cycle, based around the use case concept. The Requirements Modeling phase views the system as a black box. A use case model is developed, which defines the functional requirements of the system in terms of actors and use cases.
In the Analysis Modeling phase, static and dynamic models of the system are
developed. The static model defines the structural relationships among problem
domain classes. Object structuring criteria are used to determine the objects
to be considered for the analysis model. A dynamic model is then developed,
in which the use cases from the requirements model are refined to show the objects
that participate in each use case and their interactions with each other. In
the dynamic model, state-dependent objects are defined by using statecharts.
In the Design Modeling phase, the software architecture of the system is designed,
in which the analysis model is mapped to an operational environment. The analysis model, with its emphasis on the problem domain, is mapped to the design model, with its emphasis on the solution domain. Subsystem structuring criteria are provided to structure the system into subsystems. For distributed applications, the emphasis is on the division of responsibility between clients and servers, including issues concerning the centralization versus distribution of data and control. In addition, the design of message communication interfaces is considered, including synchronous, asynchronous, brokered, and group communication. Each subsystem is then designed. For the design of concurrent applications, including real-time applications, the emphasis is on object-oriented and concurrent tasking concepts. Task communication and synchronization interfaces are designed. The performance of the real-time design is analyzed by using the Software Engineering Institute's rate monotonic analysis approach.
What This Book Provides
Several textbooks on the market describe object-oriented concepts and methods, intended for all kinds of applications. However, distributed and real-time applications have special needs, which are treated only superficially in most of these books. This book provides a comprehensive treatment of the application of fundamental object-oriented concepts to the analysis and design of distributed (including client/server) and real-time applications. In addition to the object-oriented concepts of information hiding, classes, and inheritance, this book also describes the concepts of finite state machines, concurrent tasks, distributed object technology, and real-time scheduling. It then describes in considerable detail the COMET method, which is a UML based object-oriented analysis and design method for concurrent, distributed and real-time applications. To show how COMET is applied in practice, this book also describes several comprehensive case studies, presented by application area: real-time software design, client/server software design, and distributed application design.
The following are distinguishing features of this book:
Emphasis on structuring criteria to assist the designer at various stages
of the analysis and design process: subsystems, objects, and concurrent tasks
Emphasis on dynamic modeling, in the form of both object interaction modeling
and finite state machine modeling, describing in detail how object collaborations
and statecharts work together
Emphasis on concurrency, describing the characteristics of active and passive
Emphasis on distributed application design and the ways in which distributed
components can communicate with each other
Emphasis on performance analysis of real-time designs, using real-time scheduling
Comprehensive case studies of various applications to illustrate in detail
the application of concepts and methods
Organization of Book
The book is divided into three parts. Part I of the book provides a broad overview
by describing concepts, technology, life cycles and methods for designing concurrent,
distributed, and real-time applications. Chapter 1 starts with a brief description
of the difference between a method and a notation, followed by a discussion
of the characteristics of real-time and distributed applications. Chapter 2
presents a brief overview of the aspects of the UML notation used by the COMET
method. Next, there is a description of the important design concepts (Chapter
3) and necessary technology support (Chapter 4) for concurrent and distributed
systems. This is followed in Chapter 5 by a brief survey of software life cycles
and design methods.
Part II of the book describes the COMET method (Concurrent Object Modeling
and architectural design mEThod). In Chapter 6, there is an overview of the
object-oriented software life cycle used by COMET. Chapter 7 describes the requirements
modeling phase of COMET, in particular, use case modeling, and Chapters 8 through
11 describe the analysis modeling phases of COMET. Chapters 12-16 describe the
design modeling phase of COMET. Chapter 17 describes the performance analysis
of real-time designs using real-time scheduling--in particular, rate monotonic
Finally, in Part III, the COMET method is illustrated through five detailed case studies of concurrent application design: two real-time design case studies, one client/server case study, and two distributed application case studies. The real-time Elevator Control System case study is described in Chapter 18, with both non-distributed and distributed solutions presented. The client/server Banking System case study is described in Chapter 19. The real-time Cruise Control System case study is described in Chapter 20. The distributed Factory Automation case study is described in Chapter 21, and the distributed Electronic Commerce case study is described in Chapter 22.
Ways to Read This Book
This book may be read in various ways. Reading it in the order it is presented, Chapters 1-5 provide introductory concepts and technology, Chapter 6 provides an overview of COMET, Chapters 7-17 provide an in-depth treatment of designing applications with COMET, and Chapters 18-22 provide detailed case studies. Part I is introductory and may be skipped by experienced readers, who will want to proceed directly to the description of COMET in Part II. Readers familiar with the UML may skip Chapter 2. Readers familiar with software design concepts may skip Chapter 3. Readers familiar with concurrent and distributed system technology may skip Chapter 4. Readers familiar with software life cycles and methods may skip the survey in Chapter 5. Readers particularly interested in COMET may proceed directly to Parts II and III. Readers particularly interested in distributed application design should read Chapters 4, 12, and 13, the additional information on concurrent subsystem design in Chapters 14-16, as well as the distributed application case studies in Chapters 18, 19, 21, and 22. Readers particularly interested in real-time design and scheduling should read Chapters 4, 14-17, and the hard real-time design case studies in Chapters 18 and 20.
Experienced designers may also use this book as a reference, referring to various chapters as their projects reach that stage of the analysis or design process. Each chapter is relatively self-contained. For example, at different times, you might refer to Chapter 7 for a concise description of use cases, Chapter 10 when designing statecharts, Chapter 11 for developing the dynamic model, Chapter 13 for distributed component design, Chapter 14 when designing concurrent tasks, or Chapter 17 for real-time scheduling. You can also understand how to use the COMET method by reading the case studies, because each case study explains the decisions made at each step of the design process.
0201657937P04062001From the Back Cover:
"This is an excellent book for real-world systems that deal with complex issues such as concurrency and real-time constraints. Hassan does a wonderful job of structuring the book so it is suitable for all software engineers and provides very useful, detailed guidelines that distinguish this book from other OO texts."--Robert G. Petit IV, The Aerospace Corporation
Designing Concurrent, Distributed, and Real-Time Applications with UML provides a detailed overview of object-oriented design concepts, concurrent and distributed system technology, use cases, and Unified Modeling Language notation. It addresses an increasingly important area of software development: the design of real-time and distributed applications based on concurrent technology. Using UML notation, this book clearly illustrates how an object-oriented analysis and design method offers an effective solution to the unique challenges that these systems present.
Inside you'll also find a comprehensive description of an analysis and design method specifically suited to the needs of real-time and distributed systems. Known as COMET (Concurrent Object Modeling and Architectural Design Method), this object-oriented method employs a highly iterative software life cycle based on use case technology and UML. This book will guide you through the COMET development life cycle, from requirements modeling through analysis and design, emphasizing the design requirements of distributed and real-time applications. Numerous in-depth case studies and examples show you how the COMET method can be applied to a variety of applications, including real-time, client/server, and distributed software design.
Key topics include:
"Sobre este título" puede pertenecer a otra edición de este libro.
Descripción Addison-Wesley Professional, 2000. Hardcover. Estado de conservación: New. Never used!. Nº de ref. de la librería P110201657937