Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.

Slides:



Advertisements
Similar presentations
Designing an Architecture 1.Design Strategy Decomposition Designing to Architecturally Significant Requirements Generate and Test This generate-and test.
Advertisements

Microsoft ® System Center Configuration Manager 2007 R3 and Forefront ® Endpoint Protection Infrastructure Planning and Design Published: October 2008.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
By Philippe Kruchten Rational Software
軟工一 吳彥諄. * Scrum overview * What happened to the software * What is the quality attribute * ACRUM * Q&A.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Solid Palette Gradient Palette I Gradient Palette II APPLYING THESE COLORS Click on the desired color Click on the paintbrush tool located.
Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapters 07 Eduardo Santana de Almeida.
Software architecture evaluation
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
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
UML - Development Process 1 Software Development Process Using UML (2)
Evaluating Architectures: ATAM
CPSC 871 John D. McGregor Module 4 Session 3 Architecture Evaluation.
INFO415 An overview of systems development
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
Rational Unified Process Fundamentals Module 4: Disciplines II.
Chapter 1: Introduction to Systems Analysis and Design
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
SOFTWARE ARCHITECT – DESIGN.  Introduction  Architecture Drivers  POS System Architecture  Mapping Between Perspective  Evaluate Architecture  Project.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Architecture Evaluation Cost Benefit Analysis Method (CBAM)
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
MSF 4.0 for Agile Software Development Ron Tolido Capgemini.
John D. McGregor Architecture Evaluation
Chapter : 9 Architectural Design
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
Analyzing an Architecture. Why analyze an architecture? Decide whether it solves the problem Compare to other architectures Assess what needs to change,
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.
Design Concepts ch-8
Process 4 Hours.
Designing software applications
Lecture 12 Attribute Driven Design Again
Chapter 7: Case Study FCAPS System (Part I).
Lecture 9z Case Study ADD: Garage Door
Chapter 1: Introduction to Systems Analysis and Design
Chapter 8: Case Study FCAPS System (Part II).
Business System Development
The Development Process of Web Applications
Chapter 7: The Architecture Design Process
Chapter 17: Designing an Architecture
Lecture 17 ATAM Team Expertise
Chapter 19: Architecture, Implementation, and Testing
Analyzing an Architecture
Chapter 24 Testing Object-Oriented Applications
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Software Architecture
Chapter 19 Testing Object-Oriented Applications
Nada Al Dosary Edited By: Maysoon AlDuwais
Chapter 1: Introduction to Systems Analysis and Design
Analyzing an Architecture
Chapter 19 Testing Object-Oriented Applications
Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture

– 2 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach SEI series on Software Architecture

– 3 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 4 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Meaning of Analysis The Meaning of Analysis In the Merriam-Webster Dictionary, the word analysis is defined as follows:  The careful study of something to learn about its parts, what they do, and how they are related to each other  An explanation of the nature and meaning of something Cervantes, Humberto; Kazman, Rick. Designing Software Architectures: A Practical Approach (SEI Series in Software Engineering) (Kindle Locations ). Pearson Education. Kindle Edition. Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 5 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Attribute Driven Design (3.0)

– 6 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 7 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 8 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Cost Benefit Analysis Method (CBAM) CBAM is a method that guides the selection of design alternatives using a quantitative approach.  It considers that architectural strategies (i.e., combinations of design concepts) affect quality attribute responses, and  that the level of each response in turn provides system stakeholders with some benefit called utility.  Each architectural strategy provides a different level of utility, but also has a cost and takes time to implement.  The idea behind the CBAM is that by studying levels of utility and costs of implementation, particular architectural strategies can be selected based on their associated return on investment (ROI).

– 9 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach levels of response for each scenario  The worst-case scenario, which represents the minimum threshold at which a system must perform (utility = 0)  The best-case scenario, which represents the level after which stakeholders foresee no further utility (utility = 100)  The current scenario, which represents the level at which the system is already performing (the utility of the current scenario is estimated by stakeholders)  The desired scenario, which represents the level of response that the stakeholders are hoping to achieve (the utility of the desired scenario is estimated by stakeholders)

– 10 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 11 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Active Reviews for Intermediate Design ARID  the architecture design (or part of it) is presented to a group of reviewers  engineers who will make use of this design.  After the design presentation, a set of scenarios is selected by the participants. The selected scenarios are used for the core of the exercise, where the reviewers use the elements present in the architecture to satisfy them.  In standard ARID, the reviewers are asked to write code or pseudo-code or perhaps sequence diagrams

– 12 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Picture Plus

– 13 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 14 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach SA with Agile: Architectural Backlog Pivotal Tracker – Kanban board …

– 15 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Case Study: FCAPS System (Chap 4)  Greenfield system in a mature domain  Business case  Time servers – 100 of them to supply consistent time  Fault management. The goal of fault management is to recognize, isolate, correct, and log faults that occur in the network.  Configuration management includes gathering and storing configurations from network devices,  Accounting. The goal here is to gather device information.  Performance management. This category focuses on determining the efficiency of the current network.  Security management. This is the process of controlling access to assets in the network.

– 16 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Use- Case Model

– 17 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Use-Case Table

– 18 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Quality Attribute Scenarios

– 19 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Constraints (4.2.4)

– 20 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 1:

– 21 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 2: Select Drivers

– 22 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3:

– 23 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3:

– 24 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3:

– 25 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3:

– 26 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3:

– 27 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach ADD Step 3: Choose Element to Refine Start with entire system

– 28 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Design Decisions

– 29 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Rich Internet Application from the catalog in appendix A from the catalog in appendix A 1.Web App 2.Rich Inter. App 3.Mobile App 4.Service App

– 30 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Design Decisions continued Design Decisions continued

– 31 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Design Decisions continued Design Decisions continued

– 32 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 6: Sketch Views and Record Design Decisions

– 33 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach The words

– 34 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Initial Deployment Diagram

– 35 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 36 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose Kanban Board

– 37 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Iteration 2: Identifying Structures to Support Primary Functionality

– 38 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 2: Establish Iteration Goal by Selecting Drivers The goal of this iteration is to address the general architectural concern of identifying structures to support primary functionality. Identifying these elements is useful not only for understanding how functionality is supported, but also for addressing CRN-3, the allocation of work to members of the development team. In this second iteration, besides CRN-3, the architect considers the system’s primary use cases:  UC-1  UC-2  UC-7

– 39 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 3: Choose One or More Elements of the System to Refine The elements that will be refined in this iteration are the modules located in the different layers defined by the two reference architectures from the previous iteration. In general, the support of functionality in this system requires the collaboration of components associated with modules that are located in the different layers.

– 40 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 4: Choose One or More Design Concepts That Satisfy the Selected Drivers In this iteration, several design concepts— in this case, architectural design patterns— are selected from the book Pattern Oriented Software Architecture, Volume 4.

– 41 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 42 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 6: Sketch Views and Record Design Decisions

– 43 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 44 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 45 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Plus words table

– 46 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 47 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 48 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach UC-2 Detect Fault

– 49 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach

– 50 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose

– 51 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach Iteration 3: Addressing Quality Attribute Scenario Driver (QA-3)

– 52 – CSCE 742 Sum 2016 Cervantes; Kazman, Designing Software Architectures: A Practical Approach