Uploaded by v379988

SE13 d-new

advertisement
DESIGN CONCEPT AND
PRINCIPLES
 What is a design?
A meaningful representation of something that is
to be built
 In the software engineering context, design
addresses four major areas
Data
Interfaces
Architecture
Components
Software Engineering
1
DESIGN CONCEPT AND
PRINCIPLES
Who does it?
Software engineers design computer
based system, but the skills required at
each level of design work is different.
Why it is important? What is the output
of this phase?
How do I ensure that I have done it
right?
Software Engineering
2
DESIGN CONCEPT AND
PRINCIPLES
The design activity is often divided into
two sub phases
System design ( top-level-design )
Detailed design (low-level-design)
Responsible Person: System designer
Software Engineering
3
DESIGN CONCEPT AND
PRINCIPLES
Software design sits in the technical
kernel of software engineering
Each of the elements of the analysis
model provides information that is
necessary to create the four design
models required for complete design
specification
Software Engineering
4
DESIGN CONCEPT AND
PRINCIPLES
The data design transforms the
information domain model created
during analysis into data structure that
will required to implement the software
Data objects and the relationship – E-R
model
Detailed data content depicted in – data
dictionary
Software Engineering
5
DESIGN CONCEPT AND
PRINCIPLES
Part of the data design may occur in
conjunction with design of software
architecture
More detailed data design occurs as the
software component is designed
The architectural design- defines the
relationship between major structural
elements of the software
Software Engineering
6
DESIGN CONCEPT AND
PRINCIPLES
The interface design- Describes how
the software communicates within itself,
with systems that interoperate with it,
and with humans who use it
The component level design- transforms
structural elements of software
architecture into a procedural
description of software components
Software Engineering
7
DESIGN CONCEPT AND
PRINCIPLES
Why design is so important?
Can be stated with a single word- Quality
Without design we build an unstable
systemOne that will fall when small changes are
made
One that may be difficult to test
One whose quality cannot be assessed until
late in the software process
Software Engineering
8
DESIGN CONCEPT AND
PRINCIPLES
Design and software qualityThroughout the design process the quality
of the evolving design is assessed with a
series of formal technical reviews
What is a good design?
McGlaughlin suggests some characters
that serves as a guide for the evaluation of
a good design
Software Engineering
9
DESIGN CONCEPT AND
PRINCIPLES
 They are as follows:
The design must implement all of the explicit
requirements contained in the analysis model.
The design must be readable, understandable,
guide for those who generate code and for those
who test and subsequently support the software
Design should provide a complete picture of
software, addressing the data , functional and
behavioral domain from an implementation
perspective
Software Engineering
10
DESIGN CONCEPT AND
PRINCIPLES
Technical criteria for a good design:
1.Should exhibit an architectural structure
that
Has been created using recognizable design
pattern
Composed of components that exhibit good
design characteristics
Can be implemented in an evolutionary
fashion, which will help the implementation and
testing
Software Engineering
11
DESIGN CONCEPT AND
PRINCIPLES
2.A design should be modular
3.A design should contain distinct
representation of data, architecture ,
interfaces, and components
4. A design should lead to data
structures that are appropriate for the
objects to be implemented.
Software Engineering
12
DESIGN CONCEPT AND
PRINCIPLES
 5. A design should lead to components that
exhibits independent functional characters
 6. A design should lead to interfaces that
reduce the complexity of connections
between modules and with external
environment
 7. A design should be derived using a
repeatable method that is driven by
information obtained during software
requirement analysis.
Software Engineering
13
DESIGN CONCEPT AND
PRINCIPLES
 Evolution of a software design:
 It is a continuous process spread over last
four decades
Early design work concentrated on development
of modular programs and methods, for refining
software structure in a top-down manner.
Procedural aspect of design definition evolved into
philosophy of structured programming
Software Engineering
14
DESIGN CONCEPT AND
PRINCIPLES
Evolution of software continued:
Later work proposed methods for the
translation of data flow / data structure into
the design definition
Newer design approach, proposed an
object oriented approach for the solution of
the problem
Today the emphasis in software design is
on the software architecture.
Software Engineering
15
DESIGN CONCEPT AND
PRINCIPLES
Design principles:
Design is both process and the model.
Design process is a sequence of steps,
enables the designers to describe all the
aspects of software to be built.
Design model begins by representing the
totality of the thing to be built and slowly
refines the thing to provide guidance for
constructing each detail
Software Engineering
16
DESIGN CONCEPT AND
PRINCIPLES
 A set of principles of software design are as
follows:
1. The design process should not suffer from
“tunnel vision”.
2.The design should be traceable to the analysis
model.
3.The design should not reinvent the wheel
4.The design should minimize the ‘intellectual
distance’ between the software and the problem
as it exits in the real world
Software Engineering
17
DESIGN CONCEPT AND
PRINCIPLES
5.The design should exhibit uniformity and
integration
 6.The design should be structured to
accommodate change
7.Design is not coding, coding is not design
8.The design should be assessed for quality as it
is created, not after fact
The design should be reviewed to minimize
conceptual (semantic ) errors
Software Engineering
18
DESIGN CONCEPT AND
PRINCIPLES
Terms
Abstraction: When we consider modular
solution of any problem, many level of
abstractions can be posed
Highest level of abstraction: solution is
stated in broad terms using languages of
problem environment.
At the lowest level more procedural
orientation is taken
Software Engineering
19
DESIGN CONCEPT AND
PRINCIPLES
 Refinement:
Is a top down design strategy, originally proposed
by ‘WIRTH’
A program is developed by successfully refined
level of procedural detail
 Modularity:
Software architecture describes Modularity as
software is divided into separately named and
addressable components, called modules , which
are integrated to satisfy the problem requirement
Software Engineering
20
DESIGN CONCEPT AND
PRINCIPLES
 How to define an effective module?
Answer lies in the methods used to define
modules within a system
Mayer defines some criteria, that enables us to
evaluate an effective module
Modular decomposability
Modular composability
Modular understandability
Modular protection
A system may be designed modularly even if its
implementation is monolithic
Software Engineering
21
DESIGN CONCEPT AND
PRINCIPLES
Control hierarchy:
Also called the program structure,
represents the organization of the
program components and implies a
hierarchy of control
Software Engineering
22
DESIGN CONCEPT AND
PRINCIPLES
 Structural partitioning:
If the architectural system is hierarchical, program
can be partitioned both horizontally as well as
vertically
 Data structure:
Is a representation of the logical relationship
among individual elements of data. Data structure
is as important as program structure to the
representation of software architecture
Software Engineering
23
DESIGN CONCEPT AND
PRICIPLES
 Software procedure:
Program structure defines control hierarchy
without regard to the sequence of processing and
decisions
 Information hiding:
Modules must be characterized by design
decisions that hides from all others.
Modules should be specified in such a manner
such that the information within a module is
inaccessible to other modules those have no need
to those information
Software Engineering
24
Download