SAK5102 Software Evaluation Measuring External Attributes.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Verification and Validation
Chapter 17 I.Omaima Al-Matrafi
Software Configuration Management
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
A GOAL-BASED FRAMEWORK FOR SOFTWARE MEASUREMENT
Software project management (intro) Quality assurance.
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
1 Software metrics in general Seminar on Software Engineering Sanna Martikainen,
SIM5102 Software Evaluation
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
3. Software product quality metrics The quality of a product: -the “totality of characteristics that bear on its ability to satisfy stated or implied needs”.
Software Quality Assurance For Software Engineering && Architecture and Design.
Non-functional requirements
Software maintenance Managing the processes of system change.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
1 Shawlands Academy Higher Computing Software Development Unit.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
University of Sunderland CIFM03Lecture 4 1 Software Measurement and Reliability CIFM03 Lecture 4.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
This chapter is extracted from Sommerville’s slides. Text book chapter
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Software Quality : The Elusive Target
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software quality factors
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Software Reliabilty1 Software Reliability Advanced Software Engineering COM360 University of Sunderland © 1998.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
The Software Development Process
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
TOTAL QUALITY MANAGEMENT
Software Metrics and Reliability
Regression Testing with its types
A Survey on Software Architecture Analysis Methods
John D. McGregor Session 9 Testing Vocabulary
Software Quality Assurance Software Quality Factor
McCall’s Quality Factors
Software Testing and Quality Assurance
John D. McGregor Session 9 Testing Vocabulary
Software engineering.
Software Quality Engineering CS- 449
Progression of Test Categories
Welcome to Corporate Training -1
Presentation 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 (R i, D i, I i ) and then compute, S com as ➔ Now compute correctness as

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.

ISO 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 time isolate/fix time fault rate Statement coverage branch coverage test plan completeness Resource prediction effort expendature Change effort change size change 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)