+ All Categories
Home > Technology > Ooad Uml

Ooad Uml

Date post: 29-Nov-2014
Category:
Upload: dang-tuan
View: 6,855 times
Download: 2 times
Share this document with a friend
Description:
 
63
Object Oriented Analysis and Design Using the UML Introduction to Object Orientation
Transcript
Page 1: Ooad Uml

Object Oriented Analysis and Design Using the UML

Introduction to Object Orientation

Page 2: Ooad Uml

Objectives: Introduction to Object Orientation

• Understand the basic principles of object orientation

• Understand the basic concepts and terms of object orientation and the associated UML notation

• Appreciate the strengths of object orientation

• Understand some basic UML modeling mechanisms

Page 3: Ooad Uml

Introduction to Object Orientation Topics

• Basic Principles of Object Orientation• Basic Concepts of Object Orientation• Strengths of Object Orientation• General UML Modeling Mechanisms

Page 4: Ooad Uml

Object Orientation

Encapsulation

Abstraction

HierarchyModularity

Basic Principles of Object Orientation

Page 5: Ooad Uml

SalespersonNot saying Which salesperson – just a salesperson in general!!!

CustomerProduct

Manages Complexity

What is Abstraction?

Page 6: Ooad Uml

Improves Resiliency

What is Encapsulation?

• Hide implementation from clientso Clients depend on interface

How does an object encapsulate?What does it encapsulate?

Page 7: Ooad Uml

Order Processing System

Billing

OrderEntry

OrderFulfillment

Manages Complexity

What is Modularity?

• The breaking up of something complex into manageable pieces

Page 8: Ooad Uml

Decreasing abstraction

Increasing abstraction

Asset

RealEstate

Savings

BankAccount

Checking Stock

Security

Bond

Elements at the same level of the hierarchy should be at the same level of abstraction

What is Hierarchy?

• Levels of abstraction

Page 9: Ooad Uml

Introduction to Object Orientation Topics

• Basic Principles of Object Orientation• Basic Concepts of Object Orientation• Strengths of Object Orientation• General UML Modeling Mechanisms

Page 10: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem• Relationships

Page 11: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem• Relationships

Page 12: Ooad Uml

Truck

Chemical Process

Linked List

What is an Object?

• Informally, an object represents an entity, either physical, conceptual, or software

•  • Physical entity•  • Conceptual entity

 •  • Software entity

Page 13: Ooad Uml

A More Formal Definition

• An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application

• An object is something that has:o Stateo Behavioro Identity

Page 14: Ooad Uml

: Professor

Professor Clark

a + b = 10

ProfessorClark : Professor

ProfessorClark

Class Name Only

Object Name Only

Class and Object Name(stay tuned for classes)

Representing Objects

• An object is represented as rectangles with underlined names

Page 15: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem• Relationships

Page 16: Ooad Uml

OO Principle: Abstraction

What is a Class?

• A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semanticso An object is an instance of a class

• A class is an abstraction in that it:o Emphasizes relevant characteristicso Suppresses other characteristics

Page 17: Ooad Uml

a + b = 10

ClassCourse

PropertiesName

LocationDays offeredCredit hours

Start timeEnd time

BehaviorAdd a student

Delete a studentGet course roster

Determine if it is full

Sample Class

Page 18: Ooad Uml

Professor

Professor Clark

a + b = 10

Representing Classes

• A class is represented using a compartmented rectangle

Page 19: Ooad Uml

ProfessornameempID

create( )save( )delete( )change( )

Class Name

Attributes

Operations

Class Compartments

• A class is comprised of three sectionso The first section contains the class nameo The second section shows the structure

(attributes)o The third section shows the behavior

(operations)

Page 20: Ooad Uml

Classes of Objects

• How many classes do you see?

Page 21: Ooad Uml

Objects Class

Professor Smith

Professor Jones

Professor Mellon

Professor

The Relationship Between Classes and Objects

• A class is an abstract definition of an objecto It defines the structure and behavior of each

object in the classo It serves as a template for creating objects

• Objects are grouped into classes

Page 22: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem• Relationships

Page 23: Ooad Uml

:CourseOffering

number = 101startTime = 900endTime = 1100

:CourseOffering

number = 104startTime = 1300endTime = 1500

CourseOffering

numberstartTime endTime

Class

Attribute

Object

Attribute Value

What is an Attribute?

Page 24: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 25: Ooad Uml

CourseOffering

addStudent deleteStudentgetStartTimegetEndTime

Class

Operation

