UNIT III Design Concepts[1]
UNIT III Design Concepts[1]
Chapter-I
❖Software Architecture
❖Data design
❖Architectural Design
SILPA C 1
THE DESIGN PROCESS
2
Design Concepts
SILPA C 3
Cont..
Design Concepts
1. Abstractions
2. Architecture
3. Patterns
4. Separation of Concerns
5. Modularity
6. Information Hiding
7. Functional Independence
8. Refinement
9. Re-factoring
10. Aspects
11. Design Classes
4
Design Concepts Cont..
ABSTRACTION
• Procedural abstraction
limited function
✓ An example of a procedural abstraction would be the word open
for a door. Open implies a long sequence of procedural steps (e.g.,
walk to the door, reach out and grasp knob, turn knob and pull door,
5
step away from moving door, etc.)
Cont..
Data abstraction
-- Named collection of data that describe a data
object
✓ The data abstraction for door would encompass a set of
attributes that describe the door (e.g., door type, swing
direction, opening mechanism, weight, dimensions).
6
Design Concepts Cont..
ARCHITECTURE
7
Cont..
Architecture Models
(a) Structural Models
-- An organized collection of program components
(b) Framework Models
-- Represents the design in more abstract way
(c) Dynamic Models
-- Represents the behavioral aspects indicating changes as
a function of external events
(d) Process Models
-- Focus on the design of the business or technical process
(e) Functional models
--can be used to represent the functional hierarchy of a
system.
8
Design Concepts Cont..
PATTERNS
“Each pattern describes a problem which occurs over and over
again in our environment, and then describes the core of the
solution to that problem, in such a way that you can use this
solution a million times over, without ever doing it the same way
twice.” --Christopher Alexander
Separation of Concerns
10
Design Concepts Cont..
MODULARITY
INFORMATION HIDING
13
Design Concepts Cont..
FUNCTIONAL INDEPENDENCE
Refinement
• Process of elaboration from high level abstraction to the
lowest level abstraction.
• High level abstraction begins with a statement of functions.
• Refinement causes the designer to elaborate providing more
and more details at successive level of abstractions.
• Abstraction and refinement are complementary concepts.
Refactoring
• Organization technique that simplifies the design of a
component without changing its function or behavior.
• Examines for redundancy, unused design elements and
inefficient or unnecessary algorithms.
15
Design Concepts Cont..
Aspects
16
DESIGN CLASSES Cont..
❖ Software Architecture
❖ Architectural Styles
SILPA C 18
Cont..
What Is Architecture?
SILPA C 19
Cont..
SILPA C 20
Cont..
SILPA C 21
Architectural styles
SILPA C 22
Cont..
1. a set of components
Data-centered architectures
SILPA C 24
Cont..
Data-flow architectures
SILPA C 26
Cont..
SILPA C 27
Cont..
Call and return architectures
SILPA C 28
Cont..
SILPA C 29
Cont..
Object-oriented architectures
SILPA C 30
Cont..
Layered architectures
SILPA C 31
Cont..