Architecture
Architecture
Arnon Rotem-Gal-Oz
Product Line Architect
[email protected]
http://www.rgoarchitects.com
Agenda
Why Software Architecture?
What’s Software Architecture?
Architecture types ? Levels ???
Introduction to Architecture Documentation
Discussion
What’s Software Architecture
Architecting a dog house
Kruchten
Architecting a house
Kruchten
Architecting a high rise
Kruchten
Differences
Scale
Process
Cost
Schedule
Skills and development teams
Materials and technologies
Stakeholders
Risks
Agenda
Why Software Architecture?
What’s Software Architecture?
Architecture types ? Levels ???
Introduction to Architecture Documentation
Architecture defined
Software architecture is what software
architects do
Beck
Architecture defined
Formal Definition
IEEE 1471-2000
Software architecture is 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
IEEE 1471-2000
Architecture defined
Another Go
Software architecture encompasses the set of
significant decisions about the organization of a
software system
Selection of the structural elements and their
interfaces by which a system is composed
Behavior as specified in collaborations among those
elements
Composition of these structural and behavioral
elements into larger subsystems
Architectural style that guides this organization
http://www.sei.edu/architecture/definitions.html
Common elements 1/2
Architecture defines major components
Architecture defines component relationships
(structures) and interactions
Architecture omits content information about
components that does not pertain to their
interactions
Behavior of components is a part of
architecture insofar as it can be discerned
from the point of view of another component
Common elements 2/2
Every system has an architecture (even a
system composed of one component)
Architecture defines the rationale behind the
components and the structure
Architecture definitions do not define what a
component is
Architecture is not a single structure -- no
single structure is the architecture
Architecture is Early
non-functional architecture
requirements
(“ilities”)
functional
requirements design
(domains)
IEEE 1471-2000
Stakeholders & their concerns
Maintainer Functionality
Price
End User
Dev Costs
Customer On Time Delivery
Sales
Performance
Stability & Maintainability
Dev Manager
Ease of Use
Developer Ease of Debugging
Modifiability
IEEE 1471-2000
Discussion
What views do you know / use
Views, Views and more Views
RUP – 4 + 1
RM-ODP – 5
DODAF – 3 (top level)
Zachman – 36(!)
MS – Well…
RUP – 4+1
RM-ODP Viewpoints (2001)
Manager
Business model
Database Modeler Enterprise Designers
Logical, data modeling Logical view of services
Information Computational
Conceptual
Aimed at business
process owners
Physical
Aimed at designers and
developers
Old Model
MSF 3.0 + Views
Business strategies &
Contextual processes
Applications View
Technology View
Information View
Applications to facilitate
Business View
Information needed to
Logical
manage business
Technology to support
Physical
business & application
needs
New Model
set of views and artifacts -
Business
Business Technology
Technology
Capabilities
Capabilities Manual
Manual Architecture
Architecture
Reconciliation Procedures
Procedures
BusinessProcesses
Business Processes Constraints
andEntities
and Entities
Reconciliation
Services,Messages,
Messages, Logical
Logical
Services, Constraints DataCenter
Center
Applications,Endpoints
Applications, Endpoints Data
Abstraction/
Abstraction/ Refinement
Refinement Physical servers &
XML,Projects,
XML, Projects,
segments
DBs,Classes,
DBs, Classes,Code
Code
Deployment
Deployment
packaged into Units deployed on
Units
Can be mapped…
Business Applications Information Technology
Business
Business Technology
Technology
Capabilities
Contextual
Capabilities Manual
Manual Architecture
Architecture
Reconciliation Procedures
Procedures
BusinessProcesses
Business Processes Constraints
Conceptual and Entities
and Entities
Reconciliation
Logical
Logical
Logical Services,Messages,
Services, Messages,
Applications,Endpoints
Endpoints Constraints DataCenter
Data Center
Applications,
Abstraction/
Abstraction/ Refinement
Physical
Refinement
XML,Projects,
Projects,
Physical servers &
XML, segments
DBs,Classes,
DBs, Classes,Code
Code
Deployment
Deployment
packaged into Units deployed on
Units
Documentation Conceptual Model
IEEE 1471-2000
Models
Non-standard Models
ADL
UML
DSL
“Non Standard” - Block
Diagrams
Rich UI Web UI Controls
Exception Management
Service Interface
Authentication
Configuration
Authorization
rpc
client server
caller callee
send-request receive-request
ADL - Pros
ADLs represent a formal way of representing
architecture
ADLs are intended to be both human and machine
readable
ADLs support describing a system at a higher level
than previously possible
ADLs permit analysis of architectures –
completeness, consistency, ambiguity, and
performance
ADLs can support automatic generation of
simulations / software systems
ADL - Cons
There is not universal agreement on what ADLs
should represent, particularly as regards the behavior
of the architecture
Representations currently in use are relatively
difficult to parse and are not supported by
commercial tools
Most ADLs tend to be very vertically optimized
toward a particular kind of analysis
Most ADL work today has been undertaken with
academic rather than commercial goals in mind
UML 2.0
13 diagram types
UML
DSL
Business
Business Technology
Technology
Capabilities
Capabilities Manual
Manual Architecture
Architecture
Reconciliation Procedures
Procedures
BusinessProcesses
Business Processes Constraints
andEntities
and Entities
Reconciliation
Services,Messages,
Messages, Logical
Logical
Services, Constraints DataCenter
Center
Applications,Endpoints
Applications, Endpoints Data
Abstraction/
Abstraction/ Refinement
Refinement Physical servers &
XML,Projects,
XML, Projects,
segments
DBs,Classes,
DBs, Classes,Code
Code
Deployment
Deployment
packaged into Units deployed on
Units
ADL - revisited
ADLs are essentially a DSL for architecture
The Architecture DSLs in VSTS – can be
considered as an ADL
The difference – VSTS has a set of languages
instead of one trying to encompass all views
Discussion
What’s the “best” modeling techniques
Documentation Conceptual Model
IEEE 1471-2000
Discussion
How much documentation
Famous Last Words…
“It is a very humbling experience to make a
multimillion-dollar mistake, but it is also very
memorable….” (Fred Brooks - “Mythical Man-Month”
p.47)
The Need of Architecture
The Winchester “Mystery” House