are here: Freetutes.com
Analysis and Design
System/Software Design Phase in SDLC
The purpose of the design phase is to plan a solution of the problem specified
by the requirement document. This phase is the first step in moving from problem
domain to the solution domain. The design of a system is perhaps the most critical
factor affecting the quality of the software, and has a major impact on the later
phases, particularly testing and maintenance. The output of this phase is the
design document. This document is similar to a blue print or plan for the solution,
and is used later during implementation, testing and maintenance.
The design activity is often divided into two separate phase-system design
and detailed design. System design, which is sometimes also called top-level design,
aims to identify the modules that should be in the system, the specifications
of these modules, and how they interact with each other to produce the desired
results. At the end of system design all the major data structures, file formats,
output formats, as well as the major modules in the system and their specifications
During detailed design the internal logic of each of the modules specified
in system design is decided. During this phase further details of the data structures
and algorithmic design of each of the modules is specified. The logic of a module
is usually specified in a high-level design description language, which is independent
of the target language in which the software will eventually be implemented. In
system design the focus is on identifying the modules, whereas during detailed
design the focus is on designing the logic for each of the modules. In other words,
in system design the attention is on what components are needed, while in detailed
design how the components can be implemented in software is the issue.
During the design phase, often two separate documents are produced. One for
the system design and one for the detailed design. Together, these documents completely
specify the design of the system. That is they specify the different modules in
the system and internal logic of each of the modules.
A design methodology is a systematic approach to creating a design by application
of set of techniques and guidelines. Most methodologies focus on system design.
The two basic principles used in any design methodology are problem partitioning
and abstraction. A large system cannot be handled as a whole, and so for design
it is partitioned into smaller systems. Abstraction is a concept related to problem
partitioning. When partitioning is used during design, the design activity focuses
on one part of the system at a time. Since the part being designed interacts with
other parts of the system, a clear understanding of the interaction is essential
for properly designing the part. For this, abstraction is used. An abstraction
of a system or a part defines the overall behavior of the system at an abstract
level without giving the internal details.
While working with the part of a system, a designer needs to understand only
the abstractions of the other parts with which the part being designed interacts.
The use of abstraction allows the designer to practice the "divide and conquer"
technique effectively by focusing one part at a time, without worrying about the
details of other parts.
Like every other phase, the design phase ends with verification of the design.
If the design is not specified in some executable language, the verification has
to be done by evaluating the design documents. One way of doing this is thorough
reviews. Typically, at least two design reviews are held-one for the system design
and one for the detailed and one for the detailed design.
Page | Contents
| Next Page >>