question to know that quality has improved, it would be helpful to be able to measure quality. how...

24
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?

Upload: berniece-thornton

Post on 02-Jan-2016

220 views

Category:

Documents


1 download

TRANSCRIPT

Question

To know that quality has improved, it would be helpful to be able to measure quality.

How can we measure quality?

2

Functional vs. non-functional requirements Examples: Hotel reservation Functional requirements

Reservations and cancellations Meals and extra services Billings

Non-functional requirements Max. time to do reservation < 2 min Downtime < 1% Run on Microsoft Windows + Mac Easy to change DBMS

Seems like in Software Engineering we concentrate on capturing, designing, implementing, and deploying with emphasis on functional requirements.

Little (not none!) emphasis on the non-functional requirements (quality factors).

In the RUP, non-functional requirements are captured in the Software Requirements Specification (SRS); functional requirement usually captured in Use Case stories.

Need for Comprehensive Software Quality Requirements

Need for improving poor requirements documents is widespread

Frequently lack quality factors such as: usability, reusability, maintainability, …

Software industry groups the long list of related attributes into what we call quality factors. (Sometimes non-functional requirements)

Natural to assume an unequal emphasis on all quality factors.

Emphasis varies from project to project Scalability; maintainability; reliability…

Quality factors Quality factors provide :

Goal-oriented methodology for measuring software quality

Another dimension by which Software req (non functional) can be addressed .

Identification of important attributes in the product that will have impact on its life cycle.

A basis for process improvement

Software quality6

Software quality framework Software quality factor

Management-oriented view of produce quality Software quality criteria

Software-oriented attributes which provides quality

Software quality metricsQuantitative measures of those attributesFigure : Software quality framework

Software quality framework

Software quality8

Metrics

How to measure software quality? We need some numbers! Metrics are measurements of whether the criteria

exists or not, and to what degree

Example metrics Checklists: Grading the software Inspection guidelines Quantitative measures Table 5. Quality Metrics Summary, page 966-967

McCall’s Quality Factors McCall has 11 factors; Groups them into categories.

1977; others have added, but this still prevail.

Three categories: Product Operation Factors

How well it runs…. Correctness, reliability, efficiency, integrity, and usability

Product Revision Factors How well it can be changed, tested, and redeployed. Maintainability; flexibility; testability

Product Transition Factors How well it can be moved to different platforms and interface with other

systems

Portability; Reusability; Interoperability.

Product operation - Will it work correctly now and in the future?

A customer or user of a newly developed software product is initially

concerned , from quality viewpoint , with how well that product

operates. For example , does it perform the function desired

correctly , reliability , as efficiently as required, and in some case ,

securely ?

Product revision - Can it be changed?

If the product is going to be used for a long time, then the concern

becomes whether it is easy to maintain , change and test to see if

the fixes and changes have been made correctly

Product transition - Can it be used in other contexts?

How easy it is to adapt the software for use beyond its original intended

use.

Software quality factors

Product operation factors

Product revision factors

Product transition factors

Note: not much apparent emphasis on functionality – only in correctness.

Correctness Reliability Efficiency Integrity Usability

How well does it run and ease of use.

Maintainability Flexibility Testability

Can I fix it easily, retest, version it, and deploy it easily?

Portability Reusability Interoperability

Can I move the app to different hardware? Interface easily with different hardware / software systems; can I reuse major portions of the code with little modification to develop new apps?

Quality Factors

Allocation of software quality to dev life cycle

Define and give example of each Usability Integrity Efficiency Correctness Reliability Maintainability Testability Flexibility Reusability Portability Interoperability

Quality factors and criteria

Quality factors represent a management- oriented view of

software quality, but to introduce a quantitative dimension:

For each factor , we define a set of criteria or attributes .

Criteria are indepenedent attributes of the software , or

the software production process , by which quality can be

judged, defined and measured.

These criteria help describe the relationship between

factors since one criteria can be related to more than one

factor ( factor to factor trade-off)

Operability

Training

Communicativeness

Input/Output volume

Input/Output gate

Access Control

Access Audit

Storage efficiency

Execution Efficiency

Traceability

Completeness

Accuracy

Error Tolerance

Consistency

Simplicity

Conciseness

Instrumentation

Expandability

Generality

Self-Descriptiveness

Modularity

Machine Independence

Software System Independence

Communications Commonality

Data Commonality

Usability

Integrity

Efficiency

Correctness

Reliability

Maintainability

Testability

Flexibility

Reusability

Portability

Interoperability

Factor to factor trade-off

We can not achieve all the quality factors , a compromise

should be done:

A developement for which reliability is important will also

generally result in software that easier to test or vis versa

(light circle).

Sometimes (filled-in circle) , goals can conflict or costly or

difficult to achieve together. For example , highly efficient

software is often achieved using lower level languages ,

making the system hard to understand and therefore to

maintain.

Quality factor specification process Important quality factors are identified.The user must evaluate

the quality requirements and identify which quality factors are

important to specify within the context of the developemnt

methodology. They are related to the system characteristics

Quality factor are specified as requirements.

Identification of supporting criteria (software attributes)

Provision of measurements to assess their attainment.

Guidelines for identifying important quality factors

Table x :Quality factor related to system characteristics

Quality factor specification process