Fundamentals of Object-Oriented Design in UML

Meilir Page-Jones

  • 出版商: Addison Wesley
  • 出版日期: 1999-11-03
  • 售價: $1,970
  • 貴賓價: 9.5$1,872
  • 語言: 英文
  • 頁數: 480
  • 裝訂: Paperback
  • ISBN: 020169946X
  • ISBN-13: 9780201699463
  • 相關分類: UMLObject-oriented
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

商品描述


Table Of Contents

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


Back to Top

商品描述(中文翻譯)

目錄


第一部分:介紹


1. 什麼是物件導向?


封裝。


資訊/實作隱藏。


狀態保留。


物件身份。


訊息。


訊息結構。


訊息參數。


訊息中物件的角色。


訊息的類型。


類別。


繼承。


多型。


泛型。


2. 誰提出了物件導向?


物件導向的起源。


Larry Constantine。


O.J. Dahl和K. Nygaard。


Alan Kay、Adele Goldberg和其他人。


Edsger Dijkstra。


Barbara Liskov。


David Parnas。


Jean Ichbiah和其他人。


Bjarne Stroustrup。


Bertrand Meyer。


Grady Booch、Ivar Jacobson和Jim Rumbaugh。


物件導向在社會背景中的應用。


主流的歷史。


物件導向的革命派。


物件導向的保守派。


演化論者的出現。


物件導向作為一門工程學科。


物件導向的應用價值。


分析使用者需求。


軟體設計。


軟體構建。


軟體維護。


軟體使用。


軟體專案管理。


第二部分:UML符號


3. 類別、屬性和操作的基本符號。


類別符號。


屬性的符號。


操作的符號。


重載的操作。


公開、保護和私有特性。


類別的屬性和操作。


抽象類別和特性。


參數化類別。


4. 類別圖。


泛化構造。


單一繼承。


多重繼承。


子類別分割。


分割區別。


關聯構造。


基本的UML關聯符號。


以類別表示的關聯。


高階關聯。


關聯的導航性。


整體/部分關聯。


組合。


聚合。


5. 物件互動圖。


協作圖。


表示訊息。


協作圖中的多型。


迭代訊息。


訊息中的self使用。


序列圖。


非同步訊息和並行執行。


表示非同步訊息。


回呼機制。


具有優先順序的非同步訊息。


表示廣播(非指定目標)訊息。


6. 狀態圖。


基本狀態圖。


巢狀狀態。


並行狀態和同步。


訊息結果參數的暫時狀態。


連續變數屬性。


7. 額外的設計圖。


系統架構圖。


套件。


硬體元件的部署圖。


軟體元件的部署圖。