Unit 03
Unit 03
Unit-3
Software Design concepts
& Architectural Design
What is Design?
A meaningful representation of something to be built
It's a process by which requirements are translated into blueprint for constructing a
software
Blueprint gives us the holistic view (entire view) of a software
Design Software
SR Process Design
S
Problem Solution
Domain Domain
Software Design Process? Software design is the most creative part of the development process
Flow-oriented elements
• Data flow diagrams
• Control-flow diagrams Procedura
• Processing narratives l Procedural description of Software components
Behavioral elements Design
• State diagrams Interface Human computer
interaction
• Sequence diagrams Design
Architectural Relationship among structural elements
Class-based elements Design
• Class diagrams Data/Class Data
• Analysis packages Structure
Design
• CRC models
• Collabortion diagrams
Design Models Cont.
Data Design Architectural Interface Design Procedural
Design Design
It transforms
structural
It transforms class It defines the It defines how elements of
models into design relationship software software into
class realization between major communicates with procedural
and prepares data structural systems & with description of
structure (data elements of the humans. An software
design) required to software interface implies components
implement the flow of information
software. & behavior.
Gentle overview of – F U R P S
“Quality is not an act, it is a habit.”— Aristotle
Quality attributes of software design The FURPS quality
attributes
F Functionality U Usability
assessed by feature set and capabilities of the assessed by considering human factors,
program, generality of the functions & overall aesthetics, consistency &
security of overall system documentations
R Reliability P Performance
assessed by measuring frequency & severity measured by processing speed, response
of failures, accuracy of outputs, time, resource consumption, throughput
mean-time-of-failure (MTTF), ability to and efficiency
recover from errors
S Supportabilit
y to extend program, adaptability, serviceability, testability, compatibility
Ability
Design Concepts
The beginning of wisdom for a software engineer is to recognize the difference between
getting program to work and getting it right
Abstraction
At the highest level of abstraction, a solution is stated in broad terms using the language of
the problem environment. At lower levels of abstraction, a more detailed description of
the solution is provided. Finally, at the lowest level of abstraction, the solution is stated in
a manner that can be directly implemented.
Creation of procedural and data abstractions are done.
A procedural abstraction refers to a sequence of instructions that have a specific and
limited function. A data abstraction is a named collection of data that describes a data
object.
Design Principles
Design process should not suffer from “tunnel vision” Design should be structured to degrade
gently, even when abnormal data, events,
Design should be traceable to the analysis model or operating conditions are encountered
Design should not reinvent the wheel Design is not coding, coding is not design
Design should “minimize the intellectual distance”
Design should be assessed for quality as it
between the software and the real world problem
is being created, not after the fact
Design should exhibit (present) uniformity and
integration Design should be reviewed to minimize
Design should be structured to accommodate change conceptual (semantic) errors
Reinvent the
Tunnel
Vision
Wheel
Coding Design
Design Process Rough View
Informal Design Informal Design More formal Finished Design
Outline Design
Design Process
Requirements
Specification Design Activities
Architectural Abstract Interface Component Data Structure Algorith
Design Specification Design Design Design m
Design
Design Product
Architectural Design
Software Architecture & Design
Large systems are decomposed into subsystems
Sub-systems provide related services
Initial design process includes
Identifying sub-systems
Establishing a framework for sub-system control and communication
It
Architectural style that theconsiders
system will take
Structure and properties of the components that constitute the
system
Interrelationships that occur among all architectural components of a system