Software Architecture in Practice

Slides:



Advertisements
Similar presentations
ATAM Architecture Tradeoff Analysis Method
Advertisements

Designing an Architecture 1.Design Strategy Decomposition Designing to Architecturally Significant Requirements Generate and Test This generate-and test.
Lecture # 2 : Process Models
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Unit 2. Software Lifecycle
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Evaluating a Software Architecture By Desalegn Bekele.
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Rational Unified Process
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
(c) DAIMI - OOSSHenrik Bærbak Christensen1 Architectural Evaluation Overview, Questioning Techniques.
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
Chapter 3 Software Processes.
Software Architecture in Practice (3rd Ed) Introduction
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Evaluating Architectures: ATAM
CPSC 871 John D. McGregor Module 4 Session 3 Architecture Evaluation.
Architecture Business Cycle
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Project Management for Agile Projects. Introduction The Project Management Job Day to day administration Managing the process Managing external relationships.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Software Project Management Lecture 11. Outline Brain Storming session  Some simple discussion on questions and their answers  Case studies related.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
CS2003 Usability Engineering Human-Centred Design Dr Steve Love.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
John D. McGregor Architecture Evaluation
The ATAM method. The ATAM method (1/2) Architecture Tradeoff Analysis Method Requirements for complex software systems Modifiability Performance Security.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Analyzing an Architecture. Why analyze an architecture? Decide whether it solves the problem Compare to other architectures Assess what needs to change,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Information Technology Planning
Chapter 33 Estimation for Software Projects
Project Management BBA & MBA
Chapter 2 SW Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Processes.
The Extensible Tool-chain for Evaluation of Architectural Models
Analyzing an Architecture
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Fundamental Test Process
Software Architecture
Software engineering -1
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Analyzing an Architecture
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Software Architecture
Chapter 26 Estimation for Software Projects.
Presentation transcript:

Software Architecture in Practice Architectural Evaluation

Architectural Evaluation Overview Questioning & Measuring Techniques Credits: Parts of these slides were made by Klaus Marius Hansen

The (Very) Simplified Development Process Again NB! Creative, iterative, incremental, parallel, … process Architecture-Business Cycle ? How to we known SA is good before committing to impl?

Rationale Software architecture allows or precludes almost all system quality attributes Architecture needs to be designed early E.g., prerequisite for work assignment Cf. RUP Architecture embodies fundamental design decisions Hard/costly to change these The later the change, the costlier it is Need to evaluate impact of architectural design on quality attributes Should be possible… Cheap techniques for architectural evaluation exist

When? Typically when architecture is designed, design not implemented I.e., early in a cycle in an iteration E.g., “We have designed this architecture, will it possibly fit the quality requirements?” Could also be earlier… E.g., “Will any architecture meet these quality requirements?” “You can have any combination of features the Air Ministry desires, so long as you do not also require that the resulting airplane fly” (Messerschmitt) Evaluate design decisions Either design decisions made or considered Architecture description may not be available Completeness and fidelity is product of state of architectural description Thus evaluations may be (more) misleading in this phase Could also be later… E.g., ”We have these requirements; could this COTS system be customized to fulfill them?” Evaluate architecture for existing system Possible purchase, redesign, evolution, …

Who? Roles Needs depend on the actual type of evaluation Evaluation team Preferably not process staff Objectivity reasons Often architect himself… Project stakeholders Articulate requirements Decision makers Producers Software architect, developer, maintainer, integrator, standards expert, performance engineer, security expert, project manager, reuse czar, … Consumers Customer, end user, application builder (for product line), persons in problem domain, … Servicers System administrator, network administrator, service representatives, … Needs depend on the actual type of evaluation From little stakeholder involvement to continuous involvement

Overview

Questioning Techniques Analytical Any project artifact Typically in the form of a review Any state of completeness Subtypes Questionnaires Checklists Scenario-based methods

Questionnaires List of relatively open questions Apply to all architectures Process and product questions Cf. Capability Maturity Model (CMM) for software E.g., Kruchten checklist of typical risks

Example: EHR Early concern raised by ‘amterne’ AU/Alexandra: Multi-supplier strategy But a component market? AU/Alexandra: Evaluate architectural capability for moving componts from system A to B Work by me and KMH

Checklists (1) Detailed questions Domain-specific Based on experience E.g., a checklist used when integrating information system [Hansen and Christensen, 2004]

Checklists (2)

Scenario-Based Methods Scenarios Description of interaction with system from the point of with of a stakeholder System-specific – developed as part of project Cf. quality-attribute scenarios as in [Bass et al., 2003] Types Quality Attribute Workshops (QAW) Structured way of involving stakeholders in scenario generation and prioritization Architecture Tradeoff Analysis Method (ATAM) Creates utility trees to represent quality attribute requirements Analysis of architectural decisions to identify sensitivity points, tradeoffs, and risks Software Architecture Analysis Method (SAAM) Brainstorming of modifiability and functionality scenarios Scenario walkthrough to verify functionality support and estimate change costs Active Reviews for Intermediary Designs (ARID) Active Design Review of software architecture E.g., “Is the performance of each component adequately specified” vs. “For each component, write down its maximum execution time and list the shared resources that it may consume” Survivable Network Analysis method (SNA) Focus on survivability as quality attribute

Overview

Measurement Techniques May answer specific quality attribute scenarios Cf. experimental vs. exploratory prototyping Prerequisite Artifacts to do measurements on… Types Metrics Simulation, prototypes, experiments Domain-specific analyses E.g., Rate-Monotonic Analysis ADL-based

Metrics Quantitative interpretation of observable measurement of software architecture Cf. the ISO/IEC 9126 quality standard E.g., measuring complexity to predict modifiability Real-time object-oriented telecommunication systems Number of events reacted to Number of {asynchronous, synchronous} calls made Number of component clusters Object decompositions units, e.g., car as wheels, transmission, steering, … Depth of inheritance tree … E.g., flow metrics to predict reliability Call-graph-metrics Number of modules used by module Total calls to others modules Unique calls to other modules Control-flow metrics Number of if-then conditional arcs Number of loop arcs Cyclomatic complexity given control flow graph

Simulations, Prototypes, Experiments Architectural prototyping: [Bardram et al., 2004] You are already experts 

Domain-Specific: Rate-Monotonic Analysis Static, quantitative analysis Ensuring dependability in hard real-time systems Preemptive multitasking, execute task with highest priority Basic idea Assign priority to each process according to its period The shorter the period/deadline, the higher the priority RMA ensures schedulability of processes No process misses execution deadline Worst-case schedule bound: W(n) = n * (2^(1/n) - 1) ln 2, n -> oo Guarantees schedulability if concurrency model is observed in implementation Periods: T1 = 50 ms, T2 = 100 ms (deadline of finish) Worst case execution time: C1 = 25 ms; C2 = 40 ms Utilization: C1/T1 = 50%, C2/T2 = 40% W(1) = 1 W(2) ~ 0,83 ln(2) = 0.693147181 Some task sets aren't schedulable (T1=50, C1=25, T2=75, C2=30) http://www.netrino.com/Publications/Glossary/RMA.html

Using Queue Theory Knowning the architecture allows subnodes characteritics to be defined As exercise 1 at last seminar: N queue systems, estimates for timing on some of them fixes the timings of the rest, given a total required average time budget

Summary Wide range of evaluation approaches exist Questioning techniques Measuring techniques Establishing suitability of architecture as main goal Does architecture fulfill quality goals? Is architecture buildable within project constraints? Utility of approaches dependent on context Project state Expertise Tools used Domain …