SlideShare una empresa de Scribd logo
1 de 37
ARCHITECTURAL DESIGN
Software Architecture
Data Design
Architectural Style
Analyzing Alternative Architectural Designs
Mapping Requirements into a Software Architecture
Transform Mapping, and Transaction Mapping
Refining the Architectural Design
Overview
 Architectural design represents the structure of
the data and program components required to
build a computer-based system. A number of
architectural "styles" exist. Architectural design
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 and the program structure.
The architectural model is subjected to software
quality review like all other design work
products.
Software architecture
——a representation that enables a software engineer to
 Analyze the effectiveness of the design
in meeting stated requirements
 Consider architectural alternatives
 Reduce the risk associated with the
construction of the software
 Examine the system as a whole
Why is Architecture Important?
Data Design
 Data Design at Application Level
 Data Design at Business Level
 Data Modeling, Data
Structure, Database, and the Data
Warehouse
 Subject oriented
 Integration
 Time Variance
 NonVolatility
Data Design Principles
 Systematic analysis principles applied to
function and behavior should also be
applied to data.
 All data structures and the operations to
be performed on each should be
identified.
 Data dictionary should be established
and used to define both data and
program design.
 Low level design processes should be
deferred until late in the design process.
 Representations of data structure should be
known only to those modules that must
make direct use of the data contained within
in the data structure.
 A library of useful data structures and
operations should be developed.
 A software design and its implementation
language should support the specification
and realization of abstract data types.
Architectural Styles
 Data centered - data store (e.g. file or
database) lies at the center of this architecture
and is accessed frequently by other
components that modify data
Data store
(Repository or
blackboard)
Client
software
Client
software
Client
software
Client
software
Client
software
Client
software
 Data flow - input data is transformed by a series of
computational or manipulative components into output data
Filter Filter
Filter
Filter
Filter
Filter
Filter
Filter
(a) Pipes and filters
Pipes
Filter Filter Filter Filter
(b) Batch sequential
 Call and return - program structure
decomposes function into control hierarchy with
main program invokes several subprograms
 Object-oriented - components of system
encapsulate data and
operations, communication between
components is by message passing
 Layered - several layers are defined, each
accomplishing operations that progressively
become closer to the machine instruction set
Architecture Design Assessment Questions
 How is control managed within the
architecture?
 Does a distinct control hierarchy exist?
 How do components transfer control within the
system?
 How is control shared among components?
 What is the control topology?
 Is control synchronized or asynchronous?
 How are data communicated between
components?
 Is the flow of data continuous or sporadic?
 What is the mode of data transfer?
 Do data components exist? If so what is their
role?
 How do functional components interact with
data components?
 Are data components active or passive?
 How do data and control interact within the
system?
Architecture Trade-off Analysis Method
 Collect scenarios
 Elicit requirements, constraints, and
environmental description
 Describe architectural styles/patterns
chosen to address scenarios and
requirements (module view, process
view, data flow view)
 Evaluate quality attributes
independently (e.g.
reliability, performance, security, maintai
nability, flexibility, testability, portability, r
eusability, interoperability)
 Identify sensitivity points for architecture
(any attributes significantly affected by
variation in the architecture)
 Critique candidate architectures (from
step 3) using the sensitivity analysis
(conducted in step 5)
Architectural Complexity (similar to coupling)
 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 among a set of
components
Mapping Requirements to Software Architecture
 Establish type of information flow
 transform flow - overall data flow is
sequential and flows along a small number
of straight line paths
 transaction flow - a single data item triggers
information flow along one of many paths
Transform Flow
Action Path
T
Transaction
Transaction
center
Transaction Flow
Action Path
 Flow boundaries indicated
 DFD is mapped into program structure
 Control hierarchy defined
 Resultant structure refined using design
measures and heuristics
 Architectural description refined and
elaborated
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
Transform Mapping
 Review fundamental system model
 Review and refine data flow diagrams for
the software
 Determine whether the DFD has transform
or transaction characteristics
 Isolate the transform center by specifying
incoming and outgoing flow boundaries
 Perform first level factoring
 Perform second level factoring
 Refine the first iteration architecture
using design heuristics for improved
software quality
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
Factoring
typical "worker" modules
typical "decision
making" modules
direction of increasing
decision making
First Level Factoring
main
program
controller
input
controller
processing
controller
output
controller
Second Level Mapping
D
C
B
A
A
C
B
Dmapping from the
flow boundary outward
main
control
Transaction Mapping
 Review fundamental system model
 Review and refine data flow diagrams for
