Vous êtes sur la page 1sur 41

Module 3 - Understanding

Quality Attributes
Overview
 What is quality and what is functionality?
 What is the relation between quality attributes
and architecture?
 Approaches to quality attributes
 Operational quality attributes
 Constructive quality attributes
What is quality and what is functionality?

 Intuitively
 Functionality is what a product does
 Quality is how well it does it
 Qualities are
 Performance
 Modifiability
 Availability
 Security
 .
Sometimes called non-functional requirements
We will call them quality attributes
Formal Definitions (from ISO 9126)
 Quality The extent to which a product
satisfies stated and implied needs when
used under specified conditions.

 Functionality - The capability of the


software product to provide functions
which meet stated and implied needs
when the software is used under specified
conditions
Distinction gets complicated
 Functional or quality requirements?
 The phone shall provide a dial tone within .1 sec
of removing the handset from its base
 The system shall authenticate users by requiring
a password to be entered for each login ID
Every requirement has both functional
and quality portions
 The phone shall provide a dial tone within
.1 sec of removing the handset from its
base
 Cannot have a functional requirement without
associated quality requirements.
 How fast should the function be?
 How security should the function be?
 How modifiable should be the function be?
 The quality portion of requirements is
frequently not specified.
What is the relation between quality attribute
requirements and architecture?
 Software architecture determines whether
quality attribute requirements can be met.
 Recall MVC discussion

View
Command Model
Command
Processor
Command
Command
Processor
Input device Processor
Processor

Output Controller
device Command
Command
Processor
Processor
MVC
 Easy to view same data with different formats
 Easy to change screens or order of screens
 If components are on different machines,
need to factor in network latency to determine
whether performance requirements can be
met.
 Difficult to make changes that cut across
components e.g. cancel
Approaches to quality attribute specification

 Taxonomies
 Scenarios
Taxonomies

 ISO 9126 defines a taxonomy. Top six levels


are:
 Functionality
 Reliability
 Usability
 Efficiency
 Maintainability
 Portability
 Multiple lower levels
Problems with ISO 9126 taxonomy
 Every phenomenon must be in exactly one
category
 What is a denial of service attack?
 What is a requirement that the system must
respond to a user request within .1 sec?
 Taxonomy is incomplete. Does not have:
 Distributility of development
 Reuse

Scenarios

 We use a scenario to describe a quality


attribute requirement
 Stimulus what effect prompts the requirement
 Request for service arrives at the system
 Request for change arrives at the developers
 Source of stimulus where does the stimulus
come from
 Trusted user
 Business manager
Scenarios 2
 Environment. What is the situation when stimulus occurs
 Normal operation
 Development time
 Artifact what part of the system is being stimulated
 Whole system
 Network
 Response what should happen as a result of stimulus
 Garage door should stop
 Modification to the system should be made
 Response measure what is the measure to determine
whether response is adequate
 Within .1 sec
 Within 5 person weeks.
Exercise
 What are some quality attribute scenarios for
a Smart Phone?
Scenario Generation Tables
 We have collected general quality attribute
scenarios for a collection of attributes
 Can act as an elicitation aid
Operational quality attributes
 Availability
 Interoperability
 Performance
 Security
 Usability
Availability - Definition
Availability is the ability to avoid failures that
are more frequent and more severe than is
acceptable

where

a failure is judged from some outside


perspective either human or system.
Availability key ideas
 Level of acceptability of failure e.g. .0001%
of the time
 Failure is not meeting some externally visible
criterion
 Availability is a function of time to repair a
failure that takes two weeks to repair is not
acceptable whereas the same failure that
takes 3 seconds to repair might be
acceptable.
Availability general scenarios
Source internal/external: people, HW, SW, physical
infrastructure, physical environment
Stimulus fault: omission, crash, incorrect timing, incorrect
response
Environment normal operation, startup, shutdown, repair mode,
degraded operation, overloaded operation
Artifacts processors, communication channels, persistent
storage, processes
Response Detect the fault and do one or more of the following:
log the fault
notify appropriate entities (people or systems)
disable source of events causing the fault
be temporarily unavailable
fix or mask the fault/failure
operate in a degraded mode

Response critical time intervals when the system must be


Measure available
availability time
time interval in which the system can be in degraded
mode
repair time
Interoperability definition
 Interoperability
is about the ability
of two systems to exchange
information
Interoperability key ideas
 Semantic exchange
 Identify of systems with which to interoperate
known at design time?
 Information to be exchanged known at design
time?
Interoperability general scenarios
Source our system or an external system
Stimulus a request to exchange information with an external
system that is either
known to our system
not known to our system

