SlideShare a Scribd company logo
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with  Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.
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.
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 model  of how the system is structured and how its components work together” [BAS03].
Data Design At the architectural level … Design of one or more databases to support the application architecture Design of methods for ‘ mining ’ the content of multiple databases navigate through existing databases in an attempt to extract appropriate business-level information Design of a  data warehouse —a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business
Data Design At the component level … refine data objects and develop a set of data abstractions implement data object attributes as one or more data structures review data structures to ensure that appropriate relationships have been established simplify data structures as required
Data Design—Component Level 1.  The systematic analysis principles applied to function and behavior should also be applied to data.  2.  All data structures and the operations to be performed on each should be identified.  3.  A data dictionary should be established and used to define both data and program design.  4.  Low level data design decisions should be deferred until late in the design process.  5.  The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure.  6.  A library of useful data structures and the operations that may be applied to them should be developed.  7.  A software design and programming language should support the specification and realization of abstract data types.
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) 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 Architecture
Data Flow Architecture
Call and Return Architecture
Layered Architecture
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.
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
Architectural Context
Archetypes
Component Structure
Refined Component Structure
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.
An Architectural Design Method "four bedrooms, three baths, lots of glass ..." customer requirements architectural design
Deriving Program Architecture Program Architecture
Partitioning the Architecture “horizontal” and “vertical” partitioning are required
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
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
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
Structured Design objective:  to derive a program architecture that is partitioned approach:   the DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation:   structure chart
Flow Characteristics Transform flow Transaction flow
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
Transform Mapping
Factoring
First Level Factoring main  program controller input controller processing controller output controller
Second Level Mapping
Transaction Flow T incoming flow action path
Transaction Example operator commands process operator  commands fixture setting report  robot control fixture servos display screen robot control software in reality, other  commands would also be shown assembly record
Refining the Analysis Model write an English language processing narrative  for the level 01 flow model apply noun/verb parse to isolate processes, data  items, store and entities develop level 02 and 03 flow models create corresponding data dictionary entries refine flow models as appropriate ... now, we're ready to begin design! 1. 2. 3. 4. 5.
Deriving Level 1 Processing narrative for " process operator commands" Process operator command software reads operator commands from  the cell operator. An error message is displayed for invalid commands.  The command type is determined for valid commands and appropriate  action is taken. When fixture commands are encountered, fixture  status is analyzed and a fixture setting is output to the fixture servos.  When a report is selected, the assembly record file is read and  a  report is generated and displayed on the operator display screen.  When robot control switches are selected, control values are sent to  the robot control system.  Processing narrative for " process operator commands" Process operator command software  reads operator  commands from  the cell  operator . An  error message is  displayed for  invalid commands .  The  command type is  determined for  valid commands and appropriate  action is  taken . When  fixture commands are  encountered ,  fixture  status is  analyzed and a  fixture setting is  output to the  fixture servos .  When a  report is  selected , the  assembly record file is  read and  a  report is  generated and  displayed on the operator  display screen .  When  robot control switches are  selected ,  control value s  are  sent to  the  robot control system.  noun-verb parse
Level 1 Data Flow Diagram
Level 2 Data Flow Diagram
Transaction Mapping Principles isolate the incoming flow path define each of the action paths by looking for  the "spokes of the wheel" assess the flow on each action path define the dispatch and control structure map each action path flow individually
Transaction Mapping
Isolate Flow Paths
Map the Flow Model
Refining the Structure Chart

More Related Content

PPTX
Software architecture
PPTX
Unit v -Construction and Evaluation
PPTX
CS8494 SOFTWARE ENGINEERING Unit-3
PPTX
software design
PPT
Software architecture
PPTX
Software design
PPTX
unit 3 Design 1
PPTX
Software design
Software architecture
Unit v -Construction and Evaluation
CS8494 SOFTWARE ENGINEERING Unit-3
software design
Software architecture
Software design
unit 3 Design 1
Software design

What's hot (20)

PPTX
EC8791 Requirement-Specifications-Quality assurance techniques
PPTX
Design techniques
PPT
Software design, software engineering
DOC
Hld and lld
PDF
4 agile modeldevelopement-danielleroux
 
