Real-Time UML: Developing Efficient Objects for Embedded Systems
Authors: Bruce Powell Douglass
Venue:  (1997)

From the Book:PREFACE: Goals Real-Time UML: Developing Efficient Objects for Embedded Systems is an introduction to object-oriented analysis and design for hard real-time systems using the Unified Modified Language (UML). UML is a third generation modeling language which rigorously defines the semantics of the object metamodel and provides a notation for capturing and communicating object structure and behavior. Many methodologists-including Grady Booch (Booch Method), Jim Rumbaugh (Object Modeling Technique (OMT), Ivar Jacobson (Object-Oriented Software Engineering (OOSE), and David Harel (Statecharts)-collaborated to achieve UML. A great many more participated, myself included, in the specification of the UML, and we believe that it is the leading edge in modeling for complex systems. There are very few books on the use of objects in real-time systems and even fewer on UML. Virtually all object-oriented books focus primarily on business or database application domains and do not mention real-time aspects at all. On the other hand, texts on real-time systems have largely ignored object-oriented methods. For the most part, they fall into two primary camps: those that bypass methodological considerations altogether and focus solely on "bare metal" programming, and those that are highly theoretical with little advice for actually implementing workable systems. Real-Time UML: Developing Efficient Objects for Embedded Systems is meant to be a concise and timely bridge for these technologies, presenting the development of deployable real-time systems using the object semantics and notation of the UML. This has many advantages, including focusingthedevelopment process of real-time systems into logical, concrete steps that progress in an orderly fashion with a standardized notation. Audience The book is oriented towards the practicing professional software developer and the computer science major, in the junior or senior year. This book could also serve as an undergraduate or graduate level text, but the focus is on practical development rather than a theoretical introduction. Very few equations will be found in this book, but more theoretical and mathematical approaches are referenced where appropriate. The book assumes a reasonable proficiency in at least one programming language and at least a cursory exposure to the fundamental concepts of both object orientation and real-time systems. Organization The book follows the normal analysisdesignimplementation approach followed by most development projects. The first chapter identifies the fundamental concepts of objects and real-time systems. The next two discuss analysisthe identification and specification of the problem to be solved. Analysis is divided into two portions: black box requirements analysis using context diagrams, use cases and scenarios (Chapter 2), and capturing the key concepts and their relationships from the problem domain (Chapter 3). Design follows analysis and adds details as to how the analysis model should be implemented. Design is broken up into three parts, each taken up in a separate chapterArchitectural, Mechanistic, and Detailed design. The parts differ in the scope of their concerns. Architectural design deals with very broad scope strategic decisions, such as tasking models and inter-processor design. Mechanistic design focuses on how groups of objects collaborate to achieve common purposes. Both architectural and mechanistic design chapters include a number of patterns that have been found generally applicable in real-time systems. Finally, detailed design specifies the internal structure and function of individual objects. Throughout the book, the UML notation is introduced as needed. However, a notational summary is provided in the appendix so that this book can continue to serve as a reference guide as your projects evolve. Examples Two different approaches to examples are used in different texts. Some authors (and readers) prefer a single example taken throughout the entire book to illustrate the various concepts. The other approach is to use many different examples with the idea that it is more useful to see the concepts used in a wide variety of applications. This book uses a compromise approach. A variety of real-time examples illustrate the concepts and notation of UML in several real-time application domains, but the examples reappear in different chapters of the book. This approach reinforces the concepts by showing how they apply in various situations. Special care has been taken to select real-time examples with rich behavioral semantics, however examples which are not strictly real-time are used where appropriate. Bruce Powel Douglass, Ph.D. Summer 1997