Recommended Literature on UML:
- Doing Hard Time: Developing Real-Time Systems with
UML, Objects, Frameworks, and Patterns
by Bruce Powell Douglass - Real-Time UML, Second Edition: Developing Efficent
Objects for Embedded Systems
by Bruce Powell Douglass - The Unified Modeling Language Reference Manual
by James Rumbaugh, Ivar Jacobson, Grady Booch - Analysis Patterns: Reusable Object Models
by Martin Fowler - UML Distilled, Second Edition: A Brief Guide to the
Standard Object Modeling Language
by Martin Fowler, Kendall Scott - Objektorientierte Softwareentwicklung, vierte
Auflage: Analyse und Design mit der Unified Modeling
Language
von Bernd Oestereich - Das UML-Benutzerhandbuch, zweite Auflage
Von Grady Booch, Jim Rumbaugh, Ivar Jacobson, Deutsche Übersetzung von Prof. Dr. Bernd Kahlbrandt, Dorothea Reder - Entwurfsmuster. Elemente wiederverwendbarer
objektorientierter Software
Von Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides - Constructing the User Interface with Statecharts
by Ian Horrocks - Writing Effective Use Cases
by Alistair Cockburn
The following exerpts from www.amazon.de will give you a brief review of selected books:
Doing Hard Time
Amazon.com
Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns provides an excellent guide to using today's cutting-edge software-engineering techniques to develop software for embedded systems. Author Bruce Powel Douglass begins by championing the advantages of objects for embedded development and then shows off basic UML document types. Next he addresses the difficulties of writing embedded systems (which are used in hospitals, aircraft, nuclear power plants, and other life-or-death environments). He looks at the restricted resources of embedded hardware and design issues regarding memory management and event handling. The book expertly discusses the difference between the reliability and safety of software. (It describes the use of a number of patterns that can be used to provide safe operation in the event of single-point failure of a system.) Rapid Object-Oriented Process for Embedded Systems (ROPES) finds its way to the heart of the text, a development process tailored to real-time software. Besides an introduction to iterative software development, the author walks the reader through the steps required for analysis, design, and eventual implementation of real-time software. The samples (which include several medical devices and a small air traffic control system) are exceptionally rich in detail and often use advanced aspects of UML notation. Later sections concentrate on the latest in pattern design for embedded software used to manage threads and schedulability. The book closes with a tour of dynamic modeling, real-time frameworks--specifically, the I-Logix Rhapsody Object Execution Framework (OXF)--and details of the Rhapsody modeling tool. In all, Doing Hard Time delivers real technical expertise for any potential embedded software developer in a thorough and digestible format. --Richard Dragan
Book News, Inc.
Presents an embedded systems programming methodology that Douglass has found successful in developing real-time systems. It allows application developers to apply practical techniques from mainstream object-oriented software development. Using the industry standard Unified Modeling Language, he considers such topics as schedualability, behavioral patterns, and real-time frameworks. The disk contains models from the book and two applications useful in developing real-time and embedded systems. The package could be used in a graduate or undergraduate course. -- Copyright © 1999
Book News, Inc., Portland, OR All rights reserved
Real-Time UML
Amazon.com
It's no surprise that object-oriented analysis and design can work for embedded systems--such as those in VCRs, car engines, elevators, pacemakers, and other hardware devices--which far outnumber traditional computers. That's the argument of Bruce Douglass's Real-Time UML, which presents the latest modeling techniques using the Unified Modeling Language (UML) in the context of embedded design. This book is a successful introduction to both UML and the vagaries of embedded systems, which have their own set of pitfalls and constraints for efficiency and high reliability. Real-Time UML is good at presenting the basics of modeling objects, from class design to object behavior, with an eye for the rich set of diagrams available in UML used along the way.
Examples, from elevators to medical systems, are used to illustrate the theory. The authors are up to speed with the latest research on "patterns" (reusable higher order designs) that can be used for embedded systems--especially within the chapters on design. It's obvious from this clearly written and comprehensive book that embedded systems can benefit from the methodology and notational strengths of UML. This manual avoids the abstraction of a lot of software engineering texts and relies on some good real-world detail for its examples. It's definitely a recommended source for any embedded-systems developer who wants to ramp up on the new details of UML.
From Book News, Inc.
A distilled introduction for beginning and experienced real-time systems programmers making the transition to object-oriented analysis and design and modeling with UML. Focus is on practical development rather than theoretical aspects, with few equations, and UML notation introduced as needed. Organization follows the natural cycle of analysis, design and implementation, with separate chapters on architectural, mechanistic, and detailed design. Uses several ongoing examples. For practicing professional software developers, and for computer science majors in the junior or senior year who are proficient in at least one programming language and who know basic concepts of object orientation and real-time systems. Book News, Inc.®, Portland, OR
The author, Bruce Powel Douglass bpd@ilogix.com , 19. Januar 1999
I am gratified by the positive response for this book by the embedded and real-time community. I've been developing safety-critical real-time and embedded (RT&E) systems for almost 20 years, and have often thought that a book that integrated modeling concepts with the more commonly discussed real-time problems was needed. I strongly believe that object technology is not only mature enough to be used in RT&E systems, but that the growing complexity of these systems requires better ways of dealing with that complexity than traditional structured methods allow. The UML is a leap forward, unifying the best practices in object methodologies. Many of the companies to which I consult are using UML to effectively construct RT&E systems ranging from small 8-bit sized systems up to very large distributed systems with potentially hundreds of processors. This book is meant to be a gentle introduction to the UML and focus on the aspects of UML that are of particular concern to RT&E developers, such as how to identify objects, how to effectively use statecharts and state machines, and a process for using the elements of the UML to construct systems effectively. I hope you find the book helpful. Feel free to send me your comments and success stories.
The Unified Modeling Language Reference Manual
From Book News, Inc.
Written by the original designers of the Unified Modeling Language (UML), this reference provides additional detail about issues that may not be clear from the standards documents, and a rationale for many decisions that went into the UML. Opens with a history of UML, then surveys the views UML supports and shows how the various constructs work together. The majority of the book is an alphabetical encyclopedia of all of the concepts and constructs in UML. A complimentary CD-ROM with the complete UML standards documents can be requested by mail. Book News, Inc.®, Portland, OR
Analysis Patterns: Reusable Object Models
Amazon.com
Besides general purpose designs, patterns can be specific to particular areas of computing. Martin Fowler's Analysis Patterns: Reusable Object Models contributes to the literature of patterns by defining over 70 patterns derived from the health care and financial areas. The book begins with some intriguing patterns from the business world include the Party and Accountability patterns, which define the players in organizations and whom they report to. A considerable number of patterns are drawn from the health care industry--principally doctor-patient interactions--with patterns such as Observation, Measurement, and Protocol. Obviously, these will be most applicable to object modelers who work in this industry (though, of course, patterns can often be used profitably in other fields).The patterns for financial markets will probably be more interesting for most readers. Fowler defines a Transaction pattern (and related patterns) as well as several for the accounting of objects. He moves on to modeling stock markets with patterns for Portfolio, Quote, and Scenario (which defines how a price for a stock is defined for a given moment). Interestingly, he defines patterns for Forward Contracts (for derivatives) as well as Options, and so takes on a complicated area of so much activity in today's financial markets. The book benefits from the author's considerable design experience in these fields. The author defines each pattern in both text and in software-engineering diagrams, but rarely provides implementations of these designs, Implementations that are included are in Smalltalk, making this a book for those experienced with object design.
--Richard Dragan
UML Distilled, Second Edition
Book News, Inc.
A pioneer in the field provides software developer users of this industry standard with a foundation for integrating the Unified Modeling Language into the object-oriented development process, in the context of its history. Appends modeling techniques and their uses, and changes between UML versions. -- Copyright © 1999 Book News, Inc.,Portland, OR All rights reserved Book News, Inc.®, Portland, OR
The author, Kendall Scott , 14. Oktober 1999
For those of you looking for a more expansive description of use cases, and also a book that shows how several types of UML diagrams evolve as an example system is being designed, check out "Use Case Driven Object Modeling with UML," by Doug Rosenberg with Kendall Scott. I think you'll find that it complements "Distilled" nicely in other ways as well.
Objektorientierte Softwareentwicklung
Kurzbeschreibung
Dieses Buch führt auf der Basis der Unified Modeling Language (UML) in die Grundlagen der objektorientierten Analyse und des Designs ein und erläutert deren Anwendung in der Praxis. Alle Konstrukte der UML werden systematisch und prägnant anhand vieler Praxisbeispiele erläutert. Alle Beispiele sind in Java und Smalltalk. Das Buch kann auch selektiv oder kreuz und quer gelesen werden, denn es ist modular aufgebaut und mit zahlreichen Querverweisen ausgestattet. Es ist zum Einarbeiten, Vertiefen und als Nachschlagewerk geeignet.
Das UML- Benutzerhandbuch
Amazon.de
Eine der wichtigsten Neuerungen in der Softwareentwicklung ist der Standard der Unified Modeling Language (UML) um Softwaredesigns zu dokumentieren. Das UML-Benutzerhandbuch wurde von den Erfindern von UML (den sogenannten Drei Amigos der Softwareentwicklung) geschrieben und ist ein äußerst ansprechendes Handbuch zur effektiven Nutzung von UML. Das Buch beginnt mit der Darstellung der wichtigsten grundlegenden Konzepte und Modellierungsdiagramme in UML, einschließlich Klassendiagrammen, Anwendungsfalldiagrammen und grundlegenden Modellierungsprinzipien. Die Autoren beschäftigen sich ausführlich mit den Modellierungsklassen (und dokumentieren die Beziehungen zwischen den Klassen) und mit den Anwendungsfalldiagrammen (die zeigen, wie die Software von verschiedenen Akteuren im System genutzt wird). Das Buch geht auch kurz auf die theoretischen Aspekte der Softwareentwicklung ein, benutzt dabei aber deutliche Beispiele und UML-Diagramme aus der Praxis um die Schlüsselkonzepte zu illustrieren.
Im hinteren Teil des Buches diskutieren die Autoren schwierigere Notationsdiagramme (wie z.B. Zustands- und Aktivitätsdiagramme, die zur Verhaltensmodellierung in einem System dienen). Aus welchem Bereich der Softwareentwicklung Sie auch kommen, Sie werden die deutlichen Erklärungen grundlegender (und fortgeschrittener) Modellierungskonzepte, sowie die Einzelheiten zu den praktischen Grundlagen der derzeitigen vielseitigen UML zu schätzen wissen. Mit seiner Kombination von Expertenwissen zur Modellierung und hervorragenden Einzelheiten zu den Eigenschaften von UML ist dieses Buch ein Muß für alle, die UML tatsächlich im Softwaredesign anwenden möchten. --Richard Dragan
Kurzbeschreibung
Geschrieben von den Entwicklern der UML ist das UML-Benutzerhandbuch ein Muß für jeden Softwareentwickler! Das UML-Benutzerhandbuch beschreibt die UML anhand praktischer Beispiele. Diese beginnen beim Hello-World-Programm und enden bei einem komplexen, weltweit verteilten, webbasiertem System. Die besprochenen Anwendungsfälle (Use cases) entstammen aus unterschiedlichen Domänen. Übersetzung aus dem Amerikanischen von Prof. Dr. Bernd Kahlbrandt Dorothea Reder.
Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software
Amazon.de
Objektorientiert Denken
Spätestens mit dem Erfolg von Java ist OOP, objektorientierte Programmierung, geradezu ein Reizwort geworden. Hinter diesem Konzept steckt eine andere Art von Programmentwicklung, die einen Programmablauf nicht als Prozedur, sondern eher als ein Zusammenspiel von Segmenten und Teilen begreift. OOP soll eine "natürlicherere" Programmentwicklung ermöglichen und komplexe, eventuell sogar verteilte Anwendungen schon bei der Entwicklung stärker an die Lebensrealität angleichen.
Sprachen wie C++ oder Smalltalk sind Vorläufer von Java, daß sich an diese Sprachen anlehnt. Allen drei ist gemein, daß nicht nur Syntax und Befehlssatz verstanden werden muss, sondern vor allen Dingen ein Konzept und eine spezielle Art der Lösungsstrategie -- und diesem Problemfeld sucht das vorliegende Handbuch vierer erfahrenerOOP-Entwickler Rechnung zu tragen.
Entwurfsmuster ist ein bereits älteres, aber oft empfohlenes Handbuch für die 20 wichtigsten Problemlösungsstrategieen in der objektorientierten Softwareentwicklung. Als lesenswertes Handbuch in Exploring Java empfohlen, behandeln die Autoren das Thema der wiederverwendbaren Software. Nicht jeder Entwickler soll das Rad neu erfinden -- aber woher soll ein unerfahrener Entwickler eine systematische, bewährte Lösungsstrategie kennen, wenn diese sich als Erfahrungswissen weiterverbreitet?
Diesem Umstand sucht das Handbuch Rechnung zu tragen. Systematisch gegliedert stellen die vier Entwickler nicht übliche, mathematische Algorithmen vor, die Programmierer beherrschen sollten, sondern unterschiedliche Konzepte von objektorientierten Entwurfsmustern: Wie programmiere ich z.B. die Einkapselung von Befehlen in Objekte oder erstelle einen Satz von Algorithmus-Objekten, auf die beliebig zugegriffen werden kann. 23 solcher und ähnlicher Probleme werden geordnet vorgestellt.
Schrittweise wird das Entwurfsmuster erörtert, sein Verwendungszweck, aber auch seine Grenzen dargestellt und schliesslich anhand eines Codebeispiels in C++ oder Smalltalk anschaulicher gemacht. "Wie löse ich...?" -- Die Antwort auf die Fragen, die so beginnen, ist Leitmotiv für das Handbuch. Gleichermaßen zum Nachschlagen einer konkreten Realisierungsidee geeignet wie zuInspiration, welche Möglichkeiten schon vorhanden und durchdacht sind.
Das gut lesbar geschriebene Handbuch richtet sich an Entwickler mit soliden Grundkenntnissen in einer objektorientierterten Sprache und einer gewissen vertrautheit mit Konzepten wie Vererbung oder Polymorphie. Die Grundidee von OOP wird als bekannt vorrausgesetzt. --Susanne Schmidt
Kurzbeschreibung
Die Gewinner des "Software Productivity Awars 1995"! Die Autoren formulieren 23 Entwurfsmuster, benennen und beschreiben sie und erläutern ihre Verwendung. Diese Entwurfsmuster bieten einfache und prägnante Lösungen für häufig auftretende Programmieraufgaben. Sie erlauben die Wiederverwendung bewährter Lösungsstrategien und ermöglichen die Verständigung über die eigene Arbeit.Übersetzung aus dem Amerikanischen von Dirk Riehle.
Klappentext
Entwurfsmuster
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Dieses Buch präsentiert einen Katalog einfacher und präziser Lösungen für wiederkehrende Entwurfsprobleme der objektorientierten Softwareentwicklung. Er wurde von vier renommierten und als Gang of Four bekannten Entwicklern erstellt, die ihren umfangreichen Erfahrungsreichtum haben einfließen lassen. Die Entwurfsprobleme und ihre Lösungen werden als Muster präsentiert, die es Ihnen einfach machen, Problemsituationen zu erkennen und zu lösen. Die insgesamt 23 Muster ermöglichen Ihnen, erfolgreiche objektorientierte Entwürfe wiederzuverwenden, ohne sie jedesmal neu entwickeln zu müssen.
Die Autoren beschreiben als erstes, was Muster sind und wie sie Ihnen helfen können, objektorientierte Software zu entwerfen. Danach benennen, erläutern, bewerten undkatalogisieren sie systematisch wiederkehrende Entwürfe in objektorientierten Systemen. Dieses Buch stellt dar, wie Sie diese grundlegenden Entwurfsmuster (Design Patterns) inden Softwareentwicklungsprozeß einbinden und wie sie Ihnen helfen, Entwurfsprobleme effizient zu lösen.
Jedes Muster beschreibt den Kontext und die Randbedingungen, unter denen es angewendet werden kann, und was für Vor- und Nachteile seine Anwendung besitzt. Alle Muster stammen aus real existierenden Systemen und können in bekannten Frameworks gefunden werden. Jedes Muster wird mit Hilfe von Beispielcode erläutert, der anschaulich darstellt, wie das Muster in objektorientierten Programmiersprachen wie C++ und Smalltalk implementiert werden kann.
Die Autoren sind weltweit anerkannte Experten auf dem Gebiet der objektorientierten Softwareentwicklung. Dr. Erich Gamma arbeitet als Berater bei der IFA Unternehmensberatung, Zürich. Dr. Richard Helm ist Berater bei der IBM Consulting Group Object Technologie Practice, Sydney. Dr. Ralph Johnson ist Mitglied der Fakultät für Informatik der Universität Illinois. Dr. John Vlissides forscht am Thomas J. Watson Forschungszentrum der IBM in Hawthorne, New York. Der Übersetzer ist Diplom-Informatiker, Autor mehrerer Artikel und Gutachter für Konferenzen und Zeitschriften zum Thema Entwurfsmuster. Die Übersetzung wurde von Erich Gamma autorisiert.
Constructing the User Interface with Statecharts
Amazon.de
Synopsis
Teaches the reader how to design, implement and test high quality user interface software. The text describes a single, simple and generic technique using Statecharts that can be used with any Graphical User Interface development tool. It offers a solution to the problems that GUIs entail, such as the high price of development, difficulty with testing and the fact that they are often bug-ridden. The book looks at how to design the structure of the underlying software rather than designing the user interface itself. It features a design example with a step-by-step look at the technique in action.
A great guide to designing rigorous View Controller layers. The first real attempt to demonstrate how to construct a rigourous controller layer using UML Statecharts. Adopting the principles in this book will lead to much better quality software with fewer bugs and improved interaction. The only pity is the psuedo code examples. Some real Java or VB would have been better.
Makes coding easy. The technique described in this book is great. I used it to design a java applet recently and I found it reduced coding to a trivial task. The power of the technique lies in specifying the "syntax of interaction" before the user interface is coded.I strongly recommend this book.
Writing Effective Use Cases
Amazon.de
Synopsis
Writing use cases as a means of capturing the behavioral requirements of software systems and business processes is a practice that is quickly gaining popularity. Use cases provide a beneficial means of project planning because they clearly show how people will ultimately use the system being designed. On the surface, use cases appear to be a straightforward and simple concept.
Faced with the task of writing a set of use cases, however, practitioners must ask: 'How exactly am I supposed to write use cases?' Because use cases are essentially prose essays, this question is not easily answered, and as a result, the task can become formidable. In Writing Effective Use Cases, object technology expert Alistair Cockburn presents an up-to-date, practical guide to use case writing. The author borrows from his extensive experience in this realm, and expands on the classic treatments of use cases to provide software developers with a 'nuts-and-bolts' tutorial to use cases. The book thoroughly covers introductory, intermediate, and advanced concepts, and is, therefore, appropriate for all knowledge levels. Illustrative writing examples of both good and bad use cases reinforce the authors instructions. In addition, the book contains helpful learning exercises-with answers-to illuminate the most important points. Highlights of the book include: A thorough discussion of the key elements of use cases-actors, stakeholders, design scope, scenarios, and more A use case style guide with action steps and suggested formats An extensive list of time-saving use case writing tips A helpful presentation of use case templates, with commentary on when and where they should be employed A proven methodology for taking advantage of use cases With this book as your guide, you will learn the essential elements of use case writing, improve your use case writing skills, and be well on your way to employing use cases effectively for your next development project.