Understanding Quality Attributes. Functionality and Quality Attributes  Functionality and quality attributes are orthogonal.  Functionality can be achieved.

Slides:



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

Testing Relational Database
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Chapter 2 – Software Processes
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Instructor: Tasneem Darwish
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
The Architecture Design Process
1 Steve Chenoweth Tuesday, 10/18/11 Week 7, Day 2 Right – One view of the layers of ingredients to an enterprise security program. From
Evaluating Software Architectures RiSE’s Seminars Clement’s book :: Chapters 05 Eduardo Cruz.
SIM5102 Software Evaluation
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Lecture 7 Quality Attributes = Nonfunctional Req. Topics Quality AttributesReadings: January 29, 2008 CSCE 492 Software Engineering.
Essential Software Architecture Chapter Three - Software Quality Attributes Ian Gorton CS590 – Winter 2008.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
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.
Software Process and Product Metrics
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
CSE 303 – Software Design and Architecture
Quality Attributes Often know as “–ilities” …
IT Requirements Management Balancing Needs and Expectations.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Quality Attribute -continued. What is Availability? Availability refers to a property of software that it is there and ready to carry out its task when.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
1 Software Architecture in Practice Quality attributes.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Database Environment Chapter 2. Data Independence Sometimes the way data are physically organized depends on the requirements of the application. Result:
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
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)
CSE 303 – Software Design and Architecture
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Quality Assurance and Testing Fazal Rehman Shamil.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
Quality Attributes Workshop
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Software Architecture Lecture 3
Chapter 7: Modifiability
Chapter 4: Understanding Quality Attributes
Software Architecture in Practice
Non Functional Requirements (NFRs)
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Software Architecture Lecture 3
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture in Practice
Software Architecture Lecture 3
Software Architecture Lecture 3
Lecture 7 – Quality Attributes
Software Architecture Lecture 3
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Understanding Quality Attributes

Functionality and Quality Attributes  Functionality and quality attributes are orthogonal.  Functionality can be achieved through any number of structures; it is largely independent of structure.  It is the quality attributes that constrain the structure.

Architecture and Quality Attributes  Achieving quality attributes must be considered throughout design, implementation, and deployment.  For example: Usability involves both architectural and nonarchitectural aspects. Making the user interface easy to use is nonarchitectural, but providing the user with undo operations is architectural.

Architecture and Quality Attributes (Cont’d)  For example (cont’d): Modifiability is determined by how functionality is divided (architectural) and by coding techniques within a module (nonarchitectural). Performance depends partially on how much communication is necessary among components and how shared resources are allocated (architectural) and partially on the choice of algorithms and how they are coded (nonarchitectural)

Architecture and Quality Attributes (Cont’d)  The message is: 1. Architecture is critical to the realization of many qualities of interest in a system, and these qualities should be designed in and can be evaluated at the architectural level. 2. Architecture, by itself, is unable to achieve qualities. It provides the foundation for achieving quality, but this foundation will be to no avail if attention is not paid to the details.

Architecture and Quality Attributes (Cont’d)  Within complex systems, quality attributes can never be achieved in isolation.  The achievement of any one will have an effect on the achievement of others.  Sometimes the effect is positive and sometimes negative.  For example, security and reliability exist is a state of mutual tension.

System Quality Attributes  Problems (from the architect’s perspective) with the way quality attributes are characterized. The definitions are not operational. The focus is often on which quality a particular aspect belongs to. E.g., is a system failure an aspect of availability, security, or usability. Each attribute community has its own vocabulary.

Quality Attribute Scenarios  A quality attribute scenario is a quality- attribute-specific requirement. It consists of six parts. Source of stimulus – the entity that generated the stimulus Stimulus – a condition that needs to be considered when it arrives at a system Environment – the particular conditions in which the stimulus occurs

Quality Attribute Scenarios (Cont’d)  The six parts of a quality attribute scenario (cont’d). Artifact – the system or the pieces of it that are stimulated Response – the activity undertaken after the arrival of the stimulus Response measure – when the response is occurs, it should be measurable in some fashion so that the requirement can be tested.

Quality Attribute Parts

General vs. Concrete Quality Attribute Scenarios  A general scenario is system independent and can, potentially, pertain to any system.  A concrete scenario is specific to the particular system under consideration.  Concrete scenarios are needed to make the quality requirements operational.

