These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 1
Chapter 9
 Architectural Design
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman
Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman
For non-profit educational use only
May be reproduced ONLY for student use at the university level when used in conjunction
with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is
prohibited without the express written permission of the author.
All copyright information MUST appear if these slides are posted on a website for student
use.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2
Why Architecture?
The architecture is not the operational software. Rather,The architecture is not the operational software. Rather,
it is a representation that enables a software engineerit is a representation that enables a software engineer
to:to:
(1)(1) analyze the effectiveness of the design in meeting itsin meeting its
stated requirements,stated requirements,
(2)(2) consider architectural alternatives at a stage whenat a stage when
making design changes is still relatively easy, andmaking design changes is still relatively easy, and
(3)(3) reduce the risks associated with the construction ofassociated with the construction of
the software.the software.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 3
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].
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 4
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.”
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6
Architectural Styles
 Data-centered architectures
 Data flow architectures
 Call and return architectures
 Object-oriented architectures
 Layered architectures
Each style describes a system category that encompasses: (1) aEach style describes a system category that encompasses: (1) a
set of components (e.g., a database, computational modules)(e.g., a database, computational modules)
that perform a function required by a system, (2) athat perform a function required by a system, (2) a set of
connectors that enable “communication, coordination andthat enable “communication, coordination and
cooperation” among components, (3)cooperation” among components, (3) constraints that definethat define
how components can be integrated to form the system, andhow components can be integrated to form the system, and
(4)(4) semantic models that enable a designer to understand thethat enable a designer to understand the
overall properties of a system by analyzing the knownoverall properties of a system by analyzing the known
properties of its constituent parts.properties of its constituent parts.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 7
Data-Centered Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 8
Data Flow Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 9
Call and Return Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 10
Layered Architecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13
Architectural Context
target system:
SecurityFunction
uses
uses peershomeowner
Safehome
Product
Internet-based
system
surveillance
function
sensors
control
panel
sensors
uses
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 14
Archetypes
Figure 10.7 UML relationships for SafeHomesecurity function archetypes
(adapted from [BOS00])
Controller
Node
communicates with
Detector Indicator
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 15
Component Structure
SafeHome
Executive
Ext ernal
Communicat ion
Management
GUI Internet
Interface
Funct ion
selection
Security Surveillance Home
management
Control
panel
processing
detector
management
alarm
processing
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 16
Refined Component Structure
sensorsensor
sensor
sensor
sensor
sensorsensor
sensor
External
Communication
Management
GUI Internet
Interface
Security
Cont rol
panel
processing
det ect or
managem ent
alarm
processing
Keypad
processing
CP display
funct ions
scheduler
sensor
sensor
sensor
sensor
phone
com m unicat ion
alarm
SafeHome
Executive
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 17
Analyzing Architectural Design
1. Collect scenarios.1. Collect scenarios.
2. Elicit requirements, constraints, and environment description.2. Elicit requirements, constraints, and environment description.
3. Describe the architectural styles/patterns that have been3. Describe the architectural styles/patterns that have been
chosen to address the scenarios and requirements:chosen to address the scenarios and requirements:
•• module viewmodule view
•• process viewprocess view
•• data flow viewdata flow view
4. Evaluate quality attributes by considered each attribute in4. Evaluate quality attributes by considered each attribute in
isolation.isolation.
5. Identify the sensitivity of quality attributes to various5. Identify the sensitivity of quality attributes to various
architectural attributes for a specific architectural style.architectural attributes for a specific architectural style.
6. Critique candidate architectures (developed in step 3) using the6. Critique candidate architectures (developed in step 3) using the
sensitivity analysis conducted in step 5.sensitivity analysis conducted in step 5.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 20
An Architectural Design Method
"four bedrooms, three baths,
lots of glass ..."
customer requirements
architectural design
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 21
Deriving Program Architecture
ProgramProgram
ArchitectureArchitecture
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 22
Partitioning the Architecture
 “horizontal” and “vertical” partitioning are
required
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 23
Horizontal Partitioning
 define separate branches of the module
