Software Architecture
Software Architecture
Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley), with permission.
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 3/33
n Arch Architecture w t y
Software architecture
• If the application is small (e.g. 10 classes) this
decomposition may be considered as architecture.
Videos Rentals
Customers
3. Create remaining
design classes
-- to complete the class model
1. Create domain classes -- possibly use framework
-- from requirements analysis
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 8/33
n Arch Architecture w t y
Target
Application
Deployment Environment
• Three organizational dispositions to new systems
– Integrate new systems into existing systems
– Install support services for the first time
– Replace existing systems
• Design deployment architecture
– Type of infrastructure (i.e. Internet, Client/Server, Command)
– Hardware environment (i.e. mainframe, mid-range servers, etc.)
– Use existing infrastructure (i.e. single sign-on,
networks, Internet access)
– Architectural design issues for all organizations
• Reliability
• Security
• Performance
• Usability
• Supportability
Object-Oriented Analysis and
Design with the Unified Process
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 10/33
n Arch Architecture w t y
Software Architecture
• Design goals (review)
– Correctness
– Sufficiency Can be handled
– Robustness at lower levels of
design
– Flexibility
– Reusability
– Efficiency
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 11/33
n Arch Architecture w t y
2 3 4
component
component
Steel
truss
High coupling
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 14/33
n Arch Architecture w t y
EncounterGame
EncounterGame
«facade»
EncounterCharacters
EncounterCast
«facade» EncounterEnvironment
EncounterEnvironment
«facade»
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 16/33
n Arch Architecture w t y
• Control modelling
– A model of the control relationships between the different
parts of the system is established
• Modular decomposition
– The identified sub-systems are decomposed into modules
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 18/33
n Arch Architecture w t y
• Large-scale reuse
– The architecture may be reusable across a range of systems
• System analysis
– Means that analysis of whether the system can meet its
non-functional requirements is possible
Introductio Deployment SW DataFlo Independen
VM
Repositor
Layered 19/33
n Arch Architecture w t y
bank address
withdraw
account data
A Class model:
Transaction Account
Bank analyze() withdraw()
1 record() * deposit()
Introductio Deployment SW DataFlo Independen VM
Repositor
Layered 22/33
n Arch Architecture w t y
• Client-Server architectures:
– Distributed system model which shows how
data and processing is distributed across a
range of components
– Set of stand-alone servers which provide
specific services such as printing, data
management, etc.
– Set of clients which call on these services
– Network which allows clients to access servers
• The Observer design pattern is of potential use in independent component
architectures
Introductio Deployment SW DataFlo Independen VM
Repositor
Layered 23/33
n Arch Architecture w t y
Wide-bandwidth network
• Advantages
– Makes effective use of networked systems. May require cheaper
hardware
– Easy to add new servers or upgrade existing servers
• Disadvantages
– No shared data model so sub-systems use different data
organisation, data interchange may be inefficient
– Redundant management in each server
– No central register of names and services - it may be hard to find
out what servers and services are available
Introductio Deployment SW DataFlo Independen Repositor 25/33
VM Layered
n Arch Architecture w t y
4- Repository architecture
14.3.4.4
• Primarily built around large data collection
App 1
database App 3
App 2 Applications mostly storage,retrievals, and querying.
Layered Architecture
3D engine layer
«uses»
Role-playing game layer
«uses»
Application layer
Encounter Encounter
.... Encounter Game
Characters Environment
Introductio Deployment SW DataFlo Independen
VM
Repositor Layere 29/33
n Arch Architecture w t y d
Layered Architecture Example Using
Requirement: Print monthly statements Aggregation
Example
Problem domain package
Java.applet
Interface package
Java.awt
Other architectures
• Control models: concerned with the control flow between
sub-systems.
– Centralised control: one sub-system Main
program
has overall responsibility for control
and starts and stops other sub-systems.
Routine 1 Routine 2 Routine 3
• Example: Call-return model
Summary
• What is a software architecture?
– Architecture is a high-level design
• Complexity