1 Software Architecture in Practice Architectural Design (Again, the amputated version)

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Software Architecture in Practice
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Quality Attributes Or, what’s wrong with this: Exterminator kit – place bug on block, strike with mallet.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Intraship Integration Control Instructor: TV Prabakar.
1 CSSE 377 – Intro to Availability & Reliability Part 2 Steve Chenoweth Tuesday, 9/13/11 Week 2, Day 2 Right – Pictorial view of how to achieve high availability.
The Architecture Design Process
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
DAIMIHenrik Bærbak Christensen1 Architectural Design Tactics, Patterns Prototyping.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
1 Exercise a short summary of you so your professor can get to know you better: Name, company, job/role/title, most interesting SE area, any architecting.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Software Architecture in Practice Part Two: Creating an Architecture 2nd Ed. Len Bass, Paul Clements, Rick Kazman.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
Principles of Software Architecture Evaluation and Design
Course Instructor: Aisha Azeem
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Achieving Qualities. Architectural Tactics  A tactic is a design decision that influences the control of a quality attribute response.  A collection.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
Guide to Linux Installation and Administration, 2e 1 Chapter 9 Preparing for Emergencies.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Quality Attributes Often know as “–ilities” …
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Architecture in Practice Architectural description (The reduced version)
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Distributed Database Systems Overview
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Achieving Qualities © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Design Process for Architecture. Architectural Lifecycle Not all lifecycle plans support Architecture! It is hard to achieve architecture based design.
Software System Architecture Software System Architecture Chapter 6:Air Traffic Control: A Case Study in Designing for High Availability. Chapter 6:Air.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Air Traffic Control Guy Mark Lifshitz Sevan Hanssian.
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 Software Architecture in Practice Quality attributes (The amputated version)
Cloud Computing and Architecture Architectural Tactics (Tonight’s guest star: Availability)
Performance Performance is about time and the software system’s ability to meet timing requirements.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (1)
Dr. Awais Majeed Achieving Quality CSE 861- Software System Design & Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 5: Availability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Chapter 7: Modifiability
Lecture 9z Case Study ADD: Garage Door
Software Architecture in Practice
Achieving Qualities.
Chapter 8 – Software Testing
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Chapter 19: Architecture, Implementation, and Testing
Design Process for Architecture
Quality Attributes Or, what’s wrong with this:
Quality Attributes Or, what’s wrong with this:
Design Process for Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Co-designed Virtual Machines for Reliable Computer Systems
Design Process for Architecture
Quality Attributes Or, what’s wrong with this:
Presentation transcript:

1 Software Architecture in Practice Architectural Design (Again, the amputated version)

2 The bottom line Bertrand Meyer:... once everything has been said, software is defined by code. Or – in other words: –Architectural views, UML, quality attribute scenarios don’t pay the bills...

3 What do we do? We have identified that our architecture should strike a balance between qualities A, B, and C – in various scenarios. –and - Conceptual integrity, Correctness and completeness, and Buildability Question: How do we then use this information to guide the design ??? Architectural Design ?

4 Architectural design The idealized process Functional requirement s Architectural qualities Architectural Design Proposals Best Architecture Code Architectural Evaluation Architectural Design

5 Architectural Design The process of designing a software architecture that meets quality attribute requirements –And enables implementation of functional requirements Characteristics of the process –Creative –Iterative (and incremental) Functional decomposition Quality decomposition –Experimental Architectural prototyping –Based on experience This lesson

6 Overview Architectural Styles –A vocabulary of large-scale structure Architectural Patterns –Name, Problem, Solution, Consequences –Patterns = Styles? Tactics –Surgical bits and pieces

7 Tactics Surgical means for getting a quality

8 Architectural Tactics Tactic –A design decision that influences the control of a quality attribute response –E.g., Heartbeat to control availability Architectural strategy –Collection of tactics Characteristics –Capture what architects do in practice –Tactics may refine other tactics –Tactics may influence more than one quality attribute Since quality attributes are interdependent

9 POS Revisited – Component and Connector View

10 POS Revisited – Module View (Revised compared to [Christensen et al, 2007])

11 POS Revisited – Allocation View

12 Categories of Tactics Classified according to (main) quality attribute concern –Availability –Modifiability –Performance –Security –Testability –Usability

13 Availability Tactics (1)

