Object Oriented Analysis & Design (OOAD) -...

48
1 Object Oriented Analysis & Design (OOAD)

Transcript of Object Oriented Analysis & Design (OOAD) -...

Page 1: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

1

Object Oriented Analysis &

Design (OOAD)

Page 2: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

2

OOAD

• It focuses on objects where system is broken

down in terms of the objects that exist within it.

• Functions (behaviour) and data (state) relating

to a single object are self-contained or

encapsulated in one place.

Page 3: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

3

Objects

• Object is an abstraction of something in a

problem domain, reflecting the capabilities

of the system to keep information about it,

interact with it, or both.

• Objects are entities in a software system

which represent instances of real-world and

system entities

Page 4: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

4

Objects

Invoiced,

cancelled.

SendInvoiced(),

Cancel().

“Sale no 0015,

15/12/98”

A sale

Rent,

available,

reserved

AddExemplar, “Book with title

Object Oriented

Analysis Design”

A book

Joined,

Retired.

Join(),

Retire()

“Mr. John”An employee

StateBehaviorsIdentityObject

Page 5: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

5

Object Class

• Class is a description of a set of objects that

share the same attributes, operations,

methods, relationship and semantics.

• Object classes are templates for objects.

They may be used to create objects.

• An object represents a particular instance of

a class.

Page 6: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

6

Term of objects

• Attribute: data items that define object.

• Operation: function in a class that combine

to form behavior of class.

• Methods: the actual implementation of

procedure (the body of code that is executed

in response to a request from other objects

in the system).

Page 7: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

7

Employee object & class

Employee

name: stringaddress: stringdateOfBirth: DateemployeeNo: integersocialSecurityNo: stringdepartment: Deptmanager: Employeesalary: integerstatus: {current, left, retired}taxCode: integer. . .

join ()leave ()retire ()changeDetails ()

Employee16

name: Johnaddress: M Street No.23dateOfBirth: 02/10/65employeeNo: 324socialecurityNo:E342545department: Salemanager: Employee1salary: 2340stauts:currenttaxCode: 3432….

Eployee16.join(02/05/1997)

Eployee16.retire(03/08/2005)

Eployee16.changeDetail(“X

Street No. 12”)

ObjectClass

Page 8: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

8

Encapsulation and Data Hiding

• Packaging related data and operations

together is called encapsulation.

• Data hiding: hides the internal data from

external by methods (interface).

Page 9: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

9

Encapsulation

� private attributes and methods are encapsulated within

the class, they cannot be seen by clients of the class

� public methods define the interface that the class provides

to its clients

- numCustomers = 0- MIN_BUDGET = 200

- name: String- address: String

- budget: int

+ placeOrder( ): void

Customer

public methods + printNumCustomer( ): void

private attributes

Customer class

Page 10: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

10

Object communication

• Objects communicate with each other by sending messages

– a message is a method call from a message-sending object to a message-receiving object

– a message consists of

• an object reference which indicates the message receiver

• a method name (corresponding to a method of the receiver), and

• parameters (corresponding to the arguments of the calling method)

– a message-receiving object is a server to a message-sending object, and the message-sending object is a client of the server

Page 11: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

11

Message Passing

name = “Alex”address =

“1 Robinson Rd”budget = 2000

placeOrder( ): void

name = “Lawrence”employeeNo =15commission = 200

takeOrder( ): int

takeOrder(“sofa”, name, address, “120799”)

199

message

return valuealex lawrence

lawrence.takeOrder(“sofa”, “1 Robinson Rd”, “120799”)

parametersmethod nameobject reference

message

Page 12: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

12

Message Passing

- numCustomers = 0- MIN_BUDGET = 200

- name: String- address: String

- budget: int

+ placeOrder( ): void

Customer

+ printNumCustomer( ): void

- MAX_ PRICE = 200- name: String

- employeeNo: String- commission: int

+ takeOrder( ): void

SalesPerson

alex lawrencetakeOrder

client server

Page 13: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

13

Inheritance

• Object classes may inherit attributes and

services from other object classes.

