Computer Systems & Architecture Lesson 2 4. Achieving Qualities.

Slides:



Advertisements
Similar presentations
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Advertisements

©Silberschatz, Korth and Sudarshan4.1Database System Concepts Lecture-1 Database system,CSE-313, P.B. Dr. M. A. Kashem Associate. Professor. CSE, DUET,
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
ArchE Presented By Samanvitha Ramayanam. TOPICS 1. Introduction 2. Theoretical assumptions 3. ArchE as an expert system 4. Overall flow of ArchE 5. Key.
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.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Instructor: Tasneem Darwish
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Architecture Design Process
Transaction Management and Concurrency Control
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
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.
Unified Modeling (Part I) Overview of UML & Modeling
©Silberschatz, Korth and Sudarshan1.1Database System Concepts Chapter 1: Introduction Purpose of Database Systems View of Data Data Models Data Definition.
Software Architecture in Practice Part Two: Creating an Architecture 2nd Ed. Len Bass, Paul Clements, Rick Kazman.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
Principles of Software Architecture Evaluation and Design
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 1- 1.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
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.
Chapter 10 Architectural Design
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
An Introduction to Software Architecture
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
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 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Software System Architecture Software System Architecture Chapter 6:Air Traffic Control: A Case Study in Designing for High Availability. Chapter 6:Air.
CprE 458/558: Real-Time Systems
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
John D. McGregor Class 4 – Initial decomposition
DATABASE MANAGEMENT SYSTEM 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.
Performance Performance is about time and the software system’s ability to meet timing requirements.
Slide 1 Lecture 14 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Oracle Architecture - Structure. Oracle Architecture - Structure The Oracle Server architecture 1. Structures are well-defined objects that store the.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 Software Architecture in Practice Architectural Design (Again, the amputated version)
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.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Chapter 13 Managing Transactions and Concurrency Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Chapter 7: Modifiability
Lecture 9z Case Study ADD: Garage Door
SOFTWARE DESIGN AND ARCHITECTURE
Achieving Qualities.
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Real-time Software Design
Unit- 3 QUALITY Presented by Sushma Narasimhan Asst. Professor,
Quality Attributes Or, what’s wrong with this:
Software Architecture in Practice
Quality Attributes Or, what’s wrong with this:
An Introduction to Software Architecture
Database Recovery 1 Purpose of Database Recovery
Quality Attributes Or, what’s wrong with this:
Presentation transcript:

Computer Systems & Architecture Lesson 2 4. Achieving Qualities

Objectives Define the term tactics Describe the fault detection and fault recovery Explain the various tactics in order to achieve quality software

4.1 Introducing tactics What is it that imports portability to one design, high performance to another, and integrability to a third? The achievement of these qualities relies on fundamental design decisions. We will examine these design decisions, which we call tactics.

Recall the vocabulary for availability from chapter 3. A failure occurs when the system no longer delivers a service that is consistent with its specification; this failure is observable by the systems users. A fault has the potential to cause a failure. Recall also that recovery or repair is an important aspect of availability. 4.2 Availability tactics

Fault detection Three widely used tactics for recognizing faults are: –Ping/echo –Heartbeat –Exceptions

Fault recovery Fault recovery consists of preparing for recovery and making the system repair. Some preparation and repair tactics follow: –Voting –Active redundancy –Passive redundancy

Synchronization is the responsibility of the primary component, which may use atomic broadcasts to the secondaries to guarantee synchronization. –Spare –Shadow operation –State resynchronization –Checkpoint/rollback

Fault prevention The following are some fault prevention tactics: –Removal from service –Transactions –Process monitor

4.3 Modifiability tactics Recall from chapter 3 that tactics to control modifiability have as their goal controlling the time and cost to implement, test, and deploy changes. We organize the tactics for modifiability in sets according to their goals. One set has as its goal reducing the number of modules that are directly affected by a change. A second set has as its goal limiting modifications to the localized modules. We use this set of tactics to prevent the ripple effect.