PPTX
Design notation
PDF
software design principles
PDF
Design and Implementation in Software Engineering
PDF
Software Designing - Software Engineering
PPT
Fundamentals of Software Engineering
PPTX
PPS
Software design principles
PPTX
Software engineering 17 architectural design
PPTX
Software Design and Modularity
PPTX
10 architectural design (1)
PPT
architectural design
PPTX
Architectural design of software
PPT
Design engineering
PDF
Domain specific Software Architecture
PPTX
EC8791 Requirement-Specifications-Quality assurance techniques
Design techniques
Software design, software engineering
Hld and lld
4 agile modeldevelopement-danielleroux
 
Design notation
software design principles
Design and Implementation in Software Engineering
Software Designing - Software Engineering
Fundamentals of Software Engineering
Software design principles
Software engineering 17 architectural design
Software Design and Modularity
10 architectural design (1)
architectural design
Architectural design of software
Design engineering
Domain specific Software Architecture
Ad

Viewers also liked (7)

PPTX
06 architectural design_workout
PPT
Unit 3 3 architectural design
PDF
Zaha Hadid's Architecture of Form
PPT
Cloud computing simple ppt
PPT
Architecture design in software engineering
06 architectural design_workout
Unit 3 3 architectural design
Zaha Hadid's Architecture of Form
Cloud computing simple ppt
Architecture design in software engineering
Ad

Similar to Ch10 (20)

PPTX
Design Model & User Interface Design in Software Engineering
PPT
software engineering unit-3 in software engineering
PPT
Chapter 7 Basic Building of SE Architecture.ppt
PPTX
Unit_4_Software_Design.pptx
PPT
architectural.ppt
PPT
DESIGN CONCEPTS
PPT
Design engineering
PPTX
SA_UNIT_1.pptx
DOC
Unit-3.doc
PPT
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
PPTX
Software engineering
PDF
Design concepts in concepts of engineering design
PPT
software Design.ppt
PPTX
Software enginnering
PPT
Artifical selection for enhancment for people Use
PPT
Slides 6 design of sw arch using add
PPTX
Final project presentation at arba minch university (3).pptx
PPTX
06 fse design
PPT
Object oriented sad-5 part i
PPTX
Pattern oriented architecture for web based architecture
Design Model & User Interface Design in Software Engineering
software engineering unit-3 in software engineering
Chapter 7 Basic Building of SE Architecture.ppt
Unit_4_Software_Design.pptx
architectural.ppt
DESIGN CONCEPTS
Design engineering
SA_UNIT_1.pptx
Unit-3.doc
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Software engineering
Design concepts in concepts of engineering design
software Design.ppt
Software enginnering
Artifical selection for enhancment for people Use
Slides 6 design of sw arch using add
Final project presentation at arba minch university (3).pptx
06 fse design
Object oriented sad-5 part i
Pattern oriented architecture for web based architecture

More from Humberto Bruno Pontes Silva (20)

PPTX
Confraria samba choro
PPT
Accountability Corbit Overview 06262007
PPT
Ruy C Pq D Cbc 1 2007 10 29
PDF
Palestra Daniel Dias1
PPT
Portuguese Scrum
PPT
Certificados Digitais
PDF
Apresentacao Aula04 So
PDF
Apresentacao Aula03 So
PDF
Apresentacao Aula02 So
PPT
10 P R O C E S S O N O T C U
PPT
Secex Sc Conhecendo O Tcu
Confraria samba choro
Accountability Corbit Overview 06262007
Ruy C Pq D Cbc 1 2007 10 29
Palestra Daniel Dias1
Portuguese Scrum
Certificados Digitais
Apresentacao Aula04 So
Apresentacao Aula03 So
Apresentacao Aula02 So
10 P R O C E S S O N O T C U
Secex Sc Conhecendo O Tcu

Recently uploaded (20)