hierarchy for each major function
 use control modules to coordinate
communication between functions
function 1function 1 function 3function 3
function 2function 2
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 24
Vertical Partitioning: Factoring
 design so that decision making and work
are stratified
 decision making modules should reside at
the top of the architecture
workers
decision-makers
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 27
Flow Characteristics
Transform flow
Transaction
flow
This edition of
SEPA does not
cover transaction
mapping. For a
detailed
discussion see the
SEPA website
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 28
General Mapping Approach
isolate incoming and outgoing flowisolate incoming and outgoing flow
boundaries; for transaction flows, isolateboundaries; for transaction flows, isolate
the transaction centerthe transaction center
working from the boundary outward, mapworking from the boundary outward, map
DFD transforms into corresponding modulesDFD transforms into corresponding modules
add control modules as requiredadd control modules as required
refine the resultant program structurerefine the resultant program structure
using effective modularity conceptsusing effective modularity concepts
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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."
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 30
Transform Mapping
data flow model
"Transform" mapping
a
b
c
d e f
g h
i
j
x1
x2 x3 x4
b c
a
d e f g i
h j
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 31
Factoring
typical "worker" modules
typical "decision
making" modules
direction of increasing
decision making
Architectural 
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 32
First Level Factoring
main
program
controller
input
controller
processing
controller
output
controller
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 33
Second Level Mapping
D
C
B
A
A
C
B
Dmapping from the
flow boundary outward
main
control

More Related Content

PPT
Unit iii(part c - user interface design)
PPT
Unit iii(part d - component level design)
PPT
Chapter 08
PPT
5- Requirement.ppt
PPT
Software Testing Strategies
PPTX
Chapter 5 Agile Software development
PPT
SE CHAPTER 2 PROCESS MODELS
PPT
Chapter_04.ppt
Unit iii(part c - user interface design)
Unit iii(part d - component level design)
Chapter 08
5- Requirement.ppt
Software Testing Strategies
Chapter 5 Agile Software development
SE CHAPTER 2 PROCESS MODELS
Chapter_04.ppt

What's hot (20)

PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
PPTX
Ch7-Software Engineering 9
PPT
Chapter 03
PPTX
Requirements modeling
PPT
3.2 The design model & Architectural design.ppt
PPT
Pressman ch-3-prescriptive-process-models
PPT
Slides chapter 3
PPT
Slides chapter 2
PPTX
SMD Unit ii
PPT
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
PPTX
Ch23-Software Engineering 9
PPTX
Presentation on uml
PPTX
Uml structural diagrams
PPTX
Software design
PPT
Project Management Concepts
PDF
Unit 4- Software Engineering System Model Notes
PDF
Software Engineering - Ch11
PDF
Cause effect graphing technique
PPT
Chapter 13 software testing strategies
PDF
SE_Lec 05_System Modelling and Context Model
UNIT-4design-concepts-se-pressman-ppt.PPT
Ch7-Software Engineering 9
Chapter 03
Requirements modeling
3.2 The design model & Architectural design.ppt
Pressman ch-3-prescriptive-process-models
Slides chapter 3
Slides chapter 2
SMD Unit ii
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
Ch23-Software Engineering 9
Presentation on uml
Uml structural diagrams
Software design
Project Management Concepts
Unit 4- Software Engineering System Model Notes
Software Engineering - Ch11
Cause effect graphing technique
Chapter 13 software testing strategies
SE_Lec 05_System Modelling and Context Model
Ad

Similar to Unit iii(part b - architectural design) (20)

