64
Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill Chapter 4: Object-Oriented Methodologies Object-Oriented Systems Object-Oriented Systems Development Development: Using the Unified Modeling Using the Unified Modeling Language Language

Object-Oriented Systems Development:Development

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Chapter 4:Object-Oriented Methodologies

Object-Oriented SystemsObject-Oriented SystemsDevelopmentDevelopment:Using the Unified ModelingUsing the Unified ModelingLanguageLanguage

Page 2: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Goals

•Object-Oriented Methodologies–The Rumbaugh et al. OMT–The Booch methodology– Jacobson's methodologies

Page 3: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Goals (Con’t)

•Patterns•Frameworks•Unified Approach (UA)• layered Architecture

Page 4: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Basic Definitions•A methodology is explained as the

science of methods.•A method is a set of procedures in

which a specific goal isapproached step by step.

Page 5: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Too Many Methodologies•1986: Booch came up with the

object-oriented design concept,the Booch method.•1987: Sally Shlaer and Steve

Mellor came up withthe concept of therecursive design approach.

Page 6: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Too Many Methodologies (Con’t)•1989: Beck and Cunningham came up

with class-responsibility-collaboration (CRC) cards.

•1990: Wirfs-Brock, Wilkerson, andWiener came up with responsibility-driven design.

•1991: Peter Coad and Ed Yourdondeveloped the Coad lightweight andprototype-oriented approach.

Page 7: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Too Many Methodologies (Con’t)•1991: Jim Rumbaugh led a team at

the research labs of General Electricto develop the object modelingtechnique (OMT).•1994: Ivar Jacobson introduced the

concept of the use case.

Page 8: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Survey of Some of the Object-Oriented Methodologies

•Many methodologies are available tochoose from for system development.• Here, we look at the methodologies

developed by Rumbaugh et al.,Booch, and Jacobson which are theorigins of the Unified ModelingLanguage (UML) and the bases of theUA.

Page 9: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Rumbaugh et. al.’s ObjectModeling Technique (OMT)

• OMT describes a method for theanalysis, design, and implementationof a system using an object-orientedtechnique.

Page 10: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT (Con’t)•OMT consists of four phases,

which can be performediteratively:–1. Analysis. The results are

objects and dynamic andfunctional models.–2. System design. The result is a

structure of the basicarchitecture of the system.

Page 11: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT (Con’t)

–3. Object design. This phaseproduces a design document,consisting of detailed objectsand dynamic and functionalmodels.–4. Implementation. This activity

produces reusable, extendible,and robust code.

Page 12: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT Modeling•OMT separates modeling into

three different parts:– 1. An object model, presented by the

object model and the datadictionary.– 2. A dynamic model, presented by

the state diagrams and event flowdiagrams.– 3. A functional model, presented by

data flow and constraints.

Page 13: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT Object Model

numberbalancedepositwithdrawcreateTransaction

Account

Withdraw

CheckingAccount

transDatetransTimetransTypeamountpostBalance

Transaction

AccountTransaction

firstNamelastNamepinCode

Client

ClientAccount

CheckingSavingAccountSavingsAccount

Page 14: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT Dynamic Model

Nothing is selected

No account has been selected

Account has beenselected

Select Checkingaccount

Select Checking orsaving account

Select transactiontype (withdraw,

deposit, transfer)Enter the amount

Confirmation

Page 15: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OMT Functional Model

Client Account

CardReader PIN Code Process PIN Code

Process

DataStore

DataFlow

ExternalEntity

Page 16: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Booch Methodology•The Booch methodology covers

the analysis and design phases ofsystems development.•Booch sometimes is criticized for

his large set of symbols.

Page 17: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Booch Methodology (Con’t)•The Booch method consists of the

following diagrams:–Class diagrams–Object diagrams– State transition diagrams–Module diagrams– Process diagrams– Interaction diagrams

Page 18: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Booch Methodology (Con’t)

Car

colormanufacturercost

Escort

Ford

Mustang Taurus

inherits

inherits

superclass

Page 19: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Booch Methodology (Con’t)

Silenced Sounding

Disabled

Enabled

SoundAlarm

SilenceAlarm

Enable Disable

Operator::TurnOffAlarm

AlarmFixed

Page 20: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Booch Methodology (Con’t)

•The Booch methodologyprescribes–A macro development process

–A micro development process.

Page 21: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Macro Development Process•The macro development process

consists of the following steps:– 1. Conceptualization– 2. Analysis and development of the

model.– 3. Design or create the system

architecture.– 4. Evolution or implementation.– 5. Maintenance.