• Inheritance represents the generalization of

a class.

Page 14: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

14

A generalisation hierarchy

Employee

Programmer

projectprogLanguage

Manager

ProjectManager

budgetsControlled

dateAppointed

projects

Dept.Manager

StrategicManager

dept responsibilities

Page 15: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

15

Library class

hierarchy

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

Book

YearIssue

Magazine

DirectorDate of releaseDistrib

Film

VersionPlatform

Computerprogram

TitlePublisher

Published item

TitleMedium

Recorded item

Library Item

Catalogue Number

Acquisition date

Cost

Type

Status

Number of copies

Page 16: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

16

User class hierarchyNameAddressPhoneRegistration #

Library user

Register ()De-register ()

Affiliation

Reader

Items on loanMax. loans

Borrower

DepartmentDepartment phone

Staff

Major subjectHome address

Student

Page 17: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

17

Multiple inheritance

• Rather than inheriting the attributes and services

from a single parent class, a system which

supports multiple inheritance allows object classes

to inherit from several super-classes

• Can lead to semantic conflicts where

attributes/services with the same name in different

super-classes have different semantics

• Makes class hierarchy reorganisation more

complex

Page 18: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

18

Multiple inheritance

# Tapes

Talking book

AuthorEditionPublication dateISBN

Book

SpeakerDurationRecording date

Voice recording

Page 19: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

19

Advantages of inheritance

• It is an abstraction mechanism which may

be used to classify entities

• It is a reuse mechanism at both the design

and the programming level

• The inheritance graph is a source of

organisational knowledge about domains

and systems

Page 20: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

20

Problems with inheritance

• Object classes are not self-contained. they cannot

be understood without reference to their super-

classes

• Designers have a tendency to reuse the inheritance

graph created during analysis. Can lead to

significant inefficiency

• The inheritance graphs of analysis, design and

implementation have different functions and

should be separately maintained

Page 21: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

21

Inheritance and OOD

• There are differing views as to whether inheritance is fundamental to OOD.

– View 1. Identifying the inheritance hierarchy or network is a fundamental part of object-oriented design. Obviously this can only be implemented using an OOPL.

– View 2. Inheritance is a useful implementation concept which allows reuse of attribute and operation definitions. Identifying an inheritance hierarchy at the design stage places unnecessary restrictions on the implementation

• Inheritance introduces complexity and this is undesirable, especially in critical systems

Page 22: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

22

Objects Association

• Modeling an association between two classes means that there is some sort of relationship between objects of each class that may be connected.

Student Course0..* 1..*

studies

Page 23: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

23

Object aggregation

• Aggregation model shows how classes

which are collections are composed of other

classes

• Similar to the part-of relationship in

semantic data models

Page 24: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

24

Object aggregation

Videotape

Tape ids.

Lecturenotes

Text

OHP slides

Slides

Assignment

Credits

Solutions

TextDiagrams

Exercises

#ProblemsDescription

Course titleNumberYearInstructor

Study pack

1 ..*

1 1 1 1

0 ..*1 ..*1 ..*

1 1

1 ..* 1 ..*

Page 25: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

25

Object Cohesion & Coupling

• Cohesion of a component is a measure of how well it fits together. Each operation provides functionality which allows the attributes of the object to be modified, inspected or used as a basis for service provision.

• Coupling is an indication of the strength of interconnections between program units. Highly coupled systems have strong interconnections, with program units dependent on each other (shared variables, interchange control function). Loosely coupled system which are independent .

Page 26: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

26

Polymorphism

• the ability of different objects to perform the appropriate method in response to the same message is known as polymorphism.

• the selection of the appropriate method depends on the class used to create the object

Shape

SquareCircle

namegetName( )calculateArea( )

sidecalculateArea( )

radiuscalculateArea( )

Page 27: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

27

Example Polymorphismclass Shape {

private String name;

public Shape(String aName) { name=aName; }

public String getName( ) { return name; }

public float calculateArea( ) { return 0.0f; }

} // End Shape class a generic action

