Elements of Software Architecture

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

Chapter 2 – Software Processes
By Philippe Kruchten Rational Software
4+1 View Model of Software Architecture “Software architecture” course Presented By: Mazeiar Salehie October 2004.
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.
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
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
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?
Object Oriented Analysis and Design Using the UML
An Introduction to Rational Rose Real-Time
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
What is Software Architecture?
Chapter 10 Architectural Design
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
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.
Architectural Blueprints The “4+1” View Model of Software Architecture
Slide 1 Introduction to Software Architecture TV Prabhakar.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 7 Applying UML and Patterns Craig Larman
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
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.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
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.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
4+1 View Model of Software Architecture
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
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 (
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Architecting Web Services
Architecting Web Services
OO Methodology OO Architecture.
4+1 View Model of Software Architecture
Object-Oriented Analysis
Analysis models and design models
An Introduction to Software Architecture
Chapter 9 Architectural Design.
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
Software Development Process Using UML Recap
Logical Architecture & UML Package Diagrams
Presentation transcript:

Elements of Software Architecture CSPC 464 Fall 2014 Son Nguyen

References Architecture Blueprints _ The “4+1” View Model of Software Architecture, Phiippe Kruchten Software Architecture for Developers, Simon Brown An Introduction to Software Architecture, David Garlan and Mary Shaw Software Architecture, A. Bijlsma, B.J. Heerendr., E.E> Roubtovair, S. Stuurman

Agenda Attendance/Roster Review topics from last week Today’s topics: Elements of SW Architecture Key architecture description concepts: Viewpoint View Model “4+1” View Model Logical View Process View Development View Physical View Documenting SW Architecture

Review What are things in the method content? How many types of process are there? What are the major problems in waterfall model? What are major phases in iterative process according to OpenUP?

Review What are things in the method content? How many types of process are there? Method Content Work products Tasks Roles Types of Process Waterfall Iterative Agile

Review What are the major problems in waterfall model? Project progress cannot be measured accurately Completing requirements without doing any architecture, development, or testing will NOT give you an accurate indication of how long project would take User feedback cannot obtained until late in the project – when the system is available for use Resolution of certain risks (e.g., activity identifies flaws in design or requirements) is deferred until late in the project – after the system is built, integrated, and tested Project that follow a waterfall approach are prone to schedule slippage What are major phases in iterative process according to OpenUP? Inception Phase, Elaboration phase, Construction Phase, Transition Phase

Architectural Viewpoints The key architecture description concepts are: Viewpoint View Model Defined in IEEE 1471-2000 Recommended Practice for Architectural Description An architectural viewpoint defines a product in terms of a related set of concerns

Architectural Viewpoints (continued) Basic viewpoints Requirements System requirements that shape architecture Include functional requirements, qualities, growth, and constraints Functional Concerned with elements support functionality of system, such as components, their relationships and behavior Deployment Concerned with elements support distribution of system, such as nodes, devices, and connections among them Validation Provide an indication of whether the system will provide required functionality, required qualities, required growth, and accommodate the defined constraints

Architectural Views A view, in general, is what you see from your view point A view is a window onto the whole architecture from a particular vantage point An architectural view shows part of product consistent with a viewpoint A requirements view will be different than a functional view of a product However, the views MUST be consistent within and between themselves Different views, single version of Truth In most cases, views are diagram types, with multiple pages or sections (e.g., sequence diagram) These diagrams are models of the product Like civil engineering models, make the product easier to envision and understand

Architectural Views (continued) Model represent a work product that participates in a view Models may represent different levels of realization A logical model shows how the product may be envisioned A physical model shows how the product will be constructed

View Model of Software Architecture The 4+1 View Model of Software Architecture is a commonly used architecture description framework by Philippe Kruchten To describe a software architecture, we use a model composed of multiple views or perspectives Consist of five main views: Logical view, which is the object model of the design (when an object-oriented design method is used). Process View, which captures the concurrency and synchronization aspects of the design, Development View, which describes the static organization of the software in its development environment. Physical View, view, which describes the mapping(s) of the software onto the hardware and reflects its distributed aspect, Scenarios or use cases the description of an architecture is illustrated by a few selected uses cases or scenarios

View Model of Software Architecture

Logical View The logical architecture primarily supports the functional requirements—what the system should provide in terms of services to its users. The system is decomposed into a set of key abstractions (e.g., packages), taken (mostly) from the problem domain, in the form of objects or object classes. The style we use for the logical view is an object-oriented style. The main guideline for the design of the logical view is to try to keep a single, coherent object model across the whole system Notation for the logical blueprint

Logical View - Examples Shows the main classes (conversation, terminal, controller) using set of services (translation, connection) involved in the Télic PABX architecture Blueprint for an Air Traffic Control System (class diagram contains 8 class categories (i.e., group of classes)

Logical View - Examples Shows the overall decomposition of a DB Subsystem component into sub-packages

Process View Several styles for the process view: pipes and filters, or client/server, with variants of multiple client/single server and multiple clients/multiple servers, Notation for the process blueprint

Process View - Examples Shows the process blueprint for the Télic PABX architecture (partial) All terminals are handles by a single process. Controller objects are executed on one of three tasks (low rate -200ms, high rate 10ms)

Process View - Examples Shows the distribution of DB subsystem across processes HTTPS <<process>> Database Backup Shared Libraries Database Server Oracle Enterprise Manager (OEM) Oracle RDBMS Web Browser   JDBC Java EE Application Server

Development View Style for the process view: layered style Notation for the development blueprint

Development View - Examples The five layers of Hughes Air Traffic Systems (HATS)

Development View – Examples (cont) The six layers of the development view of a typical SW architecture. Shows allocation of the DB subsystem and its dependent software components to the development view of the architecture

Physical View Notation for the Physical blueprint – could be very messy in large systems

Physical View - Examples Physical blueprint for a larger PABX showing process allocation

Physical View - Example Shows DB subsystem is deployed on a Database server The deployment view of the software architecture shows where executables (COTS and non-COTS) and data for the software are installed. Administrator Workstation Web Browser Database Server Data Reduction Installation & Configuration Scripts Oracle RDBMS & Utilities Stored Procedures & Packages DDL High Availability Support

Scenarios Put it all together Notation for the Scenarios: The notation is very similar to the Logical view for the components (objects), but uses the connectors of the Process view for interactions between objects (message, RPC, message, bidirectional) Note that object instances are denoted with solid lines. As for the logical blueprint, we capture and manage object scenario diagrams using Rational Rose or Rhapsody Architecture tools

A scenario for a local call (small PABX) The corresponding script reads: 1. The controller of Joe’s phone detects and validate the transition from on-hook to off-hook and sends a message to wake up the corresponding terminal object. 2. The terminal allocates some resources, and tells the controller to emit some dial-tone. 3. The controller receives digits and transmits them to the terminal. 4. The terminal uses the numbering plan to analyze the digit flow. 5. When a valid sequence of digits has been entered, the terminal opens a conversation

Data Reduction Admin Use Case

Tailoring the Model Not all software architecture need the full “4+1” views. Views that are useless can be omitted from the architecture description, such as the physical view, if there is only one processor, and the process view if there is only process or program. For very small system, it is even possible that the logical view and the development view are so similar that they do not require separate descriptions. Especially using COTS products in your architecture (no need development view) The scenarios are useful in all circumstances.

Summary The “4+1” view model has been used with success on several large projects with or without some local customization and adjustment in terminology. It actually allowed the various stakeholders to find what they want to know about the software architecture. Systems engineers approach it from the Physical view, then the Process view. End-users, customers, data specialists from the Logical view. Project managers, software configuration staff see it from the Development view..

Summary of “4+1” Model Tool support Rose/Rhapsody Visio, Apex HP Openview Rhapsody, Visio

Documenting Software Architectures IEEE 1471/ISO 42010 defines a standard for documenting software architectures Describes what constitutes a viewpoint and views, but does not define a specific set of either to be used. Many different candidate views suggested by various authors No consensus about even viewpoints Typically, the documentation produced during the architectural design is captured in two documents: A Software Architecture Document, whose organization follows closely the “4+1” views • A Software Design Guidelines, which captures (among other things) the most important design decisions that must be respected to maintain the architectural integrity of the system.

SW Architecture Document - a typical outline

Coming Next… Next, we will take a look at architectural design process Homework assignments this week – Read Chapter 4 Review Chapter 1,2, and 3 Assignment #1 will be posted on TITANium on Thursday Sept 4 due Tuesday 9 7PM