PPT
Fundamentals of Software Engineering
PPT
Software Engineering
PPT
Chapter 01 software engineering pressman
PPTX
Software Design.pptx
PPT
Chapter_01_of_slides_of_software_engineering_book.ppt
PDF
chapter1 introduction of software engneering.pdf
PPT
Chapter 22- Software Configuration Management.ppt
PPT
PPT-UEU-Rekayasa-Perangkat-Lunak-Pertemuan-1.ppt
PDF
Requeriment Analysis and modelling presentation
PDF
Ch01 SE
PPT
SE CHAPTER 1 SOFTWARE ENGINEERING
PPT
Chapter_06_RequirementRequirements Modeling.ppt
PPT
Process models
PPTX
Software Engineering Chapter-1 Basic Concepts
PPT
Process models (generic models, Agile models)
PPT
Chapter_02_of_slides_of_software_engineering_book.ppt
PPT
Chapter_07IntroductiontoSoftwareEnginnering.ppt
PDF
Product Metrics in the course on Software Engineering
PPT
SOFTWAER ENGINEERING PROCESS MODELSChapter_02.ppt
PPTX
ch3.pptx
Fundamentals of Software Engineering
Software Engineering
Chapter 01 software engineering pressman
Software Design.pptx
Chapter_01_of_slides_of_software_engineering_book.ppt
chapter1 introduction of software engneering.pdf
Chapter 22- Software Configuration Management.ppt
PPT-UEU-Rekayasa-Perangkat-Lunak-Pertemuan-1.ppt
Requeriment Analysis and modelling presentation
Ch01 SE
SE CHAPTER 1 SOFTWARE ENGINEERING
Chapter_06_RequirementRequirements Modeling.ppt
Process models
Software Engineering Chapter-1 Basic Concepts
Process models (generic models, Agile models)
Chapter_02_of_slides_of_software_engineering_book.ppt
Chapter_07IntroductiontoSoftwareEnginnering.ppt
Product Metrics in the course on Software Engineering
SOFTWAER ENGINEERING PROCESS MODELSChapter_02.ppt
ch3.pptx
Ad

Recently uploaded (20)

PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
PPTX
Education and Perspectives of Education.pptx
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PPTX
What’s under the hood: Parsing standardized learning content for AI
PDF
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PDF
English Textual Question & Ans (12th Class).pdf
PDF
Hazard Identification & Risk Assessment .pdf
PDF
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
PPTX
Climate Change and Its Global Impact.pptx
PDF
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
PDF
semiconductor packaging in vlsi design fab
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PDF
HVAC Specification 2024 according to central public works department
PDF
International_Financial_Reporting_Standa.pdf
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PDF
Complications of Minimal Access-Surgery.pdf
PDF
My India Quiz Book_20210205121199924.pdf
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
Education and Perspectives of Education.pptx
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 2).pdf
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
What’s under the hood: Parsing standardized learning content for AI
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
English Textual Question & Ans (12th Class).pdf
Hazard Identification & Risk Assessment .pdf
BP 505 T. PHARMACEUTICAL JURISPRUDENCE (UNIT 1).pdf
Climate Change and Its Global Impact.pptx
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
semiconductor packaging in vlsi design fab
Cambridge-Practice-Tests-for-IELTS-12.docx
HVAC Specification 2024 according to central public works department
International_Financial_Reporting_Standa.pdf
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
Complications of Minimal Access-Surgery.pdf
My India Quiz Book_20210205121199924.pdf

