Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Design: Goals of Design Purpose of Design

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 10

Software 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

(Class-based model, Flow-oriented model


Behavioral model)
Interface Design

(Scenario-based model, Flow-oriented model


Behavioral model)
Architectural Design

(Class-based model, Flow-oriented model)


Data/Class Design

(Class-based model, Behavioral model)


Task Set for Software Design
1) Examine the information domain model and
design appropriate data structures for data
objects and their attributes
2) Using the analysis model, select an architectural
style (and design patterns) that are appropriate
for the software
3) Partition the analysis model into design
subsystems and allocate these subsystems
within the architecture
a) Design the subsystem interfaces
b) Allocate analysis classes or functions to each
subsystem
4) Create a set of design classes or components
c) Translate each analysis class description into a design
class
d) Check each design class against design criteria;
consider inheritance issues
a) Define methods associated with each design class
b) Evaluate and select design patterns for a design class
or subsystem
5) Design any interface required with external
systems or devices
6) Design the user interface
7) Conduct component-level design
a) Specify all algorithms at a relatively low level of
abstraction
b) Refine the interface of each component
c) Define component-level data structures
d) Review each component and correct all errors
uncovered
8) Develop a deployment model
) Show a physical layout of the system,

You might also like