Page 22: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Micro Development Process•The micro development process

consists of the following steps:– 1. Identify classes and objects.– 2. Identify class and object semantics.– 3. Identify class and object

relationships.– 4. Identify class and object interfaces

and implementation.

Page 23: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Jacobson et al. Methodologies•The Jacobson et al. methodologies

(e.g., OOBE, OOSE, andObjectory) cover the entire lifecycle and stress traceabilitybetween the different phases.

Page 24: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Use Cases•Use cases are scenarios for

understanding system requirements.•A use case is an interaction between

users and a system.•The use-case model captures the

goal of the user and theresponsibility of thesystem to its users.

Page 25: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•The use case description mustcontain:–How and when the use case begins

and ends.– The interaction between the use case

and its actors, including when theinteraction occurs and what isexchanged.

Use Cases (Con’t)

Page 26: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Use Cases (Con’t)

–How and when the use case willstore data in the system.– Exceptions to the flow of events.

Page 27: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Library

Checking out books

Doing research

Reading books,NewspapersMember

SupplierPurchasing Supplies

Getting anInterlibrary loan

Page 28: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Object-Oriented SoftwareEngineering: Objectory

•Object-oriented softwareengineering (OOSE), also calledObjectory, is a method of object-oriented development with thespecific aim to fit thedevelopment of large, real-timesystems.

Page 29: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Objectory (Con’t)•Objectory is built around several

different models:–Use case model.–Domain object model.–Analysis object model.

Implementation model.– Test model.

Page 30: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Object-Oriented BusinessEngineering (OOBE)

•Object-oriented businessengineering (OOBE) is objectmodeling at the enterprise level.• Use cases again are the central

vehicle for modeling, providingtraceability throughout thesoftware engineering processes.

Page 31: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Structured byRealized by

Implemented by

Tested inExpress in

Use-case model

Domain Objectmodel

Analysismodel

Design model Implementationmodel

Testing model

OKNOT OK

Page 32: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

OOBE (Con’t)

•OOBE consists of :–Analysis phase–Design– Implementation phases and– Testing phase.

Page 33: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Patterns•A pattern is an instructive

information that captures theessential structure and insight of asuccessful family of provensolutions to a recurring problemthat arises within a certain contextand system of forces.

Page 34: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•The main idea behind usingpatterns is to providedocumentation to help categorizeand communicate about solutionsto recurring problems.• The pattern has a name to

facilitate discussion and theinformation it represents.

Patterns (Con’t)

Page 35: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•A good pattern will do thefollowing:• It solves a problem. Patterns

capture solutions, not just abstractprinciples or strategies.• It is a proven concept. Patterns

capture solutions with a trackrecord, not theories or speculation.

Patterns (Con’t)

Page 36: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•The solution is not obvious. Thebest patterns generate a solutionto a problem indirectly—anecessary approach for the mostdifficult problems of design.• It describes a relationship. Patterns

do not just describe modules, butdescribe deeper system structuresand mechanisms.

Patterns (Con’t)

Page 37: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•The pattern has a significanthuman component.

•All software serves humancomfort or quality of life; the bestpatterns explicitly appeal toaesthetics and utility.

Patterns (Con’t)

Page 38: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Capturing Patterns•Guidelines for capturing patterns:– Focus on practicability.–Aggressive disregard of originality.–Nonanonymous review.–Writers' workshops instead of

presentations.–Careful editing.

Page 39: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Frameworks•A framework is a way of

presenting a generic solution to aproblem that can be applied to alllevels in a development.•A single framework typically

encompasses several designpatterns and can be viewed as theimplementation of a system ofdesign patterns.

Page 40: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•Design patterns are more abstractthan frameworks.•Design patterns are smaller

architectural elements thanframeworks.•Design patterns are less specialized

than frameworks.

Differences Between DesignPatterns and Frameworks

Page 41: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Unified Approach•The idea behind the UA is not to

introduce yet anothermethodology.•The main motivation here is to

combine the best practices,processes, methodologies, andguidelines along with UMLnotations and diagrams.

Page 42: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Documentation & Traceability

of use-cases,analysis,

design, UI,and past

ExperiencesPatterns

Repository

UML BasedModeling

ConstructionComponentBasedDevelopment

User satisfactionusability tests,quality assurancetest

Continuous Testing

RefineanditerateIdentify Actors

Develop Use-Cases, activitydiagrams

Developinteractiondiagrams

Identify classes,relationships,attributes &methods

Continuous Testing

Designv viewand accessLayers andprototypes

