Architecture
Architecture
Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz Product Line Architect Product Line Architect arnon@rgoarchitects.com
arnon@rgoarchitects.com
Agenda
Agenda
Why Software Architecture?
Why Software Architecture?
What’s Software Architecture?
What’s Software Architecture?
Architecture types ? Levels ???
Architecture types ? Levels ???
Introduction to Architecture
Introduction to Architecture
Documentation
Discussion
Discussion
What’s Software Architecture
Can be built by one person Requires
Minimal modeling Simple process Simple tools
Architecting a dog house
Architecting a dog house
Architecting a house
Architecting a house
Built most efficiently and timely by a team Requires
Modeling
Well-defined process Power tools
Architecting a high rise
Architecting a high rise
D
D
ifferences
ifferences
Scale
Scale
Process
Process
Cost
Cost
Schedule
Schedule
Skills and development teams
Skills and development teams
Materials and technologies
Materials and technologies
Stakeholders
Stakeholders
Risks
Agenda
Agenda
Why Software Architecture?
Why Software Architecture?
What’s Software Architecture?
What’s Software Architecture?
Architecture types ? Levels ???
Architecture types ? Levels ???
Introduction to Architecture
Introduction to Architecture
Documentation
Architecture defined
Architecture defined
Software architecture is what
Software architecture is what
software architects do
software architects do
Architecture defined
Architecture defined
Formal Definition
Formal Definition
IEEE 1471-2000
IEEE 1471-2000
Software architecture is the
Software architecture is the fundamentalfundamental organization
organization of a system, embodied in its of a system, embodied in its
components
components, their , their relationshipsrelationships to each to each other and the environment, and the
other and the environment, and the
principles
principles governing its design and evolution governing its design and evolution
Software architecture encompasses the Software architecture encompasses the
set of significant decisions about the set of significant decisions about the
organization of a software system organization of a software system
Selection of the structural elements and Selection of the structural elements and their interfaces by which a system is
their interfaces by which a system is composed
composed
Behavior as specified in collaborations Behavior as specified in collaborations among those elements
among those elements
Composition of these structural and Composition of these structural and behavioral elements into larger
behavioral elements into larger subsystems
subsystems
Architectural style that guides this Architectural style that guides this organization
organization
Booch, Kruchten, Reitman, Bittner, and Shaw
Architecture defined
Architecture defined
Perry and Wolf, 1992 Perry and Wolf, 1992
A set of architectural (or design) A set of architectural (or design) elementselements that have a particular form that have a particular form
Boehm et al., 1995 Boehm et al., 1995
A software system architecture comprises A software system architecture comprises
A collection of software and system
A collection of software and system components, connections, and constraints components, connections, and constraints A collection of
A collection of system stakeholders' need statementssystem stakeholders' need statements A
A rationalerationale which demonstrates that the components, connections, and constraints which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system
define a system that, if implemented, would satisfy the collection of system stakeholders' need statements
stakeholders' need statements
Clements et al., 1997 Clements et al., 1997
The software architecture of a program or computing system is the The software architecture of a program or computing system is the structure or structures of the system, which comprise
structure or structures of the system, which comprise software componentssoftware components, , the externally visible properties of those components, and the relationships the externally visible properties of those components, and the relationships among them
among them
http://www.sei.edu/architecture/definitions.html
Architecture defined
Architecture defined
Common elements 1/2
Common elements 1/2
Architecture defines major
Architecture defines major
components
components
Architecture defines component
Architecture defines component
relationships
relationships (structures) and (structures) and interactions
interactions
Architecture omits content
Architecture omits content
information about components that
information about components that
does not pertain to their interactions
does not pertain to their interactions
Behavior of components is a part of
Behavior of components is a part of
architecture insofar as it can be
architecture insofar as it can be
discerned from the point of view of
discerned from the point of view of
another component
Common elements 2/2
Common elements 2/2
Every system has an architecture
Every system has an architecture
(even a system composed of one
(even a system composed of one
component)
component)
Architecture defines the
Architecture defines the rationalerationale behind the components and the
behind the components and the
structure
structure
Architecture definitions do not define
Architecture definitions do not define
what a component is
what a component is
Architecture is not a single structure
Architecture is not a single structure
-- no single structure is
-- no single structure is the the
architecture
Architecture is Early
Architecture is Early
Architecture represents the set of earliest Architecture represents the set of earliest
design decisions design decisions
Hardest to change
Hardest to change
Most critical to get right
Most critical to get right
Architecture is the first design artifact Architecture is the first design artifact
where a system’s quality attributes are where a system’s quality attributes are
Architecture Drives
Architecture Drives
Architecture serves as the blueprint
Architecture serves as the blueprint
for the system but also the project:
for the system but also the project:
Team structure Team structure
Documentation organization Documentation organization
Work breakdown structure Work breakdown structure
Scheduling, planning, budgeting Scheduling, planning, budgeting
Unit testing, integration Unit testing, integration
Architecture establishes the
Architecture establishes the
communication and coordination
communication and coordination
mechanisms among components
Architecture vs. Design
Architecture vs. Design
non-functional requirements
(“ilities”)
functional requirements
(domains)
Important : this is a general guideline – sometimes the borders are
Important : this is a general guideline – sometimes the borders are
blurred
blurred
Architecture:
Architecture: where non-functional decisions are cast, where non-functional decisions are cast, and functional requirements are partitioned
and functional requirements are partitioned
Design:
Design: where functional requirements are where functional requirements are accomplished
accomplished
architecture
architecture
design
System Quality Attribute
System Quality Attribute
Performance Performance Availability Availability Usability Usability Security Security Maintainabili Maintainabili ty ty Portability Portability Reusability Reusability Testability Testability
End User’s view
Developer’s view Time To Time To Market Market Cost and Cost and Benefits Benefits Projected life Projected life time time Targeted Targeted Market Market Integration Integration with Legacy with Legacy System System Roll back Roll back Schedule Schedule Business Community view
A list of quality attributes exists in
A list of quality attributes exists in
ISO/IEC 9126-2001 Information Technology – Software Product Quality
Agenda
Agenda
Why Software Architecture?
Why Software Architecture?
What’s Software Architecture?
What’s Software Architecture?
Software Architecture types ?
Software Architecture types ?
Levels ???
Levels ???
Introduction to Architecture
Introduction to Architecture
Documentation
Business Architecture
Business Architecture
Concerned with the business model
Concerned with the business model
as it relates to an automated
as it relates to an automated
solution.
solution.
E-business is a good candidate E-business is a good candidate
Structural part of requirements Structural part of requirements
analysis. analysis.
Technical Architecture
Technical Architecture
Specific to technology and the use of
Specific to technology and the use of
this technology to structure the
this technology to structure the
technical points (Technology
technical points (Technology
Mapping) of an architecture
Mapping) of an architecture
.NET .NET J2EE J2EE
Solutions Architecture
Solutions Architecture
Specific to a particular business area
Specific to a particular business area
(or project) but still reliant on being a
(or project) but still reliant on being a
technical focal point for
technical focal point for
communications between the domain
communications between the domain
architect, business interests and
architect, business interests and
development.
Enterprise Architecture
Enterprise Architecture
The organizing logic for a firm’s core
The organizing logic for a firm’s core
business processes and IT
business processes and IT
capabilities captured in a
capabilities captured in a set of set of principles
principles, , policiespolicies and and technical technical choices
choices to achieve the business to achieve the business standardization and integration
standardization and integration
requirements of the firm’s operating
requirements of the firm’s operating
model.
model.
Concerned with cross project/solution
Concerned with cross project/solution
architecture and communication
architecture and communication
between different practices in
between different practices in
architecture.
Product Line Architecture
Product Line Architecture
Common Architecture for a set of
Common Architecture for a set of
products or systems developed by
products or systems developed by
an organization
Product Line - Initiation
Product Line - Initiation
Evolutionary
Evolutionary
Product line architecture and Product line architecture and
components evolve with the components evolve with the
requirements posed by new product requirements posed by new product
line members. line members.
Revolutionary
Revolutionary
Product line architecture and components
Product line architecture and components
developed to match requirements of all
developed to match requirements of all
expected product-line members
Agenda
Agenda
Why Software Architecture?
Why Software Architecture?
What’s Software Architecture?
What’s Software Architecture?
Architecture types ? Levels ???
Architecture types ? Levels ???
Introduction to Architecture
Introduction to Architecture
Documentation
IEEE 1471 - Recap
IEEE 1471 - Recap
Recommended Practice for
Recommended Practice for
Architectural Description of
Architectural Description of
Architectural Description of
Architectural Description of
Software-Intensive Systems
Software-Intensive Systems
Define the Relations between Define the Relations between
Stakeholders
Stakeholders
Concerns
Concerns
Views
Views
Viewpoint
Viewpoint
Models
Models
Architectural Description
Documentation Conceptual
Documentation Conceptual
Model
Model
Stakeholders & their
Stakeholders & their
concerns
concerns
Ease of Integration
Ease of Integration
Ease of Use
Ease of Use
Functionality Functionality Price Price Dev Costs Dev Costs
On Time Delivery
On Time Delivery
Performance
Performance
Stability & Maintainability
Stability & Maintainability
Ease of Debugging
Ease of Debugging
Modifiability
Modifiability
Testability & Traceability
Testability & Traceability
Structure & dependency between component
Structure & dependency between component
Ease of Installation
Documentation Conceptual
Documentation Conceptual
Model
Model
Discussion
Discussion
What views do you know / use
Views, Views and more
Views, Views and more
Views
Views
RUP – 4 + 1
RUP – 4 + 1
RM-ODP – 5
RM-ODP – 5
DODAF – 3 (top level)
DODAF – 3 (top level)
Zachman – 36(!)
Zachman – 36(!)
MS – Well…
RM-ODP Viewpoints
RM-ODP Viewpoints
(2001)
(2001)
Enterprise
Information
Engineering Technology
Computational
Manager Database Modeler
Operating Sys. Engineer
Designers
Developer Business model
Logical, data modeling Logical view of services
Servers, Comm, Physical view of
Zachman Framework
Zachman Framework
Scope (Ballpark) view
Scope (Ballpark) view
Owners View (Enterprise Model)
Owners View (Enterprise Model)
Designers View (System Model)
Designers View (System Model)
Builder’s View (Technology Model)
Builder’s View (Technology Model)
Out of Context View (Detailed Model)
Out of Context View (Detailed Model)
Operational View (Functioning)
Operational View (Functioning)
Old Model
Old Model
MSF 3.0 + Views MSF 3.0 + Views
Contextual Contextual
Conceptual Conceptual
Logical Logical
Physical Physical
Aimed at business Aimed at business
executives executives
Aimed at business Aimed at business process owners process owners
Aimed at Aimed at
architects and architects and
designers designers
Aimed at Aimed at
designers and designers and
Business strategies &
Business strategies &
processes processes Applications to Applications to facilitate business facilitate business process process
Information needed to
Information needed to
manage business
manage business
Technology to support
Technology to support
business & business & application needs application needs Contextual Contextual Conceptual Conceptual Logical Logical Physical Physical B u si n es s V ie w A p p li ca ti o n s V ie w In fo rm at io n V ie w T e ch n o lo g y V ie w
Old Model
Old Model
New Model
New Model
set of views and artifacts -
set of views and artifacts -
Business Business Capabilities Capabilities Business Business Capabilities
Capabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into
packaged into deployed ondeployed on
Can be mapped…
Can be mapped…
Contextual Contextual Conceptual Conceptual Logical Logical Physical Physical Business
Business ApplicationsApplications InformationInformation TechnologyTechnology Business Business Capabilities Capabilities Business Business Capabilities
Capabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into
packaged into deployed ondeployed on
Documentation Conceptual
Documentation Conceptual
Model
Model
Models
Models
Non-standard Models
Non-standard Models
ADL
ADL
UML
UML
DSL
“
“
Non Standard” - Block
Non Standard” - Block
Diagrams
Diagrams
EAI
Human Workflow
ECM DW OLTP E-Publish DAL Service Agents Business Rules Activity Workflow A u th or iz at io n M on ito rin g Service Interface Controls L og & T ra ce E xc ep tio n M an ag em en t C on fig u ra tio n A u th en ti ca ti on Si gn in g
An ADL Example (in
An ADL Example (in
ACME)
ACME)
System simple_cs = {System simple_cs = {Component client = {Port send-request}
Component client = {Port send-request}
Component server = {Port receive-request}
Component server = {Port receive-request}
Connector rpc = {Roles {caller, callee}}
Connector rpc = {Roles {caller, callee}}
Attachments : {client.send-request to rpc.caller;
Attachments : {client.send-request to rpc.caller;
server.receive-request to rpc.callee}server.receive-request to rpc.callee} }
}
System simple_cs = {
System simple_cs = {
Component client = {Port send-request} Component client = {Port send-request} Component server = {Port receive-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Connector rpc = {Roles {caller, callee}}
Attachments : {client.send-request to rpc.caller; Attachments : {client.send-request to rpc.caller;
ADL - Pros
ADL - Pros
ADLs represent a formal way of ADLs represent a formal way of
representing architecture representing architecture
ADLs are intended to be both human and ADLs are intended to be both human and
machine readable machine readable
ADLs support describing a system at a ADLs support describing a system at a
higher level than previously possible higher level than previously possible
ADLs permit analysis of architectures – ADLs permit analysis of architectures – completeness, consistency, ambiguity, completeness, consistency, ambiguity,
and performance and performance
ADLs can support automatic generation of ADLs can support automatic generation of
ADL - Cons
ADL - Cons
There is not universal agreement on what There is not universal agreement on what
ADLs should represent, particularly as ADLs should represent, particularly as
regards the behavior of the architecture regards the behavior of the architecture
Representations currently in use are Representations currently in use are
relatively difficult to parse and are not relatively difficult to parse and are not
supported by commercial tools supported by commercial tools
Most ADLs tend to be very vertically Most ADLs tend to be very vertically
optimized toward a particular kind of optimized toward a particular kind of
analysis analysis
Most ADL work today has been Most ADL work today has been
undertaken with academic rather than undertaken with academic rather than
UML 2.0
UML 2.0
13 diagram types
DSL
DSL
Business Business Capabilities Capabilities Business Business CapabilitiesCapabilities Manual Manual Procedures Procedures Manual Manual Procedures Procedures Technology Technology Architecture Architecture Technology Technology Architecture Architecture Constraints Constraints Reconciliation Reconciliation Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints Services, Messages, Services, Messages, Applications, Endpoints Applications, Endpoints XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, Code DBs, Classes, Code
Logical Logical Data Center Data Center Logical Logical Data Center Data Center Physical servers Physical servers & segments & segments Deployment Deployment Units Units Deployment Deployment Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into
packaged into deployed ondeployed on
ADL - revisited
ADL - revisited
ADLs are essentially a DSL for
ADLs are essentially a DSL for
architecture
architecture
The Architecture DSLs in VSTS – can
The Architecture DSLs in VSTS – can
be considered as an ADL
be considered as an ADL
The difference – VSTS has a set of The difference – VSTS has a set of languages instead of one trying to languages instead of one trying to
Discussion
Discussion
What’s the “best” modeling
What’s the “best” modeling
techniques
Documentation Conceptual
Documentation Conceptual
Model
Model