54
OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright 1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis and Design Using the UML Introduction to Object Orientation

Object Oriented Analysis and Design Using the UML

  • Upload
    allan

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Object Oriented Analysis and Design Using the UML. Introduction to Object Orientation. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 1

Object Oriented Analysis and Design Using the UML

Introduction to Object Orientation

Page 2: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 2

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: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 3

Introduction to Object Orientation Topics

1. Basic Principles of Object Orientation 2. Basic Concepts of Object Orientation 3. Strengths of Object Orientation 4. General UML Modeling Mechanisms

Page 4: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 4

Object Orientation

Enca

psul

atio

n

Abs

trac

tion

Hie

rarc

hy

Mod

ular

ity

1. Basic Principles of Object Orientation

Page 5: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 5

Salesperson

Not saying which salesperson – just a salesperson in general!!!

CustomerProduct

Manages Complexity

What is Abstraction?

Page 6: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 6

Hide implementation from clients Clients depend on interface – only! Clients do not need to know ‘how’ the server

operates or provides the services!

Improves Resiliency

What is Encapsulation?

How does an object encapsulate?What does it encapsulate?DISCUSS!!!!!

Page 7: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 7

Order Processing System

Billing

OrderEntry

OrderFulfillment

Manages Complexity

What is Modularity?

The breaking up of something complex into manageable pieces

Page 8: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 8

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: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 9

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: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 10

2. Basic Concepts of Object Orientation

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

Page 11: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 11

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: State Behavior Identity

Page 12: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 12

: 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 13: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 13

Basic Concepts of Object Orientation

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

Page 14: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 14

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 semantics

A class is an ‘abstraction’ of objects…. An object is an instance of a class

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

Page 15: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 15

Professor

Professor Clark

a + b = 10

Representing Classes

A class is represented using a compartmented rectangle

Page 16: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 16

ProfessornameempID

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

Class Name

Attributes

Operations

Class Compartments

A class is comprised of three sections The first section contains the class name The second section shows the structure

(attributes) The third section shows the behavior

(operations)

Page 17: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 17

Objects Class

Professor Smith

Professor Jones

Professor Mellon

Professor

The Relationship Between Classes and Objects

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

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

Page 18: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 18

Basic Concepts of Object Orientation

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

Page 19: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 19

:CourseOffering

number = 101startTime = 900endTime = 1100

:CourseOffering

number = 104startTime = 1300endTime = 1500

CourseOffering

numberstartTime endTime

Class

Attribute

Object

Attribute Value

What is an Attribute?

Page 20: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 20

Basic Concepts of Object Orientation

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

Page 21: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 21

CourseOffering

addStudent deleteStudentgetStartTimegetEndTime

Class

Operation

What is an Operation?

Page 22: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 22

Basic Concepts of Object Orientation

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

Page 23: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 23

Manufacturer AManufacturer B

Manufacturer C

OO Principle:Encapsulation

What is Polymorphism?

The ability to hide many different implementations behind a single interface

Page 24: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 24

Tube

Pyramid

Cube

Shape

DrawMoveScaleRotate

<<interface>>

Realization relationship.

Tube, Pyramid, and Cube ‘implement’ the interface! (stay tuned for realization

relationships)

What is an Interface?

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

architectures

abstract methods

Page 25: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 25

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 26: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 26

Basic Concepts of Object Orientation

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

Page 27: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 27

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 A source code component A run time component or An executable component

<<DLL>>ComponentNameComponent

Interface

Page 28: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 28

Basic Concepts of Object Orientation

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

Page 29: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 29

Package NameOO Principle:

Modularity

What is a Package? A package is a general purpose mechanism for

organizing like elements into groups A model element which can contain other model

elements

Uses Organize the model under development A unit of configuration management

Page 30: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 30

Basic Concepts of Object Orientation

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

Page 31: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 31

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

Interface is an abstract class. Subsystem implements (realizes) the interface (interfaces)…

Page 32: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 32

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 33: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 33

Basic Concepts of Object Orientation

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

Page 34: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 34

Relationships

Association Aggregation Composition

Dependency Generalization Realization

Page 35: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 35

Professor UniversityWorks for

Class

Association

Association Name

Professor University

EmployerEmployee

Role Names

Relationships: Association

Models a semantic connection among classes

Add these descriptions via Open Specification in Rose

Page 36: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 36

Student Schedule

Whole

Aggregation

This is sometimes called a ‘has_a’

relationship

Part

Relationships: Aggregation

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

Page 37: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 37

Student Schedule

Whole

Aggregation

Part

Relationships: Composition

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

Page 38: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 38

Association: Multiplicity and Navigation

Multiplicity defines how many objects participate in a relationships The number of instances (that is, ‘objects’) of

one class related to ONE instance of another class

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 direction If navigation is restricted, an arrowhead is

added to indicate the direction of the navigation

Page 39: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 39

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 40: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 40

Student Schedule1 0..*

Multiplicity

Navigation

Example: Multiplicity and Navigation

A student has zero or more schedules. (Multiplicity)Note: Aggregation: ‘has_a’ and whole-part relationship.

(type of Association)

Page 41: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 41

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 Can actually say the Client ‘uses’ the Supplier.

Page 42: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 42

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 superclasses Single inheritance Multiple inheritance

Generalization is an “is-a-kind of” relationship, or simply, “is_a” relationship.

Page 43: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 43

Accountbalancenamenumber

Withdraw()CreateStatement()

Checking

Withdraw()

Savings

GetInterest()Withdraw()

Superclass (parent)

Subclasses

Generalization Relationship

Subclasses inherit both attributes and methods from base (parent) class.

Ancestor

Descendents

Example: Single Inheritance

One class inherits from another

Page 44: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 44

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 45: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 45

Inheritance leverages the similarities among classes

What Gets Inherited?

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

A subclass may: Add additional attributes, operations,

relationships Redefine inherited operations (use caution!)

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

Page 46: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 46

Truck

tonnage

GroundVehicle

weight

licenseNumber

Car

owner

register( )

getTax( )

Person

0..*

Trailer

1Superclass

(parent)

Subclass

generalization

size

Example: What Gets Inherited

Page 47: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 47

Use Case Use-Case Realization

Elided form

Subsystem

Interface

Canonical form

Relationships: Realization One classifier serves as the contract that the

other classifier agrees to carry out Found between:

Interfaces and the classifiers that realize them

Page 48: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 49

Introduction to Object Orientation Topics

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

Page 49: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 50

<<boundary>>MyBoundaryClass

MyBoundaryClass

4. 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 50: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 51

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 51: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 52

PersistentClass{persistence} anObject : ClassA

{location=server}

Tagged Values

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

Some properties are defined by UML Persistence Location (e.g., client, server)

Properties can be created by UML modelers for any purpose

Page 52: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 53

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 objects and Department-type objects; where one relationship is a subset of another….

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

Page 53: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 54

(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 54: Object Oriented Analysis and Design  Using the UML

OOAD Using the UML - Introduction to Object Orientation, v 4.2Copyright 1998-1999 Rational Software, all rights reserved 55

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 four 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.