Object Oriented Analysis And Design

  • Uploaded by: maximus_2000
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Object Oriented Analysis And Design as PDF for free.

More details

  • Words: 3,370
  • Pages: 63
Object Oriented Analysis and Design Using the UML Version 4.2 Introduction to Object Orientation

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

1

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

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

2

Introduction to Object Orientation Topics  Basic Principles of Object Orientation  Basic Concepts of Object Orientation  Strengths of Object Orientation  General UML Modeling Mechanisms

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

3

Basic Principles of Object Orientation

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

4

Hierarchy

Modularity

Encapsulation

Abstraction

Object Orientation

What is Abstraction?

Salesperso n

Customer

Not saying Which salesperso n – just a salesperso n in general!!!

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

5

Product

What is Encapsulation?  Hide implementation from clients  Clients depend on interface

How does an object encapsulate? What does it encapsulate?

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

6

What is Modularity?  The breaking up of something complex into manageable pieces Order Entry Order Processing System

Order Fulfillment

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

7

What is Hierarchy? Asset

 Levels of abstraction Increasing abstraction

Security

BankAccount

Savings Checking Decreasing abstraction

Stock

Bond

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

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

8

RealEstate

Introduction to Object Orientation Topics  Basic Principles of Object Orientation  Basic Concepts of Object Orientation  Strengths of Object Orientation  General UML Modeling Mechanisms

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

9

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

10

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

11

What is an Object?  Informally, an object represents an entity, either physical, conceptual, or software  Physical entity Truck

 Conceptual entity Chemical Process

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

Linked List

12

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

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

13

Representing Objects  An object is represented as rectangles with underlined names : Professor a + b = 10

ProfessorClark Class Name Only

ProfessorClark : Professor

Professor Clark

Object Name Only

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

(stay tuned for classes) 14

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

15

What is a Class?  A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semantics  An object is an instance of a class

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

OO Principle: Abstraction OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

16

Sample Class Class Course Properties Name Location Days offered Credit hours Start time End time

Behavior Add a student Delete a student Get course roster Determine if it is full

a + b = 10

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

17

Representing Classes  A class is represented using a compartmented rectangle

a + b = 10

Professor

Professor Clark

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

18

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) Class Name Attributes Operations

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

Professor name empID create( ) save( ) delete( ) change( ) 19

Classes of Objects  How many classes do you see?

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

20

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

 Objects are grouped into classes Objects

Class

Professor Professor Smith

Professor Mellon

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

21

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

22

What is an Attribute? Object

Class Attribute

Attribute Value

:CourseOffering

CourseOffering

number = 101 startTime = 900 endTime = 1100

number startTime endTime

:CourseOffering number = 104 startTime = 1300 endTime = 1500

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

23

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

24

What is an Operation?

CourseOffering Class

Operation

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

addStudent deleteStudent getStartTime getEndTime

25

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

26

What is Polymorphism?  The ability to hide many different implementations behind a single interface

Manufacturer A

Manufacturer B

OO Principle: Encapsulation OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

27

Manufacturer C

What is an Interface?  Interfaces formalize polymorphism  Interfaces support “plug-and-play” architectures Tube <>

Shape

Pyramid Draw Move Scale Rotate

Cube

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

28

(stay tuned for realization relationships)

Interface Representations Tube

Elided/Iconic Representation (“lollipop”)

Pyramid

Shape

Canonical (Class/Stereotype) Representation

Cube

Tube <>

Shape

Pyramid

Draw Move Scale Rotate OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

Cube 29