the software
 Determine whether the DFD has transform
or transaction characteristics
 Identify the transaction center and flow
characteristics along each action path
 Map the DFD to a program structure
amenable to transaction processing
 Factor and refine the transaction
structure and the structure of each action
path
 Refine the first iteration architecture using
design heuristics for improved software
quality
Transaction Flow
T
incoming flow
action path
•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
a
b t
g
h
d
e
f
i
k
j
l
m
n
Data flow model x1
b
a
t
x2 x3 x4
d e f g h x3.1 l m n
i j
k
mapping
program structure
Isolate Flow Paths
fixture setting
read
command
validate
command
determine
type
read
record
calculate
output
values
format
report
produce
error msg
read
fixture
status
determine
setting
format
setting
send
control
value
command
command
invalid command
error msg
status
combined
status
raw setting
robot control
start/stop
assembly
record
record
values
report
valid command
Map the Flow Model
process
operator
commands
command
input
controller
read
command
validate
command
produce
error
message
determine
type
fixture
status
controller
report
generation
controller
send
control
value
each of the action paths must be expanded further
Refining Architectural Design
 Processing narrative developed for each module
 Interface description provided for each module
 Local and global data structures are defined
 Design restrictions/limitations noted
 Design reviews conducted
 Refinement considered if required and justified
Refining the Structure Chart
process
operator
commands
command
input
controller
read
command
validate
command
produce
error
message
determine
type
send
control
value
read
fixture
status
determine
setting
format
setting
read
record
calculate
output
values
format
report
fixture
status
controller
report
generation
controller

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineering
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Project scheduling and tracking
Project scheduling and trackingProject scheduling and tracking
Project scheduling and tracking
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
 
Improving software economics
Improving software economicsImproving software economics
Improving software economics
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modeling
 
Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software design
Software designSoftware design
Software design
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
Model Based Software Architectures
Model Based Software ArchitecturesModel Based Software Architectures
Model Based Software Architectures
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 

Similar a Software architecture

System design and Implementation NOTES.pptx
System design and Implementation NOTES.pptxSystem design and Implementation NOTES.pptx
System design and Implementation NOTES.pptx
gauravgoswami78
 

Similar a Software architecture (20)

Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Ch10
Ch10Ch10
Ch10
 
Ch10
Ch10Ch10
Ch10
 
Ssad system design
Ssad system designSsad system design
Ssad system design
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
 
Software Design
Software Design Software Design
Software Design
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
architectural.ppt
architectural.pptarchitectural.ppt
architectural.ppt
 
UNIT 3 SE.pptx
UNIT 3 SE.pptxUNIT 3 SE.pptx
UNIT 3 SE.pptx
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
System design and Implementation NOTES.pptx
System design and Implementation NOTES.pptxSystem design and Implementation NOTES.pptx
System design and Implementation NOTES.pptx
 
BCA V Sem System design and Implementation
BCA V Sem System design and ImplementationBCA V Sem System design and Implementation
BCA V Sem System design and Implementation
 
