Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Similar documents
Architectural Blueprint

CSCI 3130 Software Architectures 1/3. February 5, 2013

Rational Software White paper

Dog Houses to sky scrapers

Chapter 6 Architectural Design. Chapter 6 Architectural design

Architectural Design

What is Software Architecture

Software Architecture

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Presenter: Dong hyun Park

Architectural Design

Architectural Design

LOG8430: Architecture logicielle et conception avancée

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof.

Ch 1: The Architecture Business Cycle

Software Architectures. Lecture 6 (part 1)

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Software Architecture

Architectural Design

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Software Architectures

What is Software Architecture? What is Principal?

UNIT-I Introduction of Object Oriented Modeling

Software architecture: Introduction

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Unit Wise Questions. Unit-1 Concepts

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Software Architecture and Design I

CHAPTER 9 DESIGN ENGINEERING. Overview

10조 이호진 이지 호

Designing Component-Based Architectures with Rational Rose RealTime

Requirements to models: goals and methods

Software Engineering

CSC Advanced Object Oriented Programming, Spring Overview

The ATCP Modeling Framework

ICS 52: Introduction to Software Engineering

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

Software architecture: Introduction

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Establishing the overall structure of a software system

Ch 1: The Architecture Business Cycle

On ADLs and tool support for documenting view-based architectural descriptions

Creating and Analyzing Software Architecture

Software Architecture

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Enterprise Software Architecture & Design

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Software Architecture

S1 Informatic Engineering

Introduction to software architecture Revision : 732

index_ qxd 7/18/02 11:48 AM Page 259 Index

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Software Architecture. Lecture 5

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture

Lecture 1. Chapter 6 Architectural design

An introduction to the IBM Views and Viewpoints Framework for IT systems

Software Architecture

Lecture 8: Use Case -Driven Design. Where UML fits in

Model-based Transition from Requirements to High-level Software Design

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

QUICK GUIDE SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

WHAT IS SOFTWARE ARCHITECTURE?

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

ICS 52: Introduction to Software Engineering

Architectural Decomposition Reid Holmes

DESIGN: ARCHITECTURE AND METHODOLOGY

Architectural Decomposition & Representations Reid Holmes

OT TU1 Software Architecture Using Viewpoints and Perspectives

CS:2820 (22C:22) Object-Oriented Software Development

Architectural Decomposition Mei Nagappan

Review Sources of Architecture. Why Domain-Specific?

Hippo Software BPMN and UML Training

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

Microsoft SharePoint Server 2013 Plan, Configure & Manage

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Object-Oriented Analysis and Design Using UML

Mei Nagappan. How the programmer wrote it. How the project leader understood it. How the customer explained it. How the project leader understood it

CASE TOOLS LAB VIVA QUESTION

Software Architecture

Architecture of Business Systems Architecture and the Role of the Architect

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 1: The Database Environment

Enterprise Web based Software Architecture & Design

Appendix A - Glossary(of OO software term s)

Dimensions for the Separation of Concerns in Describing Software Development Processes

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Software MEIC. (Lesson 4)

The Analysis and Design of the Object-oriented System Li Xin 1, a

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

RUP for Systems Z and other Legacy Systems

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

CAS 703 Software Design

CC532 Collaborative System Design

Architectural Design. CSCE Lecture 12-09/27/2016

Transcription:

Architectural Blueprint The 4+1 View Model of Software Architecture Philippe Kruchten

Model What is a model? simplified abstract representation information exchange standardization principals (involved) communication channel flow 2

I am a Model Owners End-Users Sale reps Software/ System Managers Designers Developers Deployment engineers Build engineers Test engineers Software/System stakeholders Model 3

Software Architectural Model Definition a model to represent the architecture of a software system which architecture (reference conceptual concrete)? 4

Desired Attributes Addresses & captures concerns of various stakeholders stakeholders end-users, developers, system engineers, project management testers, support teams requirements functional non-functional performance, availability, concurrency, distribution, fault tolerance security, testing, usability, configuration management, evolution, monitoring 5

Desired Attributes An abstraction represents the high level view Is robust adaptable scalable iterative Meaningful & maintainable has to be a live document changes with the system 6

Types Box & Line model Architectural definition languages View based models Zachman Framework (1987) Three schema approach (1977) 4+1 view model (1995) RM-ODP DoDAF 7

4+1 View Model Model composed of 5 views View a single view is not enough is catered for a set of corresponding stakeholders addresses the concerns of its stakeholders view elements components, connectors, notation generic representation 8

4+1 View Model Logical View Development View Scenario View Process View Physical View 9

Logical View Intent is the object model of the design is generally the starting point addresses functional requirements Style decomposition into architectural entities abstract entities Stakeholders end-users, architects, designers 10

Logical View View representation OOA (object oriented analysis) entities are analysis classes application of OOA principles abstraction, encapsulation. inheritance association (aggregation, composition) class diagrams, state diagrams data centric analysis entity relationship (ER) diagrams 11

Logical View 12

Logical View Design guidelines a single object model across the system avoid premature specialization entities mechanisms (per site or per processor) 13

Process View Intent handles the non-functional requirements provides an abstraction of architectural processes process process: grouping into executable units hierarchy: major & minor tasks types: atomic & distributed process communication messaging (synchronous, asynchronous, RPC, broadcast) shared memory 14

Process View Style several styles are applicable pipes & filters layered client / server Stakeholders integrators, architects 15

Process View 16

Development View Intent software/system decomposition into software modules software modules name space, packages, libraries, subsystems modules are scoped for small (development) teams Driven by internal requirements management, requirement allocation, cost evaluation, progress monitoring reuse, commonality, programming language and development environment 17

Development View Style layered style each layer with well defined interface subsystem dependencies on other subsystems in the same layer or lower each layer provides a development abstraction (responsibility) Stakeholders managers, architects, designers, developers, testers 18

Development View 19

Physical View Intent physical manifestation of process view processes are mapped to processing nodes Concerns installation, configuration, deployment & delivery, networking, messaging protocols Stakeholders system engineers, installers, architects, operators 20

Physical View Processor Other device Communication line Communication (non permanent) Uni-directional communication High bandwidth communication, Bus 21

Physical View Design guidelines mapping to be flexible minimal impact on source code 22

Scenario View Intent one rule to rule them all capture system functionality in scenarios interaction of objects & processes driven by important scenarios provides architecture validation Stakeholders all stakeholders from the other views 23

Scenario View Components from the logical view Connectors from the process view 24

View Mappings Logical View Development View Scenario View Process View Physical View 25

Logical to Process View Objects are mapped to processes considerations autonomy persistence subordination distribution Strategy inside-out: identify processes for objects outside-in: identify processes (based on system requests) and then allocate objects to these processes 26

Logical to Development View Architectural component decomposition architectural entities are broken down into design components packages, modules classes mapping is governed by development concerns distance between logical and design view an indication of the size of the system 27

Process to Physical View Processes assignment to hardware major and minor tasks are assigned to physical machines various configurations development testing deployment 28

Iterative Process Start with a model In each iteration the architecture is prototyped tested: under load if possible measured & analyzed refined add more scenarios detect abstractions and optimizations each iteration should takes us a step closer to a stable architecture 29

Discussion Lacks some fundamental views security, user interface, testing upgrade, disaster recovery Are the views ever complete Change in architectural style data centric to OO architecture 30

Meet Kruchten Phillipe Kruchten professor of software engineering at the University of British Columbia professional software engineer with 30+ years of experience Major Work RUP Canadian automated air traffic control system lead designer 31