Architectural Design: Establishing The Overall Structure of A Software System
Architectural Design: Establishing The Overall Structure of A Software System
Architectural Design: Establishing The Overall Structure of A Software System
Slide 1
Objectives
Slide 2
Topics covered
System structuring
Control models
Modular decomposition
Domain-specific architectures
Slide 3
Software architecture
The design process for identifying the subsystems making up a system and the framework
for sub-system control and communication is
architectural design
The output of this design process is a description
of the software architecture
Slide 4
Architectural design
Slide 5
Stakeholder communication
System analysis
Large-scale reuse
Slide 6
System structuring
Control modelling
Modular decomposition
Slide 7
Slide 8
Architectural models
Slide 9
Architectural models
Slide 10
Architectural styles
Slide 11
Architecture attributes
Performance
Security
Availability
Safety
Maintainability
Slide 12
System structuring
Slide 13
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
Conveyor
controller
Software Engineering, 6th edition. Chapter 10
Slide 14
Slide 15
Design
translator
Project
repository
Design
analyser
Code
generator
Program
editor
Report
generator
Slide 16
Advantages
Disadvantages
Slide 17
Client-server architecture
Slide 18
Client 2
Client 3
Client 4
Wide-bandwidth network
Catalogue
server
Video
server
Picture
server
Hypertext
server
Catalogue
Film clip
files
Digitiz ed
photographs
Hypertext
web
Slide 19
Client-server characteristics
Advantages
Disadvantages
Slide 20
Slide 21
Slide 22
Control models
Event-based control
Slide 23
Centralised control
Manager model
Slide 24
Call-return model
Main
program
Routine 1
Routine 1.1
Routine 2
Routine 1.2
Routine 3
Routine 3.1
Routine 3.2
Slide 25
Actuator
processes
System
contr oller
Computation
processes
Ian Sommerville 2000
User
interface
Software Engineering, 6th edition. Chapter 10
Fault
handler
Slide 26
Event-driven systems
Slide 27
Broadcast model
Slide 28
Selective broadcasting
Sub-system
1
Sub-system
2
Sub-system
3
Sub-system
4
Slide 29
Interrupt-driven systems
Slide 30
Interrupt-driven control
Interrupts
Interrupt
vector
Handler
1
Handler
2
Handler
3
Handler
4
Process
1
Process
2
Process
3
Process
4
Slide 31
Modular decomposition
Slide 32
Object models
Slide 33
Payment
invoice#
date
amount
customer#
Receipt
Invoice
invoice#
date
amount
customer
invoice#
date
amount
customer#
issue ()
sendR eminder ()
acceptPayment ()
sendR eceipt ()
Slide 34
Data-flow models
Slide 35
Read issued
invoices
Invoices
Issue
receipts
Receipts
Find
payments
due
Issue
payment
reminder
Identify
payments
Reminders
Payments
Slide 36
Domain-specific architectures
Slide 37
Generic models
Lexical analyser
Symbol table
Syntax analyser
Syntax tree
Semantic analyser
Code generator
Slide 38
Compiler model
Symbol
table
Lexical
analysis
Syntactic
analysis
Semantic
analysis
Code
generation
Slide 39
Syntax
analyser
Semantic
analyser
Prettyprinter
Abstract
syntax tree
Grammar
definition
Optimizer
Editor
Symbol
table
Output
definition
Code
generator
Repository
Slide 40
Reference architectures
Slide 41
Application
Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Network
Data link
Data link
Data link
Physical
Physical
Physical
Slide 42
Key points
Slide 43
Key points
Slide 44