Advanced Software Architecture: Muhammad Bilal Bashir
Advanced Software Architecture: Muhammad Bilal Bashir
Architecture
1
Outline
2
What is Software
Architecture?
Lecture: 2
3
1. What is Software Architecture?
Control
Process
(CP)
4
What is Missing?
5
Definition Again
Definition;
The software architecture of a program is the structure or
structures of the system, which comprise software elements,
the externally visible properties of these elements, and the
relationships among them
6
Externally Visible Properties
7
Definition Implications
8
2. Other Points of View
9
3. Useful Concepts
10
Architectural Patterns
11
Value of Patterns
12
Reference Models
13
Reference Architecture
14
Relationship among Architectural
Patterns, Reference Models &
Reference Architecture
Reference Model
Reference Software
Architecture Architecture
Architectural
Pattern
15
4. Why is Software Architecture
Important?
Three fundamental reasons from a technical
perspective:
Communication among stakeholders
a basis for mutual understanding, negotiation, & consensus
Early design decisions
earliest point at which decisions can be analyzed
Transferable abstraction of a system
can promote large-scale reuse
16
5. Structures and Views
17
Group of Architectural Structures
Module structures
units of implementation with assigned areas of functionality
- usually static
Component-and-connector structures
runtime components (principal units of computation) and
connectors (communication vehicles)
Allocation structures
show relationships between software elements & external
environments (creation or execution)
18
Three Types of Structures
19
Three Types of Structures
20
Non-functional Properties
21
Relating Structures to Each Other
22
Choosing Structures
23
Assignment# 1
24
Summary
Any Questions?
25