Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 30

Design Engineering

based on
Chapter 9 Software Engineering: A Practitioner’s Approach, 6/e
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.

For University Use Only


May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1
Analysis Model -> Design Model

Co m p o n e n t -
s c e na rio - ba s e d f lo w- o rie nt e d Le v e l D e s i g n
e le me nt s e le me nt s
us e-cas es - text data flow diagrams
us e-cas e diagrams control-flow diagrams
activity diagrams proces s ing narratives
s wim lane diagrams
In t e rf a c e D e s ig n
An a ly s is Mo d e l

A rc h it e c t u ra l D e s i g n
c la ss- ba se d be ha v io ra l
e le me nt s e le me nt s
clas s diagrams s tate diagrams
analys is packages s equence diagrams
CRC models D a t a / Cla s s D e s ig n
collaboration diagrams

Desig n Mo d el

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2
Design and Quality
 the design must implement all of the explicit requirements
contained in the analysis model,
… and it must accommodate all of the implicit requirements desired by the
customer(?)

 the design must be a readable, understandable guide for those who


generate code and for those who test and subsequently support the
software.

 the design should provide a complete picture of the software,


addressing the data, functional, and behavioral domains from an
implementation perspective.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3
Quality Guidelines
 A design should exhibit an architecture that
 (1) has been created using recognizable architectural styles or patterns, (2) is composed of
components that exhibit good design characteristics (3) can be implemented in an
evolutionary fashion

 A design should be modular; that is, the software should be logically partitioned into
elements or subsystems

 A design should contain distinct representations of data, architecture, interfaces, and


components.

 A design should lead to components that exhibit independent functional


characteristics.

 A design should be represented using a notation that effectively communicates its


meaning.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4
Fundamental Concepts
 abstraction—data, procedure, control
 architecture—the overall structure of the software
 modularity—compartmentalization of data and function
 Functional independence—single-minded function and low coupling
 hiding—controlled interfaces
 refinement—elaboration of detail for all abstractions
 Refactoring—a reorganization technique that simplifies the design

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5
abstraction
architecture
modularity
functional independence Data Abstraction
hiding
refinement
refactoring door
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism

implemented as a data structure

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6
Procedural Abstraction
open

details of enter
algorithm

implemented with a "knowledge" of the


object that is associated with enter

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7
abstraction

Architecture
architecture
modularity
functional independence
hiding
refinement “The overall structure of the software and the ways in
refactoring
which that structure provides conceptual integrity for a
system.” [SHA95a]
Structural properties. This aspect of the architectural design representation
defines the components of a system (e.g., modules, objects, filters) and the
manner in which those components are packaged and interact with one
another. For example, objects are packaged to encapsulate both data and the
processing that manipulates the data and interact via the invocation of methods

Extra-functional properties. achieves requirements for performance, capacity,


reliability, security, adaptability, and other system characteristics.

Families of related systems. The architectural design should draw upon


repeatable patterns that are commonly encountered in the design of families of
similar systems. In essence, the design should have the ability to reuse
architectural building blocks.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8
abstraction
architecture
modularity
functional independence Modular Design
hiding
refinement easier to build, easier to change, easier to fix
refactoring

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9
Modularity: Trade-offs
What is the "right" number of modules
for a specific software design?

module development cost

cost of
software
module
integration
cost

optimal number number of modules


of modules

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10
abstraction
architecture
modularity

Functional Independence
functional independence
hiding
refinement
refactoring

COHESION - the degree to which a


module performs one and only one
function.

COUPLING - the degree to which a


module is "connected" to other
modules in the system.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11
abstraction
architecture

Information Hiding
modularity
functional independence
hiding
refinement
refactoring

module • algorithm
controlled
interface • data structure
• details of external interface
• resource allocation policy

clients "secret"

a specific design decision

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12
Why Information Hiding?
 reduces the likelihood of “side effects”
 limits the global impact of local design
decisions
 emphasizes communication through
controlled interfaces
 discourages the use of global data
 leads to encapsulation—an attribute of
high quality design
 results in higher quality software

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13
abstraction
architecture
modularity
functional independence
hiding Stepwise Refinement
refinement
refactoring
open

