DESIGN ENGINEERING
Software Engineering: A Practitioner’s Approach, 6th edition
by Roger S. Pressman
1
DESIGN ENGINEERING
•Design engineering encompasses the set of principles,
concepts, and practices that lead to the development of
a high quality system or product.
•Design creates a representation or model of the
software, the design model provides detail about
software data structures, architecture, interfaces, and
components that are necessary to implement the
system.
• The goal of design engineering is to produce a model
or representation that exhibits firmness (the program
shouldn’t contain bugs), commodity(a program should be
suitable for the purpose for which it was intended
and delight (the experience
2
of using the program should
be a pleasurable one).
SOFTWARE DESIGN
• In software design phase input is SRS document and
output is SDD.
• Software designing is most creative process, where we
actually decide how a problem will be solved.
3
CHARACTERISTICS OF A GOOD
SDD
• The SDD must contain all the requirement which were
given in SRS.
• The design document must be readable, easy to
understand and maintainable.
• It must describe a complete picture of data, functional
and behaviour main.
4
STEPS OF DESIGN
• Steps of design
• Software designing is a 3-step process
• Interface Design
• Architectural Design
• Details Design
5
INTERFACE
DESIGN
• In this, we treat system as a whole and understand the
relationship between the system & environment.
• Here we treat system as a black box and do not
concentrate how a function will be implemented but we
decide what is input & what should be the output
according to user requirement or SRS
6
ARCHITECTURA
L DESIGN
• In this we understand what are the major modules that
must be implemented in the system and what are their
responsibility and how they will communicate with each
other.
• We do not give stress on individual modules but
concentrate coupling (dependency of one module on an
other module) and cohesion (functional strength)
between the modules. Here we treat modules as black
box.
7
DETAILED
DESIGN
• In this, specification of internal elements of all modules
their functions, their processing methods, data structure,
algorithms, everything is defined properly.
8
ARCHITECTURAL DESIGN
Software Engineering: A Practitioner’s Approach, 6th edition
by Roger S. Pressman
9
SOFTWARE ARCHITECTURE
• The software architecture of a
program or computing system is the
structure or structures of the system,
which comprise the software
components, the externally visible
properties of those components, and
the relationships among them.
— Bass. et al.
10
SPECIFIC STYLES
• Different Architectural styles are:
1. Data-centered architecture
2. Data flow architecture
3. Call and return architecture
4. Object-oriented architecture
5. Layered architecture
11
12
13
14
15
DATA-CENTERED
ARCHITECTURE
16
17
DATA-FLOW ARCHITECTURE
• This structure is applied when input data are to be
transformed through a series of computational or
manipulative components into output data.
• A pipe and filter structure has a set of components,
called filters, connected by pipes that transmit data from
one component to the next.
• Each filter works independently, and is designed to
expect data input of a certain form, and produces data
outputs of a specified form.
18
DATA-FLOW ARCHITECTURE
19
OBJECT-ORIENTED
ARCHITECTURE
• The components of a system encapsulate data
and the operations that must be applied to
manipulate the data. Communication and
Coordination between components is
accomplished via message passing.
21
OBJECT-ORIENTED
ARCHITECTURE
22
LAYERED ARCHITECTURE
• Different layers are defined.
• At outer layer, components service user
interface operations.
• at the inner layer, components perform
operating system interfacing.
• Intermediate layers provide utility services and
application software functions.
23
LAYERED ARCHITECTURE
24