Architectural Blueprint

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

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

Introduction to Unified Modelling Language (UML)

Architectural Design

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

Enterprise Web based Software Architecture & Design

Dog Houses to sky scrapers

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

Introduction to Unified Modelling Language (UML)

What is Software Architecture

Rational Software White paper

Ch 1: The Architecture Business Cycle

Designing Component-Based Architectures with Rational Rose RealTime

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Software Architecture and Design I

LOG8430: Architecture logicielle et conception avancée

Software Architectures

Chapter 6 Architectural Design. Chapter 6 Architectural design

Unit Wise Questions. Unit-1 Concepts

Software Architectures. Lecture 6 (part 1)

Recalling the definition of design as set of models let's consider the modeling of some real software.

Creating and Analyzing Software Architecture

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

Introduction to software architecture Revision : 732

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

UNIT-I Introduction of Object Oriented Modeling

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

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

Lecture 17: (Architecture V)

Object-Oriented Analysis and Design Using UML (OO-226)

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

Software architecture: Introduction

DESIGN: ARCHITECTURE AND METHODOLOGY

CHAPTER 9 DESIGN ENGINEERING. Overview

Lecture 13 Introduction to Software Architecture

Presenter: Dong hyun Park

Software Architecture

Software architecture: Introduction

CSC Advanced Object Oriented Programming, Spring Overview

Software Architecture. Lecture 5

Software Architecture

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

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

What is Software Architecture? What is Principal?

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

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

10조 이호진 이지 호

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

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

The ATCP Modeling Framework

Foundations of Software Engineering

Software Architecture

Software MEIC. (Lesson 4)

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

Software Architecture

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

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

S1 Informatic Engineering

Ch 1: The Architecture Business Cycle

Hippo Software BPMN and UML Training

Software Engineering (CSC 4350/6350) Rao Casturi

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Architectural Design

OO Analysis and Design with UML 2 and UP

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Introduction - SENG 330. Object-Oriented Analysis and Design

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

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Design and Evolution of an Agent-Based CASE System for OOAD

Software Architecture

Architectural Design

WHAT IS SOFTWARE ARCHITECTURE?

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

Architectural Design

Enterprise Architect Training Courses

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

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

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

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

Dimensions for the Separation of Concerns in Describing Software Development Processes

BDSA08 Advanced Architecture

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

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

Architectural Decomposition Mei Nagappan

IMPORTANT NOTICE TO STUDENTS

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

CS487 Midterm Exam Summer 2005

Design of Embedded Systems

Architectural Decomposition Reid Holmes

Topic : Object Oriented Design Principles

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

Lecture 1. Chapter 6 Architectural design

Element: Relations: Topology: no constraints.

QUICK GUIDE SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow

ICS 52: Introduction to Software Engineering

Appendix A - Glossary(of OO software term s)

Software Engineering from a

Object-Oriented Analysis and Design Using UML

Transcription:

IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint The 4+1 View Model of Software Architecture by Philippe Kruchten CS 446/646 ECE452 May 30 th, 2011

Definition[1] Architectural Model Software architecture = {Elements, Forms, Constraints} Definition [2] deals with the design and implementation of the highlevel structure of the software. It is the result of assembling a certain number of architectural elements in some well-chosen forms to satisfy the major functionality and... nonfunctional requirements [1] D. E. Perry & A. L. Wolf, Foundations for the Study of Software Architecture, ACM Software Engineering Notes, 17, 4, October 1992, 40-52 [2] P. B. Kruchten. The 4+1 View Model of architecture. IEEE Software, 12(6), Nov. 1995, pp. 42 50. CS446/646 ECE452 2

Is this an Architectural Model? Owners End-Users Sale reps Software/ System Managers Designers Developers Deployment engineers Build engineers Test engineers Software/System stakeholders Model What is going on here? CS446/646 ECE452 3

Addresses & captures Desired Attributes 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 CS446/646 ECE452 4

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

