sak5102 software evaluation measuring external attributes

28
SAK5102 Software Evaluation Measuring External Attributes

Post on 20-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

SAK5102 Software Evaluation

Measuring External Attributes

External Attributes

“those whose measurement must take account both its behaviour and the environment it exists in”

● Internal attributes can be measured objectively, and usually fairly easily

● External attributes can involve aspects that are difficult to quantify, and often introduce subjectivity

● External attributes can usually only be measured toward the end of the development

● We usually measure internal attributes to predict measures of external attributes

● We validate our models (relationships between internal and external attributes) by measuring external attributes

Fitness for purpose

● Does it actually work● Does it contain any “problems”● De facto standard – defect density

The problem with problems

● A human error creates a fault that causes a failure – which to measure?

- Process failures lead to errors - Developers fix faults - testing tries to cause failures - users report failures

Examples● Spelling mistake in document● Incorrect information in documentation that cause valuable data to be

lost● Incorrect information in documentation that causes data to have be re-

entered● One part of source code does not follow coding standard● Screen background is wrong colour● Organisation of controls leads to operator error causing death● Code does not compile due to spelling error of variable name● Code does not compile due to type-mismatch● Application unexpectedly terminates on rare occasions with little data

loss and is quick to restore● Application unexpectedly terminates on rare occasions with

significant data loss and takes significant amount of time to restore● An uncommon key sequence causes the application to terminate in

some circumstances● Code contains function that is never called

Attributes of problems

● Location – where did the problem occur?● Timing – when did the problem occur?● Symptom – what was observed?● End result – which consequences resulted?● Mechanism – how did it occur?● Cause – why did it occur?● Severity – how much was the user affected?● Cost – how much did it cost?

Example: cause of code fault (IEEE draft standard P1044)

● Logic problem - forgotten cases or steps - duplicate logic - extreme condition conditions neglected - unnecessary function - misinterpretation - missing condition test - checking wrong variable - iterating loop incorrectly● Computational problem● Data problem● Enhancement● ….. (table 5.2, pp166)

Defect Density

● Quality as Lack of defects● Defects to be of two types: - known defects : discovered through testing, inspection, and other

techniques - latent defects : may be present but we are as yet unaware● Defect density = number of known defects product size - what is a defect? (error, fault, or failure) - what is product size? - what is product? - what is the process?

Evaluation

● Issues with definition● Is a low defect density good or bad? - is it low because defects aren’t being reported? - does low defect density mean low number of unknown

defects?● Modules with higher than average defect densities are likely to

be risky

Other defect-based metrics

● System spoilage = time to fix post-release defects total system development time

● Time has to be measured carefully and consistently● Otherwise is reasonable metric

Other defect-based metrics

● AT&T Bell Laboratories● Cumulative fault density – faults found internally● Cumulative fault density – faults found by customers● Total serious fault found● Mean time to close serious faults● High-level design review errors per KNCSL● Low-level design errors per KNCSL● Code inspection errors per inspected KNCSL● …..

Defining Quality for Software

● External attribute, does depends on the environment● E.g. “Modifiability” – the ease with which modifications can be

made to the system - how big is the system being changed - how big is the modification to be made - how experienced are the staff in the (language, company,

system,…)

Defining Quality of Software

● But specific notions of quality often also have many characteristics

● E.g. “modifiability” - how well documented is the code – “understandability” - how complex is the structure – “modularity” - the degree to which a change in one place will require

changes in another – “viscosity”● So different people have different ideas of what a given notion

of quality may be

quality criteria Software Quality Models

● Meant to capture the composite nature quality● For the use of the system being considered, consider

the relevant quality factors, which are decomposed into quality criteria, which are measured by quality metrics

Example: McCall Software Quality Model

McCall model

● The McCall quality model is organized around three types of Quality Characteristics:

- Factors (To specify): They describe the external view of the software, as viewed by the users.

- Criteria (To build): They describe the internal view of the software, as seen by the developer.

- Metrics (To control): They are defined and used to provide a scale and method for measurement.

● Since then, various quality models have been defined, adopted and enhanced over the years for example proposed by Boehm

● The need for one recognized standard quality model became more and more urgent. The ISO/IEC 9126 standard is the result of a consensus for a software quality model.

Example

● Consider correctness, which consists of completeness, traceability, consistency

➔ Apply checklist for each criteria for each of Requirement (R), Design (D), Implementation (I). E.g. Completeness

➢ Unambiguous references [R,D,I]➢ All defined functions are used [R,D,I]➢ All defined and referenced calling sequence parameter agree [D,I]➢ Code agree with design [I]➔ For each checklist item i assign 1 to “yes”, 0 to “no”, for each of the artifacts

(Ri, D

i, I

i) and then compute, S

com as

➔ Now compute correctness as

13

Ri

R

Di

D

Ii

I

Scom Stra Scon3

ISO 9126 standard quality model

● Called as Software Product Evaluation: Quality Characteristics and Guidelines for their Use

● As with McCall's this is also based on three levels: - Characteristics (Functionality, Reliability, Usability, Efficiency,

Maintainability, Portability); - Sub-characteristics; - Metrics. ● Each characteristic is refined to a set of sub-characteristics

and each sub-characteristic is evaluated by a set of metrics. Some metrics are common to several sub-characteristics.

ISO9126 - characteristics

● Each type of software has its own quality requirements. For example, if we consider:

ISO9126 : example

Factor criteria metrics

maintainability

correctability

Testability

Expandability

Fault counts

Degree of testing

effort

Change count

Closing timeisolate/fix timefault rate

Statement coveragebranch coveragetest plan completeness

Resource predictioneffort expendature

Change effortchange sizechange rate

usability

● The extent to which the product is convenient and practical to use

● The probability that the operator of a system will not experience a user interface problem during a given period of operation under a given operational profile

● How to measure this?● How to predict this?

Measuring usability

● Evidence of good usability: well-structured manuals, good use of menus and graphics, informative error messages, help functions, consistent interfaces

● Decomposition➔ Entry level➔ Learnability➔ Handling ability

Maintainability

● The ease with which maintenance activities can be performed: corrective, adaptive, preventive, perfective (including new enhancements)

● Decomposition➔ correctability➔ testability➔ expandability

Mean Time To repair (MTTR)

● Problem recognition time● Administrative delay time● Maintenance tools collection time● Problem analysis time● Change specification time● Change time (including testing and review)

Prediction from internal attributes

● “complexity”● Number of changes made (or changes per LOC)● Readability – Fog Index

Reliability

● Probability of failure-free operation● Depends on hardware/software environment and

user● Common metrics include defect density and mean

time to failure

Mean time to failure

● What is failure● Are all failures equal● What is time● How do we predict time

Reliability prediction

● Reliability theory – comes from the hardware world where components eventually wear out

● Create models that describe probability of failure● Software is not hardware● Software does not wear out● As each defect is fixed, reliability should improve

(in long term)