walk to door;
reach for knob;
open door; repeat until door opens
turn knob clockwise;
walk through;if knob doesn't turn, then
close door. take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14
abstraction
architecture
modularity
functional independence
hiding Refactoring
refinement
refactoring
 Fowler [FOW99] defines refactoring in the following
manner:
 "Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code [design] yet improves its internal structure.”
 When software is refactored, the existing design is examined
for
 redundancy
 unused design elements
 inefficient or unnecessary algorithms
 poorly constructed or inappropriate data structures
 or any other design failure that can be corrected to yield a better
design.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15
OO Design Concepts
 Design classes
 Entity classes
 Boundary classes
 Controller classes
 Inheritance—all responsibilities of a superclass is
immediately inherited by all subclasses
 Messages—stimulate some behavior to occur in the receiving
object
 Polymorphism—a characteristic that greatly reduces the
effort required to extend the design

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16
Design classes
Inheritance
Messages
Polymorphism Design Classes
 Analysis classes are refined during design to become entity
classes
 Boundary classes are developed during design to create the
interface (e.g., interactive screen or printed reports) that the user
sees and interacts with as the software is used.
 Boundary classes are designed with the responsibility of managing
the way entity objects are represented to users.
 Controller classes are designed to manage
 the creation or update of entity objects;
 the instantiation of boundary objects as they obtain information from
entity objects;
 complex communication between sets of objects;
 validation of data communicated between objects or between the
