Creating An Architectural Design
Creating An Architectural Design
Creating An Architectural Design
Chapter – 10
Introduction
• Architectural design represents
• Structure of the data + program components required to
build a computer-based system.
• Begins with data design and proceeds to the derivation of
one or more representations of the architectural structure
of the system.
• The resulting architectural model:
- Encompasses both the data architecture +program
structure.
• Alternative architectural patterns are analyzed
• to determine the structure - best suited to the customer's
requirements.
• Architectural model is subjected to software quality
review
What is software Architecture
• Contains various components, with visible properties of
those components and relationships among them.
(Various components are integrated to form a cohesive whole)
• Architectural level – details of algorithm not given
• Overall shape of the physical structure
Used by
Target System
Peers
Actors Used Depends on
Subordinate systems
Architectural Design
Control
Panel Target System Surveillance
Security function
Home Function
owners
Uses Uses
Actors Uses
Sensors Sensors
• Defining Archetypes
• An archetype is a class or pattern that represents a core
abstraction that is critical to the design of an architecture
for the target system.
• The target system architecture is composed of these
archetypes, which represent stable elements of the
architecture but may be instantiated in many different
ways.
• The following archetypes are
• Node – represents a collection of input and output elements
• Detector – an abstraction that encompasses all information into
the target system
• Indicator – an abstraction that represents all mechanisms for
indication
• Controller – an abstraction that depicts the mechanism that
allows the arming & disarming of a node.
Assessing alternative architectural designs
• Architectural style depends on - requirements.
• Combine different styles, derive - a new design that
best fits the requirements.
• Number of alternatives which fit the requirements.
• Assess different alternatives by asking questions
regarding data and controls.
• Preliminary idea regarding - quality of design.
Assessing alternative architectural designs
Architecture Trade-off Analysis Method (ATAM) :
Developed by Software Engineering Institute (SEI)
Iterative process
Perform required activities in sequence
1. Collect scenarios
- Use Cases are developed to represent the system from the
user’s point of view.
2. Elicit requirements, constraints, and environmental
description
- Information required for requirement engineering
3. Describe architectural styles/patterns chosen to
address scenarios and requirements
- (module view, process view, data flow view)
Assessing alternative architectural designs
4. Evaluate quality attributes independently
- e.g., reliability, performance, security, maintainability,
flexibility, testability, portability, reusability,
interoperability)
4. Identify sensitivity points for architecture
- any attributes significantly affected by variation in the
architecture
4. Critique candidate architectures (from step 3)
using the sensitivity analysis (conducted in step 5)
Assessing alternative architectural designs
• Dependencies between components within the architecture
• Dependencies – information /control flow between systems
• Architectural Complexity (similar to coupling)
• Sharing dependencies:
- dependence relationships among consumers
- who use the same resource or producers
- who produce for the same consumers
• Flow dependencies:
• Relationships between producers & consumers of
resources
• Constrained dependencies :
• The relative flow among a set of components
Assessing alternative architectural designs
Architectural Description Language (ADL)
• Provides syntax and semantics for describing
software architecture
• Provides designers
• with ability to decompose components
• Compose individual components into large components
• Combines components
• define interfaces between components (connection)
Mapping Requirements to Software Architecture
Transition from DFD to program structure is as :
1. The type of information flow is established.
2. Flow boundaries are indicated.
3. DFD is mapped into program structure.
4. Control hierarchy is defined.
5. Resultant structure refined using design measures
6. Architectural description is refined and elaborated
Mapping Requirements to Software Architecture
The whole method is called information flow.
There are two types of flows:
1. Transform flow
2. Transaction flow
• Transform flow - data flow is sequential & flows
in small number of straight line paths;
• Transaction flow - a single data item triggers
information flow along one of many paths
Mapping Requirements to Software Architecture
Transform Flow:
• Information enters and exits the software in an “external
form”
( i.e. data typed on a keyboard, voice commands to voice
recognition systems, tones on a telephone line)
• This form of data cannot be understood by the software
• Externalized data converted into an internal form for
processing.
(External data Internal data)
• Data enters the software converted into internal form,
processed (transformed) and converted into external form to
interact with the outside world.
(Data enters s/w internal form processed external)
Mapping Requirements to Software Architecture
• Two paths for conversion of data:
• Incoming path (path that does conversion of incoming
data is called incoming flow )
• Outgoing path (path that converts data for sending out is
called outgoing flow
• Central part:
• does actual processing (transformation) called transform
center.
• Overall flow of data in a sequential manner
• Follows one, or only few, “straight line” paths.
Mapping Requirements to Software Architecture
Transaction Flow:
• Flows a single data item, called a transaction, but
• Triggers data flow along one of many paths i.e. there is
branching.
• Data moving along an incoming path that converts external
world information into a transaction.
• Transaction evaluated based on its value, flow along one of
many action paths is initiated.
• Information flow - many action paths emanate called
transaction center.
Eg: Receives a user command - control panel.
Depending on command there are: three different paths
flow will continue.
Mapping Requirements to Software Architecture
• DFD for large systems – transform + transaction
• Within a transaction flow we have one action path which
would have transform flow.
• Eg, Process password action path in the user interaction
subsystem shows transform flow characteristics.
Transaction Flow
Mapping Requirements to Software Architecture
Transform mapping
• A set of design steps allows DFD with transform flow
characteristics to be mapped into a specific architectural
style.
Design steps:
1. Review the fundamental system model
- Data flow into and out of the function
- i.e. consider the level 0 and level 1 DFD.
2. Review and refine DFD for the software:
- Information from analysis model refined
- i.e. refine DFD to get level 2 and 3 DFD.
- At level 3 of DFD:
- each transform exhibits high level of cohesion
- process implied by a transform performs a single function
that can be implemented as a component.
Mapping Requirements to Software Architecture
3. Determine whether the DFD has transform or
transaction flow characteristics:
- Incoming data: only one
- outgoing : appears to be three
(i) alarm condition
(ii) second one is for display (Sensor, telephone)
- so action path is only one.
- Hence it can be considered as transform flow.
4. Isolate the transform center by specifying
incoming and outgoing boundaries:
Mapping Requirements to Software Architecture
5. Perform “first level factoring”:
- We know that there is transform flow
- We divide structure in 3 different controls
(i) incoming path
(ii) transform
(iii) outgoing path.
- One main controller called monitor sensors
executive which controls and supervises three
controllers
(sensor input controller, alarm conditions controller
and alarm output controller)
Mapping Requirements to Software Architecture
Monitor
sensors
Second level factoring
executive
For monitor sensors
Monitor
Sensor Alarm Alarm sensors
input Conditions Output executive
controller controller controller
Generate
Generate
Pulses
display
Mapping Requirements to Software Architecture
6. Perform second level factoring:
- Assign one program component to each bubble
- Decide the modules which are going to do actual
work.
- Using controls decided in the first level of
factoring
- Worker modules decided in the second level of
factoring
- Decide the complete program structure.
- This is the first iteration architecture.
Mapping Requirements to Software Architecture
7. Refine the first iteration architecture using design
heuristics for improved software quality:
• Refinement modules are to produce
• sensible factoring
• good cohesion
• minimal coupling
• a structure that can be implemented without difficulty
• tested without confusion
• maintained
• Sensor input controller and Alarm conditions controller
are removed and Format display and generate display are
combined to give Produce display.