You are on page 1of 29

Dasar Rekayasa

Perangkat Lunak
Design: Architectural Design

Institut Teknologi Del


Jl. Sisingamangaraja
Sitoluama, Laguboti 22381
Toba – SUMUT
http://www.del.ac.id
DESIGN CONCEPT

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

14/04/2020 Sommerville, 2016 10


ARCHITECTURAL STYLES
 Architectural patterns were proposed in the 1990s
under the name “architectural styles”.
◦ a way of presenting, sharing, and reusing knowledge about
software systems.
 Each style describes a system category that
encompasses:
◦ a set of components (e.g., a database, computational modules) that
perform a function required by a system.
◦ a set of connectors that enable “communication, coordination and
cooperation” among components.
◦ constraints that define how components can be integrated to form
the system.
◦ semantic models that enable a designer to understand the overall
properties of a system.
14/04/2020 11
Data-Centered Architecture

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?

 Results in software that is easier to test


 Leads to software that is easier to maintain
 Results in propagation of fewer side effects
 Results in software that is easier to extend

14/04/2020 27
REFERENCE

1. Pressman, Roger S. Software


Engineering: A Practitioner’s Approach.
8th Edition. Mc. Graw Hill International
USA. 2015.
2. Sommerville, Ian. Software Engineering.
10th Edition. Pearson Education. 2016

14/04/2020 ASD 28
TERIMA KASIH

You might also like