© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.

Slides:



Advertisements
Similar presentations
By Philippe Kruchten Rational Software
Advertisements

4+1 View Model of Software Architecture “Software architecture” course Presented By: Mazeiar Salehie October 2004.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Outline About author. The problem that discussed in the article.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Unified Modeling (Part I) Overview of UML & Modeling
Using Architecture Frameworks
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
What is Software Architecture?
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
An Introduction to Software Architecture
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architectural Blueprints The “4+1” View Model of Software Architecture
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
DESIGN OF SOFTWARE ARCHITECTURE
© Drexel University Software Engineering Research Group (SERG) 1 The OASIS SOA Reference Model Brian Mitchell.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Basic Concepts and Definitions
4+1 View Model of Software Architecture
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Documenting SW Architecture
Object-Oriented Analysis and Design
Architecting Web Services
Unified Modeling Language
Architecting Web Services
OO Methodology OO Architecture.
4+1 View Model of Software Architecture
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Logical Architecture & UML Package Diagrams
Presentation transcript:

© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software Architectural Blueprints – The “4+1” view Model of Software Architecture

© Drexel University Software Engineering Research Group (SERG) 2 Complexity Management via Views Modeling software architectures is best done using multiple concurrent views This approach is consistent with the “Views and Beyond” approach outlined by the SEI for documenting software architectures Individual views divide the complexity, and create artifacts that separately address the concerns of different stakeholders

© Drexel University Software Engineering Research Group (SERG) 3 Lines and Boxes Software architecture and design documentation is often modeled using box and line diagrams Modelers often struggle with: What do the lines and boxes represent? Do the lines and boxes represent the same abstractions from one model to another? Do models developed by more than one individual have the same meaning for the lines and boxes? Is the goal of the model clear - are the lines network messages, procedure calls, or structural relationships? – are the boxes functions, classes, components, servers, etc.

© Drexel University Software Engineering Research Group (SERG) 4 Requirements for Modeling SW Architectures Use multiple views, each view addressing one specific set of concerns Organize the views into categories, with each category being specifically targeted to be used by a different constituency Use consistent notation for the individual views

© Drexel University Software Engineering Research Group (SERG) 5 The 4+1 View Model Each view is consumed by a different stakeholder Logical View Development View Process ViewPhysical View Scenarios ArchitectsDevelopers IntegratorsInfrastructure Engineers Business Analysts

© Drexel University Software Engineering Research Group (SERG) 6 The Architecture Widgets Each view is expressed using a set of elements and connectors Each view can be guided by using patterns or architectural styles to introduce constraints on downstream design artifacts Each view is developed taking the appropriate set of requirements into mind Each view might use different notation that is most appropriate for the view The “Widgets” of Architecture Component AComponent B Connector Interface Connector

© Drexel University Software Engineering Research Group (SERG) 7 The Logical View This view expresses the key abstractions from the problem domain Classes, Components Think in terms of the services that the system will provide to the user Express the relationships between the logical components Use, generalize, aggregate Define the important interfaces of the components and connectors associated with this view Logical View

© Drexel University Software Engineering Research Group (SERG) 8 The Logical View Choose a “style” for the logical view Object-oriented style Component style Service-oriented style The style helps define the structure and semantics of the elements captured in the logical view Logical View

© Drexel University Software Engineering Research Group (SERG) 9 The Process View The process view takes into account non-functional requirements such as performance, availability This view also deals with concurrency, showing the different threads of control Intra-process threads Inter-process coordination (messages to and from different servers) Process View

© Drexel University Software Engineering Research Group (SERG) 10 The Process View A “process” in the process view groups tasks into logical execution units. Execution units have a: Well defined point where they start and stop as well as rule for dealing with exceptions to the normal course of operation Possible styles for the process views: Client/Server, MVC, pipe and filter. Process View

© Drexel University Software Engineering Research Group (SERG) 11 The Process View Components for the process view include: Processes and threads Connectors include Messages, shared memory, pipes Process View

© Drexel University Software Engineering Research Group (SERG) 12 The Development View The development view defines the actual software modules to be constructed The granularity of the components in this view should be at the level where they can be implemented by one or a small set of developers Classes, Packages, Subsystems This view should clearly define the import and output relations We will hear more about this later when we talk about provided and required interfaces… Development View

© Drexel University Software Engineering Research Group (SERG) 13 The Development View Connectors for the development view may include: Function/procedure calls, inheritance, includes, uses, etc. Styles for the development view include the layer style Subsystems, components, modules/classes, functions/procedures Development View

© Drexel University Software Engineering Research Group (SERG) 14 The Physical View The physical view maps the software components to the hardware (deployment) Elements include networks, processes, and tasks; Connectors include network links and interprocess communication Different physical views might be needed for development, test and production A good design promotes the flexibility to map the software components to different physical configurations for different phases of the software development lifecycle Physical View

© Drexel University Software Engineering Research Group (SERG) 15 The +1 View - Scenarios Scenarios are abstractions of the most important requirements Map closely to use cases Ties the other views together The scenario view is redundant to the other views (+1) but is a cross-cutting aspect tying the architecture together Scenarios

© Drexel University Software Engineering Research Group (SERG) 16 The +1 View - Scenarios Why scenarios: A mechanism to discover the key architectural elements and connectors Validation of the architecture design after the other views are created Addresses the concerns of both the functional and non-functional requirements Scenarios

© Drexel University Software Engineering Research Group (SERG) 17 From the mid-90’s to current thinking… Then Now

© Drexel University Software Engineering Research Group (SERG) 18 What’s Different Now? The logical view and development view are combined into the structural view The structural view combines both the abstract logical view and the more detailed development view

© Drexel University Software Engineering Research Group (SERG) 19 What’s Different Now? The process view has been incorporated into the behavioral view. The process view only defines units of execution where the behavioral view includes these plus important behavioral interactions between the architectural elements

© Drexel University Software Engineering Research Group (SERG) 20 What’s Different Now? The packaging view is new, as newer component oriented languages allow grouping of structural elements into components Examples: COM, CORBA, Java Beans, EJB, Services The packaging of the components, their interfaces and metadata are very important design artifacts The infrastructure view in the new maps closely with the physical view in the older model

© Drexel University Software Engineering Research Group (SERG) 21 What’s Different Now? The Scenario view in the old model, which was reflective of the requirements now includes a logical rendering of the requirements (typically rendered as use-cases), as well as definition of test cases needed to verify the software product

© Drexel University Software Engineering Research Group (SERG) 22 The “newer” 4+1 model and SOA StructuralPackaging/Implementation BehavioralInfrastructure/ Environment Requirements, Test/ Validation Criteria Service Contract(s) Classes and Components that physically represent the service Workflows showing how the service fulfils a logical business-unit-of- work (BUOW). Also includes intra- service behavioral models Service interface (schema) and usage semantics, perhaps WSDL. Includes service policy definitions and metadata Deployment on.Net and/or J2EE – emphasis on reliability, availability and security.