Cheng (Sp2001): Object-Oriented Development Overview

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Dillon: CSE470: Object Modeling1 Requirements Model l Focus on WHAT, not HOW l Analyst needs to understand the problem »How does software fit into overall.
UML an overview.
UML (cont.) “The Unified Modeling Language User Guide” by G. Booch, J. Rumbaugh and I. Jacobson ● Classes ● Relationships ● Class diagrams ● Examples.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
1 CSE491-RE: UML Classes The OO Solution The OO model closely resembles the problem domain –Base your model on the objects in the problem domain Iteratively.
Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz1 OBJECT ORIENTED MODELING, CONCEPTS AND PRINCIPLES Chapter 20.
7M822 UML Class Diagrams advanced concepts 15 September 2008.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Conceptual Modeling A Short Discussion. Outline Conceptual modeling The goal of conceptual modeling The OO solution The object model (conceptual) Syntax.
Chapter 14: Object-Oriented Data Modeling
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
Introduction To System Analysis and design
CSE314 Database Systems Data Modeling Using the Entity- Relationship (ER) Model Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
Lawrence ChungCS6359.0T1: Module 41 Module 4: Relationships.
OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar.
1 A Student Guide to Object- Orientated Systems Chapter 4 Objects and Classes: the basic concepts.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 4 - Domain Classes.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Class Modeling. Basic Class Modeling Concepts Object Class Link Association Generalization Inheritance.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Object Modeling (1) Chapter 3 (1) Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
The OO Solution The OO model closely resembles the problem domain
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Design Model Lecture p6 T120B pavasario sem.
Object Oriented Analysis: Associations. 2 Object Oriented Modeling BUAD/American University Class Relationships u Classes have relationships between each.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
 Week08.  Review Schedule Weeks 8-14  This week o Review last class o Introduce Class Diagrams o ICE-03 Sheridan SYST Engineering Quality Systems.
Data Modeling Using the Entity- Relationship (ER) Model.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Data Modeling Using the Entity- Relationship (ER) Model
COP Introduction to Database Structures
Comp 1100 Entity-Relationship (ER) Model
CSE202 Database Management Systems
UML Class & Object Diagram I
Databases (CS507) CHAPTER 7.
Data Modeling Using the Entity- Relationship (ER) Model
Unified Modeling Language (UML)
Business System Development
DATA REQIREMENT ANALYSIS
Visit for more Learning Resources
Object-Oriented Modeling with UML
EKT472: Object Oriented Programming
Entity-Relationship Model
The OO Solution The OO model closely resembles the problem domain
Entity-Relationship Modelling
The OO Solution The OO model closely resembles the problem domain
UML Class Diagrams: Basic Concepts
Lec 3: Object-Oriented Data Modeling
UML Class Diagram.
Chapter 20 Object-Oriented Analysis and Design
Entity-Relationship Modelling
Appendix A Object-Oriented Analysis and Design
Unified Modelling Language
Understand and Use Object Oriented Methods
Systems Analysis – ITEC 3155 Modeling System Requirements – Part 2
Class Diagrams Class diagram is basically a graphical representation of the static view of the system and represents different aspects of the application.
ENHANCED ENTITY-RELATIONSHIP (EER) MODEL
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
From Class Diagram to Contract Diagram
Presentation transcript:

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

Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Objects J. Q. Public VISA 123 4567 887766 998 Drivers License State of Michigan A-123456 03-12-63 CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview

Attributes and Operations Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Attributes and Operations Person class J. Q. Public VISA 123 4567 887766 998 Drivers License State of Michigan A-123456 03-12-63 Attributes name age height weight Operations move change-job width id-number issue change Person objects Card objects Card class abstracts to

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

Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering The Class Diagrams CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview

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

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

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

Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Examples CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview

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

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

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

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

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

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

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 123 456 789 Credit-Card 111 222 333 Holds 8 D.Q. Public 32 Person CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview

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 123 456 789 Credit-Card 111 222 333 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

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

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

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

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

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

Cheng (Sp2001): Object-Oriented Development Overview CSE870: Advanced Software Engineering Example

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

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

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

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

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

Example Program Simple Statement Compound Block 0..* CSE870: Advanced Software Engineering (Cheng, Sp2001): Object-Oriented Development Overview