user and the application.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17
What can be in the top boxes?
(http://www.agilemodeling.com/artifacts/sequenceDiagram.htm)

Outputting
transcripts

Boundary/interface elements: software elements such as screens, reports, HTML pages, or


system interfaces that actors interact with.
Control/process elements (controllers): These serve as the glue between boundary elements
and entity elements, implementing the logic required to manage the various elements and their
interactions. Often implemented using objects, but simple ones using methods of an entity or boundary
class.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 18
Entity elements
Design classes
Inheritance
Messages
Polymorphism Inheritance
 Design options:
 The class can be designed and built from scratch. That is, if
inheritance is not used.
 The class hierarchy can be searched to determine if a class
higher in the hierarchy (a superclass) contains most of the
required attributes and operations. The new class inherits from
the superclass and additions may then be added, as required.
 The class hierarchy can be restructured so that the required
attributes and operations can be inherited by the new class.
 Characteristics of an existing class can be overridden and
different versions of attributes or operations are implemented
for the new class.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 19
Design classes
Inheritance
Messages
Polymorphism
Messages

:SenderObject

message (<parameters>)
:ReceiverObject

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20
Design classes
Inheritance
Messages
Polymorphism Polymorphism
Conventional approach …
case of graphtype:
if graphtype = linegraph then DrawLineGraph (data);
if graphtype = piechart then DrawPieChart (data);
if graphtype = histogram then DrawHisto (data);
if graphtype = kiviat then DrawKiviat (data);
end case;

All of the graphs become subclasses of a general class called graph. Using a
concept called overloading [TAY90], each subclass defines an operation called
draw. An object can send a draw message to any one of the objects instantiated
from any one of the subclasses. The object receiving the message will invoke
its own draw operation to create the appropriate graph.

graphtype draw

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 21
Design Model Elements
 Data elements
 Data model --> data structures
 Data model --> database architecture
 Architectural elements
 Application domain
 Analysis classes, their relationships, collaborations and behaviors are
transformed into design realizations
 Patterns and “styles” (Chapter 10)
 Interface elements
 the user interface (UI)
 external interfaces to other systems, devices, networks or other producers or
consumers of information
 internal interfaces between various design components.
components
 Component elements
 Deployment elements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 22
Interface Elements
Mo b ile Ph o n e

Wire le s s PDA

Co n t ro lPa n e l

LCDdis pla y
LEDindic a t ors
ke yPa dCha ra c t e ris t ic s Ke y Pa d
s pe a ke r
wire le s s Int e rfa c e

re a dKe ySt roke ()


de c ode Ke y ()
dis pla ySt a t us ()
light LEDs ()
s e ndCont rolMs g()

< < in t e rfa c e > >


Ke y Pa d

re a dKe ys t roke()
de c ode Ke y()

Fig u re 9 . 6 UML in t e rfa c e re p re s e n t a t io n fo r Co n t ro lP a n e l


These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 23
Component Elements

SensorManagement
Sensor

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24
Deployment Elements
Co n t ro l Pa n e l CPI s e rv e r

Security homeownerAcces s

Pe rsona l c omput e r

externalAcces s

Security Surveillance

homeManagement communication

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © Fig u re 2001,
1996, 9 . 8 UML d e p lo y m e n t d ia g ra m fo r S a fe Ho m e
2005 25
Omitted Slides

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 26
Patterns
Design Pattern Template
Pattern name—describes the essence of the pattern in a short but expressive name
Intent—describes the pattern and what it does
Also-known-as—lists any synonyms for the pattern
Motivation—provides an example of the problem
Applicability—notes specific design situations in which the pattern is applicable
Structure—describes the classes that are required to implement the pattern
Participants—describes the responsibilities of the classes that are required to implement the
pattern
Collaborations—describes how the participants collaborate to carry out their responsibilities
Consequences—describes the “design forces” that affect the pattern and the potential trade-offs
that must be considered when the pattern is implemented
Related patterns—cross-references related design patterns

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 27
Design Patterns
 The best designers in any field have an uncanny ability to see patterns that
characterize a problem and corresponding patterns that can be combined to
create a solution
 A description of a design pattern may also consider a set of design forces.
 Design forces describe non-functional requirements (e.g., ease of maintainability,
portability) associated the software for which the pattern is to be applied.
 The pattern characteristics (classes, responsibilities, and collaborations)
indicate the attributes of the design that may be adjusted to enable the
pattern to accommodate a variety of problems.

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 28
Frameworks
 A framework is not an architectural pattern, but rather a
skeleton with a collection of “plug points” (also called
hooks and slots) that enable it to be adapted to a specific
problem domain.
 Gamma et al note that:
 Design patterns are more abstract than frameworks.
 Design patterns are smaller architectural elements than
frameworks
 Design patterns are less specialized than frameworks

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 29
The Design Model
hig h

a n a ly s is m o d e l

c la s s dia gra ms
a na lys is pa c ka ge s
us e -c a s e s - t e xt c la s s dia gra ms
Re quire m e nt s :
CRC mode ls us e -c a s e dia gra ms c ons t ra int s
a na lys is pa c ka ge s
c olla bora t ion dia gra ms
a c t ivit y dia gra ms CRC mode ls int e rope ra bilit y
da t a flow dia gra ms s w im la ne dia gra ms c olla bora t ion dia gra ms t a rge t s a nd
c ont rol-flow dia gra ms c olla bora t ion dia gra ms da t a flow dia gra ms
proc e s s ing na rra t ive s s t a t e dia gra ms c ont rol-flow dia gra ms
c onf igura t ion
s e que nc e dia gra ms proc e s s ing na rra t ive s
s t a t e dia gra ms
s e que nc e dia gra ms

de s ign c la s s re a liz a t ions


s ubs ys t e ms
c olla bora t ion dia gra ms t e c hnic a l int e rfa c e c ompone nt dia gra ms
de s ign c la s s re a liz a t ions
de s ign de s ign c la s s e s
s ubs ys t e ms
Na viga t ion de s ign a c t ivit y dia gra ms
c olla bora t ion dia gra ms
GUI de s ign s e que nc e dia gra ms
c ompone nt dia gra ms
d e s ig n m o d e l de s ign c la s s e s
re f ine m e nt s t o: a c t ivit y dia gra ms
re f ine m e nt s t o: s e que nc e dia gra ms
c ompone nt dia gra ms
de s ign c la s s re a liz a t ions de s ign c la s s e s
s ubs ys t e ms a c t ivit y dia gra ms
lo w c olla bora t ion dia gra ms s e que nc e dia gra ms de ployme nt dia gra ms

arc hit e c t ure int e rfa c e c o m po nent -leve l de plo ym e nt -le ve l


e le m e nt s e le m e nt s e lem e nt s e le m ent s

p ro c e s s d ime ns io n
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with
permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 30

You might also like