Fundamentals of object-oriented design in UML

Fundamentals of object-oriented design in UML
复制标题

UML 中面向对象设计的基础知识

DOI:
--
复制
发表时间:
1999
期刊:
影响因子:
--
通讯作者:
Meilir Page
Meilir Page
中科院分区:
--
文献类型:
--
作者:
Meilir Page

文献摘要

被引文献

相似文献

我的介绍。1. 面向对象到底意味着什么?封装。信息/实现隐藏。保留状态。对象的身份。消息。消息的结构。信息参数。消息中对象的角色。消息类型。类。继承。多态性。Genericity。2。对象导向——谁下的命令?面向对象是从哪里来的?拉里·康斯坦丁。O.J.达尔和K.奈加德。Alan Kay, Adele Goldberg和其他人。Edsger Dijkstra。芭芭拉Liskov。David Parnas将。Jean Ichbiah和其他人。内定。伯特兰·迈耶,格雷迪·布奇,伊瓦尔·雅各布森和吉姆·兰博。社会背景下的对象导向。主流的历史。面对障碍:面向对象的革命者。展望过去:面向对象的反动派。进化论者登场了(舞台中间)。面向对象作为一门工程学科。面向对象有什么好处?分析用户需求。设计软件。构建软件。维护软件。使用软件。管理软件项目。2。UML符号。3. 类、属性和操作的基本符号。阶级符号。属性表示法。运算符号。过载操作。公共、受保护和私有功能。类属性和操作。抽象类和特性。该实用程序。参数化的类。4. 类图。泛化结构。单继承。多重继承。子类划分。分区鉴别器。关联构造。关联的基本UML符号。关联被描述为类。高阶关联。关联的可导航性。“整体/部分”联想。组成。聚合。5。对象交互图。协作图。描述一个信息。协作图中的多态性。迭代的消息。在消息中使用self。序列图。异步消息和并发执行。描述异步消息。回调机制。具有优先级的异步消息。描述广播(非目标)消息。6. 状态图。基本状态图。嵌套的状态。并发状态和同步。消息结果参数的瞬时状态。连续可变的属性。7. 附加的设计图。描述系统架构。包。硬件组件的部署图。软件组件的部署图。描绘人机界面。窗口布局图。窗口导航图。一个简短的题外话:什么是面向对象的GUI?3。基本设计原则。8. 包封和连接。封装结构。封装级别。控制封装交互级别的设计标准。Connascence。连接的变种。Contranascence。连接和封装边界。连贯性和可维护性。面向对象系统中的连接滥用。9. 域、累赘和内聚。对象类的域。基础域。架构领域。业务领域。应用程序域。每个域中的类的来源。累赘。负担的定义。产权负担的使用得墨忒耳定律。类内聚:一个类及其特征。Mixed-instance凝聚力。混合域凝聚力。Mixed-role凝聚力。10. 状态空间和行为。类的状态空间和行为。子类的状态空间。子类的行为。类不变量作为对状态空间的限制。前置条件和后置条件。11. 健壮类层次结构的原则。类型一致性原则。子类作为子类型。一致性:逆变和协方差原则。一个逆变和协方差的例子。反方差和协方差的图解。型式一致性要求的总结。封闭行为的原理。12. 继承和多态性的危险。滥用继承。错误的总量。反向层次结构。混淆类和实例。误用是多态的危险。操作的多态性。变量的多态性。消息中的多态性。多态性和泛型。13. 组织特性。混合类。一个商业例子。一个图形的例子。操作环。14. 类接口的质量。类接口中的状态支持。类接口中的行为支持。类接口中的操作内聚。15. 面向对象组件的开发。附录。附录面向对象设计演练的检查表。附录B面向对象设计用户手册。参考书目。术语表。指数。020169946 xt04062001
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