Fundamentals of Object-Oriented Design in UML - Meilir Page-Jones

Fundamentals of Object-Oriented Design in UML

Buch | Softcover
480 Seiten
1999
Addison Wesley (Verlag)
978-0-201-69946-3 (ISBN)
59,95 inkl. MwSt
  • Keine Verlagsinformationen verfügbar
  • Artikel merken
Introduces notation, principles, and terminology that practitioners can use to evaluate and discuss object-oriented design. Each chapter contains illustrative examples, diagrams, and exercises to reinforce the lessons of the text.
Object technology is increasingly recognized as a valuable tool in application development, but what is not yet recognized is the importance of design in the construction of robust and adaptable object-oriented (OO) applications. With the recent introduction and widespread adoption of the Unified Modeling Language (UML), programmers are now equipped with a powerful tool for expressing software designs. Fundamentals of Object-Oriented Design in UML shows aspiring and experienced programmers alike how to apply design concepts, the UML, and the best practices in OO development to improve both their code and their success rates with object-based projects. In the first two chapters, best-selling author Meilir Page-Jones introduces novices to key concepts and terminology, demystifying the jargon, and providing a context in which to view object orientation. Part II is a practical and well-illustrated guide to UML notation and to building the most useful UML diagrams. Part III grapples with advanced topics in the testing and improvement of design quality, including connascence, level-2 encapsulation, and the use of state-space and behavior to assess class hierarchies.
These design principles are explained and demonstrated without reference to any one design methodology so that they are easily accessible and applicable in a variety of contexts. Programmers and designers learn how to assess and enhance their work as the author walks them through the evaluation of designs taken from actual projects and the realistic example that ends the book. Readers will come away with a better understanding of object-oriented concepts and of how to design and develop the high-quality software their clients need. 020169946XB04062001

Meilir Page-Jones is President and Senior Consulting Methodologist at Wayland Systems, and has extensive experience in training, consulting, and hands-on system development. He created several of Wayland's courses on object-oriented software engineering and project management, including The Synthesis Method for Object-Oriented Systems Development and Analysis and Design for Client/Server Systems Development. Formerly the head of the Structured Design Department at Yourdon Inc., Meilir wrote the best-selling Practical Guide to Structured Systems Design and Practical Project Management. He has also written numerous articles for the Journal of Object-Oriented Programming, Object Magazine, Software Development Magazine, and Computerworld, and has spoken at many conferences, including OOPSLA, Software Development, and Object Expo. 020169946XAB04062001

I. INTRODUCTION.

1. What does it mean to be object oriented, anyway?


Encapsulation.



Information / implementation hiding.



State retention.



Object identity.



Messages.



Message structure.



Message arguments.



The roles of objects in messages.



Types of messages.



Classes.



Inheritance.



Polymorphism.



Genericity.

2. Object orientation--who ordered that?


Where did object orientation come from?



Larry Constantine.



O.J. Dahl and K. Nygaard.



Alan Kay, Adele Goldberg and others.



Edsger Dijkstra.



Barbara Liskov.



David Parnas.



Jean Ichbiah and others.



Bjarne Stroustrup.



Bertrand Meyer.



0 Grady Booch, Ivar Jacobson and Jim Rumbaugh.



Object orientation in a social context.



The history of the mainstream.



To the barricades: the object-oriented revolutionaries.



Forward to the past: the object-oriented reactionaries.



Enter the evolutionists (stage middle).



Object orientation as an engineering discipline.



What's object orientation good for?



Analyzing users' requirements.



Designing software.



Constructing software.



Maintaining software.



Using software.



Managing software projects.

II. UML NOTATION.

3. The basic notation for classes, attributes and operations.


The class symbol.



Notation for attributes.



Notation for operations.



Overloaded operations.



Public, protected and private features.



Class attributes and operations.



Abstract classes and features.



The utility.



Parameterized classes.

4. Class diagrams.


The generalization construct.



Single inheritance.



Multiple inheritance.



Subclass partitioning.



Partitioning discriminators.



The association construct.



The basic UML notation for associations.



Associations depicted as classes.



Higher-order associations.



Navigability of associations.



"Whole / part" associations.



Composition.



Aggregation.

5. Object-interaction diagrams.


The collaboration diagram.



Depicting a message.



Polymorphism in the collaboration diagram.



Iterated messages.



Use of self in messages.



The sequence diagram.



Asynchronous messages and concurrent execution.



Depicting an asynchronous message.



The callback mechanism.



Asynchronous messages with priority.



Depicting a broadcast (non-targeted) message.

6. State diagrams.


Basic state diagrams.



Nested states.



Concurrent states and synchronization.



Transient states from message-result arguments.



Continuously variable attributes.

7. Additional design diagrams.


Depicting system architecture.



Packages.



Deployment diagrams for hardware components.



Deployment diagrams for software components.



Depicting the human interface.



The window-layout diagram.



The window-navigation diagram.



A brief digression: what's object-oriented about a GUI?

III. FUNDAMENTAL DESIGN PRINCIPLES.

8. Encapsulation and connascence.


Encapsulation structure.



Levels of encapsulation.



Design criteria governing interacting levels of encapsulation.



Connascence.



Varieties of connascence.



Contranascence.



Connascence and encapsulation boundaries.



Connascence and maintainability.



Connascence abuses in object-oriented systems.

9. Domains, encumbrance and cohesion.


Domains of object classes.



The foundation domain.



The architectural domain.



The business domain.



The application domain.



The source of classes in each domain.



Encumbrance.



Definition of encumbrance.



The use of encumbrance.



The Law of Demeter.



Class cohesion: a class and its features.



Mixed-instance cohesion.



Mixed-domain cohesion.



Mixed-role cohesion.

10. State space and behavior.


State-space and behavior of a class.



The state-space of a subclass.



The behavior of a subclass.



The class invariant as a restriction on a state-space.



Preconditions and postconditions.

11. Principles of robust class hierarchies.


The principle of type conformance.



Subclasses as subtypes.



Conformance: the principles of contravariance and covariance.



An example of contravariance and covariance.



A graphic illustration of contravariance and covariance.



A summary of the requirements for type conformance.



The principle of closed behavior.

12. The perils of inheritance and polymorphism.


Abuses of inheritance.



Mistaken aggregates.



Inverted hierarchy.



Confusing class and instance.



Misapplying is a.



The danger of polymorphism.



Polymorphism of operations.



Polymorphism of variables.



Polymorphism in messages.



Polymorphism and genericity.

13. Organizing features.


Mix-in classes.



A business example.



A graphics example.



Rings of operations.

14. Quality of a class interface.


State support in a class interface.



Behavior support in a class interface.



Operation cohesion in a class interface.

15. Development of an object-oriented component.
Appendices.
Appendix A Checklist for an object-oriented design walkthrough.
Appendix B The object-oriented design owner's manual.
Bibliography.
Glossary.
Index. 020169946XT04062001

Erscheint lt. Verlag 22.12.1999
Reihe/Serie Addison-Wesley Object Technology Series
Verlagsort Harlow
Sprache englisch
Maße 187 x 234 mm
Gewicht 720 g
Themenwelt Informatik Software Entwicklung Objektorientierung
ISBN-10 0-201-69946-X / 020169946X
ISBN-13 978-0-201-69946-3 / 9780201699463
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …

von Thomas Schmertosch; Markus Krabbes; Christian Zinke-Wehlmann

Buch | Hardcover (2024)
Hanser (Verlag)
44,99
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

Buch (2023)
Hanser, Carl (Verlag)
39,99
Principles and Practice Using C++

von Bjarne Stroustrup

Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95