Vous êtes sur la page 1sur 64

Object-Oriented Systems

Development:
Development
Using the Unified Modeling Language

Chapter 4:
Object-Oriented Methodologies
Goals

• Object-Oriented Methodologies
–The Rumbaugh et al. OMT

–The Booch methodology

–Jacobson's methodologies
Goals (Con’t)

• Patterns
• Frameworks

• Unified Approach (UA)

• layered Architecture
Basic Definitions
• A methodology is explained as the
science of methods.
• A method is a set of procedures in

which a specific goal is


approached step by step.
Too Many Methodologies
• 1986: Booch came up with the
object-oriented design concept, the
Booch method.
• 1987: Sally Shlaer and Steve Mellor

came up with the


concept of the recursive
design approach.
Too Many Methodologies (Con’t)
• 1989: Beck and Cunningham came up
with class-responsibility-collaboration
(CRC) cards.
• 1990: Wirfs-Brock, Wilkerson, and

Wiener came up with responsibility-


driven design.
• 1991: Peter Coad and Ed Yourdon

developed the Coad lightweight and


prototype-oriented approach.
Too Many Methodologies (Con’t)
• 1991: Jim Rumbaugh led a team at the
research labs of General Electric to
develop the object modeling
technique (OMT).
• 1994: Ivar Jacobson introduced the

concept of the use case.


Survey of Some of the Object-
Oriented Methodologies
• Many methodologies are available to
choose from for system development.
• Here, we look at the methodologies

developed by Rumbaugh et al.,


Booch, and Jacobson which are the
origins of the Unified Modeling
Language (UML) and the bases of the
UA.
Rumbaugh et. al.’s Object
Modeling Technique (OMT)
• OMT describes a method for the
analysis, design, and implementation
of a system using an object-oriented
technique.
OMT (Con’t)
• OMT consists of four phases, which
can be performed iteratively:
–1. Analysis. The results are objects

and dynamic and functional


models.
–2. System design. The result is a

structure of the basic architecture


of the system.
OMT (Con’t)
–3. Object design. This phase
produces a design document,
consisting of detailed objects
and dynamic and functional
models.
–4. Implementation. This activity

produces reusable, extendible,


and robust code.
OMT Modeling
• OMT separates modeling into three
different parts:
–1. An object model, presented by the
object model and the data dictionary.
–2. A dynamic model, presented by the

state diagrams and event flow


diagrams.
–3. A functional model, presented by

data flow and constraints.


OMT Object Model
Client

firstName
lastName
pinCode ClientAccount Account Transaction

number AccountTransaction transDate


balance transTime
transType
deposit
amount
withdraw
createTransaction postBalance

CheckingAccount

Withdraw
CheckingSavingAccount
SavingsAccount
OMT Dynamic Model
No account has been selected

Acc ount has been


Nothing is selected
selected

Select Checking or Select Checking


saving account account

Select transaction
type (withdraw, Enter the amount
depos it, transfer)

Confirmation
OMT Functional Model
Data
Store

Process Client Account

Data
Flow
Card
Reader PIN Code Process PIN Code

External
Entity
The Booch Methodology
• The Booch methodology covers the
analysis and design phases of
systems development.
• Booch sometimes is criticized for his

large set of symbols.


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
The Booch Methodology (Con’t)
Car

color
manufacturer
superclass
cost

inherits

Ford

inherits

Mustang Taurus Escort


The Booch Methodology (Con’t)
Operator::TurnOffAlarm

Enabled

SoundAlarm
Silenced Sounding
SilenceAlarm

Enable Disable

AlarmFixed
Disabled
The Booch Methodology (Con’t)

• The Booch methodology prescribes


–A macro development process

–A micro development process.


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.
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.
The Jacobson et al. Methodologies
• The Jacobson et al. methodologies
(e.g., OOBE, OOSE, and
Objectory) cover the entire life
cycle and stress traceability
between the different phases.
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 the responsibility of


the system to its users.
Use Cases (Con’t)
• The use case description must
contain:
–How and when the use case begins and
ends.
–The interaction between the use case

and its actors, including when the


interaction occurs and what is
exchanged.
Use Cases (Con’t)
–How and when the use case will store
data in the system.
–Exceptions to the flow of events.
Library

Checking out books

Getting an
Interlibrary loan

Doing research

Reading books,
Member
Newspapers

Purchasing Supplies
Supplier
Object-Oriented Software
Engineering: Objectory
• Object-oriented software
engineering (OOSE), also called
Objectory, is a method of object-
oriented development with the
specific aim to fit the development
of large, real-time systems.
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 Business
Engineering (OOBE)
• Object-oriented business
engineering (OOBE) is object
modeling at the enterprise level.
• Use cases again are the central

vehicle for modeling, providing


traceability throughout the
software engineering processes.
Use-case model

Tested in
Realized by
Express in Structured by
Implemented by

OK
NOT OK

Domain Object Analysis Design model Implementation Testing model


model model model
OOBE (Con’t)

• OOBE consists of :
–Analysis phase
–Design

–Implementation phases and

–Testing phase.
Patterns
• A pattern is an instructive
information that captures the
essential structure and insight of a
successful family of proven
solutions to a recurring problem
that arises within a certain context
and system of forces.
Patterns (Con’t)
• The main idea behind using
patterns is to provide
documentation to help categorize
and communicate about solutions
to recurring problems.
• The pattern has a name to facilitate

discussion and the information it


represents.
Patterns (Con’t)
• A good pattern will do the
following:
• It solves a problem. Patterns capture

solutions, not just abstract


principles or strategies.
• It is a proven concept. Patterns

capture solutions with a track


