Laoag City, Ilocos Norte
Software Design Process
The design phase of software development deals with transforming the
customer requirements as described in the SRS documents into a form
implementable using a programming language.
The software design process can be divided into the following three levels of
phases of design:
1. Interface Design
2. Architectural Design
3. Detailed Design
CpE 311L/L SOFTWARE DESIGN
Prepared by: Engr. Mariscel Lived De Guzman
Page 1 of 5
Laoag City, Ilocos Norte
Interface Design
Interface design is the specification of the interaction between a system and
its environment. This phase proceeds at a high level of abstraction with
respect to the inner workings of the system i.e, during interface design, the
internal of the systems are completely ignored and the system is treated as a
black box. Attention is focussed on the dialogue between the target system
and the users, devices, and other systems with which it interacts. The design
problem statement produced during the problem analysis step should identify
the people, other systems, and devices which are collectively called agents.
Interface design should include the following details:
CpE 311L/L SOFTWARE DESIGN
Prepared by: Engr. Mariscel Lived De Guzman
Page 2 of 5
Laoag City, Ilocos Norte
• Precise description of events in the environment, or messages from
agents to which the system must respond.
• Precise description of the events or messages that the system must
produce.
• Specification on the data, and the formats of the data coming into and
going out of the system.
• Specification of the ordering and timing relationships between incoming
events or messages, and outgoing events or outputs.
Architectural Design
Architectural design is the specification of the major components of a system,
their responsibilities, properties, interfaces, and the relationships and
interactions between them. In architectural design, the overall structure of
the system is chosen, but the internal details of major components are
ignored.
Issues in architectural design includes:
• Gross decomposition of the systems into major components.
• Allocation of functional responsibilities to components.
• Component Interfaces
• Component scaling and performance properties, resource consumption
properties, reliability properties, and so forth.
• Communication and interaction between components.
The architectural design adds important details ignored during the interface
design. Design of the internals of the major components is ignored until the
last phase of the design.
CpE 311L/L SOFTWARE DESIGN
Prepared by: Engr. Mariscel Lived De Guzman
Page 3 of 5
Laoag City, Ilocos Norte
Detailed Design:
Design is the specification of the internal elements of all major system
components, their properties, relationships, processing, and often their
algorithms and the data structures.
The detailed design may include:
• Decomposition of major system components into program units.
• Allocation of functional responsibilities to units.
• User interfaces
• Unit states and state changes
• Data and control interaction between units
• Data packaging and implementation, including issues of scope and
visibility of program elements
• Algorithms and data structures
Design Patterns
A software designer or architect may identify a design problem which has been
visited and perhaps even solved by others in the past. A template or pattern
describing a solution to a common problem is known as a design pattern. The
reuse of such patterns can help speed up the software development process.
Technique
The difficulty of using the term "design" in relation to software is that in some
senses, the source code of a program is the design for the program that it
produces. To the extent that this is true, "software design" refers to the design
of the design. Edsger W. Dijkstra referred to this layering of semantic levels
as the "radical novelty" of computer programming, and Donald Knuth used
his experience writing TeX to describe the futility of attempting to design a
program prior to implementing it:
CpE 311L/L SOFTWARE DESIGN
Prepared by: Engr. Mariscel Lived De Guzman
Page 4 of 5
Laoag City, Ilocos Norte
TEX would have been a complete failure if I had merely
specified it and not participated fully in its initial
implementation. The process of implementation constantly
led me to unanticipated questions and to new insights about
how the original specifications could be improved.
CpE 311L/L SOFTWARE DESIGN
Prepared by: Engr. Mariscel Lived De Guzman
Page 5 of 5