Attribute-Driven Design Method

Similar documents
Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Multiple Views of System Specifications

Architecture. By Glib Kutepov Fraunhofer IESE

The Rational Unified Process for Systems Engineering PART II: Distinctive Features

Software Engineering

What are IT Architects and what do they do all day?

Agent Based Reasoning in Multilevel Flow Modeling

McKinsey BPR Approach

Delivering Safety Through Design Using Early Analysis Methods. Mark A. Vernacchia, MSES, PE General Motors Company; Milford, Michigan, USA

INTEGRATION OF AUTONOMOUS SYSTEM COMPONENTS USING THE JAUS ARCHITECTURE

CMPT 275 Software Engineering

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

Autonomous Control for Generation IV Nuclear Plants

SEI Architecture Techniques complementary to the RUP Stuart Kerrigan, Richard van Schelven Principal Engineers Data Networks

Meltem Özturan

Implementing Microsoft Azure Infrastructure Solutions

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

MODPROD 2017, Linköping February 8, 2017

This module introduces students to cloud services and the various Azure services. It describes how to

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Defining Composite Critical Scenarios for the Development of Large Scale System Architecture Using an SEI's ADDbased. Aldo Dagnino

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

RESOLVING APPLICATION DEVELOPMENT ISSUES USING SOA Y. KIRAN KUMAR 1, G.SUJATHA 2, G. JAGADEESH KUMAR 3

Automatic generation of a complete model driven system reference database (SRDB) application

Real Time Vessel Monitoring System (VMS)

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Identification of. 2 (25) - SOFTWARE ARCHITECTURE ATAM: Method for Architecture Evaluation - Sven Arne Andreasson - Computer Science and Engineering

ASDEN: A Comprehensive Design Framework Vision for Automotive Electronic Control Systems

Software Processes 1

Implementing Microsoft Azure Infrastructure Solutions 20533B; 5 Days, Instructor-led

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Virtual Integration on the Basis of a Structured System Modelling Approach

Brief Summary of Last Lecture. Model checking of timed automata: general approach

Software Design. A software design is a precise description of a system, using variety of different perspective.

The software process

CIM Forum Charter Dated

IMPLEMENTING MICROSOFT AZURE INFRASTRUCTURE SOLUTIONS

18C044-0C WHITE PAPER REFERENCE CCS ARCHITECTURE BASED ON ERTMS. Date: Introduction

Project Plan. CxOne Guide

WebSphere. Enablement for WebSphere Industry Content Packs. Telecom Enablement

Architectural Considerations for Validation of Run-Time Application Control Capabilities for Real-Time Systems

fingermetrica Built-In-Fingerprint Biometric Solutions Biometric Recognition Embedded Algorithm Library

HP Cloud Maps for rapid provisioning of infrastructure and applications

Introduction to Software Engineering

TEST I VIDAREUTVECKLINGEN AV GRIPENS AVIONIK- OCH MARKSTÖDSYSTEM

7. Model based software architecture

Software Process 2/12/01 Lecture #

EDDL. The key to interoperability

Automated Service Builder


Service Oriented Architecture

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Change is constant. Obstacle to RE: Why requirement study? Limitation of the designers Different knowledge domains Not expertise Ubiquitous nature

Exploring a solution space

Chapter 15. Supporting Practices Service Profiles 15.2 Vocabularies 15.3 Organizational Roles. SOA Principles of Service Design

Introducing. Data analysis & Machine learning Machine vision Powerful script language Custom instrument drivers

Autonomic Provisioning and Application Mapping on Spot Cloud Resources

Instrumentation & Controls. Siemens Power Plant Automation -- SPPA-T3000. Technical Highlights. The New Benchmark in Control.

Darshan Institute of Engineering & Technology for Diploma Studies

Introduction to Software Engineering

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Developing Standards that enable Interoperable IT Management

The Space Network Ground Segment Sustainment (SGSS) Project: Developing a COTS-Intensive Ground System

SOFTWARE DEVELOPMENT STANDARD

Requirements Engineering and Software Architecture Project Description

CIS 890: High-Assurance Systems

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

AVANTUS TRAINING PTE LTD