14 Availability Tactics (2) Fault detection –Ping/echo One component pings Expects response within predefined time –Heartbeat (dead man timer) One component emits heartbeat message periodically Other components listen for it Often carry payload (like T in TS-05) –Exceptions Raise exception when fault class is encountered Omission, crash, timing, response fault Fault recovery – repair –Voting Redundant processes and processors Voter process check responses – fail if deviant –Active redundancy (hot restart) Maintain redundant, parallel components Only use one response –Passive redundancy (warm restart) Primary component responds, informs standbys of updates to make Resume standby if primary fails –Spare Standby computing platform Boot and initialize state when needed Fault recovery – reintroduction –Shadow operation Previously failed component runs in “shadow mode” Restore when sure that it works –State resynchronization Redundancy requires restoring after downtime –Checkpoint/rollback Create checkpoint recording consistent state at points in time Rollback to previous checkpoint if inconsistent state detected Fault prevention –Removal from service (Periodically) remove component to prevent anticipated failure –Transactions Bundling sequential steps Undo all if necessary Give examples of each!

15 POS Availability Scenarios Exercise –Which tactics can be used to handle the scenarios? –Are other tactics relevant to POS?

16 Modifiability Tactics (1)

17 Modifiability Tactics (2) Assumption –Restricting modifications to small set of module will reduce cost of change Localize changes –Semantic coherence Ensure responsibilities of a module are coherent Low coupling + high coherence + measured against scenarios of change –Anticipate expected changes Make decomposition so that considered changes affect minimal number of modules Based on assumptions of what changes will be –Generalize module Make module compute broader range of functions E.g., constants -> input parameters –Limit possible options Reduce options for modifications Prevention of ripple effect –Hide information Decompose responsibilities Choose which to make public, hide others –Maintain existing interface Mask variations –Restricts communication paths Restrict the number of module with which a component shares data –Use an intermediary Create module handling dependencies between components (e.g., Adapter) Defer binding time –Runtime registration –Configuration files –Polymorphism –Component replacement –Adherence to defined protocols Give examples of each!

18 Exercise –Which tactics can be used to handle the scenario? –Are other tactics relevant to POS? POS Modifiability Scenario

19 Performance Tactics (1)

20 Performance Tactics (2) Resource Demand –Increase Computation Efficiency Better algorithms to reduce latency –Reduce Computational Overhead Avoid intermediaries, communicate directly (tight coupling) Cmp adapters and other modifiability tactics –Manage Event Rate Lower the rate of sampling of environmental variables –Control Frequency of Sampling Use queues to buffer external events, and sample this using a lower frequency Resource Management –Introduce Concurrency Process requests in parallel, load balancing –Maintain multiple copies of data or computations Caching, dynamic programming –Increase Available Resources Faster processors, additional processors, more memory, faster network,... Resource Arbitration –Scheduling Policy FIFO Fixed-priority scheduling Dynamic priority scheduling Static scheduling Give examples of each!

21 POS Performance Scenario

22 Security Tactics

23 Testability Tactics

24 Testability Tactics (2) Manage Input/Output –Record/Playback Record information across an interface, using it later as input for test harness –Separate Interface from Implementation Allows replacing production units with test stubs (fakes, mock objects, spies) –Specialized access routes/interfaces Add accessors to internal state inspection for testing internal algorithms Keep separate from production code interfaces Internal Monitoring –Built-in Monitors Maintain performance load, capacity, security information for inspection Turn on/off using macros/aspect oriented techniques May influence results (monitoring takes time, increase resource demand, etc.) Give examples of each!

25 Usability Tactics

26 Usability Tactics (2) Separate User Interface –Handle rapid changes in UI requirements –(Modifiability tactics?) Support User Initiative –Cancel –Undo –Aggregate Allow user to make composite operations –Show multiple views Support Systemt Initiative –User Model Collect data on usage to predict user behaviour and experience –Task Model Know the overall task to support users’ interaction with the invidiual steps –System Model Know state of system to report to user Give examples of each!

27 Discussion Tactics help make quality attribute decisions –Does it make sense to divide tactics according to quality attributes – cf. interdependence? Do tactics make sense regardless of domain? Are the tactics really just design ideas? –Cf. patterns… Bass’ list of tactics –Is it complete? What is the level of granularity? What is the quality of their presentation?