Types of Architectural Styles Box & line model Architectural definition language (ADL) View based models 4+1 view model (1995) CS446/646 ECE452 6

Model 4+1 View Model a model is composed of 5 views a single view is not enough View is catered for a set of corresponding stakeholders addresses the concerns of its stakeholders contains view elements components, connectors, notation generic representation CS446/646 ECE452 7

4+1 View Model Logical View Development View Scenario View Process View Physical View Perhaps it should have been called 1+4 View Model CS446/646 ECE452 8

Logical View Intent 'object model' of the design is generally the starting point addresses primarily functional requirements decomposition into 'architectural entities' Style abstract data types / OO Stakeholders end-users, architects, designers CS446/646 ECE452 9

View representations Logical View 1. OOA (object oriented analysis) entities are analysis classes application of OOA principles abstraction, encapsulation. inheritance association (aggregation, composition) class diagrams, state diagrams 2. data centric analysis entity relationship (ER) diagrams which is the correct view representation? CS446/646 ECE452 10

Example Logical View CS446/646 ECE452 11

Design guidelines Logical View a single (object) model across the system (why?) avoid premature specialization (of what?) UML diagrams class, communication, sequence diagrams CS446/646 ECE452 12

Intent Process View handles the non-functional requirements abstraction of architectural processes CS446/646 ECE452 13

Architectural Process Process View grouping of tasks into executable units task: thread of control task hierarchy: major & minor tasks reflects task scope types: atomic & distributed can be replicated to improve performance, availability etc. execute on 'process nodes' (what is a process node?) CS446/646 ECE452 14

Process View Communication messaging (synchronous, asynchronous, RPC, broadcast) usually for major tasks shared memory for minor tasks can we estimate the system load form the inter-process communication? CS446/646 ECE452 15

Process View Style several styles are applicable pipes & filters layered client / server Stakeholders integrators, architects CS446/646 ECE452 16

Example Process View CS446/646 ECE452 17

Intent Development View software/system decomposition into software modules software modules name space, packages, libraries, subsystems modules are scoped for small (development) teams Driven by internal requirements CS446/646 ECE452 18

Intent Development View 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 cost evaluation management technology requirement allocation reuse resources progress monitoring <from class> CS446/646 ECE452 19

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 CS446/646 ECE452 20

CS446/646 ECE452 21

Observations Development View complete development architecture can only be described when all the elements of the software have been identified. [1] So what things can we define here? [1] P. B. Kruchten. The 4+1 View Model of architecture. IEEE Software, 12(6), Nov. 1995, pp. 42 50. CS446/646 ECE452 22

Observations Development View complete development architecture can only be described when all the elements of the software have been identified. [1] So what things can we define here? code partitioning inter-partition dependencies module visibility development methodology work allocation [1] P. B. Kruchten. The 4+1 View Model of architecture. IEEE Software, 12(6), Nov. 1995, pp. 42 50. CS446/646 ECE452 23

Intent Physical View 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 CS446/646 ECE452 24

CS446/646 ECE452 25

Design guidelines Physical View mapping to be flexible minimal impact on source code same concerns as process view UML deployment diagram CS446/646 ECE452 26

Scenario View Intent one view 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 CS446/646 ECE452 27

Example Scenario View Components from the logical view Connectors from the process view looks like a collaboration diagrams. what happened to use case diagram? CS446/646 ECE452 28

Example Scenario View Components from the logical view Connectors from the process view looks like a collaboration diagrams. what happened to use case diagram? use cases & use case realization CS446/646 ECE452 29

View Mappings Logical View Development View Scenario View Process View Physical View CS446/646 ECE452 30

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 CS446/646 ECE452 31

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 CS446/646 ECE452 32

Process to Physical View Processes assignment to hardware major and minor tasks are assigned to physical machines various configurations development testing deployment CS446/646 ECE452 33

Model an 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 goal: each iteration should takes us a step closer to a stable architecture CS446/646 ECE452 34

Comments 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 CS446/646 ECE452 35