VERSION 10 OCTOBER RELEASE HIGHLIGHTS

Hybrid Model: Overview

2014 Oct.31 International Symposium on Practical Formal Approaches to Software Development. Copyright Prof. Dr. Shuichiro Yamamoto 2014

WIND RIVER SIMICS WHEN IT MATTERS, IT RUNS ON WIND RIVER DEVELOP SOFTWARE IN A VIRTUAL ENVIRONMENT

Distributed Model Based Development for Car Electronics

Service Description Cloud Expert Services

Ground. Vehicle. Management System

The Open IoT Stack: Architecture and Use Cases

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Why Document the Architecture? EEC 421/521: Software Engineering. Design Process. Thinking About Design. Stakeholder Communication.

LS1021A. in Industrial Safety Systems

Improving System Dependability with Functional Alternatives

Benefits. + + Consistent quality to recipe specification. + + Increase asset utilization and operational efficiency

FACILITATING AGRICULTURE AUTOMATION USING STANDARDS

Large Scale Systems Design G52LSS

Requirements Engineering and Software Architecture Project Description

Tutorial Software is the differentiating characteristics in many computer based products and systems. Provide examples of two or three products

Requirements Engineering. Andreas Zeller Saarland University

Exam Name: Microsoft Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

Introduction to Software Engineering

Sage: Model-Driven Agile Development of Reactive Distributed Systems

Service oriented architecture solutions White paper. IBM SOA Foundation: providing what you need to get started with SOA.

Test Workflow. Michael Fourman Cs2 Software Engineering

Decision Resource Management and Scheduling on the Grid

Product Line Engineering Lecture PL Architectures I

Software Requirements Specification (SRS) Project Lane Management System

ITIL Qualification: MANAGING ACROSS THE LIFECYCLE (MALC) CERTIFICATE. Sample Paper 2, version 5.1. To be used with Case Study 1 QUESTION BOOKLET

Deep Learning Acceleration with

Transcription:

1 Attribute-Driven Design Method April 2014 Ying SHEN SSE, Tongji University

2 Lecture objectives This lecture will enable student to understand ADD steps design the architecture using ADD method

3 Architecture in the life cycle Evolutionary Delivery Life Cycle (EDLC) User and customer feedback Iterate through several releases before final release Adding of functionality with each iteration

4 Evolutionary delivery life cycle Software Concept Preliminary Requirements Analysis Deliver Final Version Design of Architecture and System Core Develop a Version Incorporate Customer Feedback Deliver the Version Elicit Customer Feedback

5 When do we start developing the SA? Requirements come first But not all requirements are necessary to get started Architecture shaped by (remember the ABC) Functional requirements Quality requirements Business requirements Expertise and experience of architects We call these requirements architectural drivers

6 Determining architectural drivers To identify the Architectural Drivers Identify the highest priority Business Goals Only a few of these Turn these into scenarios or use cases Choose the ones that have the most impact on the architecture These are the architectural drivers There should be less than 10 of these

7 Attribute driven design (ADD) method Method to design architecture so that both functional and quality requirements are met Defines SA by decomposing based on the quality attributes Recursive decomposition process; at each stage Tactics are chosen to satisfy some qualities Functionality is added

8 ADD input Input: 1. The set of quality scenarios for drivers Key drivers may change during design, due to o better understanding or changing of requirements Quality attribute requirements are a good start o although they can t be all known a priori 2. The context description What are the boundaries of the system being designed? What are the external systems, devices, users, and environmental conditions with which the system being designed must interact?

9 ADD output Output: a set of sketches of architectural views. First several levels of a module decomposition view of an architecture The views together will identify a collection of architectural elements and their relationships The interactions of the elements are described in terms of the information being passed between the elements o e.g. specify protocol names, level of encryption, etc

10 ADD output Critical for achieving desired qualities Provides framework for achieving the functionality Difference between ADD output and an architecture ready for implementation Detailed design decisions postponed o e.g. choosing the names and parameter types of interface Flexibility

11 Case study: Garage Door Opener Garage door opener: A real-time system responsible for raising and lowering the garage door, via Switch button Remote control Home information system It is possible to diagnose problems of opener from the home information system (HIS) Product line architecture! (PLA) The processor is different from other products.