record, not theories or speculation.
Patterns (Con’t)
• The solution is not obvious. The best
patterns generate a solution to a
problem indirectly—a necessary
approach for the most difficult
problems of design.
• It describes a relationship. Patterns

do not just describe modules, but


describe deeper system structures
and mechanisms.
Patterns (Con’t)
• The pattern has a significant human
component.
• All software serves human comfort

or quality of life; the best patterns


explicitly appeal to aesthetics and
utility.
Capturing Patterns
• Guidelines for capturing patterns:
–Focus on practicability.
–Aggressive disregard of originality.

–Nonanonymous review.

–Writers' workshops instead of

presentations.
–Careful editing.
Frameworks
• A framework is a way of presenting
a generic solution to a problem
that can be applied to all levels in
a development.
• A single framework typically

encompasses several design


patterns and can be viewed as the
implementation of a system of
design patterns.
Differences Between Design
Patterns and Frameworks
• Design patterns are more abstract
than frameworks.
• Design patterns are smaller

architectural elements than


frameworks.
• Design patterns are less specialized

than frameworks.
The Unified Approach
• The idea behind the UA is not to
introduce yet another
methodology.
• The main motivation here is to

combine the best practices,


processes, methodologies, and
guidelines along with UML
notations and diagrams.
Develop Use- Develop Identify classes,
Cases, activity Refine
interaction relationships, and
diagrams diagrams attributes &
Identify Actors prototyping iterate
methods

Construction O-O Analysis


C om ponent Layered
B a sed Repository Approach
D e v e lo p m e n t of use-cases,
analysis,
Continuous design, UI,
Testing and past
Experiences
Patterns
User satisfaction Documentation UML Based
usability tests, & Traceability Modeling
quality assurance
test O-O Design
D e s ig n c la s s e s , A p p ly D e s ig n D e s ig n v v ie w U s e r s a tis f a c tio n &
th e ir a ttrib u te s , A x io m s and access U s a b ility te s ts
m e th o d s , L a ye rs a n d b ased o n use cases
a s s o c ia tio n , B u ild U M L c la s s
d iag ra m p r o to ty p e s
s t r u c tu r e ...
C o n tin u o u s T e s tin g
The Unified Approach (UA)
• The unified approach to software
development revolves around (but
is not limited to) the following
processes and components.
UA Processes (Con’t)
• The processes are:
–Use-case driven development.
–Object-oriented analysis.

–Object-oriented design.

–Incremental development and

prototyping.
–Continuous testing.
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 and


frameworks.
–Promoting Component-based

development.
UA Object-Oriented Analysis:
Use-Case Driven
• The use-case model captures the
user requirements.
• The objects found during analysis

lead us to model the classes.


• The interaction between objects

provide a map for the design


phase to model the relationships
and designing classes.
UA Object-Oriented Design
• Booch provides the most comprehensive
object-oriented design method.
• However, Booch methods can be somewhat

imposing to learn and especially tricky to


figure out where to start.
• UA realizes this by combining Jacobson et

al.'s analysis with Booch's design


concept to create a comprehensive design
process.
Iterative Development and
Continuous Testing
• The UA encourages the integration
of testing plans from day 1 of the
project.
• Usage scenarios or Use Cases can

become test scenarios; therefore,


use cases will drive the usability
testing.
Modeling Based on the Unified
Modeling Language
• The UA uses the unified modeling
language (UML) to describe and
model the analysis and design
phases of system development.
The UA Proposed Repository
• The requirement, analysis, design, and
implementation documents should be
stored in the repository, so reports can
be run on them for traceability.
• This allows us to produce designs that

are traceable across requirements,


analysis, design, implementation, and
testing.
The Layered Approach to
Software Development
• Most systems developed with
today's CASE tools or client-server
application development
environments tend to lean toward
what is known as two-layered
architecture: interface and data.
Two-Layer Architecture
• In a two-layer system, user interface
screens are tied directly to the data
through routines that sit directly
behind the screens.

Name
Address
Title
Owner Data

Workstation
Problem With the Two-Layer
Architecture
• This approach results in objects that
are very specialized and cannot be
reused easily in other projects.
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.

Name
Address
Tit le
Owner Data

Workstatio n
User Interface layer
This layer is typically responsible
for two major aspects of the
applications:
• Responding to user interaction

• Displaying business objects.


Business Layer
• The responsibilities of the business
layer are very straight- forward:
• model the objects of the business

and how they interact to


accomplish the business processes.
Business Layer: Real Objects
(Con’t)
These objects should not be
responsible for:
• Displaying details

• Data access details


Access Layer
• The access layer contains objects
that know how to communicate
with the place where the data
actually resides,
• Whether it be a relational database,

mainframe, Internet, or
file.
Access Layer
• The access layer has two major
responsibilities:
• Translate request

• Translate result
Three-Layered Architecture

Access
Layer

Business
Layer

View
Layer
Summary
• we looked at current trends in
object-oriented methodologies,
which have been toward
combining the best aspects of
today's most popular methods.
Summary (Con’t)
• Each method has its strengths.
Rumbaugh et al. have a strong method
for producing object models.
• Jacobson et al. have a strong method for

producing user-driven requirement


and object-oriented analysis models.
• Booch has a strong method for

producing detailed object-oriented


design models.
Summary (Con’t)
• Each method has weakness, too. While
OMT has strong methods for modeling
the problem domain, OMT models
cannot fully express the requirements.
• Jacobson, although covering a fairly wide

range of the life cycle, does not treat


object-oriented design to the same level
as Booch, who focuses almost entirely
on design, not analysis.
Summary (Con’t)
• The UA is an attempt to combine the
best practices, processes, and
guidelines along with UML
notations and diagrams for better
understanding of object-oriented
concepts and object-oriented
system development.

Vous aimerez peut-être aussi