class Circle extends Shape {

private float radius;

public Circle(String aName) { super(aName); radius = 1.0f; }

public Circle(String aName, float radius) {

super(aName); this.radius = radius;

}

public float calculateArea() { return (float)3.14f*radius*radius; }

} // End Circle class

inheritance

overloading

overriding

Page 28: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

28

class Square extends Shape {

private float side;

public Square(String aName) { super(aName); side =

1.0f; }

public Square(String aName, float side) {

super(aName); this.side = side;

}

public float calculateArea() { return (float)

side*side; }

} // End Square class

Page 29: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

29

Polymorphism Example

public class ShapeDemoClient {

public static void main(String argv[ ]) {

Shape c1 = new Circle("Circle C1");

Shape c2 = new Circle("Circle C2", 3.0f);

Shape s1 = new Square("Square S1");

Shape s2 = new Square("Square S2", 3.0f);

Shape shapeArray[ ] = {c1, s1, c2, s2};

for (int i = 0; i < shapeArray.length; i++) {

System.out.println("The area of " + shapeArray[i].getName( )

+ " is " + shapeArray[i].calculateArea( )

+ " sq. cm.");

}

} // End main

} // End ShapeDemoClient1 class

rule of subtype

dynamic binding

Page 30: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

30

OO Analysis and Design

OO Analysis - examines requirements from the perspective

of the classes and objects found in the vocabulary of the

problem domain. In other words, the world (of the system)

is modelled in terms of objects and classes.

OO Design - OO decomposition and a notation for depicting

models of the system under development. Structures are

developed whereby sets of objects collaborate to provide

the behaviours that satisfy the requirements of the problem.

Page 31: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

31

Object Oriented Analysis

• Analyze the domain problem

• Describe the process systems

• Identify the objects

• Specify attributes

• Defining operations

• Inter-object Communication

Page 32: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

32

Identifying Object• Objects can be:

– External Entity (e.g., other systems, devices, people) that produce or consume information to be used by system

– Things (e.g., reports, displays, letters, signals) that are part of information domain for the problem

– Places (e.g., book’s room) that establish the context of the problem and the overall function of the system.

– Organizational units (e.g., division, group, team, department) that are relevant to an application,

– Transaction (e.g., loan, take course, buy, order).

Page 33: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

33

Example of candidate objectsJust a Line management wishes to increase security, both in their building and on

site, without antagonizing their employees. They would also like to prevent people who are not part of the company from using the Just a Line car park.

It has been decide to issue identity cards to all employees, which they are expected to wear while on the Just a Line site. The cards records the name, departmentand number of the member of staff, and permit access to the Just a Line car park.

A barrier and a card reader are placed at the entrance to the car park. The driver of an approaching car insert his or her numbered card in the card reader, which then checks that the card number is known to the Just a Line system. If the card is recognized, the reader sends a signal to raise the barrier and the car is able to enter the car park.

At the exit, there is also a barrier, which is raised when a car wishes to leave the car park.

When there are no spaces in the car park a sign at the entrance display “Full” and is only switched off when a car leaves.

Special visitor’s cards, which record a number and the current date, also permit access to the car park. Visitor’s cards may be sent out in advance, or collected from reception. All visitor’s cards must be returned to reception when the visitor leaves Just a Line.

Page 34: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

34

Candidate objects:

Just a Line management security building

site employee people company

car park card name department

number member of staff access barrier

card reader entrance driver car

system signal exit space

sign visitor reception

Page 35: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

35

Candidate objects’ rejection

• duplicates: if two or more objects are simply different names for the

same thing.

• irrelevant: objects which exists in the problem domain, but which are

not intended.

• vague: when considering words carefully it sometimes becomes clear

that they do not have a price meaning and cannot be the basis of a

useful in the system.

• general: the meaning is too broad.

• attributes: as the attribute of objects.

• associations: actually represents the relationships between objects.

• roles: sometimes objects referred to by the role they play in a

particular part of the system.

Page 36: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

36

roledriver

associationaccess

attributename, department,

too generalsystem

vaguesecurity, people

