Technical Architecture
description
Transcript of Technical Architecture
ArchitectureArchitectureArnon Rotem-Gal-OzArnon Rotem-Gal-Oz
Product Line ArchitectProduct Line [email protected]@rgoarchitects.com
http://www.rgoarchitects.comhttp://www.rgoarchitects.com
AgendaAgenda
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 DocumentationDocumentation
Discussion Discussion
What’s Software ArchitectureWhat’s Software Architecture
Can be built by one personRequires
Minimal modelingSimple processSimple tools
Architecting a dog house Architecting a dog house
Kruchten
Architecting a houseArchitecting a house
Built most efficiently and timely by a teamRequires
ModelingWell-defined processPower tools
Kruchten
Architecting a high riseArchitecting a high rise
Kruchten
DDifferencesifferences
ScaleScale
ProcessProcess
CostCost
ScheduleSchedule
Skills and development teamsSkills and development teams
Materials and technologiesMaterials and technologies
Stakeholders Stakeholders
RisksRisks
AgendaAgenda
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 DocumentationDocumentation
Architecture definedArchitecture defined
Software architecture is what Software architecture is what software architects dosoftware architects do
Beck
Architecture definedArchitecture definedFormal DefinitionFormal Definition
IEEE 1471-2000IEEE 1471-2000 Software architecture is the Software architecture is the fundamentalfundamental organizationorganization of a system, embodied in its of a system, embodied in its componentscomponents, their , their relationshipsrelationships to each to each other and the environment, and the other and the environment, and the principlesprinciples governing its design and evolution governing its design and evolution
IEEE 1471-2000
Software architecture encompasses the Software architecture encompasses the set of significant decisions about the set of significant decisions about the organization of a software systemorganization 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 composedcomposed
Behavior as specified in collaborations Behavior as specified in collaborations among those elementsamong those elements
Composition of these structural and Composition of these structural and behavioral elements into larger behavioral elements into larger subsystemssubsystems
Architectural style that guides this Architectural style that guides this organizationorganizationBooch, Kruchten, Reitman, Bittner, and Shaw
Architecture definedArchitecture definedAnother GoAnother Go
Perry and Wolf, 1992Perry 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., 1995Boehm 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 constraintscomponents, connections, and constraints
A collection of A collection of system stakeholders'system stakeholders' need statements 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 statementsstakeholders' 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 themamong them
http://www.sei.edu/architecture/definitions.html
Architecture definedArchitecture definedFew MoreFew More
Common elements 1/2Common elements 1/2
Architecture defines major Architecture defines major componentscomponents
Architecture defines component Architecture defines component relationshipsrelationships (structures) and (structures) and interactionsinteractions
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 componentanother component
Common elements 2/2Common 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 structurestructure
Architecture definitions do not define Architecture definitions do not define what a component iswhat 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
Architecture is EarlyArchitecture is Early
Architecture represents the set of earliest Architecture represents the set of earliest design decisionsdesign decisions
Hardest to changeHardest to change
Most critical to get rightMost 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 addressedaddressed
Architecture DrivesArchitecture 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 structureTeam structure
Documentation organizationDocumentation organization
Work breakdown structureWork breakdown structure
Scheduling, planning, budgetingScheduling, planning, budgeting
Unit testing, integrationUnit testing, integration
Architecture establishes the Architecture establishes the communication and coordination communication and coordination mechanisms among componentsmechanisms among components
Architecture vs. DesignArchitecture 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 partitionedand functional requirements are partitionedDesign:Design: where functional requirements are where functional requirements are accomplishedaccomplished
architecturearchitecture
designdesign
System Quality AttributeSystem Quality Attribute
PerformancePerformance
AvailabilityAvailability
UsabilityUsability
SecuritySecurity
MaintainabiliMaintainabilityty
PortabilityPortability
ReusabilityReusability
TestabilityTestability
End User’s view
Developer’s view
Time To MarketTime To Market
Cost and BenefitsCost and Benefits
Projected life timeProjected life time
Targeted MarketTargeted Market
Integration with Integration with Legacy SystemLegacy System
Roll back Roll back ScheduleSchedule
BusinessCommunityview
A list of quality attributes exists inA list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality ISO/IEC 9126-2001 Information Technology – Software Product Quality
AgendaAgenda
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 DocumentationDocumentation
Business ArchitectureBusiness 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 candidateE-business is a good candidate
Structural part of requirements Structural part of requirements analysis.analysis.
Domain Specific Domain Specific
Technical ArchitectureTechnical 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 architectureMapping) of an architecture
.NET.NET
J2EEJ2EE
Hardware architectsHardware architects
Solutions ArchitectureSolutions Architecture
Specific to a particular business area Specific to a particular business area (or project) but still reliant on being (or project) but still reliant on being a technical focal point for a technical focal point for communications between the communications between the domain architect, business interests domain architect, business interests and development. and development.
Enterprise ArchitectureEnterprise 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 principlesprinciples, , policiespolicies and and technical technical choiceschoices 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 Concerned with cross project/solution architecture and project/solution architecture and communication between different communication between different practices in architecture. practices in architecture.
Product Line ArchitectureProduct 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 organizationan organization
Product Line - InitiationProduct Line - Initiation
EvolutionaryEvolutionaryProduct 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.
RevolutionaryRevolutionaryProduct line architecture and components Product line architecture and components developed to match requirements of all developed to match requirements of all expected product-line membersexpected product-line members
AgendaAgenda
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 DocumentationDocumentation
IEEE 1471 - RecapIEEE 1471 - Recap
Recommended Practice for Recommended Practice for Architectural Description of Architectural Description of Architectural Description of Architectural Description of Software-Intensive SystemsSoftware-Intensive Systems
Define the Relations betweenDefine the Relations betweenStakeholdersStakeholders
ConcernsConcerns
ViewsViews
ViewpointViewpoint
ModelsModels
Architectural DescriptionArchitectural Description
Documentation Conceptual Documentation Conceptual ModelModel
IEEE 1471-2000
Stakeholders & their Stakeholders & their concernsconcerns
Ease of IntegrationEase of Integration
Ease of UseEase of Use
FunctionalityFunctionality
PricePrice
Dev CostsDev Costs
On Time DeliveryOn Time Delivery
PerformancePerformance
Stability & MaintainabilityStability & Maintainability
Ease of DebuggingEase of Debugging
ModifiabilityModifiability
Testability & TraceabilityTestability & Traceability
Structure & dependency between componentStructure & dependency between component
Ease of InstallationEase of Installation
End UserEnd User
Sales Sales
Dev ManagerDev Manager
DeveloperDeveloper
Sys AdminSys Admin
MaintainerMaintainer
CustomerCustomer
Documentation Conceptual Documentation Conceptual ModelModel
IEEE 1471-2000
DiscussionDiscussion
What views do you know / useWhat views do you know / use
Views, Views and more Views, Views and more ViewsViews
RUP – 4 + 1RUP – 4 + 1
RM-ODP – 5RM-ODP – 5
DODAF – 3 (top level)DODAF – 3 (top level)
Zachman – 36(!)Zachman – 36(!)
MS – Well…MS – Well…
RUP – 4+1RUP – 4+1
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 data and services (IDL, WSDL)
DODAF (3 Main Views)DODAF (3 Main Views)
DoDAF Products 1/2DoDAF Products 1/2
DoDAF Products 2/2DoDAF Products 2/2
Zachman FrameworkZachman Framework
Scope (Ballpark) viewScope (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)
DataData(What)(What)
FunctionFunction(How)(How)
NetworkNetwork(Where)(Where)
PeoplePeople(Who)(Who)
TimeTime(When)(When)
MotivationMotivation(Why)(Why)
Old Model Old Model MSF 3.0 + ViewsMSF 3.0 + Views
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
Aimed at business Aimed at business executivesexecutives
Aimed at business Aimed at business process ownersprocess owners
Aimed at Aimed at architects and architects and designersdesigners
Aimed at Aimed at designers and designers and developersdevelopers
Business strategies & Business strategies & processesprocesses
Applications to Applications to facilitate business facilitate business processprocess
Information needed to Information needed to manage businessmanage business
Technology to support Technology to support business & business & application needsapplication needs
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
Bu
sin
ess
Vie
w
Ap
pli
cati
on
s V
iew
Info
rmat
ion
Vie
w
Tec
hn
olo
gy
Vie
w
Old Model Old Model MSF 3.0 + ViewsMSF 3.0 + Views
New ModelNew Modelset of views and artifacts - set of views and artifacts -
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Can be mapped…Can be mapped…
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
BusinessBusiness ApplicationsApplications InformationInformation TechnologyTechnology
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Documentation Conceptual Documentation Conceptual ModelModel
IEEE 1471-2000
ModelsModels
Non-standard ModelsNon-standard Models
ADLADL
UMLUML
DSLDSL
““Non Standard” - Block Non Standard” - Block DiagramsDiagrams
EAI
Human Workflow
ECM DW OLTPE-Publish
DALService Agents
Business RulesActivity
Workflow
Au
thor
izat
ion M
onitoring
Service Interface
Controls
Log &
Trace
Exception
Man
agement
Configuration
Au
then
tica
tion
Sign
ing
Rich UI Web UI
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; server.receive-request to rpc.callee}server.receive-request to rpc.callee}
}}
client
send-request
server
receive-requestcaller callee
rpc
ADL - ProsADL - Pros
ADLs represent a formal way of ADLs represent a formal way of representing architecturerepresenting architecture
ADLs are intended to be both human and ADLs are intended to be both human and machine readablemachine readable
ADLs support describing a system at a ADLs support describing a system at a higher level than previously possiblehigher level than previously possible
ADLs permit analysis of architectures – ADLs permit analysis of architectures – completeness, consistency, ambiguity, completeness, consistency, ambiguity, and performanceand performance
ADLs can support automatic generation of ADLs can support automatic generation of simulations / software systemssimulations / software systems
ADL - ConsADL - 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 architectureregards 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 toolssupported 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 analysisanalysis
Most ADL work today has been Most ADL work today has been undertaken with academic rather than undertaken with academic rather than commercial goals in mindcommercial goals in mind
UML 2.0UML 2.0
13 diagram types13 diagram types
UMLUML
DSLDSL
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
ADL - revisitedADL - 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 ADLbe 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 encompass all viewsencompass all views
DiscussionDiscussion
What’s the “best” modeling What’s the “best” modeling techniquestechniques
Documentation Conceptual Documentation Conceptual ModelModel
IEEE 1471-2000
Discussion Discussion
How much documentationHow much documentation
Famous Last Words…Famous Last Words…
““It is a very humbling experience to It is a very humbling experience to make a multimillion-dollar mistake, make a multimillion-dollar mistake, but it is also very memorable….”but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)(Fred Brooks - “Mythical Man-Month” p.47)
The Need of ArchitectureThe Need of ArchitectureThe Winchester “Mystery” HouseThe Winchester “Mystery” House
38 years of construction – 147 builders 0 architects38 years of construction – 147 builders 0 architects
160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 doorsdoors
65 doors to blank walls, 13 staircases abandoned, 24 65 doors to blank walls, 13 staircases abandoned, 24 skylights in floorsskylights in floors
No architectural blueprint existsNo architectural blueprint exists