Download presentation
Presentation is loading. Please wait.
Published byPaola Rossetti Modified over 5 years ago
1
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering The OO Solution The OO model closely resembles the problem domain Base your model on the objects in the problem domain Iteratively refine the high-level model until you have an implementation Attempt to avoid big conceptual jumps during the development process CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
2
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Objects J. Q. Public VISA Drivers License State of Michigan A CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
3
Attributes and Operations
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Attributes and Operations Person class J. Q. Public VISA Drivers License State of Michigan A Attributes name age height weight Operations move change-job width id-number issue change Person objects Card objects Card class abstracts to
4
Characteristics of Objects
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Characteristics of Objects Identity Discrete and distinguishable entities Classification Abstract entities with the same structure (attributes) and behavior (operations) into classes Polymorphism The same operation may behave differently on different classes Inheritance Sharing of attributes and operations based on a hierarchical relationship CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
5
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering The Class Diagrams CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
6
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Objects Something that makes sense in the application context (application domain) J.Q. Public Joe’s Homework Assignment 1 J. Q. Public’s drivers license All objects have identity and are distinguishable NOT objects Person Drivers license CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
7
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Classes Describes a group of objects with similar properties (attributes), common behavior (operations), common relationships to other classes, and common semantics Person J. Q. Public Joe Smith D. Q. Public Card Credit card Drivers license Teller card CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
8
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Class Diagrams Class diagram Instance diagrams Person : Person D. Q. Public name=J.Q. Public 32 age=35 Class with attributes Objects with values Objects have an identity Do not explicitly list object identifiers SSN OK! CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
9
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Examples CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
10
Operations and Methods
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Operations and Methods Transformation that can be applied to or performed by an object May have arguments CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
11
Object Notation - Summary
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Object Notation - Summary CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
12
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Associations Conceptual connection between classes A credit card is issued-by a bank A person works-for a company Class diagrams Person Company Works-for 8 Instance diagram J.Q. Public Michigan State Univ 35 CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
13
Associations are Bi-directional
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Associations are Bi-directional There is no direction implied in an association (Rumbaugh - OMT) Country name City name Has-capital Person name Drivers-license lic.-number: integer Is-issued CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
14
Associations Have Direction
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Associations Have Direction Unified adds a direction indicator Inconsistently used Country name City name Has-capital Person name Drivers-license lic.-number: integer Is-issued CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
15
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Multiplicity One person holds one credit card One object can be related to many objects through the same association One person can hold zero or more credit cards (* stands for many) CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
16
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Multiplicity (Cont.) One person can hold zero or more credit cards (0..*) Each card has zero or one holder (0..1) J. Q. Public 35 Person Credit-Card Holds 8 D.Q. Public 32 Person CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
17
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Multiplicity (Cont.) One person can hold zero or more credit cards (0..*) Each card has one holder (no indication or 1) Each card has one or more authorized users (1..*) One person can be authorized to use zero or more cards Explicit enumeration is also possible (2, 3, 2..5, etc.) D. Q. Public 32 Person J. Q. Public 35 Credit-Card Holds 8 3 Authorized 1 Holds 8 0..* Person Credit-card 3 Authorized name: String card-number: integer 1..* 0..* CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
18
Higher order associations
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Higher order associations Ternary association Project, language, person Seldom needed (and should be avoided) J. Q. Public 35 Person Compiler Project C++ Language TicTacToe LISP CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
19
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Role Names Attach names to the ends of an association to clarify its meaning Person Company name: String 0..* Works-for 8 0..* boss age: integer name: String 0..1 employee employer SSN: integer address: String address: String 0..* worker Manages 8 CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
20
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Aggregation A special association, the is-part-of association A sentence is part of a paragraph (a paragraph consists of sentences) A paragraph is part of a document (a document consists of paragraphs) 0..* 0..* Document Paragraph Sentence Aggregation symbol CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
21
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Aggregation (Cont.) Often used in parts explosion CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
22
Generalization and Inheritance
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Generalization and Inheritance The is-a association Cards have many properties in common Generalize the common properties to a separate class, the base-card Let all cards inherit from this class, all cards is-a base-card (plus possibly something more) CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
23
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Example
24
Aggregation Versus Association
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Aggregation Versus Association Can you use the phrase is-part-of or is-made-of Are operations automatically applied to the parts (for example, move) - aggregation Not clear what it should be…… CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
25
Aggregation Versus Inheritance
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Aggregation Versus Inheritance Do not confuse the is-a relation (inheritance) with the is-part-of relation (aggregation) Use inheritance for special cases of a general concept Use aggregation for parts explosion Wheel Body Gearbox Engine 4 Car Minivan Compact Jeep Roll Bar CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
26
Cheng (Sp2001): Object-Oriented Development Overview
CSE870: Advanced Software Engineering Recursive Aggregates A recursive aggregate contains (directly or indirectly) an instance of the same kind of aggregate Program Simple Statement Compound Block 0..* CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
27
Object Modeling Summary
Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Object Modeling Summary Classes Name Attributes Operations Associations Roles Link attributes Aggregation Inheritance CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
28
MetaModel Use object modeling notation to describe language structure
Class Diagram Association Aggregation Class 0..* Relationship 0..* Connected-by Generalization CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
29
Example Program Simple Statement Compound Block 0..*
CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.