Post on 02-Jan-2017
ArchitectureArchitectureArnon Rotem-Gal-OzArnon Rotem-Gal-Oz
Product Line ArchitectProduct Line Architectarnon@rgoarchitects.comarnon@rgoarchitects.com
http://www.rgoarchitects.comhttp://www.rgoarchitects.com
AgendaAgendaWhy 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
DDifferencesifferencesScaleScaleProcessProcessCostCostScheduleScheduleSkills and development teamsSkills and development teamsMaterials and technologiesMaterials and technologiesStakeholders Stakeholders RisksRisks
AgendaAgendaWhy 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 definedSoftware 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 composedcomposedBehavior as specified in collaborations Behavior as specified in collaborations among those elementsamong those elementsComposition of these structural and Composition of these structural and behavioral elements into larger behavioral elements into larger subsystemssubsystemsArchitectural 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 statementsA 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/2Architecture defines major Architecture defines major componentscomponentsArchitecture defines component Architecture defines component relationshipsrelationships (structures) and (structures) and interactionsinteractionsArchitecture 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/2Every 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 structurestructureArchitecture definitions do not define Architecture definitions do not define what a component iswhat a component isArchitecture 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 EarlyArchitecture represents the set of earliest Architecture represents the set of earliest design decisionsdesign decisions
Hardest to changeHardest to changeMost 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 structureDocumentation organizationDocumentation organizationWork breakdown structureWork breakdown structureScheduling, planning, budgetingScheduling, planning, budgetingUnit 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 AttributePerformancePerformanceAvailabilityAvailabilityUsabilityUsabilitySecuritySecurity
MaintainabiliMaintainabilitytyPortabilityPortabilityReusabilityReusabilityTestabilityTestability
End User’s view
Developer’s view
Time To MarketTime To MarketCost and BenefitsCost and BenefitsProjected life timeProjected life timeTargeted MarketTargeted MarketIntegration with Integration with Legacy SystemLegacy SystemRoll 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
AgendaAgendaWhy 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 ArchitectureConcerned 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 candidateStructural part of requirements Structural part of requirements analysis.analysis.Domain Specific Domain Specific
Technical ArchitectureTechnical ArchitectureSpecific 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.NETJ2EEJ2EE Hardware architectsHardware architects
Solutions ArchitectureSolutions ArchitectureSpecific 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. development.
Enterprise ArchitectureEnterprise ArchitectureThe 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 project/solution Concerned with cross project/solution architecture and communication architecture and communication between different practices in between different practices in architecture. architecture.
Product Line ArchitectureProduct Line ArchitectureCommon 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 - InitiationEvolutionaryEvolutionary
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.
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
AgendaAgendaWhy 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 - RecapRecommended 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 betweenStakeholdersStakeholdersConcernsConcernsViewsViewsViewpointViewpointModelsModelsArchitectural 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
DiscussionDiscussionWhat views do you know / useWhat views do you know / use
Views, Views and more Views, Views and more ViewsViews
RUP – 4 + 1RUP – 4 + 1RM-ODP – 5RM-ODP – 5DODAF – 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
Bus
ines
s Vi
ew
App
licat
ions
Vie
w
Info
rmat
ion
View
Tech
nolo
gy V
iew
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 Manual Manual
ProceduresProceduresTechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Can be mapped…Can be mapped…
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
BusinessBusiness ApplicationsApplications InformationInformation TechnologyTechnologyBusiness Business
CapabilitiesCapabilities Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Documentation Conceptual Documentation Conceptual ModelModel
IEEE 1471-2000
ModelsModelsNon-standard ModelsNon-standard ModelsADLADLUMLUMLDSLDSL
““Non Standard” - Block Non Standard” - Block DiagramsDiagrams
EAI
Human Workflow
ECM DW OLTPE-Publish
DALService Agents
Business RulesActivity
Workflow
Aut
hori
zatio
n Monitoring
Service Interface
Controls
Log &
Trace
Exception M
anagement
Configuration
Aut
hent
icat
ion
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}
}}
client
send-request
server
receive-requestcaller callee
rpc
ADL - ProsADL - ProsADLs represent a formal way of ADLs represent a formal way of representing architecturerepresenting architectureADLs are intended to be both human and ADLs are intended to be both human and machine readablemachine readableADLs support describing a system at a ADLs support describing a system at a higher level than previously possiblehigher level than previously possibleADLs permit analysis of architectures – ADLs permit analysis of architectures – completeness, consistency, ambiguity, completeness, consistency, ambiguity, and performanceand performanceADLs can support automatic generation of ADLs can support automatic generation of simulations / software systemssimulations / software systems
ADL - ConsADL - ConsThere 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 architectureRepresentations 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 toolsMost 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 analysisanalysisMost 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.013 diagram types13 diagram types
UMLUML
DSLDSLBusiness Business
CapabilitiesCapabilities Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
ADL - revisitedADL - revisitedADLs 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
DiscussionDiscussionWhat’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 architects160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 doorsdoors65 doors to blank walls, 13 staircases abandoned, 24 65 doors to blank walls, 13 staircases abandoned, 24 skylights in floorsskylights in floorsNo architectural blueprint existsNo architectural blueprint exists