SOFTWARE ENGINEERING ppt
SOFTWARE ENGINEERING pptSOFTWARE ENGINEERING ppt
SOFTWARE ENGINEERING ppt
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Software architecture

  • 1. ARCHITECTURAL DESIGN Software Architecture Data Design Architectural Style Analyzing Alternative Architectural Designs Mapping Requirements into a Software Architecture Transform Mapping, and Transaction Mapping Refining the Architectural Design
  • 2. Overview  Architectural design represents the structure of the data and program components required to build a computer-based system. A number of architectural "styles" exist. Architectural design 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 and the program structure. The architectural model is subjected to software quality review like all other design work products.
  • 3. Software architecture ——a representation that enables a software engineer to  Analyze the effectiveness of the design in meeting stated requirements  Consider architectural alternatives  Reduce the risk associated with the construction of the software  Examine the system as a whole Why is Architecture Important?
  • 4. Data Design  Data Design at Application Level  Data Design at Business Level  Data Modeling, Data Structure, Database, and the Data Warehouse  Subject oriented  Integration  Time Variance  NonVolatility
  • 5. Data Design Principles  Systematic analysis principles applied to function and behavior should also be applied to data.  All data structures and the operations to be performed on each should be identified.  Data dictionary should be established and used to define both data and program design.
  • 6.  Low level design processes should be deferred until late in the design process.  Representations of data structure should be known only to those modules that must make direct use of the data contained within in the data structure.  A library of useful data structures and operations should be developed.  A software design and its implementation language should support the specification and realization of abstract data types.
  • 7. Architectural Styles  Data centered - data store (e.g. file or database) lies at the center of this architecture and is accessed frequently by other components that modify data Data store (Repository or blackboard) Client software Client software Client software Client software Client software Client software
  • 8.  Data flow - input data is transformed by a series of computational or manipulative components into output data Filter Filter Filter Filter Filter Filter Filter Filter (a) Pipes and filters Pipes Filter Filter Filter Filter (b) Batch sequential
  • 9.  Call and return - program structure decomposes function into control hierarchy with main program invokes several subprograms  Object-oriented - components of system encapsulate data and operations, communication between components is by message passing  Layered - several layers are defined, each accomplishing operations that progressively become closer to the machine instruction set
  • 10. Architecture Design Assessment Questions  How is control managed within the architecture?  Does a distinct control hierarchy exist?  How do components transfer control within the system?  How is control shared among components?  What is the control topology?  Is control synchronized or asynchronous?
  • 11.  How are data communicated between components?  Is the flow of data continuous or sporadic?  What is the mode of data transfer?  Do data components exist? If so what is their role?  How do functional components interact with data components?  Are data components active or passive?  How do data and control interact within the system?
  • 12. Architecture Trade-off Analysis Method  Collect scenarios  Elicit requirements, constraints, and environmental description  Describe architectural styles/patterns chosen to address scenarios and requirements (module view, process view, data flow view)
  • 13.  Evaluate quality attributes independently (e.g. reliability, performance, security, maintai nability, flexibility, testability, portability, r eusability, interoperability)  Identify sensitivity points for architecture (any attributes significantly affected by variation in the architecture)  Critique candidate architectures (from step 3) using the sensitivity analysis (conducted in step 5)
  • 14. Architectural Complexity (similar to coupling)  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 among a set of components
  • 15. Mapping Requirements to Software Architecture  Establish type of information flow  transform flow - overall data flow is sequential and flows along a small number of straight line paths  transaction flow - a single data item triggers information flow along one of many paths
  • 17.  Flow boundaries indicated  DFD is mapped into program structure  Control hierarchy defined  Resultant structure refined using design measures and heuristics  Architectural description refined and elaborated
  • 19. •Partitioning the Architecture • “horizontal” and “vertical” partitioning are required
  • 20. •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
  • 21. •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
  • 22. 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
  • 23. Transform Mapping  Review fundamental system model  Review and refine data flow diagrams for the software  Determine whether the DFD has transform or transaction characteristics
  • 24.  Isolate the transform center by specifying incoming and outgoing flow boundaries  Perform first level factoring  Perform second level factoring  Refine the first iteration architecture using design heuristics for improved software quality
  • 25. 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
  • 26. Factoring typical "worker" modules typical "decision making" modules direction of increasing decision making
  • 28. Second Level Mapping D C B A A C B Dmapping from the flow boundary outward main control
  • 29. Transaction Mapping  Review fundamental system model  Review and refine data flow diagrams for the software  Determine whether the DFD has transform or transaction characteristics
  • 30.  Identify the transaction center and flow characteristics along each action path  Map the DFD to a program structure amenable to transaction processing  Factor and refine the transaction structure and the structure of each action path  Refine the first iteration architecture using design heuristics for improved software quality
  • 32. •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
  • 33. Transaction Mapping a b t g h d e f i k j l m n Data flow model x1 b a t x2 x3 x4 d e f g h x3.1 l m n i j k mapping program structure
  • 34. Isolate Flow Paths fixture setting read command validate command determine type read record calculate output values format report produce error msg read fixture status determine setting format setting send control value command command invalid command error msg status combined status raw setting robot control start/stop assembly record record values report valid command
  • 35. Map the Flow Model process operator commands command input controller read command validate command produce error message determine type fixture status controller report generation controller send control value each of the action paths must be expanded further
  • 36. Refining Architectural Design  Processing narrative developed for each module  Interface description provided for each module  Local and global data structures are defined  Design restrictions/limitations noted  Design reviews conducted  Refinement considered if required and justified
  • 37. Refining the Structure Chart process operator commands command input controller read command validate command produce error message determine type send control value read fixture status determine setting format setting read record calculate output values format report fixture status controller report generation controller