SlideShare a Scribd company logo
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

More Related Content

What's hot

Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
priyapavi96
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 
Software process
Software processSoftware process
Software process
Dr. Loganathan R
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
lalithambiga kamaraj
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
lavanya marichamy
 
Software cost estimation techniques presentation
Software cost estimation techniques presentationSoftware cost estimation techniques presentation
Software cost estimation techniques presentation
Kudzai Rerayi
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
Siva Priya
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
NancyBeaulah_R
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
kirupasuchi1996
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
deshpandeamrut
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
Stephennancy
 
software cost factor
software cost factorsoftware cost factor
software cost factor
Abinaya B
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
Akash Kumar Dhameja
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
janani thirupathi
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
Aman Adhikari
 
Design notation
Design notationDesign notation
Design notation
ramya marichamy
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
Er. Shiva K. Shrestha
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 

What's hot (20)

Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Software process
Software processSoftware process
Software process
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Software cost estimation techniques presentation
Software cost estimation techniques presentationSoftware cost estimation techniques presentation
Software cost estimation techniques presentation
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Design notation
Design notationDesign notation
Design notation
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 

Similar to Software architecture

Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
taxegap762
 
Ssad system design
Ssad system designSsad system design
Ssad system design
Ravi Shekhar
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
Rajes Wari
 
Software Design
Software Design Software Design
Software Design
Anas Bilal
 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
VigneshSridhar17
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
Dr.Shweta
 
architectural.ppt
architectural.pptarchitectural.ppt
architectural.ppt
ThamaraiKannan97
 
UNIT 3 SE.pptx
UNIT 3 SE.pptxUNIT 3 SE.pptx
UNIT 3 SE.pptx
rabiyathulbachiriyar
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
chitranshidheeraj6
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
Shagufta shaheen
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
Ivano Malavolta
 
System design and Implementation NOTES.pptx
System design and Implementation NOTES.pptxSystem design and Implementation NOTES.pptx
System design and Implementation NOTES.pptx
gauravgoswami78
 
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
gauravgoswami78
 
SOFTWARE ENGINEERING ppt
SOFTWARE ENGINEERING pptSOFTWARE ENGINEERING ppt
SOFTWARE ENGINEERING ppt
Harshita Bansal
 

Similar to 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
 

Recently uploaded

GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 

Recently uploaded (20)

GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 

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