(stay tuned for realization

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

30

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 welldefined architecture  A component may be  A source code component  A run time components or  An executable component Source File Name

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

<<EXE>> Executable Name

31

OO Principle: Encapsulation

Component Interface

<> Component Name

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

32

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 Package Name

OO Principle: Modularity

 Uses  Organize the model under development  A unit of configuration management

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

33

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

34

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 Realization

<<subsystem>> Subsystem Name

Interface

Subsystem

Interface

OO Principles: Encapsulation and Modularity (stay tuned for realization relationship) OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

35

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 Design Model

Implementation Model

<<subsystem>> Component Name

Component Interface

Component Interface

Component Name

OO Principles: Encapsulation and Modularity OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

36

Basic Concepts of Object Orientation  Object  Class  Attribute  Operation  Interface (Polymorphism)  Component  Package  Subsystem  Relationships OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

37

Relationships  Association  Aggregation  Composition

 Dependency  Generalization  Realization

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

38

Relationships: Association  Models a semantic connection among classes Association Name

Professor

University

Works for

Association Class

Role Names

University

Professor Employee

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

39

Employer

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

Part

Schedule

Student

Aggregation

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

40

Relationships: Composition  A form of aggregation with strong ownership and coincident lifetimes  The parts cannot survive the whole/aggregate Part

Whole

Schedule

Student

Aggregation

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

41

Association: Multiplicity and Navigation  Multiplicity defines how many objects participate in a relationships  The number of instances of one class related to ONE instance of the other class  Specified for each end of the association

 Associations and aggregations are bidirectional 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 OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

42

Association: Multiplicity  Unspecified  Exactly one 1  Zero or more (many, unlimited)0..* *

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

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

43

1..* 0..1 2..4 2, 4..6

Example: Multiplicity and Navigation

Multiplicity

Student

1

0..*

Navigation

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

44

Schedule

Relationships: Dependency  A relationship between two model elements where a change in one may cause a change in the other  Non-structural, “using” relationship Client

Class

Package

Supplier

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

Supplier

Client

Dependency relationship

ClientPackage

Component

SupplierPackage

45

Dependency relationship

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

46

Example: Single Inheritance  One class inherits from another Ancestor Account balance name number

Superclass (parent)

Withdraw() CreateStatement()

Generalization Relationship

Subclasses

Checking

Savings

Withdraw()

GetInterest() Withdraw()

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

Descendents 47

Example: Multiple Inheritance  A class can inherit from several other classes FlyingThing

Animal multiple inheritance

Airplane

Helicopter

Bird

Wolf

Horse

Use multiple inheritance only when needed, and always with caution ! OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

48

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 Inheritance leverages the similarities among classes OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

49

Example: What Gets Inherited

GroundVehicle

Superclass (parent)

weight licenseNumber

owner 0..*

Person

1

register( )

generalization

Subclass

Truck

Car size

tonnage getTax( )

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

50

Trailer

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 Class Subsystem

Interface

Interface

Component Interface

Elided form

 Use cases and the collaborations that realize them Canonical form Use Case OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

Use-Case Realization 51

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

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

52

Strengths of Object Orientation  A single paradigm  Facilitates architectural and code reuse  Models more closely reflect the real world  More accurately describe corporate data and processes  Decomposed based on natural partitioning  Easier to understand and maintain

 Stability  A small change in requirements does not mean massive changes in the system under development OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

53

Class Diagram for the Sales Example

Sale

seller

buyer

Salesperson

item sold

Customer

Corporate

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

Product

Individual

54

shipping mechanism

Vehicle

Truck

Train

Effect of Requirements Change Suppose you need a new type of shipping vehicle ...

seller

Salesperson

Sale

buyer

item sold

Customer

Corporate

Product

Truck

Individual

shipping mechanism

Vehicle

Train

Airplane

Change involves adding a new subclass OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

55

Introduction to Object Orientation Topics  Basic Principles of Object Orientation  Basic Concepts of Object Orientation  Strengths of Object Orientation  General UML Modeling Mechanisms

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

56

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 <> MyBoundaryClass MyBoundaryClass

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

57

Example: Stereotypes <>

<> <> DesignClass

Sample boundary class (stereotype) Stereotype of ‘dependency relation’ Stereotype of <> These create new symbols using accustomed graphics.

<> Processor #1

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

Processor #1

58

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 There can be up to one MaintainScheduleForm per user session.

MaintainScheduleForm

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

59

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 PersistentClass {persistence}

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

anObject : ClassA {location=server}

60

Constraints  Supports the addition of new rules or modification of existing rules

Professor

Member

1

1..* Department Head 1

Department

{subset} 1

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…. OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

61

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? (continued) OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  1998-1999 Rational Software, all rights reserved

62

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

63

Related Documents