Architecture - Repository UNIKOM

  Architecture Architecture

  Arnon Rotem-Gal-Oz Arnon Rotem-Gal-Oz

  Product Line Architect Product Line Architect http://www.rgoarchitects.com http://www.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 Documentation Discussion Discussion

  What’s Software Architecture What’s Software Architecture Architecting a dog house Architecting a dog house

  Can be built by one person Requires Minimal modeling Simple process Simple tools

  Kruchten

  Architecting a house

Architecting a house

  Built most efficiently and timely by a team Requires Modeling Well-defined process Kruchten Power tools

  Architecting a high rise Architecting a high rise

  Kruchten

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

  

Architecture defined

Architecture defined

  Software architecture is what Software architecture is what software architects do software architects do

  Beck

  Architecture defined Architecture defined

  Formal Definition Formal Definition

  Software architecture is the Software architecture is the fundamental fundamental organization organization of a system, embodied in its of a system, embodied in its components components

  , their , their relationships relationships 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

  Architecture defined Architecture defined

  Another Go Another Go

  Perry and Wolf, 1992 Perry and Wolf, 1992 A set of architectural (or design) A set of architectural (or design) elements elements 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' system stakeholders' need statements need statements A A rationale rationale 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 components software 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

  Architecture defined Architecture defined

  Few More Few More

  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 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 rationale rationale 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 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 addressed addressed 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 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 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 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 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 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.

  Domain Specific Domain Specific 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 Hardware architects

  Hardware architects 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. 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

  , , policies policies 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

  

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

  Architectural Description Documentation Conceptual Documentation Conceptual

  Model Model Stakeholders & their Stakeholders & their Maintainer Maintainer Functionality Functionality concerns concerns End User End User Price Price Customer Customer Dev Costs Dev Costs On Time Delivery On Time Delivery

  Sales Sales Stability & Maintainability Stability & Maintainability Performance Performance Dev Manager Dev Manager Developer Developer Ease of Debugging Ease of Debugging Ease of Use Ease of Use Sys Admin Sys Admin Testability & Traceability Testability & Traceability Modifiability Modifiability Structure & dependency between component Structure & dependency between component Ease of Installation Ease of Installation Documentation Conceptual Documentation Conceptual

  Model Model

  Discussion Discussion

  What views do you know / use 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… MS – Well…

  

RUP – 4+1

RUP – 4+1

  RM-ODP Viewpoints RM-ODP Viewpoints

  (2001) (2001)

  Manager Business model Database Modeler

Enterprise

Logical, data modeling Logical view of services Designers

  Information Computational

  Operating Sys. Engineer Servers, Comm, Developer data and services Physical view of

  (IDL, WSDL) Technology Engineering

  

DODAF (3 Main Views)

DODAF (3 Main Views)

  

DoDAF Products 1/2

DoDAF Products 1/2

  

DoDAF Products 2/2

DoDAF Products 2/2

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) Data Data (What) (What) Function Function (How) (How) Network Network (Where) (Where) People People (Who) (Who) Time Time (When) (When) Motivation Motivation (Why) (Why)

  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 MSF 3.0 + Views

  MSF 3.0 + Views

  New Model New Model set of views and artifacts - set of views and artifacts -

  Logical Data Center

  DBs, Classes, Code

  XML, Projects,

  XML, Projects, DBs, Classes, Code

  DBs, Classes, Code Logical

  Logical Data Center

  Data Center Logical

  Data Center Physical servers Physical servers & segments & segments

  XML, Projects,

  Deployment Deployment

  Units Units

  Deployment Deployment

  Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into packaged into deployed on deployed on

  Business Processes Business Processes and Entities and Entities

  Business Processes Business Processes and Entities Reconciliation and Entities Reconciliation

  XML, Projects, DBs, Classes, Code

  Applications, Endpoints Applications, Endpoints

  Business Business

  Procedures Procedures

  Capabilities Capabilities

  Business Business

  Capabilities Capabilities

  Manual Manual

  Procedures Procedures

  Manual Manual

  Technology Technology

  Services, Messages, Services, Messages,

  Architecture Architecture

  Technology Technology

  Architecture Architecture

  Constraints Constraints Reconciliation Reconciliation

  Services, Messages, Services, Messages,

  Applications, Endpoints Applications, Endpoints

  Abstraction/ Abstraction/ Refinement Refinement

  Can be mapped… Can be mapped…

  Logical Data Center

  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

  Data Center Logical

  Services, Messages, Services, Messages,

  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 on deployed on

  Business Processes Business Processes and Entities and Entities

  Business Processes Business Processes and Entities Reconciliation and Entities Reconciliation

  Applications, Endpoints Applications, Endpoints

  Constraints Constraints Reconciliation Reconciliation

  Contextual Contextual Conceptual

  Capabilities Capabilities

  Conceptual Logical

  Logical Physical

  Physical Business

  Business Applications

  Applications Information

  Information Technology

  Technology

  Business Business

  Business Business

  Architecture Architecture

  Capabilities Capabilities

  Manual Manual

  Procedures Procedures

  Manual Manual

  Procedures Procedures

  Technology Technology

  Architecture Architecture

  Technology Technology

  Abstraction/ Abstraction/ Refinement Refinement Documentation Conceptual Documentation Conceptual

  Model Model

  Models Models

  Non-standard Models Non-standard Models

  ADL ADL UML UML DSL DSL

  “ Non Standard” - Block “ Non Standard” - Block

  Diagrams Diagrams

  Rich UI Web UI Controls E xc on n Service Interface M L ep C io tio on g ti og

Activity Business Rules

on at

   & ca fig in ti iz n M u ito gn or

   T ra Si th en th Human Workflow Workflow rin ra g ag an u tio u ce n A A Service Agents DAL em E-Publish EAI ECM DW OLTP t en 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-request caller callee rpc 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 simulations / software systems simulations / software systems 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 commercial goals in mind commercial goals in mind UML 2.0 UML 2.0 13 diagram types

  13 diagram types

  

UML

UML

  DSL DSL

  Logical Data Center

  DBs, Classes, Code

  XML, Projects,

  XML, Projects, DBs, Classes, Code

  DBs, Classes, Code Logical

  Logical Data Center

  Data Center Logical

  Data Center Physical servers Physical servers & segments & segments

  XML, Projects,

  Deployment Deployment

  Units Units

  Deployment Deployment

  Units Units Abstraction/ Abstraction/ Refinement Refinement Constraints Constraints packaged into packaged into deployed on deployed on

  Business Processes Business Processes and Entities and Entities

  Business Processes Business Processes and Entities Reconciliation and Entities Reconciliation

  XML, Projects, DBs, Classes, Code

  Applications, Endpoints Applications, Endpoints

  Business Business

  Procedures Procedures

  Capabilities Capabilities

  Business Business

  Capabilities Capabilities

  Manual Manual

  Procedures Procedures

  Manual Manual

  Technology Technology

  Services, Messages, Services, Messages,

  Architecture Architecture

  Technology Technology

  Architecture Architecture

  Constraints Constraints Reconciliation Reconciliation

  Services, Messages, Services, Messages,

  Applications, Endpoints Applications, Endpoints

  Abstraction/ Abstraction/ Refinement Refinement

  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 encompass all views encompass all views Discussion Discussion

  What’s the “best” modeling What’s the “best” modeling techniques techniques Documentation Conceptual Documentation Conceptual

  Model Model