What is an Operation?

Page 26: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 27: Ooad Uml

Manufacturer AManufacturer B

Manufacturer C

OO Principle:Encapsulation

What is Polymorphism?

• The ability to hide many different implementations behind a single interface

Page 28: Ooad Uml

Tube

Pyramid

Cube

Shape

DrawMoveScaleRotate

<<interface>>

Realization relationship (stay tuned for realization relationships)

What is an Interface?

• Interfaces formalize polymorphism• Interfaces support “plug-and-play”

architectures

Page 29: Ooad Uml

Tube

Pyramid

Cube

Shape

DrawMoveScaleRotate

<<interface>>

Tube

Pyramid

CubeShape

Elided/Iconic Representation(“lollipop”)

Canonical (Class/Stereotype) Representation

(stay tuned for realization relationships)

Interface Representations

Page 30: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 31: Ooad Uml

Source FileName

<<EXE>>ExecutableName

OO Principle:Encapsulation

What is a Component?

• A non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture

• A component may be o A source code componento A run time components oro An executable component

<<DLL>>ComponentNameComponent

Interface

Page 32: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 33: Ooad Uml

Package NameOO Principle:

Modularity

What is a Package?

• A package is a general purpose mechanism for organizing elements into groups

• A model element which can contain other model elements

• Useso Organize the model under developmento A unit of configuration management

Page 34: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 35: Ooad Uml

OO Principles: Encapsulation and Modularity

<<subsystem>>Subsystem Name

InterfaceInterface

RealizationSubsystem

(stay tuned for realization relationship)

What is a Subsystem?

• A combination of a package (can contain other model elements) and a class (has behavior)

• Realizes one or more interfaces which define its behavior

Page 36: Ooad Uml

ComponentName

Design Model Implementation Model

<<subsystem>>Component Name

Component Interface

Component Interface

OO Principles: Encapsulation and Modularity

Subsystems and Components

• Components are the physical realization of an abstraction in the design

• Subsystems can be used to represent the component in the design

Page 37: Ooad Uml

Basic Concepts of Object Orientation

• Object• Class• Attribute• Operation• Interface (Polymorphism)• Component• Package• Subsystem • Relationships

Page 38: Ooad Uml

Relationships

• Associationo Aggregationo Composition

• Dependency• Generalization• Realization

Page 39: Ooad Uml

Professor UniversityWorks for

Class

Association

Association Name

Professor University

EmployerEmployee

Role Names

Relationships: Association

• Models a semantic connection among classes

Page 40: Ooad Uml

Student Schedule

Whole

Aggregation

Part

Relationships: Aggregation

• A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts

Page 41: Ooad Uml

Student Schedule

Whole

Aggregation

Part

Relationships: Composition

• A form of aggregation with strong ownership and coincident lifetimeso The parts cannot survive the whole/aggregate

Page 42: Ooad Uml

Association: Multiplicity and Navigation

• Multiplicity defines how many objects participate in a relationshipso The number of instances of one class related to

ONE instance of the other classo Specified for each end of the association

• Associations and aggregations are bi-directional by default, but it is often desirable to restrict navigation to one directiono If navigation is restricted, an arrowhead is added

to indicate the direction of the navigation

Page 43: Ooad Uml

Association: Multiplicity

2..4

0..1

1..*

0..*

1

*

• Unspecified• Exactly one• Zero or more (many, unlimited)

• One or more• Zero or one• Specified range• Multiple, disjoint ranges

2, 4..6

Page 44: Ooad Uml

Student Schedule1 0..*

Multiplicity

Navigation

Example: Multiplicity and Navigation

Page 45: Ooad Uml

Client Supplier

Package

ClientPackage SupplierPackage

Client Supplier

Class

Dependency relationship

Dependency relationship

Component

Relationships: Dependency

• A relationship between two model elements where a change in one may cause a change in the other

• Non-structural, “using” relationship

Page 46: Ooad Uml

Relationships: Generalization

• A relationship among classes where one class shares the structure and/or behavior of one or more classes

• Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasseso Single inheritanceo Multiple inheritance

• Generalization is an “is-a-kind of” relationship

Page 47: Ooad Uml

Accountbalancenamenumber

Withdraw()CreateStatement()

Checking

Withdraw()

Savings

GetInterest()Withdraw()

Superclass (parent)

Subclasses

Generalization Relationship

Ancestor

Descendents

Example: Single Inheritance

• One class inherits from another

Page 48: Ooad Uml

Airplane Helicopter Wolf Horse

