Software Design Notes
Software Design Notes
Study Notes
SDLC
SOFTWARE DESIGN
• Software design is a process to transform user
requirements into some suitable form, which helps the
programmer in software coding and implementation.
• For assessing user requirements, an SRS (Software
Requirement Specification) document is created whereas for
coding and implementation, there is a need of more specific
and detailed requirements in software terms.
• The output of this process can directly be used into
implementation in programming languages.
• Software design is the first step in SDLC (Software Design Life
Cycle), which moves the concentration from problem domain
to solution domain. It tries to specify how to fulfill the
requirements mentioned in SRS.
Software Design Levels
Software Design Levels
• Architectural Design - The architectural design is the highest
abstract version of the system. It identifies the software as a system
with many components interacting with each other. At this level,
the designers get the idea of proposed solution domain.
• High-level Design- The high-level design breaks the ‘single entity-
multiple component’ concept of architectural design into less-
abstracted view of sub-systems and modules and depicts their
interaction with each other. High-level design focuses on how the
system along with all of its components can be implemented in
forms of modules. It recognizes modular structure of each sub-
system and their relation and interaction among each other.
• Detailed Design- It defines logical structure of each module and
their interfaces to communicate with other modules. Detailed
design deals with the implementation part of what is seen as a
system and its sub-systems in the previous two designs. It is more
detailed towards modules and their implementations.
Architectural Design
• The software needs the architectural design to represents the design of
software.
• IEEE defines architectural design as “the process of defining a collection of
hardware and software components and their interfaces to establish the
framework for the development of a computer system.” The software that
is built for computer-based systems can exhibit one of these many
architectural styles.