PDF
How to Get Funding for Your Trucking Business
PPTX
Amazon (Business Studies) management studies
PDF
Types of control:Qualitative vs Quantitative
PDF
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
PDF
A Brief Introduction About Julia Allison
PDF
Nidhal Samdaie CV - International Business Consultant
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
DOCX
unit 1 COST ACCOUNTING AND COST SHEET
PDF
DOC-20250806-WA0002._20250806_112011_0000.pdf
PPTX
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
PPTX
Business Ethics - An introduction and its overview.pptx
PDF
Elevate Cleaning Efficiency Using Tallfly Hair Remover Roller Factory Expertise
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PDF
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
PPTX
Belch_12e_PPT_Ch18_Accessible_university.pptx
PPTX
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
PDF
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
DOCX
Business Management - unit 1 and 2
PDF
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
How to Get Funding for Your Trucking Business
Amazon (Business Studies) management studies
Types of control:Qualitative vs Quantitative
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
A Brief Introduction About Julia Allison
Nidhal Samdaie CV - International Business Consultant
Roadmap Map-digital Banking feature MB,IB,AB
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
unit 1 COST ACCOUNTING AND COST SHEET
DOC-20250806-WA0002._20250806_112011_0000.pdf
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
Business Ethics - An introduction and its overview.pptx
Elevate Cleaning Efficiency Using Tallfly Hair Remover Roller Factory Expertise
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
Belch_12e_PPT_Ch18_Accessible_university.pptx
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
20250805_A. Stotz All Weather Strategy - Performance review July 2025.pdf
Business Management - unit 1 and 2
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry

Ch10

  • 1. Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.
  • 2. 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.
  • 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 model of how the system is structured and how its components work together” [BAS03].
  • 4. Data Design At the architectural level … Design of one or more databases to support the application architecture Design of methods for ‘ mining ’ the content of multiple databases navigate through existing databases in an attempt to extract appropriate business-level information Design of a data warehouse —a large, independent database that has access to the data that are stored in databases that serve the set of applications required by a business
  • 5. Data Design At the component level … refine data objects and develop a set of data abstractions implement data object attributes as one or more data structures review data structures to ensure that appropriate relationships have been established simplify data structures as required
  • 6. Data Design—Component Level 1. The systematic analysis principles applied to function and behavior should also be applied to data. 2. All data structures and the operations to be performed on each should be identified. 3. A data dictionary should be established and used to define both data and program design. 4. Low level data design decisions should be deferred until late in the design process. 5. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. 6. A library of useful data structures and the operations that may be applied to them should be developed. 7. A software design and programming language should support the specification and realization of abstract data types.
  • 7. 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) 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.
  • 10. Call and Return Architecture
  • 12. 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.
  • 13. 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
  • 18. 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.
  • 19. An Architectural Design Method "four bedrooms, three baths, lots of glass ..." customer requirements architectural design
  • 20. Deriving Program Architecture Program Architecture
  • 21. Partitioning the Architecture “horizontal” and “vertical” partitioning are required
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. Structured Design objective: to derive a program architecture that is partitioned approach: the DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module notation: structure chart
  • 26. Flow Characteristics Transform flow Transaction flow
  • 27. 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
  • 30. First Level Factoring main program controller input controller processing controller output controller
  • 32. Transaction Flow T incoming flow action path
  • 33. Transaction Example operator commands process operator commands fixture setting report robot control fixture servos display screen robot control software in reality, other commands would also be shown assembly record
  • 34. Refining the Analysis Model write an English language processing narrative for the level 01 flow model apply noun/verb parse to isolate processes, data items, store and entities develop level 02 and 03 flow models create corresponding data dictionary entries refine flow models as appropriate ... now, we're ready to begin design! 1. 2. 3. 4. 5.
  • 35. Deriving Level 1 Processing narrative for " process operator commands" Process operator command software reads operator commands from the cell operator. An error message is displayed for invalid commands. The command type is determined for valid commands and appropriate action is taken. When fixture commands are encountered, fixture status is analyzed and a fixture setting is output to the fixture servos. When a report is selected, the assembly record file is read and a report is generated and displayed on the operator display screen. When robot control switches are selected, control values are sent to the robot control system. Processing narrative for " process operator commands" Process operator command software reads operator commands from the cell operator . An error message is displayed for invalid commands . The command type is determined for valid commands and appropriate action is taken . When fixture commands are encountered , fixture status is analyzed and a fixture setting is output to the fixture servos . When a report is selected , the assembly record file is read and a report is generated and displayed on the operator display screen . When robot control switches are selected , control value s are sent to the robot control system. noun-verb parse
  • 36. Level 1 Data Flow Diagram
  • 37. Level 2 Data Flow Diagram
  • 38. Transaction Mapping Principles isolate the incoming flow path define each of the action paths by looking for the "spokes of the wheel" assess the flow on each action path define the dispatch and control structure map each action path flow individually
  • 41. Map the Flow Model