0% found this document useful (0 votes)
47 views34 pages

CSE3001

The document discusses architectural design and provides examples. It defines architecture as a representation that enables analysis of a design's effectiveness and consideration of alternatives early. Key points include that architecture is important for communication, highlights impactful early decisions, and constitutes a small graspable model. The document also covers architectural descriptions, genres, styles like layered and object-oriented, patterns like concurrency and persistence, and the process of analyzing architectural design.

Uploaded by

Majety S Lskshmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views34 pages

CSE3001

The document discusses architectural design and provides examples. It defines architecture as a representation that enables analysis of a design's effectiveness and consideration of alternatives early. Key points include that architecture is important for communication, highlights impactful early decisions, and constitutes a small graspable model. The document also covers architectural descriptions, genres, styles like layered and object-oriented, patterns like concurrency and persistence, and the process of analyzing architectural design.

Uploaded by

Majety S Lskshmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Architectural Design

1
Why Architecture?
The architecture is not the operational software. Rather,
it is a representation that enables a software engineer
to:
(1) analyze the effectiveness of the design in meeting its
stated requirements,
(2) consider architectural alternatives at a stage when
making design changes is still relatively easy, and
(3) reduce the risks associated with the construction of
the software.

2
Why is Architecture Important?
 Representations of software architecture are an enabler
for communication between all parties (stakeholders)
interested in the development of a computer-based
system.
 The architecture highlights early design decisions that
will have a profound impact on all software engineering
work that follows and, as important, on the ultimate
success of the system as an operational entity.
 Architecture “constitutes a relatively small, intellectually
graspable mode of how the system is structured and
how its components work together” [BAS03].

3
Architectural Descriptions
 The IEEE Computer Society has proposed IEEE-Std-
1471-2000, Recommended Practice for Architectural
Description of Software-Intensive System, [IEE00]
 to establish a conceptual framework and vocabulary for use
during the design of software architecture,
 to provide detailed guidelines for representing an architectural
description, and
 to encourage sound architectural design practices.
 The IEEE Standard defines an architectural description (AD)
as a “a collection of products to document an architecture.”
 The description itself is represented using multiple views, where
each view is “a representation of a whole system from the
perspective of a related set of [stakeholder] concerns.”

4
Architectural Decision Template
Used to document each major architectural decision for later review by
stakeholders who want to understand the proposed architectural
description
 Design issue
 Resolution
 Category
 Assumptions
 Constraints
 Alternatives
 Argument
 Implications
 Related decisions
 Related concerns
 Work products
 Notes 5
Architectural Genres
 Genre implies a specific category within the
overall software domain.
 Within each category, you encounter a number
of subcategories.
 For example, within the genre of buildings, you would
encounter the following general styles: houses,
condos, apartment buildings, office buildings,
industrial building, warehouses, and so on.
 Within each general style, more specific styles might
apply. Each style would have a structure that can be
described using a set of predictable patterns.

6
Architectural Styles
Each style describes a system category that encompasses:
(1) a set of components (e.g., a database, computational
modules) that perform a function required by a system, (2) a
set of connectors that enable “communication, coordination
and cooperation” among components, (3) constraints that
define how components can be integrated to form the system,
and (4) semantic models that enable a designer to
understand the overall properties of a system by analyzing the
known properties of its constituent parts.
 Data-centered architectures
 Data flow architectures
 Call and return architectures
 Object-oriented architectures
 Layered architectures

7
Data-Centered Architecture

8
Data Flow Architecture

9
Call and Return Architecture

10
Layered Architecture

11
Architectural Patterns
 Concurrency—applications must handle multiple tasks in a
manner that simulates parallelism
 operating system process management pattern
 task scheduler pattern
 Persistence—Data persists if it survives past the execution of
the process that created it. Two patterns are common:
 a database management system pattern that applies the storage
and retrieval capability of a DBMS to the application architecture
 an application level persistence pattern that builds persistence
features into the application architecture
 Distribution— the manner in which systems or components
within systems communicate with one another in a distributed
environment
 A broker acts as a ‘middle-man’ between the client component and a
server component.

12
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

13
Architectural Context
Safehome Internet-based
Product system

control
panel target system: surveillance
Security Function function
uses
homeowner peers
uses

uses

sensors sensors

14
Archetypes
Cont roller

communicat es wit h

Node

Det ect or Indicat or

Figure 10.7 UML relat ionships f or Saf eHome securit y f unct ion archet ypes
(adapt ed f rom [ BOS00] ) 15
Component Structure

SafeHome
Execut ive

Funct ion
select ion

Ext ernal
Communicat ion
Management

Securit y Surveillance Home


management

GUI Int ernet


Int erface

Cont rol det ect or alarm


panel management processing
processing

16
Refined Component Structure
SafeHome
Executive

Ext ernal
Communicat ion
Management

Security

GUI Internet
Interface

Cont rol det ect or alarm


panel m anagem ent processing
processing

Key pad
processing scheduler phone
com m unicat ion

CP display
funct ions
alarm

sensor
sensor
sensor
sensor
sensor
sensor
sensor
sensor
sensor

17
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.

18
Architectural Complexity
 the overall complexity of a proposed
architecture is assessed by considering the
dependencies between components within the
architecture [Zha98]
 Sharing dependencies represent dependence
relationships among consumers who use the same
resource or producers who produce for the same
consumers.
 Flow dependencies represent dependence
relationships between producers and consumers of
resources.
 Constrained dependencies represent constraints on
the relative flow of control among a set of activities.
19
ADL
 Architectural description language (ADL) provides
a semantics and syntax for describing a software
architecture
 Provide the designer with the ability to:
 decompose architectural components
 compose individual components into larger architectural
blocks and
 represent interfaces (connection mechanisms) between
components.

20
An Architectural Design Method
customer requirements
"four bedrooms, three baths,
lots of glass ..."

architectural design

21
Deriving Program Architecture

Program
Architecture

22
Partitioning the Architecture
 “horizontal” and “vertical” partitioning are
required

23
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
24
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

25
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

26
Structured Design
 objective: to derive a program
architecture that is partitioned
 approach:
 a DFD is mapped into a program
architecture
 the PSPEC and STD are used to
indicate the content of each module
 notation: structure chart

27
Flow Characteristics

Transform flow

This edition of
SEPA does not
cover transaction
mapping. For a
detailed
discussion see the
SEPA website
Transaction
flow

28
General Mapping Approach
isolate incoming and outgoing flow
boundaries; for transaction flows, isolate
the transaction center

working from the boundary outward, map


DFD transforms into corresponding modules

add control modules as required

refine the resultant program structure


using effective modularity concepts

29
General Mapping Approach
 Isolate the transform center by specifying incoming
and outgoing flow boundaries
 Perform "first-level factoring.”
 The program architecture derived using this mapping
results in a top-down distribution of control.
 Factoring leads to a program structure in which top-level
components perform decision-making and low-level
components perform most input, computation, and output
work.
 Middle-level components perform some control and do
moderate amounts of work.
 Perform "second-level factoring."

30
Transform Mapping

b g h
a e f
d
c i
j
data flow model

x1 "Transform" mapping
x2 x3 x4

b c d e f g i

a h j

31
Factoring
direction of increasing
decision making typical "decision
making" modules

typical "worker" modules

32
First Level Factoring
main
program
controller

input processing output


controller controller controller

33
Second Level Mapping
main
D
C
control

B A
A
B
C

mapping from the D


flow boundary outward

34

You might also like