Apply DesignAxioms

Design classes,their attributes,methods,association,structure ...

User satisfaction &Usability tests based on use casesBuild UML class

diagram

O-O Analysis

O-O Design

LayeredApproach

prototyping

Page 43: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Unified Approach (UA)•The unified approach to software

development revolves around (butis not limited to) the followingprocesses and components.

Page 44: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

UA Processes (Con’t)

•The processes are:–Use-case driven development.–Object-oriented analysis.–Object-oriented design.– Incremental development and

prototyping.–Continuous testing.

Page 45: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

UA Methods and Technology•The methods and technology

employed includes:–Unified modeling language (UML)

used for modeling.– Layered approach.–Repository for object-oriented

system development patterns andframeworks.– Promoting Component-based

development.

Page 46: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

UA Object-Oriented Analysis:Use-Case Driven

•The use-case model captures theuser requirements.•The objects found during analysis

lead us to model the classes.•The interaction between objects

provide a map for the designphase to model the relationshipsand designing classes.

Page 47: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

UA Object-Oriented Design• Booch provides the most comprehensive

object-oriented design method.•However, Booch methods can be

somewhat imposing to learn andespecially tricky to figure out where tostart.

• UA realizes this by combining Jacobsonet al.'s analysis with Booch's designconcept to create a comprehensive designprocess.

Page 48: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Iterative Development andContinuous Testing

•The UA encourages theintegration of testing plans fromday 1 of the project.•Usage scenarios or Use Cases can

become test scenarios; therefore,use cases will drive the usabilitytesting.

Page 49: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Modeling Based on the UnifiedModeling Language

•The UA uses the unified modelinglanguage (UML) to describe andmodel the analysis and designphases of system development.

Page 50: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The UA Proposed Repository•The requirement, analysis, design, and

implementation documents should bestored in the repository, so reports canbe run on them for traceability.•This allows us to produce designs that

are traceable across requirements,analysis, design, implementation, andtesting.

Page 51: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

The Layered Approach toSoftware Development

•Most systems developed withtoday's CASE tools or client-serverapplication developmentenvironments tend to lean towardwhat is known as two-layeredarchitecture: interface and data.

Page 52: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Two-Layer Architecture• In a two-layer system, user

interface screens are tied directlyto the data through routines thatsit directly behind the screens.

Data

Workstation

Owner

Name

TitleAddress

Page 53: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Problem With the Two-LayerArchitecture

•This approach results in objectsthat are very specialized andcannot be reused easily in otherprojects.

Page 54: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Three-Layer Architecture•Your objects are completely

independent of how:– they are represented to the user

(through an interface) or– how they are physically stored.

Data

Workstation

Owner

Name

TitleAddress

Page 55: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

User Interface layerThis layer is typically responsible

for two major aspects of theapplications:•Responding to user interaction•Displaying business objects.

Page 56: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Business Layer•The responsibilities of the

business layer are very straight-forward:•model the objects of the business

and how they interact toaccomplish the businessprocesses.

Page 57: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Business Layer: Real Objects(Con’t)

These objects should not beresponsible for:• Displaying details• Data access details

Page 58: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Access Layer•The access layer contains objects

that know how to communicatewith the place where the dataactually resides,•Whether it be a relational

database, mainframe,Internet, or file.

Page 59: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Access Layer•The access layer has two major

responsibilities:• Translate request• Translate result

Page 60: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Three-Layered Architecture

BusinessLayer

ViewLayer

Access Layer

Page 61: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Summary•we looked at current trends in

object-oriented methodologies,which have been towardcombining the best aspects oftoday's most popular methods.

Page 62: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Summary (Con’t)•Each method has its strengths.

Rumbaugh et al. have a strong methodfor producing object models.• Jacobson et al. have a strong method

for producing user-driven requirementand object-oriented analysis models.•Booch has a strong method for

producing detailed object-orienteddesign models.

Page 63: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

•Each method has weakness, too. WhileOMT has strong methods for modelingthe problem domain, OMT modelscannot fully express the requirements.• Jacobson, although covering a fairly

wide range of the life cycle, does nottreat object-oriented design to the samelevel as Booch, who focuses almostentirely on design, not analysis.

Summary (Con’t)

Page 64: Object-Oriented Systems Development:Development

Object-Oriented Systems Development Bahrami ? Irwin/ McGraw-Hill

Summary (Con’t)•The UA is an attempt to combine

the best practices, processes, andguidelines along with UMLnotations and diagrams for betterunderstanding of object-orientedconcepts and object-orientedsystem development.