General Scenario for Availability

Sample Concrete Availability Scenario

Sample Modifiability Scenario

Features of Concrete Scenarios  A collection of concrete scenarios can be used as the quality attribute requirements of a system.  Each scenario is concrete enough to be meaningful to the architect.  The details of the responses are meaningful enough so that it is possible to test whether the system has achieved the response.  Concrete scenarios play the same role in the specification of quality attributes that use cases play in the specification of functional requirements.

Quality Attribute Scenario Generation  Theoretically quality attribute requirements should be obtained during requirements elicitation, but in practice is seldom done.  It is the architect’s task to ensure that this is accomplished by generating concrete quality attribute scenarios.  Quality-attribute-specific tables are used to create general scenarios, as appropriate, and from them concrete scenarios are specified.

Quality Attribute Scenario Generation (Cont’d)  The tables serve as checklist to ensure that all possibilities have been considered.  We are unconcerned about generating the same or similar scenarios from different quality attributes as the redundancies can easily be removed.  What is important is that we do not omit any important requirements.

Quality Attribute Scenarios in Practice  The general scenario approach provides a framework for generating a large number of system-independent, quality- attribute-specific scenarios.  Each is potentially, but not necessarily, relevant for the system under consideration.  To make the general scenarios useful, you must make them system specific.

Availability Specifics  Availability is concerned with system failure and its consequences.  Areas of concern: How the system failure is detected How frequently system failures occur What happens when a failure occurs How long a system is allowed to be out of operation When failures may occur safely How failures can be prevented What kinds of notifications are required when a failure occurs

Availability Specifics (Cont’d)  We must distinguish between failures and faults.  Once a system fails, we must consider the time it takes to repair it.  Availability is defined as the probability that it will be operational when needed, typically, (mean time to failure) / (mean time to failure + mean time to repair)

