object-oriented systems development:development

Post on 27-Oct-2021

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Goals

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

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

Goals (Con’t)

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

OMT Object Model

numberbalancedepositwithdrawcreateTransaction

Account

Withdraw

CheckingAccount

transDatetransTimetransTypeamountpostBalance

Transaction

AccountTransaction

firstNamelastNamepinCode

Client

ClientAccount

CheckingSavingAccountSavingsAccount

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

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

OMT Functional Model

Client Account

CardReader PIN Code Process PIN Code

Process

DataStore

DataFlow

ExternalEntity

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.

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

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

The Booch Methodology (Con’t)

Car

colormanufacturercost

Escort

Ford

Mustang Taurus

inherits

inherits

superclass

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

The Booch Methodology (Con’t)

Silenced Sounding

Disabled

Enabled

SoundAlarm

SilenceAlarm

Enable Disable

Operator::TurnOffAlarm

AlarmFixed

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

The Booch Methodology (Con’t)

•The Booch methodologyprescribes–A macro development process

–A micro development process.

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.

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.

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.

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.

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)

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.

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

Library

Checking out books

Doing research

Reading books,NewspapersMember

SupplierPurchasing Supplies

Getting anInterlibrary loan

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.

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.

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.

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

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

OOBE (Con’t)

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

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.

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)

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)

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)

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)

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.

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.

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

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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

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.

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.

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

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.

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

Access Layer•The access layer has two major

responsibilities:• Translate request• Translate result

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

Three-Layered Architecture

BusinessLayer

ViewLayer

Access Layer

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.

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.

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)

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.

top related