Localize modifications Although there is not necessarily a precise relationship between the number of modules affected by a set of changes and the cost of implementing those changes, restricting modifications to a small set of modules will generally reduce the cost. We identify five types of tactics are: - Maintain semantic coherence - Anticipate expected changes - Generalize the module - Limit possible options

Prevent ripple effects A ripple effect from a modification is the necessity of making changes to modules not directly affected by it. For instance, if module A is changed to accomplish a particular modification, then module B is changed only because of the change to module A. B has to be modified because it depends, in some cases, on A. We begin our discussion of the ripple effect by discussing the various types of dependencies that one module can have on another. We identify eight types:

1.Syntax of - data and service 2.Semantics of - data and service 3.Sequence of - data and control 4.Identify of an interface of A. 5.Location of A 6.Quality of service/data provided by A 7.Existence of A 8.Resource behavior of A

Defer binding time The two tactic categories we have discussed thus far are designed to minimize the number of modules that require changing to implement modifications. Our modifications scenarios include two elements that are not satisfied by reducing the number of modules to be changed – time to deploy and allowing nondevelopers to make change.

Many tactics are intended to have impact at loadtime or runtime, such as the following: –Runtime registration supports plug-and-play operation at the cost of additional overhead to manage the registration. Configuration files are intended to set parameters at startup. Polymorphism allows late binding of method calls. Component replacement allows load time binding. Adherence to defined protocols allows runtime binding of independent processes.

4.4 Performance tactics Recall from chapter 3 that the goal of performance tactics is to generate a response to an event arriving at the system within some time constraint. The event can be single or a stream and is the trigger for a request to perform computation. After an event arrives, either the system is processing on that event or the processing is blocked for some reason. This leads to the two basic contributors to the response time: resource consumption and blocked time.

1.Resource consumption 2.Blocked time –Contention for resources –Availability of resources –Dependency on other computation

Resource demand Event streams are the source of resource demand. Two characteristics of demand are the time between events in a resource stream and how much of a resource is consumed by each request. One tactic for reducing latency is to reduce the resources required for processing an event stream. Ways to do this include the following. –Increase computational efficiency. –Reduce computational overhead.

Another tactic for reducing latency is to reduce the number of events processed. This can be done in one of two fashions. –Manage event rate –Control frequency of sampling –Class or generalization – In object-oriented design systems Other tactics for reducing or managing demand involve controlling the use of resources. –Bound execution time –Bound queue sizes

Resource management Even through the demand for resources may not be controllable, the management of these resources affects response times. Some resource management tactics are: –Introduce concurrency –Maintain multiple copies of either data or computations –Increase available resources

Resource arbitration 1.First in first out 2.Fixed priority scheduling –Semantic importance –Deadline monotonic –Rate monotonic 3.Dynamic priority scheduling: –Round robin –Earliest deadline first 4.Static scheduling

4.5 Security tactics Resisting attacks –Authentic users –Authorize users –Maintain data confidentiality –Maintain integrity –Limit exposure –Limit access Detecting attacks Recovering from attacks

4.6 Testability tactics Input/output –Record/playback –Separate interface from implementation –Specialize access routes/interfaces Internal monitoring –Built-in monitors

4.7 Usability tactics Runtime tactics –Maintain a model of the task –Maintain a model of the user –Maintain a model of the system Design-time tactics –Separate the user interface from the rest of the application

4.8 Relationship of tactics to architectural patterns We have presented a collection of tactics that the architect can use to achieve particular attributes. In fact, an architect usually chooses a pattern or a collection of patterns designed to realize one or more tactics. However, each pattern implements multiple tactics, whether desired or not.

4.9 Architectural patterns and styles An architectural pattern in software, also known as an architectural style, is analogous to an architectural style in buildings, such as Gothic or Greek Revival or Queen Anne. It contains of a few key features and rules for combining them so that architectural integrity is preserved. An architectural pattern is determined by:

A set of element types. A topological layout of he elements indicating their interrelationships. A set of semantic constraints. A set of interaction mechanisms that determine how the elements coordinate through the allowed topology.