Table for Generation of General Availability Scenario Portion of ScenarioPossible Values SourceInternal to the system; external to the system StimulusFault; omission, crash, timing, response ArtifactSystem’s processors, communication channels, persistent storage processes EnvironmentNormal operation; degraded mode (i.e., fewer features, a fall-back solution. ResponseSystem should detect event and do one or more of the following: record it notify appropriate parties, including the user and other systems disable sources of events that cause fault or failure be unavailable for a prespecified interval continue to operate in normal or degraded mode Response MeasureTime interval when the system must be available; availability time; time interval in which system can be in degraded mode; repair time

Modifiability Specifics  Modifiability is about the cost of change.  We must address: What can change? When is the change made? Who makes the change?

Table for Generation of General Modifiability Scenario Portion of Scenario Possible Values SourceEnd user, developer, system administrator StimulusWishes to add/delete/modify/vary functionality, quality attribute, capacity ArtifactSystem user interface, platform, environment; system that inter- operates with target system EnvironmentAt runtime, compile time, build time, design time ResponseLocates places in architecture to be modified; makes modification without affecting other functionality; tests modification; deploys modification Response Measure Cost in terms of number of elements affected, effort, money; extent to which this affects other functions or quality attributes

Performance Specifics  Performance is about timing.  Performance is complicated because of the number of event sources and arrival patterns.  An arrival pattern can be periodic, stochastic, or sporatic.

Table for Generation of General Performance Scenario Portion of Scenario Possible Values SourceOne of a number of independent sources, possibly from within system StimulusPeriodic events arrive; sporadic events arrive; stochastic events arrive ArtifactSystem EnvironmentNormal mode; overload mode ResponseProcesses stimuli; changes level of service Response Measure Latency, deadline, throughput, jitter, miss rate, data loss

Sample Performance Scenario

Security Specifics  Security is a measure of the system’s ability to resist unauthorized usage while providing its services to legitimate users.  An attempt to breach security is an attack – it could be to gain access to data or services or to deny service to others.

Security Properties  Nonrepudiation – the property that a transaction cannot be denied by any of the parties to it.  Confidentiality – the property that data or services are protected from unauthorized access.  Integrity – the property that data or services are being delivered as intended.

Security Properties (Cont’d)  Assurance – the property that the parties to a transaction are who they purport to be.  Availability – the property that the system will be available for legitimate use.  Auditing – the property that the system tracks activities within it at levels sufficient to reconstruct them.

Table for Generation of General Security Scenario Portion of ScenarioPossible Values Source Individual or system that is correctly identified, identified incorrectly, of unknown identity who is internal/external, authorized/not authorized with access to limited resources, vast resources Stimulus Tries to display data, change/delete data, access system services, reduce availability to system services Artifact System services; data within system Environment Either online or offline, connected or disconnected, firewalled or open Response Authenticates user; hides identity of the user; blocks access to data and/or services; allows access to data and/or services; grants or withdraws permission to access data and/or services; records access/modifications or attempts to access/modify data/services by identity; stores data in an unreadable format; recognizes an unexplainable high demand for services, and informs a user or another system, and restricts availability of services Response Measure Time/effort/resources required to circumvent security measures with probability of success; probability of detecting attack; probability of identifying individual responsible for attack or access/modification of data and/or services; percentage of services still available under denial-of-services attack; restore data/services; extent to which data/services damaged and/or legitimate access denied

Sample Security Scenario

Testability Specifics  Testability refers to the ease with which software can be made to demonstrate its faults through testing.  To be properly testable, it must be possible to control each component’s internal state and to observe its outputs.  The response measures deal with how effective the tests are in discovering faults and how long it takes to perform the tests to some desired level of coverage.

Table for Generation of General Testability Scenario Portion of Scenario Possible Values SourceUnit developer, increment integrator, system verifier, client acceptance tester, system user StimulusAnalysis, architecture, design, class, subsystem integration completed; system delivered ArtifactPiece of design, piece of code, complete application EnvironmentAt design time, at development time, at compile time, at deployment time ResponseProvides access to state values; provides computed values; prepares test environment Response Measure Percent executable statements executed; probability of failure if fault exists; time to perform tests; length of longest dependency chain in a test; length of time to prepare test environment

Sample Testability Scenario

Usability Specifics  Usability is concerned with how easy it is for the user to accomplish a desired task and the kind of user support provided.  Areas of usability: Learning system features Using a system efficiently Minimizing the impact of errors Adapting the system to user needs Increasing confidence and satisfaction

Table for Generation of General Usability Scenario Portion of ScenarioPossible Values Source End user Stimulus Wants to learn system features; use system efficiently; minimize impact of errors; adapt system; feel comfortable Artifact System Environment At runtime or configuration time Response System provides one or more of the following responses: to support “learn system features” – help system is sensitive to context; interface is familiar to user; interface is usable in an unfamiliar context to support “use system efficiently” – aggregation of data and/or commands; re-use of already entered data and/or commands; support for efficient navigation within a screen; distinct views with consistent operations; comprehensive searching; multiple simultaneous activities to minimize “impact of errors” – undo, cancel, recover from system failure, recognize and correct user error, retrieve forgotten password, verify system resources to “adapt system” – customizability; internationalization to “feel comfortable” – display system state; work at the user’s pace Response Measure Task time, number of errors, number of problems solved, user satisfaction, gain of user knowledge, ration of successful operations to total operations; amount of time/data lost

Sample Usability Scenario

Using General Scenarios to Communicate Concepts  General scenarios can facilitate communication between stakeholders.  Facilitating this kind of understanding aids discussions about architectural decisions, particularly about tradeoffs.

Quality Attribute Stimuli Quality Attribute Stimulus AvailabilityUnexpected event, nonoccurrence of expected event ModifiabilityRequest to add/delete/change/vary functionality, platform, quality, attribute, or capacity PerformancePeriodic, stochastic, or sporadic SecurityTries to display, modify, change/delete information, access or reduce availability to system services TestabilityCompletion of phase of system development UsabilityWants to learn system, use a system efficiently, minimize the impact of errors, adapt the system, feel comfortable

Other System Quality Attributes  Many authors have developed quality attribute taxonomies.  The ones just discussed cover most of them. E.g., scalability is captured as a modification of system capacity.  If needed quality attribute is not expressible in terms of the ones discussed, e.g., interoperability, it can be easily added.

Business Qualities  Time to market  Cost and benefit  Projected lifetime of the system  Targeted market  Rollout schedule  Integration with legacy systems

Architectural Qualities  Conceptual integrity – the underlying theme or vision that unifies the design of the system at all levels.  Correctness and completeness – essential to insure all requirements and constraints are met.  Buildability – allows the system to be completed by the available team in a timely manner and be open to changes.