SE Unit 4
SE Unit 4
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 ig 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
Ana lys is Mode l
A rc h it e c t u ra l D e s ig 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
Design
The data/class design transforms class models into design class
realizations and the requisite data structures required to
implement the software.
The objects and relationships defined in the CRC diagram and
the detailed data content depicted by class attributes
The architectural design defines the relationship between
structural elements of the software, the architectural styles and
design patterns that can be used to achieve the requirements
defined for the system, and the constraints that affect the way in
which architecture can be implemented.
Design
The interface design describes how the software communicates with
systems that interoperate with it, and with humans who use it.
An interface implies a flow of information (data/control) and a specific
type of behavior.
The component-level design transforms structural elements of the
software architecture into a procedural description of software
components.
Information obtained from the class-based models, flow models, and
behavioral models serve as the basis for component design.
Design and Quality
The importance of design can be stated with a single word – quality.
Design is the only way that you can accurately translate stakeholder’s
requirements into a finished software products
Software design serves as the foundation for all the software
engineering and support activities that follow.
Without design, you risk building an unstable system – one that will
fail when small changes are made; one that may be difficult to test; one
whose quality cannot be assessed until late in the software process,
when time is short and many dollars have already been spent.
Design Process
It is an iterative process through which requirements are translated
into a “blueprint” for constructing the software.
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism
details of enter
algorithm
• Families of related systems. 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.
Pattern
• A design pattern describes a design structure that solves a
particular design problem
• The intent of each design pattern is to provide a description
that enables a designer to determine
• (1) whether the pattern is applicable to the current work,
• (2) whether the pattern can be reused (hence, saving design
time),
• (3) whether the pattern can serve as a guide for developing a
similar, but functionally or structurally different pattern.
Separation of Concerns
Any complex problem can be more easily handled if it is
subdivided into pieces that can each be solved and/or
optimized independently
A concern is a feature or behavior that is specified as part of
the requirements model for the software
By separating concerns into smaller, and therefore more
manageable pieces, a problem takes less effort and time to
solve.
Modularity
“Modularity is the single attribute of software that allows a program
to be intellectually manageable“.
Monolithic software (i.e., a large program composed of a single
module) cannot be easily grasped by a software engineer.
The number of control paths, span of reference, number of variables, and
overall complexity would make understanding close to impossible.
In almost all instances, you should break the design into many
modules, hoping to make understanding easier and as a
consequence, reduce the cost required to build the software.
Modularity
Information
Hiding
module • algorithm
controlled
interface • data structure
• details of external interface
• resource allocation policy
clients "secret"
a n a ly s is m o d e l
c la s s dia gr a 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 gr a ms
Re quire m e nt s :
CRC mode ls us e - c a s e dia gr a ms c ons t ra int s
a na lys is pa c ka ge s
c olla bor a t ion dia gr a ms
a c t ivit y dia gr a ms CRC mode ls int e rope ra bilit y
da t a f low dia gr a ms s w im la ne dia gr a ms c olla bor a t ion dia gr a ms t a rge t s a nd
c ont r ol- f low dia gr a ms c olla bor a t ion dia gr a ms da t a f low dia gr a ms
pr oc e s s ing na r r a t ive s s t a t e dia gr a ms c ont r ol- f low dia gr a ms
c onf igura t ion
s e que nc e dia gr a ms pr oc e s s ing na r r a t ive s
s t a t e dia gr a ms
s e que nc e dia gr a ms
p ro c e s s d im e ns io n
Design Model Elements
Data elements
Data model --> the program component level, the design
of data structures and the associated algorithms
required to manipulate Data model --> At the application
level, the translation of a data model into a database
Architectural elements
The architectural model is derived from three sources:
(1) information about the application domain for the
software to be built (2) specific requirements model
elements such as data flow diagrams or analysis classes,
their relationshipsand collaborations for the problem at
hand;
(3) the availability of architectural styles
Interface elements
There are three important elements of interface design:
(1) the user interface (UI);
(2) external interfaces to other systems, devices,
networks, or other producers orconsumers of
information; and
(3) internal interfaces between various design
com_x0002_ponents.
Component elements
Architectural Elements
The architectural model is derived from three
sources:
Information about the application domain for the
software to be built;
Specific requirements model elements such as data
flow diagrams or analysis classes, their relationships
and collaborations for the problem at hand, and
The availability of architectural patterns and styles
Interface
Elements
Mo b ile Ph o n e
User interface
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
consumers of information
< < in t e rfa c e > >
Ke y Pa d
Security homeownerAccess
externalAccess
Security Surveillance
homeManagement communication
Fig u re 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