Professional Documents
Culture Documents
Perangkat Lunak
Design: Architectural Design
14/04/2020 2
DESIGN
Design creates a representation or model of the
software.
A design model provides detail about architecture, data
structures, interfaces, and components that are
necessary to implement the system.
The goal of design is to create a model of software that
will implement all customer requirements correctly
and bring delight to those who use it. Therefore a
design have to exhibits:
◦ firmness (not have any bugs)
◦ commodity (suitable for the purposes that was intended)
◦ delight (pleasurable one)
14/04/2020 3
Analysis Model -> Design Model
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
14/04/2020 4
DESIGN MODEL
Data Design Elements
creates a model of data and information that is represented at a
high level of abstraction. At the application level, the
translation of a data model into a database is pivotal to
achieving the business objectives of a system.
Architectural Design Elements
depicted as a set of interconnected subsystems, which each
subsystem may have its own architecture. Architectural design
is analogous to the floor plan of a house that depicts the overall
layout of the rooms; their size, shape, and relationship to one
another.
14/04/2020 5
DESIGN MODEL
Interface Design Elements
depict information flows into and out of a system and how it is
communicated among the components defined as part of the
architecture. The interface design is analogous to a set of
detailed drawings for the doors, windows, and external utilities
of a house.
Component-Level Design Elements
describes the internal detail of each software component. It’s
equivalent to a set of detailed drawings for each room in a
house that depict wiring and plumbing within each room, the
location of electrical receptacles and wall switches, and other
detail associated with a room.
14/04/2020 6
ARCHITECTURAL DESIGN
7
ARCHITECTURAL DESIGN
Architectural design represents the structure of data
and program components that are required to build a
computer-based system.
concerned with understanding how a software system
should be organized and designing the overall structure
of that system.
Block diagrams are a good way of supporting
communications between the people involved in the
software design process.
14/04/2020 8
SOFTWARE ARCHITECTURE
Software architecture is important because it affects
the performance, robustness, distributability, and
maintainability of a system [Bosch 2000].
Architectures are often modeled informally using
simple block diagrams.
◦ Each box in the diagram represents a component.
◦ Boxes within boxes indicate that the component has been
decomposed to subcomponents.
◦ Arrows mean that data and or control signals are passed from
component to component in the direction of the arrows.
9
14/04/2020
The architecture of a packing robot control system
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
12
Data Flow Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
13
Call and Return Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
14
Layered Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
15
ARCHITECTURAL DESIGN
The software must be placed into context
◦ the design should define the external entities (other systems,
devices, people) that the software interacts with and the
nature of the interaction
A set of architectural archetypes should be identified
◦ An archetype is an abstraction (similar to a class) that
represents one element of system behavior
The designer specifies the structure of the system by
defining and refining software components that
implement each archetype
14/04/2020 16
Architectural Context Diagram
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
17
Archetypes
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
18
Component Structure
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
19
Refined Component Structure
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
20
ANALYZING ARCHITECTURAL DESIGN
1. Collect scenarios.
2. Elicit requirements, constraints, and environment
description.
3. Describe the architectural styles/patterns that have been
chosen to address the scenarios and requirements:
◦ module view
◦ process view
◦ data flow view
4. Evaluate quality attributes by considered each attribute in
isolation.
5. Identify the sensitivity of quality attributes to various
architectural attributes for a specific architectural style.
6. Critique candidate architectures (developed in step 3)
using the sensitivity analysis conducted in step 5.
14/04/2020 21
An Architectural Design Method
customer requirements
"four bedrooms, three baths,
lots of glass ..."
architectural design
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
22
Deriving Program Architecture
Program
Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8 (McGraw-Hill 2015).
23
Partitioning the Architecture
“horizontal” and “vertical” partitioning are
required
14/04/2020 24
Horizontal Partitioning
define separate branches of the module
hierarchy for each major function
use control modules to coordinate
communication between functions
function 1 function 3
function 2
25
Vertical Partitioning: Factoring
design so that decision making and work
are stratified
decision making modules should reside at
the top of the architecture
decision-makers
workers
26
WHY PARTITIONED ARCHITECTURE?
14/04/2020 27
REFERENCE
14/04/2020 ASD 28
TERIMA KASIH