DESIGN PROCESS AND CONCEPTS
Download
Report
Transcript DESIGN PROCESS AND CONCEPTS
DESIGN PROCESS AND CONCEPTS
Design process
• s/w design is an iterative process through which
requirements are translated into a “blueprint” for
constructing the s/w.
• There are 3 charecteristics for evaluating a good design
1. The design must implement all the explicit requirements and it must
accommodate all the implicit requirements.
2. The design must be readable , understandable for those who generate code
and test the s/w.
3. The design must provide a complete picture of the software ,addressing the
data,functional and behavioral domains.
Cont..
Design Guidelines
• A design should exhibit an architectural structure
• A design should be modular
• A design should contain distinct representations of data, architecture,
interfaces, & components
• A design should lead to data structures that are appropriate for the
objects to be implemented
• A design should lead to components that exhibit independent
functional characteristics
• A design should lead to interfaces that reduce the complexity of
connections between modules and external environment
• A design should be derived using a repeatable method that is driven
by information obtained during SW requirement analysis.
• A design should be represented using a notation
Design Concepts
•
•
•
•
•
•
Abstraction
Refinement
Modularity
Architecture
Information Hiding
Functional Independence
1.Abstraction
• concentrate on the essential features and ignore
details that are not relevant(ie.,low level details)
• Procedural abstraction is a sequence of
instructions that has a specific & limited function
• Data abstraction is a collection of data that
describes a data object
• Control abstraction implies a program control
mechanisms without specify internal details
2.Refinement
• stepwise refinement is a top down strategy
• refinement is actually a process of
elaboration.
• develop hierarchy by decompose a procedural
abstraction in a stepwise fashion until
programming languages are reached
• abstraction & refinement are complementary
concepts
Abstraction
Refinement
3.Modularity
• system is decomposed into a number of modules
• software architecture and design patterns represent modularity
• 5 criteria to evaluate a design method with respect to its ability to define
effective modular system
i. Modular decomposability
- provides a systematic approach for decomposing the problem into sub
problems
ii. Modular composability
- enables existing design components to be assembled into a new system
iii. modular understandability
- module can be understood as a standalone unit (no need to refer other
modules)
iv. modular continuity
- small changes to the system requirements result in changes to individual
modules
v. modular protection
- unexpected condition occurs within a module & its effects are constrained
within that module.
4.Architecture
• is the structure or organization of program components (modules)
• 5 different types of models are used to represent the architectural
design :
i. structural models : represent architecture as an organized collection
of program components
ii. framework models : identify repeatable architectural design
framework that similar to the types of applications
iii. dynamic models : address the behavioral aspects of the program
architecture
iv. process models : focus on the design of the business or technical
process of a system
v. functional models : represent functional hierarchy of a system
5. Information Hiding
•
Modules should be specified & designed so that information
(procedure & data) contained within a module is inaccessible to other
modules that have no need for such information.
•
The use of information hiding for modular systems provides the
greatest benefits when modifications are required during testing and
later, during s/w maintenance.
6. Functional Independence
It is a direct outgrowth of modularity and the
concepts of abstraction and information hiding.
Cohesion-is a measure of the relative functional strength
of a module.
Coupling-is a measure of the relative interdependence
among modules.