Software Architecture
Definitions, Roles, and Analogies
|
|
|
John D. McGregor |
|
Clemson University |
Definition from SAP
|
|
|
|
|
The software architecture of a program
or computing system is the structure or structures of the system, which
comprise software elements, the externally visible properties of those
elements, and the relationships among them. |
|
|
ANSI/IEEE Std 1471-2000
|
|
|
|
|
the fundamental organization of a
system, embodied in its components, their relationships to each other and the
environment, and the principles governing its design and evolution. |
|
|
Building Architecture
Analogy
|
|
|
Similarities |
|
Sense of aesthetics is present in both |
|
|
|
|
|
Differences |
|
Physical laws dont apply |
|
Software architecture still immature |
Leonardo da Vinci a
basic principle
Leonardo da Vinci -
observation
Leonardo da Vinci
At last a genuine
Leonardo
FallingWater
Christopher Alexander
Grands Magasins du Bon
Marche
Quality without a name
Realization hierarchy
Where do I start?
J2EE v. 1.4 architecture
Architecture as a blender
of technologies
Block diagram
4+1 Views - Krutchen
Tactics decomposition -
1
Tactics decomposition -
2
Tactics decomposition -
3
Reasoning - Latency
attribute
Reasoning statistical
model
Architecture and People
|
|
|
Stakeholder anyone having an interest
in the architecture |
|
|
|
Client |
|
User |
|
Designers |
|
|
Influences on the
architecture
|
|
|
Stakeholders |
|
|
|
Developing Organization |
|
|
|
Technical/Deployment environment |
|
|
|
Background of architects |
Architecture process
|
|
|
Understand the requirements |
|
|
|
Create architectures that satisfy the
requirements |
|
|
|
Evaluate the trade-offs among the
architectures |
|
|
|
Select appropriate architecture |
|
|
|
Repeat as requirements evolve |
|
|
|
|
Architectural pattern
|
|
|
description of element and relation
types and a set of constraints |
|
|
|
Architectural style |
|
|
|
Client/server implies multiple
clients seeking service from a resource |
Reference model
|
|
|
Characteristic of the domain in this
case ecommerce |
|
|
|
|
Reference architecture
Why architecture?
|
|
|
Communication among stakeholders |
|
|
|
Early design decisions |
|
|
|
Transferable abstraction of the system |
Architectural Structures
|
|
|
Module structures |
|
Which piece is responsible for what |
|
|
|
Component-connector structures |
|
how do the major pieces interact at
runtime |
|
|
|
Allocation structures |
|
allocates pieces of the
architecture to pieces of the external environment |
Module structures
Layered example OSI
Protocol Stack
Component/Connector
structures
Common Object Request
Broker
Allocation structures
Thread architecture
Eclipse environment
Eclipse requirements
|
|
|
Edit multiple files |
|
Select files |
|
Bind files into a project |
|
Build a project |
|
See the individual attributes |