Collaborations and Hierarchies

Slides:



Advertisements
Similar presentations
11 Contracts CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 6)
Advertisements

1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
UML – Class Diagrams.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Chapter Chapter 1 Introduction to Object-Oriented Programming and Software Development.
1 Object-Oriented Modeling Using UML CS 3331 Fall 2009.
Object-Oriented Analysis and Design
Object-Oriented Systems Analysis and Design Using UML
111 Subsystems CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 7)
Lab 04.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
CS Collaborations and Hierarchies CS 4311 Chapters 5 and 6 of Wirfs-Brock, R., Wilkerson, B., and Wiener, L., Designing Object- Oriented Software,
Unit 1 INTRODUCTION TO MODELING AND CLASS MODEL Ref : L7-UML.PDF.
CS Overview of CRC CS 4311 B. Beck and W. Cunningham, A Laboratory for Teaching Object-Oriented Thinking, OOPSLA ’89, October 1-6, R. Wirfs-Brock,
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 03. Classes,
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
CS Collaborations and Hierarchies CS 4311 Chapters 5 and 6 of Wirfs-Brock, R., Wilkerson, B., and Wiener, L., Designing Object- Oriented Software,
Class Diagram. Classes Software Design (UML) Class Name attributes operations A class is a description of a set of objects that share the same attributes,
Class Diagram Chapter 21 Applying UML and Patterns Craig Larman.
111 Subsystems CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 7)
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
TK2023 Object-Oriented Software Engineering CHAPTER 11 CLASS DIAGRAMS.
Class Diagrams Revisited. Parameterized Classes Parameterized Classes - are used to represent relationships between templates.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Java Interfaces CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University (see Chapter 9 of.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 0: Introduction
Appendix 3 Object-Oriented Analysis and Design
Chapter 4 Linked Structures.
Sections Inheritance and Abstract Classes
Object-oriented and Structured System Models
Lec-4 : Unified Modeling Language (UML)
Main issues: • What do we want to build • How do we write this down
Chapter 5: Structural Modeling
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Inheritance and Polymorphism
Chapter 11 Object-Oriented Design
Analysis and Design with UML: Discovering Classes and Relationships
Chapter 8 Analysis & Modeling
Reference: COS240 Syllabus
Lecture 23 Polymorphism Richard Gesick.
A tool for presentation of Architecture
A tool for presentation of Architecture
Object-Oriented Analysis
CS 426 Senior Projects Chapter 9: Relationships
Requirements To Design In This Iteration
Domain Class Diagram Chapter 4 Part 2 pp
CRC: Classes, Responsibilities, and Collaborations
Chapter 9 Object-Oriented Programming: Inheritance
Software Engineering Lecture #11.
Object Oriented Analysis and Design Using the UML
Slides by Steve Armstrong LeTourneau University Longview, TX
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Analysis models and design models
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
Chapter 12 – Object-Oriented Design
Analysis and Design with UML: Classes and Relationships
Object Oriented Analysis and Design
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Object Oriented System Design Class Diagrams
Appendix A Object-Oriented Analysis and Design
Chapter 4 System Modeling.
Appendix A Object-Oriented Analysis and Design
From Class Diagram to Contract Diagram
Presentation transcript:

Collaborations and Hierarchies CS 4311 Chapters 5 and 6 of Wirfs-Brock, R., Wilkerson, B., and Wiener, L., Designing Object-Oriented Software, Prentice Hall, 1990. CS 4311

Outline Collaborations Hierarchies Identifying collaborations Recording collaborations Hierarchies Hierarchy graphs Venn diagrams CS 4311

Motivation for Collaborations Two ways to perform responsibilities ? Collaboration is Request from one object to another in order to fulfill a responsibility. CS 4311

Motivation (Cont.) Why identify collaborations? Collaborations represents flow of control and information through the system, May identify misplaced responsibilities, and May identify missing responsibilities. In sum, shows dynamics of the system. CS 4311

Finding Collaborations Look at each responsibility of each class: Is the class capable of fulfilling this responsibility by itself? If not, where can it get what it needs? Look at each class: What other classes needs what this class does or knows? CS 4311

Finding More Collaborations Examine relationships between classes, especially: The “is-part-of” relationship, and The “has-knowledge-of” relationship. CS 4311

“Is-part-of” Relationship May imply responsibilities for maintaining information. May fulfill responsibilities by delegating them. Two of relationships: Composite Aggregate (or container) Q: Which relationship is more likely to require collaborations? CS 4311

“Has-knowledge-of” Relationship May know other classes that are not in part-of relationships (i.e., associations in UML). May imply responsibilities to know information, and thus collaborations. Q: Can you think of an example? CS 4311

Recording Collaborations Write the name of the server (or helper) class on the CRC card of the client. Write the name directly to the right of the responsibility the collaboration fulfills. Client Class: Person Responsibilities Collaborations Knows name Knows address AddressBook Knows phone number PhoneBook … Server (or helper) CS 4311

Collaboration Graph Graphical representation of collaborations Arrow from client to a “contract” of the server, denoted by a semicircle Contract: group of responsibilities (more on this later) AddressBook 1 Person PhoneBook 2 CS 4311

Example: Mail-Order System Class Responsibilities Collaborators Catalog Create a catalog Mail a catalog Order Process an order Track an order Product Ship a product Payment Supplier Customer CS 4311

Other Tools - UML UML interaction diagrams Message sequence diagram Communication diagram (a.k.a. collaboration diagram) CS 4311

Message Sequence Diagram object lifetime control message CS 4311

Message Sequence Diagram Collaboration CS 4311

Communication Diagram object link message CS 4311

Communication Diagram Collaboration CS 4311

Outline Collaborations Hierarchies Hierarchy graph Venn diagram CS 4311

Review on CRC Process Exploratory phase Analysis phase Identify a preliminary list of classes, responsibilities and collaborations. Analysis phase Obtain a more global understanding of the design, e.g., by using tools such as: Hierarchy graphs, Venn diagrams, and Contracts. CS 4311

Hierarchy Graph A graphical representation of inheritance between related classes. A hierarchy graph is a general tree. The nodes are classes and the arcs represent inheritance. Ancestor nodes are superclasses of descendent nodes, which are subclasses. CS 4311

Example - Notation of [Wirfs-Brock-etal90] PartTime FullTime Employee - Notation of [Wirfs-Brock-etal90] - Leaf nodes are often concrete classes. - Non-leaf nodes are often abstract classes. CS 4311

In UML … Employee {abstract} PartTime FullTime Employee (or ) CS 4311

Abstract Classes Classes that cannot be instantiated. Designed only to be inherited from, thus allowing reuse and avoiding duplication. Used to factor common behaviors among classes. CS 4311

Finding Abstract Classes At the exploratory stage, all identified classes are probably concrete and some may have been identified as abstract. But, do you have all your abstract classes? That is, have you used the power of abstraction (factoring behavior)? CS 4311

Another Example of Hierarchy Graph Ordered Collection Indexable Collection Array Magnitude Matrix String Date CS 4311

Venn Diagram Another tool to understand inheritance relationships. Views a class as a set of responsibilities. Thus, an intersection among classes: Denotes common responsibilities, and thus May indicates an abstract superclass. CS 4311

Example set of responsibilities PartTime Employee FullTime set of objects PartTime FullTime Employee set of responsibilities PartTime FullTime Employee PartTime FullTime Employee CS 4311

Exercise Draw a Venn diagram for the following hierarchy graph. Ordered Collection Indexable Collection Array Magnitude Matrix String Date CS 4311

In Sum, Hierarchies … Are for reviewing the inheritance relationships, and Use hierarchy graphs and Venn diagrams as a notation and an analysis tool CS 4311

Building Good Hierarchies Model “is-a” relationships. Factor common responsibilities as high as possible. Make sure abstract classes do not inherit from concrete classes. Eliminate classes that do not add functionality. CS 4311

Example – Using Venn Diagram To Check Hierarchy If B supports only a part of responsibilities defined for A, what does the Venn diagram look like? How to fix this? A B CS 4311

Fixing the Problem CS 4311

Example – Factoring Responsibilities Drawing Element Text Element Line Element Ellipse Element Rectangle Element Group Element CS 4311

Factoring (Cont.) CS 4311

Factoring (Cont.) CS 4311

Group Exercise Suppose that you are designing a new Java compiler and you identified the following concrete classes for various kinds of declarations allowed in Java. Class Declaration Interface Declaration Field Declaration Method Declaration Local Variable Declaration Method Parameter Declaration Organize the above classes into a class hierarchy. CS 4311