Unit iii(part b - architectural design)

  • 1. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 1 Chapter 9  Architectural Design Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use.
  • 2. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2 Why Architecture? The architecture is not the operational software. Rather,The architecture is not the operational software. Rather, it is a representation that enables a software engineerit is a representation that enables a software engineer to:to: (1)(1) analyze the effectiveness of the design in meeting itsin meeting its stated requirements,stated requirements, (2)(2) consider architectural alternatives at a stage whenat a stage when making design changes is still relatively easy, andmaking design changes is still relatively easy, and (3)(3) reduce the risks associated with the construction ofassociated with the construction of the software.the software.
  • 3. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 3 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].
  • 4. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 4 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.”
  • 5. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6 Architectural Styles  Data-centered architectures  Data flow architectures  Call and return architectures  Object-oriented architectures  Layered architectures Each style describes a system category that encompasses: (1) aEach style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules)(e.g., a database, computational modules) that perform a function required by a system, (2) athat perform a function required by a system, (2) a set of connectors that enable “communication, coordination andthat enable “communication, coordination and cooperation” among components, (3)cooperation” among components, (3) constraints that definethat define how components can be integrated to form the system, andhow components can be integrated to form the system, and (4)(4) semantic models that enable a designer to understand thethat enable a designer to understand the overall properties of a system by analyzing the knownoverall properties of a system by analyzing the known properties of its constituent parts.properties of its constituent parts.
  • 7. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 7 Data-Centered Architecture
  • 8. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 8 Data Flow Architecture
  • 9. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 9 Call and Return Architecture
  • 10. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 10 Layered Architecture
  • 11. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13 Architectural Context target system: SecurityFunction uses uses peershomeowner Safehome Product Internet-based system surveillance function sensors control panel sensors uses
  • 14. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 14 Archetypes Figure 10.7 UML relationships for SafeHomesecurity function archetypes (adapted from [BOS00]) Controller Node communicates with Detector Indicator
  • 15. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 15 Component Structure SafeHome Executive Ext ernal Communicat ion Management GUI Internet Interface Funct ion selection Security Surveillance Home management Control panel processing detector management alarm processing
  • 16. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 16 Refined Component Structure sensorsensor sensor sensor sensor sensorsensor sensor External Communication Management GUI Internet Interface Security Cont rol panel processing det ect or managem ent alarm processing Keypad processing CP display funct ions scheduler sensor sensor sensor sensor phone com m unicat ion alarm SafeHome Executive
  • 17. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 17 Analyzing Architectural Design 1. Collect scenarios.1. Collect scenarios. 2. Elicit requirements, constraints, and environment description.2. Elicit requirements, constraints, and environment description. 3. Describe the architectural styles/patterns that have been3. Describe the architectural styles/patterns that have been chosen to address the scenarios and requirements:chosen to address the scenarios and requirements: •• module viewmodule view •• process viewprocess view •• data flow viewdata flow view 4. Evaluate quality attributes by considered each attribute in4. Evaluate quality attributes by considered each attribute in isolation.isolation. 5. Identify the sensitivity of quality attributes to various5. Identify the sensitivity of quality attributes to various architectural attributes for a specific architectural style.architectural attributes for a specific architectural style. 6. Critique candidate architectures (developed in step 3) using the6. Critique candidate architectures (developed in step 3) using the sensitivity analysis conducted in step 5.sensitivity analysis conducted in step 5.
  • 18. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 20 An Architectural Design Method "four bedrooms, three baths, lots of glass ..." customer requirements architectural design
  • 21. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 21 Deriving Program Architecture ProgramProgram ArchitectureArchitecture
  • 22. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 22 Partitioning the Architecture  “horizontal” and “vertical” partitioning are required
  • 23. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 23 Horizontal Partitioning  define separate branches of the module hierarchy for each major function  use control modules to coordinate communication between functions function 1function 1 function 3function 3 function 2function 2
  • 24. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 24 Vertical Partitioning: Factoring  design so that decision making and work are stratified  decision making modules should reside at the top of the architecture workers decision-makers
  • 25. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 27 Flow Characteristics Transform flow Transaction flow This edition of SEPA does not cover transaction mapping. For a detailed discussion see the SEPA website
  • 28. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 28 General Mapping Approach isolate incoming and outgoing flowisolate incoming and outgoing flow boundaries; for transaction flows, isolateboundaries; for transaction flows, isolate the transaction centerthe transaction center working from the boundary outward, mapworking from the boundary outward, map DFD transforms into corresponding modulesDFD transforms into corresponding modules add control modules as requiredadd control modules as required refine the resultant program structurerefine the resultant program structure using effective modularity conceptsusing effective modularity concepts
  • 29. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 30 Transform Mapping data flow model "Transform" mapping a b c d e f g h i j x1 x2 x3 x4 b c a d e f g i h j
  • 31. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 31 Factoring typical "worker" modules typical "decision making" modules direction of increasing decision making Architectural 
  • 32. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 32 First Level Factoring main program controller input controller processing controller output controller
  • 33. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 33 Second Level Mapping D C B A A C B Dmapping from the flow boundary outward main control