ooad using the uml - introduction to object orientation, v 4.2 copyright 1998-1999 rational...

42
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 (abbreviated!)

Upload: angelina-sanders

Post on 13-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

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

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(abbreviated!)

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

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: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

Object Orientation

Enca

psul

atio

n

Abs

trac

tion

Hie

rarc

hy

Mod

ular

ity

1. Basic Principles of Object Orientation

Know This.

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

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

Salesperson

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

CustomerProduct

Manages Complexity

What is Abstraction?

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

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

Improves Resiliency

What is Encapsulation?

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

operates or provides the services!

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

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

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

Order Processing System

Billing

OrderEntry

OrderFulfillment

Manages Complexity

What is Modularity?

The breaking up of something complex into manageable pieces

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

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

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 8: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

2. Basic Concepts of Object Orientation

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

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

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

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

Know This.

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

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

: 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 – the beginnings…

An object is represented as a rectangle with underlined name (no class name shown here)

(unnamed object)

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

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

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

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

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

Representing Classes

A class is represented using a compartmented rectangle (note: no underlining)

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

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

ProfessornameempID

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

Class Name

Attributes

Operations

Class Compartments – a bit more development

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 14: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 15: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

:CourseOffering

number = 101startTime = 900endTime = 1100

:CourseOffering

number = 104startTime = 1300endTime = 1500

CourseOffering

numberstartTime endTime

Class

Attribute

Object

Specific attribute values

for different objects

What is an Attribute?

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

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

CourseOffering

addStudent deleteStudentgetStartTimegetEndTime

Class

Operation

What is an Operation? (very general form here…)

Really need to show more, but here, this is sufficient.

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

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

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 18: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 Think: in the Java API, similar classes are found in

‘packages’ that we may import, etc.

Uses Organize the model under development A unit of configuration management

Think: Math class. (contains math classes such as cos() )

Know This

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

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

Example for Data Structures Class:

Think IO package you imported. Inside this package are many (often) unrelated

classes. FileReader BufferedReader FileWriter PrinterWriter, etc.

To USE any of these classes, we merely create an object of them and proceed – independently of any other classes.

To USE any of these classes in the package, we go directly to the class, instantiate the class, and use the methods in the objects.

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

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

OO Principles: Encapsulation and Modularity

<<subsystem>>Subsystem Name

InterfaceInterface

RealizationSubsystem

(stay tuned for realization relationship)

What is a Subsystem?

A combination of a package (contains other model elements) and a class (has behaviors)

A subsystem: realizes one or more interfaces which define its behavior

Interface is an abstract class. Subsystems implement (realize) the interface(s)…

Know This.

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

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

Example of Subsystems

<<subsystem>>Subsystem Name

InterfaceInterface

RealizationSubsystem

Subsystem might be AccountsReceivable, AccountsPayable, Billing,That is, a major hunk of functionality.

BUT, a client of the subsystem does NOT have access to the individual Classes like in a Package. Rather, a client must go through the public Interface to the subsystem, which contains the signatures of the services provided within the subsystem.The contents of the subsystem are NOT directly accesses; They are protected; Only the services shown in the interface are made available to clients.

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

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

Relationships

Association Aggregation Composition

Dependency Generalization Realization

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

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

Professor UniversityWorks for

Class

Association

Association Name

Professor University

EmployerEmployee

Role Names

Relationships: Association Models a semantic connection among classes

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

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

Student Schedule

Whole

Aggregation – sometimes called ‘simple aggregation.’

This is sometimes called a ‘has_a’ relationship

Part

Relationships: Aggregation (simple aggregate)

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

Know This

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

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

Student Schedule

Whole

Aggregation

This one is called ‘composition.’

Part

Relationships: Composition

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

Know This

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

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

Association: Multiplicity and Navigation Multiplicity defines how many objects

participate in a relationship Multiplicity is a Structural Relationship! The number of instances (that is, ‘objects’) of one

class related to ONE instance of another class (examples ahead)

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 27: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 28: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

Student Schedule1 0..*

Multiplicity

Navigation

Example: Multiplicity and Navigation

Note: A student has zero or more schedules. (Multiplicity)

Note: Aggregation: ‘has_a’ (whole-part relationship).

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

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

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” (or “communicates”) relationship

(non-structural: no numbers of one kind related to another kind…) Can actually say the Client ‘uses’ the Supplier.

Know This

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

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

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

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

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

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

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 32: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 33: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 34: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

Truck

tonnage

GroundVehicle

weight

licenseNumber

Car

owner

register( )

getTax( )

Person

0..*

Trailer

1Superclass

(parent)

Subclass

generalization

size

Example: What Gets Inherited (note form of arrow)

What about a ‘register()’ in Car?

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

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

Use Case Use-Case Realization

Elided form

Subsystem

Interface

Canonical form

Relationships: Realization (note form of arrow) One classifier serves as the contract that the

other classifier agrees to carry out Found between:

Interfaces and the classifiers that realize them

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

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

Introduction to Object Orientation Topics

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

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

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

<<boundary>>MyBoundaryClass

MyBoundaryClass

4. Stereotypes

Classify/extend 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 38: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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

Notes A Note can be added to any UML element

The class diagram is the one most often extended…

Notes may be added to add more info to diagram It is a ‘dog eared’ rectangle The note may be anchored to an element with

a dashed line

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

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

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 40: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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 41: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

(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 42: OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved 1 Object Oriented Analysis

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

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.

Know This