12 Case study: Garage Door Opener Input to ADD: a set of requirements Functional requirements as use cases Constraints Quality requirements o Set of system-specific quality scenarios o Only the necessary detail

13 Case study: Scenarios Scenarios for garage door system Reacting to obstacles [Performance] o If an obstacle (person/object) is detected by garage door during descent, it must halt or re-open within 0.1 second and report to HIS and user interface. Door commands [Performance] o Remote control; HIS; button. o Open, close, halt, diagnosis o Detect a command and initiate execution within 0.5 sec

14 Case study: Scenarios Scenarios for garage door system Processors [Modifiability] o Processors can change due to either obsolescence or changes in the marketplace. UI [Modifiability] o Various garage door openers have various controls.

15 ADD steps Steps involved in Attribute Driven Design (ADD) 1. Choose the module to decompose Start with entire system Inputs for this module need to be available o Constraints, functional and quality requirements

16 ADD steps 2. Refine the module Choose architectural drivers Choose architectural pattern Instantiate modules and allocate functionality using multiple views Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

17 Choose the module to decompose Modules: system subsystem submodule Current design element is the whole system Constraint for the Garage Door Opener system Garage Door Opener is the system One constraint: opener must interoperate with the home information system (HIS)

18 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

19 Refine the module: Choose arch. drivers Architectural drivers: functional and quality requirements that shape the architecture Among the top priority requirements for the module To be addressed in the initial decomposition of the system Drivers for Garage Door Opener system Real-time performance Modifiability to support product lines Online diagnosis supported

20 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

21 Refine the module: Choose arch. pattern For each quality requirement there are identifiable tactics and patterns to implement them each tactic is designed to realize one/more attributes the patterns in which the tactics are embedded have impact on other attributes balance between qualities needed o As composition of tactics is used We need to identify child modules required to implement the tactics

22 Refine the module: Choose arch. pattern The goal of this step is to establish an overall architectural pattern for the module Architectural pattern should satisfy drivers Architectural pattern is built by composing the tactics selected Two factors involved in selecting tactics: o Architectural drivers themselves o Side effects of the pattern implementing the tactic on other requirements

23 Refine the module: Choose arch. pattern Example 1: Modifiability at design time Increase semantic coherence and information hiding o Separate responsibilities dealing with user interface, communication, sensors, diagnosis into their own module These modules are called virtual machine. o The first 3 virtual machines: will vary for the different products to be derived from the PLA

24 Refine the module: Choose arch. pattern Example 2: Performance Increase computational efficiency and choose scheduling policy o Performance-critical computations made efficient o Performance-critical computations scheduled to achieve the timing deadline

25 Refine the module: Choose arch. pattern Architectural patterns that utilize tactics to achieve garage door drivers

26 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

27 Refine the module: Instantiate modules Previous step We defined the module types of the decomposition Now We instantiate them Virtual machine manages communication and sensor interactions One module for each group of functionality instance of the module types

28 Refine the module: Instantiate modules Our example Responsibility for managing obstacle detection and halting door performance critical section o This functionality has deadline Management of normal door raising/lowering o No deadline => non-performance critical section o Same with diagnosis Several responsibilities for VM o Communication and sensor reading and actuator control o Results in 2 instances of VM

29 Refine the module: Instantiate modules First level decomposition of SGDO

30 Refine the module: Allocate functionality User interface Recognize user requests and translate them into the form expected by the raising/lowering door module. Raising/lowering door module Control actuators to raise or lower the door. Stop the door when it reaches either fully open or closed. Obstacle detection Recognize when an obstacle is detected and either stop the descent of the door or reverse it.

31 Refine the module: Allocate functionality Communication virtual machine Manage all communication with HIS. Sensor/actuator virtual machine Manage all interactions with the sensors and actuators. Scheduler Guarantee that the obstacle detector will meet its deadlines. Diagnosis Manage the interactions with HIS.

Refine the module: Instantiate modules and allocate functionality 32 Represent architecture with views Dynamic and deployment info required to analyze achievement of qualities We need additional views o Module decomposition view o Concurrency view

33 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