irrelevant to the systemmanagement,company,

building, site, visitor and

reception

duplicates with company,

employee respectively

Just a Line, member of staff

Rejection criteriaCandidate objects

Rejected Candidate objects

Page 37: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

37

Rest Objects

Car park Staff Card Visitor’s card

Employee Entrance exit

card reader barrier Full sign

space sensor car

Page 38: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

38

Define class attributes

Car Park

capacity

spaces

inc.spaces()

dec.spaces()

space left()

Full sign

on:boolean

switch on()

switch off()

Barrier

type:

up:boolean

raise()

lower()

Card Reader

valid card nos.

read card()

card OK()

Page 39: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

39

Data DictionaryBarrier: type + up

type = [“Entrance”|”Exit”]

up = [“true”|”false”]

raise: if the barrier is not already raised, this operation takes as

argument an object of the barrier class and returns an object of the

same class, with the up attribute set to “true”. If the barrier is already

up, the operation returns the error message “barrier is already raised”

lower: if the barrier is not already lower, this operation takes as

argument an object of the barrier class and returns an object of the

same class, with the up attribute set to “false”. If the barrier is already

down, the operation returns the error message “barrier already

lowered”.

Page 40: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

40

Objects RelationshipCar Park Car Park

Card ReaderSensor

Barrier

2 ..*2 ..*

1 ..*

Valid cards

Card

Visitor’s Card Staff Card

1 .. *

1

1 .. *

Page 41: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

41

Object behaviour modelling

• A behavioural model shows the interactions

between objects to produce some particular

system behaviour that is specified as a use-

case

• Sequence diagrams (or collaboration

diagrams) in the UML are used to model

interaction between objects

Page 42: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

42

Card OK

Sequence Diagram for Entrance:User :CarPark :Sensor :CardReader :Valid card :Barrier :Full Sign

Full Sign off

Car present

Check space left

Yes

Card number

Card number

Card returned

Raise

Car not presentlower

Decrement Space

Check space left

Yes

Page 43: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

43

OO Analysis and Design

Object-Oriented (OO) development is very different

from structured development:

• Structured approach focuses on major functions

within a system and on the data used by the

functions.

• OO approach focuses on the objects in a system

and on the relationships between those objects.

Page 44: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

44

• Unlike functional decomposition, OO views a

complex problem as a meaningful collection of

objects that collaborate to achieve some higher

level behaviour => closely mirrors how people

view complex problems => using OO should

make the job of developing large, complex

systems more manageable.

Page 45: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

45

Object Oriented Model

Page 46: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

46

Structured Model

Page 47: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

47

Comparison

OO:

Systems decomposed into

collections of data objects;

function + data in one place =>

• System components more

independent => more resilient

to requirements and

maintenance changes.

• Inheritance and polymorphism

are possible => reuse,

extension, and tailoring of

software/designs is possible.

• Closely mirrors how humans

decompose and solve

complex.

Structured:

Systems decomposed into

functions; functions and data

modelled separately =>

• System components are more

dependent on each other =>

requirements and

maintenance changes more

difficult

• Inheritance and polymorphism

not possible => limited reuse

possible.

• System components do not

map closely to real-world

entities => difficult to manage

complexity.

Page 48: Object Oriented Analysis & Design (OOAD) - Gunadarmalintang.staff.gunadarma.ac.id/.../ObjectOrientedAnalysisDesign_PPL.pdf · Object Oriented Analysis & Design (OOAD) 2 OOAD • It

48

ComparisonOO:

Process allows for iterative and

incremental development =>

• Integration of programs is

series of incremental

prototypes.

• Users and developers get

important feedback

throughout development.

• Testing resources distributed

more evenly.

• If time is short, coding and

testing can begin before the

design is finished.

Structured:

Process less flexible and largely

linear =>

• Integration of programs is ‘big

bang’ effect.

• Users or developers provided

with little or no feedback; see

system only when it has been

completed.

• Testing resources are

concentrated in the

implementation stage only.

• Coding and testing cannot

begin until all previous stages

are complete.