Professional Documents
Culture Documents
CSC:361-Software Engineering: Semester: Fall2020
CSC:361-Software Engineering: Semester: Fall2020
Semester: Fall2020
Architectural Design
Architectural design decisions
Architectural views
Architectural patterns
Application architectures
4
Software architecture
Subsystem model
A grouping of elements that specifies what a part of a system should do.
Component (UML definition)
"A distributable piece of implementation of a system, including software code
(source, binary, or executable) but also including business documents, etc., in a
human system."
A component can be thought of as an implementation of a subsystem.
Example: Web Browser
WebBrowser
JavaScript
HTTP
System Design: Data Intensive Systems
Examples
• Electricity utility customer billing
• Telephone company call recording and billing
• Car rental reservations (e.g., Hertz)
• Stock market brokerage (e.g., Charles Schwab)
• E-commerce (e.g., Amazon.com)
Batch Processing Example: Electricity Utility Billing
First attempt:
Stakeholder communication
Architecture may be used as a focus of discussion by system stakeholders.
System analysis
Means that analysis of whether the system can meet its non-functional
requirements is possible.
Large-scale reuse
The architecture may be reusable across a range of systems
Product-line architectures may be developed.
14
Architectural representations
Systems in the same domain often have similar architectures that reflect
domain concepts.
Application product lines are built around a core architecture with variants
that satisfy particular customer requirements.
The architecture of a system may be designed around one of more
architectural patterns or ‘styles’.
These capture the essence of an architecture and can be instantiated in
different ways.
20
Architecture and system characteristics
1. Performance
Localise critical operations and minimize communications. Use large rather than fine-grain
components.
2. Security
Use a layered architecture with critical assets in the inner layers.
3. Safety
Localise safety-critical features in a small number of sub-systems.
4. Availability
Include redundant components and mechanisms for fault tolerance.
5. Maintainability
Use fine-grain, replaceable components.
21
Architectural views
1. A logical view, which shows the key abstractions in the system as objects
or object classes.
2. A process view, which shows how, at run-time, the system is composed of
interacting processes.
3. A development view, which shows how the software is decomposed for
development.
4. A physical view, which shows the system hardware and how software
components are distributed across the processors in the system.
Related using use cases or scenarios (+1)
23
(4+1) view cycle
UML diagram:
Component diag.