Software Design: Goals of Design Purpose of Design
Software Design: Goals of Design Purpose of Design
Software Design: Goals of Design Purpose of Design
Goals of Design
Purpose of Design
Software Design
Software design is a process to transform
user requirements into some suitable
form, which helps the programmer in
software coding and implementation.
Goals of Design
produce a model or representation that exhibits
firmness, commodity, and delight.
To accomplish this, must practice diversification and
then convergence.
diversification is the acquisition of a repertoire of
alternatives, the raw material of design:
components, component solutions, and knowledge,
all contained in catalogs, textbooks, and the mind.
converge on one particular configuration of
components, and thus the creation of the final
product
Purpose of Design
customer requirements, business needs, and
technical considerations all come together in
the formulation of a product or system
provides detail about the software data
structures, architecture, interfaces, and
components
for quality and be improved before code is
generated and tests are conducted
Does the design contain errors,
inconsistencies, or omissions?
Are there better design alternatives?
Can the design be implemented within the
constraints, schedule, and cost that have
been established?
Purpose of Design
iterative process through which
requirements are translated into a
blueprint for constructing the software
Design begins at a high level of abstraction
that can be directly traced back to the
data, functional, and behavioral
requirements
As design iteration occurs, subsequent
refinement leads to design representations
at much lower levels of abstraction
Analysis model to design
model
Each element of the analysis model provides
information that is necessary to create the
four design models
The data/class design transforms design classes
along with the data structures required to
implement the software
The architectural design defines the relationship
between major structural elements of the software;
architectural styles and design patterns help
achieve the requirements defined for the system
The interface design describes how the software
communicates with systems that interoperate with
it and with humans that use it
The component-level design transforms structural
elements of the software architecture into a
procedural description of software components
Analysis model to design
model
Component-level Design