FlyingThing Animal

Bird

multipleinheritance

Use multiple inheritance only when needed, and always with caution !

Example: Multiple Inheritance

• A class can inherit from several other classes

Page 49: Ooad Uml

Inheritance leverages the similarities among classes

What Gets Inherited?

• A subclass inherits its parent’s attributes, operations, and relationships

• A subclass may:o Add additional attributes, operations,

relationshipso Redefine inherited operations (use caution!)

• Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy

Page 50: Ooad Uml

Truck

tonnage

GroundVehicle

weight

licenseNumber

Car

owner

register( )

getTax( )

Person

0..*

Trailer

1Superclass

(parent)

Subclass

generalization

size

Example: What Gets Inherited

Page 51: Ooad Uml

Component

Interface

Use Case Use-Case Realization

Elided form

Class

InterfaceSubsystem

Interface

Canonical form

Relationships: Realization

• One classifier serves as the contract that the other classifier agrees to carry out

• Found between:o Interfaces and the classifiers that realize themo Use cases and the collaborations that realize them

Page 52: Ooad Uml

In

• Basic Principles of Object Orientation• Basic Concepts of Object Orientation• Strengths of Object Orientation• General UML Modeling Mechanisms

Page 53: Ooad Uml

Strengths of Object Orientation

• A single paradigm• Facilitates architectural and code reuse• Models more closely reflect the real world

o More accurately describe corporate data and processes

o Decomposed based on natural partitioningo Easier to understand and maintain

• Stabilityo A small change in requirements does not mean

massive changes in the system under development

Page 54: Ooad Uml

Class Diagram for the Sales Example

Salesperson Product

Sale

Corporate

Customer

Individual Truck

Vehicle

Train

seller buyer item sold shipping mechanism

Page 55: Ooad Uml

Effect of Requirements Change

Suppose you need a new type of shipping vehicle ...

Salesperson Product

Sale

Corporate

Customer

Individual Truck

Vehicle

Train

seller buyer item sold shipping mechanism

Change involves adding a new subclass

Airplane

Page 56: Ooad Uml

Introduction to Object Orientation Topics

• Basic Principles of Object Orientation• Basic Concepts of Object Orientation• Strengths of Object Orientation• General UML Modeling Mechanisms

Page 57: Ooad Uml

<<boundary>>MyBoundaryClass

MyBoundaryClass

Stereotypes

• Classify and extend the UML notational elements

• Define a new model element in terms of another model element

• May be applied to all modeling elements• Represented with name in guillemets or as

a different icon

Page 58: Ooad Uml

<<boundary>>

<<boundary>>

<<trace>>

Processor #1

<<Processor>>

DesignClass

Processor #1

Example: Stereotypes

Sample boundary class (stereotype)Stereotype of ‘dependency relation’Stereotype of <<Processor>>

These create new symbols using accustomed graphics.

Page 59: Ooad Uml

There can be up to one MaintainScheduleForm per user session.MaintainScheduleForm

Notes

• A note can be added to any UML element• Notes may be added to add more

information to the diagram • It is a ‘dog eared’ rectangle • The note may be anchored to an element

with a dashed line

Page 60: Ooad Uml

PersistentClass{persistence} anObject : ClassA

{location=server}

Tagged Values

• Extensions of the properties, or specific attributes, of a UML element

• Some properties are defined by UMLo Persistenceo Location (e.g., client, server)

• Properties can be created by UML modelers for any purpose

Page 61: Ooad Uml

Professor DepartmentMember

Department Head{subset}

1..*

1

1

1

Constraints

• Supports the addition of new rules or modification of existing rules

This notation is used to capture two relationships between Professor-type objectsand Department-type objects; where one relationship is a subset of another….

Shows how UML can be tailored to correctly modeling exact relationships….

Page 62: Ooad Uml

(continued)

Review: Introduction to Object Orientation

• What are the four basic principles of object orientation? Provide a brief description of each.

• What is an Object and what is a Class? What is the difference between them?

• What is an Attribute?• What is an Operation?• What is an Interface? What is

Polymorphism?• What is a Component?

Page 63: Ooad Uml

Review: Introduction to Object Orientation (cont.)

• What is a Package?• What is Subsystem? How does it relate to a

Component? How does it relate to a package? How does it relate to a class?

• Name the 4 basic UML relationships and describe each.

• Describe the strengths of object orientation.• Name and describe some general UML

mechanisms.• What are stereotypes? Name some

common uses of stereotypes.


Recommended