Refine the module: Define interfaces of child modules 34 Module interface Services and properties provided and required Different from signatures Documents what others can use and on what they can depend Module decomposition view documents Producers/consumers on information Patterns of interaction requiring modules to provide and use services

Refine the module: Define interfaces of child modules 35 User interface: opendoor: send command to Raising/lowering door module to open garage door closedoor: to close door haltdoor: to halt door (manually halt function is available) Raising/lowering door module startopen: send command to Sensor/actuator virtual machine module to turn on the actuator and open door. startclose: turn on the actuator and close door. stop: turn off the actuator and left the door in the current position

36 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

37 Refine the module: Verify and refine Decomposition into modules needs to be verified. Child modules need preparation for their own decomposition on second level decomposition. Done for Functional requirements Constraints Quality requirements

38 Functional requirements Child modules have responsibilities Derived from functional requirements decomposition As use cases for the module Split and refine parent use cases Example: use cases that initializes the whole system o Broken into initialization of subsystems

39 Functional requirements Case study: Initial responsibilities Open/close door on request o Locally or remotely Stop door within 0.1 sec when detect obstacle Interact with HIS Support remote diagnostics

40 Functional requirements Case study: Decomposition of responsibilities User interface: o recognize user requests and translate them into form expected by the raising/lowering door module Raising/lowering door module: o Control actuators to raise/lower door o Stop door when fully closed or fully open Obstacle detection

41 Functional requirements Case study: Decomposition of responsibilities more Communication VM o Manage communication with HIS Sensor/actuator VM o Manage interaction with sensors and actuators Scheduler o Guarantee deadline Diagnosis o Manage interaction with HIS for diagnosis

42 Constraints Constraints of parent module satisfied by 1. Decomposition satisfies the constraints o Using certain OS 2. Constraint satisfied by single child module o Special protocol 3. Constraint satisfied by multiple child modules o Web usage requires two modules (client and server)

43 Constraints Case study: Constraint: communication with HIS is maintained Communication virtual machine will recognize if this is unavailable Constraint satisfied by a single child

44 Quality scenarios (QS) Need to be refined and assigned to child modules Possibilities QS completely satisfied by decomposition QS may be satisfied by decomposition with constraints on child modules o Layers and modifiability Decomposition neutral with respect to QS o QS assigned to child modules QS not satisfiable by decomposition o Decomposition reconsidered or reason for this recorded o Typical trade-offs

45 Quality scenarios (QS) Case study: Device and controls for opening and closing the door are different for the different products in the product line May include controls from within the HIS QS is delegated to user interface module Processor used in different products will differ Product architecture for each specific processor should be directly derivable from the PLA QS is delegated to all modules

46 Quality scenarios (QS) Case study: If an obstacle (person/object) is detected by garage door during descent, it must halt or re-open within 0.1 second QS delegated to scheduler and obstacle detection module Garage door opener should be accessible for diagnosis and administration from within the HIS Using a product-specific diagnosis protocol QS split between diagnosis and communication modules

47 Step outcome Decomposition of module into children Each child has o Set of responsibilities o Set of use cases o Interface o Quality scenarios o Collection of constraints Enough for next iteration of decomposition

48 ADD steps 1. Choose the module to decompose 2. Refine the module Choose architectural drivers Choose architectural pattern that satisfies these drivers Instantiate modules and allocate functionality Define interfaces of child modules Verify and refine use cases and quality scenarios and make them constraints for child modules 3. Repeat for every module that needs further decomposition

49 Iteration progress Vocabulary of modules and their responsibilities Variety of use cases and quality scenarios and understood some of their ramifications Information needs of modules Their interactions Not decided yet Communication language, algorithm for obstacle detection, etc

50 Iteration outcome We defined enough to allocate work teams and give them charges If we design a large system We can proceed to next iteration and decide on answers for the questions If we design small system

51 Forming the team structure When modules fairly stable They can be allocated to development teams (existing, new) Team structure mirror module decomposition structure Each team creates its own internal work practices (or adopts a system-wide set) Bulletin boards Web pages Naming conventions for files Configuration control system Quality assurance and testing procedures set up for each group Coordinate with others

52 The End