Software Architecture (ppt)

58
Architecture Architecture Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz Product Line Architect Product Line Architect [email protected] [email protected] http://www.rgoarchitects.com http://www.rgoarchitects.com

Transcript of Software Architecture (ppt)

Page 1: Software Architecture (ppt)

ArchitectureArchitectureArnon Rotem-Gal-OzArnon Rotem-Gal-Oz

Product Line ArchitectProduct Line [email protected]@rgoarchitects.com

http://www.rgoarchitects.comhttp://www.rgoarchitects.com

Page 2: Software Architecture (ppt)

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

Page 3: Software Architecture (ppt)

Discussion Discussion What’s Software ArchitectureWhat’s Software Architecture

Page 4: Software Architecture (ppt)

Can be built by one personRequires

Minimal modelingSimple processSimple tools

Architecting a dog house Architecting a dog house

Kruchten

Page 5: Software Architecture (ppt)

Architecting a houseArchitecting a house

Built most efficiently and timely by a teamRequires

ModelingWell-defined processPower tools

Kruchten

Page 6: Software Architecture (ppt)

Architecting a high riseArchitecting a high rise

Kruchten

Page 7: Software Architecture (ppt)

DDifferencesifferencesScaleScaleProcessProcessCostCostScheduleScheduleSkills and development teamsSkills and development teamsMaterials and technologiesMaterials and technologiesStakeholders Stakeholders RisksRisks

Page 8: Software Architecture (ppt)

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

Page 9: Software Architecture (ppt)

Architecture definedArchitecture definedSoftware architecture is what Software architecture is what software architects dosoftware architects do

Beck

Page 10: Software Architecture (ppt)

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

Page 11: Software Architecture (ppt)

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

Page 12: Software Architecture (ppt)

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

Page 13: Software Architecture (ppt)

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

Page 14: Software Architecture (ppt)

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

Page 15: Software Architecture (ppt)

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

Page 16: Software Architecture (ppt)

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

Page 17: Software Architecture (ppt)

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

Page 18: Software Architecture (ppt)

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

Page 19: Software Architecture (ppt)

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

Page 20: Software Architecture (ppt)

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

Page 21: Software Architecture (ppt)

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

Page 22: Software Architecture (ppt)

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.

Page 23: Software Architecture (ppt)

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.

Page 24: Software Architecture (ppt)

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

Page 25: Software Architecture (ppt)

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

Page 26: Software Architecture (ppt)

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

Page 27: Software Architecture (ppt)

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

Page 28: Software Architecture (ppt)

Documentation Conceptual Documentation Conceptual ModelModel

IEEE 1471-2000

Page 29: Software Architecture (ppt)

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

Page 30: Software Architecture (ppt)

Documentation Conceptual Documentation Conceptual ModelModel

IEEE 1471-2000

Page 31: Software Architecture (ppt)

DiscussionDiscussionWhat views do you know / useWhat views do you know / use

Page 32: Software Architecture (ppt)

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…

Page 33: Software Architecture (ppt)

RUP – 4+1RUP – 4+1

Page 34: Software Architecture (ppt)

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)

Page 35: Software Architecture (ppt)

DODAF (3 Main Views)DODAF (3 Main Views)

Page 36: Software Architecture (ppt)

DoDAF Products 1/2DoDAF Products 1/2

Page 37: Software Architecture (ppt)

DoDAF Products 2/2DoDAF Products 2/2

Page 38: Software Architecture (ppt)

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)

Page 39: Software Architecture (ppt)
Page 40: Software Architecture (ppt)

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

Page 41: Software Architecture (ppt)

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

Page 42: Software Architecture (ppt)

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

Page 43: Software Architecture (ppt)

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

Page 44: Software Architecture (ppt)

Documentation Conceptual Documentation Conceptual ModelModel

IEEE 1471-2000

Page 45: Software Architecture (ppt)

ModelsModelsNon-standard ModelsNon-standard ModelsADLADLUMLUMLDSLDSL

Page 46: Software Architecture (ppt)

““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

Page 47: Software Architecture (ppt)

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

Page 48: Software Architecture (ppt)

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

Page 49: Software Architecture (ppt)

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

Page 50: Software Architecture (ppt)

UML 2.0UML 2.013 diagram types13 diagram types

Page 51: Software Architecture (ppt)

UMLUML

Page 52: Software Architecture (ppt)

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

Page 53: Software Architecture (ppt)

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

Page 54: Software Architecture (ppt)

DiscussionDiscussionWhat’s the “best” modeling What’s the “best” modeling techniquestechniques

Page 55: Software Architecture (ppt)

Documentation Conceptual Documentation Conceptual ModelModel

IEEE 1471-2000

Page 56: Software Architecture (ppt)

Discussion Discussion How much documentationHow much documentation

Page 57: Software Architecture (ppt)

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)

Page 58: Software Architecture (ppt)

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