Environment runtime
Artifacts communicating portions of our system, the external
system
Response reject the request and notify appropriate entities
(people or systems), and log the request
accept the request and exchange information

Response one or more of the following


Measure percentage of information exchanges correctly rejected
or incorrectly accepted
percentage of information exchanges correctly
processed
Performance definition
 Performance is about timing. Events
(interrupts, messages, requests from
users, or the passage of time) occur, and
the system must respond to them.
Performance key ideas
 Pattern of event arrival
 Time to process events
 Topology of system
 Scheduling strategy
Performance general scenarios
Source internal or external to the system

Stimulus periodic, stochastic, or sporadic event


arrival

Environment normal or overloaded operation

Artifacts system

Response processes stimuli; changes level of


services

Response Measure latency, deadline, throughput, jitter,


miss rate, data loss
Security definition
 Security is a measure of the systems ability
to resist unauthorized usage while still
providing its services to legitimate users.
Security key ideas
 nonrepudiation
 confidentiality
 integrity
 assurance
 availability
 auditing
Security general scenarios 1
Source system or individual who is identified correctly, identified
incorrectly, of unknown identity
who is internal or external, authorized/not authorized
with access to specific resources, all resources

Stimulus tries to
display data
change/delete data
access system services
reduce availability to system services
Environment one or more of the following
online or offline
connected or disconnected
behind firewall or open
Security general scenarios 2
Artifacts system resources, data within the system
Response user management
authenticates the user
hides identity of the user
data/service access management
grants or denies access to data and/or resources
notifies appropriate entities (people or systems); records
access/modification/attempts to access data and or
resources
stores data in encoded format
recognizes inexplicably high demands for resources and
informs user or systems and restricts access

Response Measure time/effort/resources required to


circumvent security measures with success
restore data/services
probability of detecting attack
probability of identifying individual responsible for the attack
percentage of resources still available after attack
extent to which legitimate access is denied
Usability definition
 Usability is concerned with how easy it is
for the user to accomplish a desired task
and the kind of user support the system
provides.
Usability key ideas
 Learning system features
 Using a system efficiently
 Minimizing the impact of errors
 Adapting the system to user needs
 Increasing confidence and satisfaction
Usability general scenarios
Source user: end user, administrator

Stimulus tries to:


learn system features
use system efficiently
minimize the impact of errors
adapt and configure the system
Environment normal operation, non-routine operation,
configuration time

Artifacts System

Response one or more of the following


learns how to use the system
achieves the task at hand
adapts and configures the system
recovers from user and system errors
increases confidence and satisfaction
Response one or more of the following
Measure number and severity of errors per unit time
number of goals achieved per unit time
number of successful operations per unit time
user satisfaction
gain of user knowledge
Constructive quality attributes

 Modifiability
 Testability
Modifiability definition

 Modifiability is about the cost of change.


Modifiability key ideas
 What can change (the artifact)?
 When is the change made and who makes
it (the environment)?
 How is the cost calculated?
Modifiability general scenarios
Source end user, developer, system administrator
Stimulus add/delete/modify functionality or quality
attribute
Environment runtime, compile time, design time, build
time
Artifacts code, data, interfaces, resources,
configurations,
Response one or more of the following:
locate places in the architecture to be
modified
make modification
test modification
deploy modification
Response cost in terms of
Measure number, size, complexity of affected
components/interfaces
effort
money
extent to which this modification effects
other functions and/or quality attributes
Testability definition

 Software testability refers to the ease with


which software can be made to
demonstrate its faults through (typically
execution-based) testing.
Testability key ideas
 control each components internal state and
inputs
 observe its outputs.
 test harness, specialized software designed
to exercise the software under test.
Testability general scenarios
Source developer, integrator, tester, client, user
Stimulus runs a test on a testable increment of one of:
analysis, architecture, design, class development,
subsystem integration, system construction
runs a test to attempt to replicate a fault
Environment design time, development time, compile time,
integration time, deployment time, run time
Artifacts (part of) design, code, application
Response one or more of the following
execute test suite and capture results
capture activity that resulted in the fault
inject state into the system
Response one or more of the following:
Measure % of state space covered
probability of fault being revealed by the next test
time to perform tests
length of longest dependency chain in test
length of time to prepare test environment
reduction in risk exposure (size(loss) * prob(loss))
effort to locate fault in artifacts
Exercise
 Choose a quality attribute (not one we have
already discussed)
 Lets generate general scenarios
Summary
 Quality attribute requirements are those that
determine how well the product performs
 Quality attributes can be specified using
scenarios with six portions
 General scenarios tables have been
presented for seven quality attributes