• No results found

Software Quality Assurance: Introduction

N/A
N/A
Protected

Academic year: 2021

Share "Software Quality Assurance: Introduction"

Copied!
124
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Engineering Group

Software Quality

Assurance:

Introduction

Dr. Holger Giese

Dr. Holger Giese

Software Engineering Group

Software Engineering Group

Room E 3.165

Room E 3.165

Tel. 60

Tel. 60

-

-

3321

3321

Email:

(2)

Outline

I

Introduction

II

Software Life Cycle

III Quality Control

IV Infrastructure

V Management

VI Standards

(3)

I Introduction

I.1 Motivation

I.2 Definitions & Terminology

I.3 Quality Management

I.4 Components of a SQA System

I.5 Organizing for SQA

I.6 Discussion & Summary

I.7 Bibliography

(4)

I.1 Motivation

The Software Crisis:

„ IBM Consulting group estimates that 55% of large

distributed systems projects cost more than expected, 68% overrun their schedules, and 88% require redesign.

„ The Standish group estimated the cost of ‘bad software’ for US businesses at $85 billion for 1998.

„ The Y2K problem was estimated to cost $1 to $2 trillion.

„ W.W Gibbs, in “Software's Chronic Crisis” in the Scientific American, September 1994 estimates that the average software project overshoots its schedule by half.

(5)

Software's Chronic Crisis

Denver's new international air port was to be the pride of the Rockies, a wonder of modern engineering. Twice the size of Manhattan, 10 times the breadth of Heathrow, the airport is big enough to land three jets simultaneously-in bad weather. Even more impressive than its girth is the airport's subterranean baggage-handling system. Tearing like intelligent coal-mine cars along 21 miles of steel track, 4,000 independent "telecars" route and deliver luggage between the counters, gates and claim areas of 20 different airlines. A central nervous system of some 100 computers networked to one another and to 5,000 electric eyes, 400 radio receivers and 56 bar-code scanners orchestrates the safe and timely arrival of every valise and ski bag. At least that is the plan. For nine months, this Gulliver has been held captive by Lilliputians-errors in the software that controls its automated baggage system. Scheduled for takeoff by last Halloween, the airport's grand opening was postponed until December to allow BAE Automated Systems time to flush the gremlins out of its $193-million system. December yielded to March. March slipped to May. In June the airport's planners, their bond rating demoted to junk and their budget hemorrhaging red ink at the rate of $1.1 million a day in interest and operating costs, conceded that they could not predict when the baggage system would stabilize enough for the airport to open.

W. W. Gibbs. Software's chronic crisis. Scientific American, 271(3):72--81, September 1994.

(6)

Denver International Airport Baggage System

The Denver International Airport has a modern,

automated baggage-handling system designed by BAE

Automated Systems, Inc. (In June, 2003 G & T Conveyor Company, Inc. acquired BAE)

See:

Schloh, Michael. Analysis of the Denver International Airport baggage system

http://www.csc.calpoly.edu/~dstearns/SchlohProjec t/csc463.html

Eipe, Rohit. The importance of software architecture: Denver International Airport's automated baggage handling system: A report

http://wiki.cs.uiuc.edu/cs427/Essay+by+Rohit+Eipe :+Denver+Intnl+Airport:+Baggage+System

Nice, Karim. How Baggage Handling Works, HowBIZWorks

http://biz.howstuffworks.com/baggage-handling.htm

See:

Schloh, Michael. Analysis of the Denver International Airport baggage system

http://www.csc.calpoly.edu/~dstearns/SchlohProjec t/csc463.html

Eipe, Rohit. The importance of software architecture: Denver International Airport's automated baggage handling system: A report

http://wiki.cs.uiuc.edu/cs427/Essay+by+Rohit+Eipe :+Denver+Intnl+Airport:+Baggage+System

Nice, Karim. How Baggage Handling Works, HowBIZWorks

(7)

Automated Baggage-Handling System (1/3)

„ The baggage handling system at an airport plays a crucial role. It makes the difference in an airport's ability to attract or keep a major airline hub ("an airport that serves as a central connecting point)

„ A baggage-handling system has three main jobs:

† Move bags from the check-in area to the departure gate

† Move bags from one gate to another during transfers

† Move bags from the arrival gate to the baggage-claim area

„ Conveyors equipped with

junctions and sorting

machines automatically route the bags to the gate.

conveyer belt

check-in plane unloading

(8)

Automated Baggage-Handling System (2/3)

„

Destination-coded

vehicles

(DCVs),

unmanned carts

(also named

telecars)

† propelled by linear induction motors mounted to the tracks

† can load bags

(without stopping)

† can unload bags (without stopping)

unload DCV tunel system

a DCV (telecar)

(9)

Automated Baggage-Handling System (3/3)

DIA has:

„ More than 5 miles (8 km) of conveyor belts

„ More than 19 miles (30 km) of DCV tracks

„ About 4,000 DCVs

Ö enabling it to handle over 1,000 bags per minute.

load plane baggage-claim

(10)

Observation: First System Test (March 1994)

„ Telecars jumped tracks, crashed into each other; pieces of baggage were flung off telecars, in some cases chewed to pieces.

„ Baggage was sent to the wrong places.

„ Line balancing algorithm problems arose, where there were bags lined up waiting for telecars to come by, and yet empty telecars would just go by without picking up these bags.

„ In peak conditions, the system quickly became overloaded with tracking all the telecars in transit.

„ Head of line blocking occurred at popular telecar intersections in the

tunnel network, and rerouting of approaching telecars didn’t always take place.

„ Poorly printed baggage tags led to the laser scanners at one point rejecting 70% of all baggage tags, sending them to manual baggage stations.

Remark 1:This famous demo of the system in which hundreds of bags were destroyed was not done by BAE, but was done by the City of Denver when BAE told them not to do it because the system was not working. BAE claimed that the city violated the contract many times, making it nearly impossible for them to finish the job. Eventually the city quit managing the project and United Airlines took over, and BAE was able to finish the project.

(11)

Observation: Timeline (1/2)

„ The project was begun in the mid 80s by US Transportation Secretary Fredrico Pena, the previous Denver mayor.

„ Construction was supposed to begin in September 1989 with an opening date set for October 31st 1993.

„ On March 2nd, 1993 the first delay was announced, changing the date to December 19th, 1993.

„ October that year was the second delay.

„ March 1994 was the third.

„ After this Logplan was brought in, yet the fourth delay was announced on May 2nd, 1994.

(12)

Observation: Timeline (2/2)

„ DIA finally began operations sixteen months behind schedule, with a reduced number of gates operational,

concourse A being postponed indefinitely, the only having been implemented in concourse B, an inability to handle transfer flights, and with a capacity for handling only 30 bags a minute.

„ As of November 1996, DIA’s automatic baggage handling system was still not working. The airport was not even

increasing its air traffic; in 1995 the number of passengers dropped by 2 million from when Stapleton was running, in 1994. High fees associated with Denver charging each airline a $20 fee per passenger, which must have been passed on to the customer, are supposedly the reason for this disappointing performance.

(13)

Observation: Financial Damages

Automated baggage handling system:

„ Originally planed budget was $193 million

„ the amount finally spent was close to $311 million (included the cost of installing a manual system)

DIA

„ planed DIA costs were $1.7 billion

„ the final cost was more than 2.5 times that, at $4.5 billion Delay costs:

„ estimated costs for every month that the DIA remained closed was about $33.3 million

(14)

Cause: Lack of Management

„ The baggage handling system has been implemented almost as an afterthought! Thus the system of tunnels was not designed with a

particular baggage handling system in mind, and as it turned out, the small tunnels and many sharp turns made BAE’s job rather difficult.

„ The airport designers didn’t even design their system with a baggage handling system in mind, so BAE had to work around all kinds of

problems.

„ This was the reason that the management team never saw the baggage handling system, of all things, to be so important that it could have such a profound economic impact on the project.

„ The planning of the system was done in a completely haphazard way. Little communication took place between DIA’s airport designers, the city officials, the airlines, and BAE.

„ The planning instead was driven by higher level management with little or no understanding of the complexity of the system, and by consultants contracted to develop a specification of the system, but who had no

direct responsibility to the team(s) that would actually develop the system.

(15)

Cause: Impossible Schedule/Plan

„ One ‘reason’, if it might be called that, that BAE didn’t perform a review of their

own design was that they were being made to work under an impossible tight schedule.

„ BAE claim that they protested at the outset that the timeline Denver city officials proposed for the completion of the project was utterly unrealistic.

„ Denver on the other hand claims that BAE committed to delivering the system within a certain period of time, and should have delivered a bug free system in that time.

„ Whoever the culprit, one thing is for sure, the time required to fully understand and do justice to a system of this size and complexity was grossly

underestimated, and this had direct bearing on the efficiency of the design that was put forth, and ultimately implemented.

„ identify problems with the design, and take decisions about them early, instead of reacting to those problems after they were uncovered in testing

„ BAE and Denver didn’t heed the advice of others, and grossly underestimated the time for developing and testing the system (The Munich airport, on which DIA was modeled, spent two years testing the system and six months of running the system 24x7 before opening)

(16)

Cause: Complexity Problems

„ As it turned out, when a change needed to be made to one part of the system, it was not clearly understood how that change would impact the rest of the system. When the system was eventually test-run, BAE found it incredibly difficult to even understand why things were going wrong.

„ BAE’s design was such that the number of components working together was very high, and they were very tightly coupled, and there was little redundancy.

„ sheer size of the system made it so complex that not even the people who designed it were able to understand it very well, leave alone a third party

„ to weed out problems at the design stage than to implement a design that had rather glaring faults, and then try to

(17)

Cause: Many Interfaces

„

One extremely difficult problem that BAE

faced was the task of conversing with United

Airlines’Apollo reservation computers.

„

BAE’s computers had to speak the same

software language as each of the airlines

„

The process of language translation that was

necessitated was painful and bug-filled at

best.

(18)

DIA Conclusions

„

Missing communication between the stakeholders

„

The schedule didn’t allow enough time to fully

design the system before jumping into

implementation.

„

The design of the baggage handling system was

not integrated into the design of the airport.

Not entirely inappropriately, the DIA was coined as

being DOA – dead on arrival!

(19)

How can we circumvent such

disasters?

Observation:

„ Quality problems prevent the system from functioning

„ Management decisions results in wrong reactions

† Missing design reviews

† Fixing rather than analyzing

† Erratic debugging rather than systematic testing Therefore even larger delays result

Systematic approach for the development of high quality software is required

(20)

I.2 Definitions & Terminology

„

Software

† Definition & characterization

† Why do the classical approach to QA not apply?

„

Software quality

† Definition

† Quality models

† Quality attributes

„

Measure quality

† Reliability, Availability, safety, maintainability,

† Defect counts

† Software errors, faults and failures

(21)

Basic Terminology

Software is:

Computer programs, procedures, and

possibly associated documentation and data

pertaining to the operation of a computer

system.

(22)

What is special about Software?

„

Invisibility of the product

„

Limited opportunities to detect defects

(“bugs”)

„

Often new demanding functionality has to be

realized

„

Often software has to realize extraordinary

(23)

Classical Quality Assurance (Hardware)

„ Requirements: complete set of external quality characteristics Öcomplete set of internal quality characteristics and a detailed and complete set of requirements and specifications

„ Design:

† Design that satisfies the requirements and specifications

† design for reliability (wear out)

† design for manufacturability

† design for maintainability (e.g., self-diagnosis)

„ Manufacturing: statistical production process control with acceptance sampling

„ Operation: collect failure data for continuous improvement and predictions (intelligent maintenance)

(24)

Software Quality Assurance?

„

Requirements:

† Completeness is hard to achieve (complexity)

„

Design:

† design for reliability only in special cases

† design for manufacturability is not required

† design for maintainability in special cases

† Focal area of software quality assurance!

„

Manufacturing

Ö

Implementation:

† limited success with statistical process control (metrics)

„

Operation:

(25)

What is quality?

„

Quality, simplistically, means that a product

should meet its specification.

„

This is problematical for software systems

†

There is a tension between customer quality

requirements (efficiency, reliability, etc.) and

developer quality requirements (maintainability,

reusability, etc.);

†

Some quality requirements are difficult to specify

in an unambiguous way;

†

Software specifications are usually incomplete

and often inconsistent.

(26)

Approaches to Tackle Quality

„

Transcendental view

: quality is universally

identifiable, absolute, unique and perfect

„

Product view

: the quality of a product is

measurable in an objective manner

„

User view

: quality is fitness for use

„

Manufacturing view

: quality is the result of

the right development of the product

„

Value-based view (Economic)

: quality is a

(27)

Software Quality – IEEE View

Software quality is:

(1)

The degree to which a system, component,

or process meets specified requirements.

(2)

The degree to which a system, component,

or process meets customer or user needs

or expectations.

(28)

Software Quality

Software quality is :

Conformance to explicitly stated functional

and performance requirements, explicitly

documented development standards, and

implicit characteristics that are expected of

all professionally developed software.

(29)

Software Quality

Quality – the degree of excellence of something. We measure the excellence of software via a set of attributes.

[Glass1992] (≠ “satisfying requirements”)!

„ Quality is absolute or at least independent of the requirements underlying the product.

„ It is part of the software development to “get the right requirements”.

(≠ “user satisfaction”)!

(30)

Quality Models

Two main approaches:

„ Standard Models:

† McCall

† ISO/IEC 9126

„ Application or company specific quality models

† FURPS

† GQM Approach

„ Such general definitions of software quality are not

sufficient in practice

„ Thus, software quality is described by specific

quality models

„ „causal relationship from intangible quality views to tangible software

measures“

(31)

Factor-Criteria-Metrics-Model

Classification into :

„ 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.

Software Quality Quality criterion 1 Quality criterion 2 Quality criterion 3 Quality factor 1 Quality factor 2 Quality factor 3

(32)

[MaCall+1977] [Galin2004]

McCall’s Factor Model Tree

„ A quality factor represents a behavioral characteristic of the system. † Operation † Revision † Transition „ A quality criterion is an attribute of a quality factor that is related to software production and design.

„ A quality metric is a

measure that captures some aspect of a quality criterion.

(33)

The Six Quality Characteristics of

a Software (ISO/IEC 9126)

„ Software quality: The totality of

features and characteristics of a software product that bear on its ability to satisfy stated or implied needs. (ISO 9126: 1991, 3.11)

„ Software quality characteristics:

A set of attributes of a software product by which its quality is described and evaluated. A

software quality characteristic may be refined into multiple levels of sub-characteristics. (ISO 9126: 1991, 3.13)

„ Each characteristic is refined to a set of sub-characteristics

„ Each sub-characteristic is evaluated by a set of metrics.

„ Some metrics are common to several sub-characteristics.

(34)

Attributes of software that bear on the users’effort for operation and operation control. Operability

Attributes of software that bear on the users’effort for learning its application. Learnability

Attributes of software that bear on the users’ effort for recognizing the logical concept and its applicability.

Understandability Usability

Attributes of software that bear on the capability to re-establish its level of performance and recover the data directly affected in case of a failure and on the time and effort needed for it.

Recoverability

Attributes of software that bear on its ability to maintain a specified level of performance in case of software faults or of infringement of its specified interface. Fault tolerance

Attributes of software that bear on the frequency of failure by faults in the software. Maturity

Reliability

Attributes of software that bear on its ability to prevent unauthorized access, whether accidental or deliberate, to programs or data.

Security

Attributes of software that make the software adhere to application related standards or conventions or regulations in laws and similar prescriptions.

Compliance

Attributes of software that bear on its ability to interact with specified systems. Interoperability

Attributes of software that bear on the provision of right or agreed results or effects. Accurateness

Attributes of software that bear on the presence and appropriateness of a set of functions for specified tasks.

Suitability

Functionality

Definitions Subcharacteristics

(35)

Attributes of software that bear on opportunity and effort using it in the place of specified other software in the environment of that software.

Replaceability

Attributes of software that make the software adhere to standards or conventions relating to portability.

Conformance

Attributes of software that bear on the effort needed to install the software in a specified environment.

Installability

Attributes of software that bear on the opportunity for its adaptation to different

specified environments without applying other actions or means than those provided for this purpose for the software considered.

Adaptability

Portability

Attributes of software that bear on the effort needed for validating the modified software.

Testability

Attributes of software that bear on the risk of unexpected effect of modifications. Stability

Attributes of software that bear on the effort needed for modification, fault removal or for environmental change.

Changeability

Attributes of software that bear on the effort needed for diagnosis of deficiencies or causes of failures, or for identification of parts to be modified.

Analyzability Maintainability

Attributes of software that bear on the amount of resource used and the duration of such use in performing its function.

Resource behavior

Attributes of software that bear on response and processing times and on throughput rates in performances its function.

Time behaviour Efficiency

Definitions Subcharacteristics

(36)

Hewlett Packard: F.U.R.P.S. (1/2)

„

Result of a statistical project survey at Hewlett

Packard 1987 to improve its products:

Factors:

† Functionality: functions it performs, their generality and security

† Usability: aesthetics, consistency, documentation

† Reliability: frequency and severity of failure, accuracy of output

† Performance: response time, resource consumption

† Supportability: can it be extended, adapted, corrected?

„

FURPS is originally a company specific quality

model

(37)

Hewlett Packard: F.U.R.P.S. (2/2)

Quality Supportabilit y Performance Reliability Usability Functionality Testability Extensibility Adaptability Maintainability Compatibility Configurability Serviceability Installability Localizability Speed Efficiency Rsc. consumption Thruput Response time Frequ./severity of fail. Recoverability Predictability Accuracy Mean time to failure Human factors Aesthetics Consistency Documentation Feature set Capabilities Generality Security
(38)

GQM: Goal-Question-Metric

„

A measurement program can be more successful

if designed with the goals in mind.

„

GQM approach provides a framework with 3

steps:

1. List the major goals of the development/maintenance

project

2. Derive from each goal the questions that must be

answered to determine if the goals are being met

3. Decide what must be measured to answer the

questions adequately

(39)

GOAL: Evaluate effectiveness of coding standard

QUESTIONS: Who is using Standard?

What is coder

productivity? What is code quality?

METRICS: Proportion of Coders -using standard -using language Experience of Coders -with standard -with language -with environment etc Code size Effort Errors…

Example

(40)

GQM Discussion

„ Benefits :

„ generates only those measures relevant to the goal

„ Several measurements may be needed to answer a single question.

„ A single measurement may apply to more than one question.

„ The goal provides the purpose for collecting the data.

„ Not evident from the GQM

„ The model needed to combine the measurement in a sensible way so that the question can be answered.

„ It must be supplemented by one or more models that express the relationship among the metrics. (equation definition is not clear)

„ Disadvantages:

„ Additional efforts to derive the goals and metrics

(41)

Measuring Quality?

„

User‘s view:

†

Reliability (number of failures over time)

†

Availability

†

Usability etc.

†

Often directly measurable

„

Manufacturer‘s view:

†

Defect counts

(42)

Reliability

Reliability

is the probability of a component, or

system, functioning correctly over a given period of

time under a given set of operating conditions.

Quantitative:

Reliability R

(

t

) is the probability that the system

will conform to its specification throughout a period

of duration

t

.

„

Note that t is important

„

If a system only needs to operate for ten hours at a

time, then that is the reliability target.

(43)

Availability

The

availability

of a system is the probability that

the system will be functioning correctly at any given

time.

Quantitative:

Availability A (

or

V)

is the percentage of time for

which the system will conform to its specification.

(44)

Safety

„

Safety

is a property of a system that it will

not endanger human life or the environment.

„

A

safety-related system

(

safety-critical

system

) in one by which the safety of

equipment or plant is assured.

(45)

Maintainability

„

Maintenance

is the action taken to retain a

system in, or return a system to, its designed

operating conditions.

Maintainability

is the

ability of a system to be maintained (ability to

undergo repairs and modifications).

„

Mean time to repair (MTTR)

(46)

Defect Counts

„ „software errors are the cause of poor software quality“

[Galin2004]

„ In software, higher quality (in the form of lower defect rates) and reduced development time go hand in hand.

[McConnell 1996]

„ Unlike the low-defect kind of quality, attention to this kind of quality tends to lengthen the development schedule.

[McConnell 1996]

„ Intuitively, the occurrence of defects is negatively related to functionality and reliability.

Defects also interfere, to some degree, with other dimensions of quality.

(47)

[Pressman2004]

(48)

Faults, Errors and Failures

„ A fault is a defect within the system.

(Error cause, German: Fehlerursache)

„ An error is a derivation of the required operation of the system or subsystem.

(Manifestation of a fault in a system, German: Fehlzustand)

„ software errors are a human action which results in software containing a fault

„ A system failure occurs when the system fails to perform its required function.

(Transition to incorrect service delivery, German: Ausfall)

„ If the distinction between fault and failure is not critical, defect can be used as a generic term.

(49)

Recursive Nature of Faults

User Operator Physical process/system System System (server) component (server) component (server) component (server) component (server) component (server)

?

?

?

?

?

„

A fault in a component can “infect” all other

components which depend on it.

(50)

Fault/Failure Chain

Fault Ö error

„ a fault which has not been activated by the computation process is

dormant

„ a fault is active when it produces an error Error Ö failure

„ an error is latent when it has not been recognized

„ an error is detected by a detection algorithm/mechanism Failure Ö fault

„ a failure occurs when an error “passes through” and affects the service delivered

„ a failure results in a fault for the system which contains or interacts with the component

Fault Error Failure Fault Error Failure

(51)

Examples for Fault/Failure Chain

Program error (software):

„ a dormant fault in the written software (instruction or data)

„ upon activation the fault becomes active and produces an

error (system state)

„ if the erroneous data affects the delivered service, a failure

occurs

Electromagnetic interference (hardware):

„ leads to faulty input value (either digital or analog)

„ by reading the input the fault becomes active and produces an error

„ if the erroneous input value is processed and becomes visible at the interface a failure occurs

(52)
(53)

Fault Classification

Nature (Critical distinction):

„

random/hardware faults

„

logical/systematic/design faults

E.g., Degradation (wear-out) vs. design faults

Duration:

„

permanent, transient, intermittent

Extent:

(54)

Nature: Degradation Faults

„

The system used to work but now it does not

„

Something broke for some reason:

† Infant mortality

† End of useful life—wear out

† Physical damage—vibration, humidity, temperature

Examples:

„

Light bulb burns out

„

Disk head crashes

„

Power supply fails

(55)

Nature: Failure “Bathtub Curve”

Infant mortality

(56)

Nature: Design Faults

„

The system never worked

„

Nothing broke

„

The design is flawed

Examples:

„

Incorrect electrical wiring

(57)

Dealing With Faults

Fault Prevention:

„

Development techniques that prevent the

introduction of faults

Fault Elimination:

„

Development techniques that find and remove

faults already introduced

Fault Forecasting:

„

Estimate current number, future incidence and

likely consequences

Fault Tolerance (not considered here):

„

Execution-time techniques that cope with the

(58)

Fault Avoidance

Activities:

„ Preventing the introduction or occurrence of faults

(fault prevention):

† SWT, formal methods, high level languages, CASE tools, …

„ Reducing the number and seriousness of faults

(fault removal):

† Analysis Ö diagnosis Ö correction

„ Evaluating the present number future incidents, and severity of faults (fault forecasting):

† Statistics & management int i; while(i<10){ if (i>3) { } … } Fault removal Fault prevention Fault forecasting

(59)

[Galin2004]

Main causes for software faults:

1.

Faulty requirements definition

2.

Client-developer communication failures

3.

Deliberate deviations from software requirements

4.

Logical design errors

5.

Coding errors

6.

Non-compliance with documentation and coding

instructions

7.

Shortcomings of the testing process

8.

User interface and procedure errors

(60)

I.3 Quality Management

Quality Management System [ISO 9000]:

The organizational structure, responsibilities,

procedures, processes and resources for

implementing quality management

„

Concerned with ensuring that the required level of

quality is achieved in a software product.

„

Involves defining appropriate quality standards

and procedures and ensuring that these are

followed.

„

Should aim to develop a ‘quality culture’ where

quality is seen as everyone’s responsibility.

(61)

Environment Characteristics

„ Being contracted

„ Subjection to customer-supplier relationship

„ Requirement for teamwork

„ Need for cooperation and coordination with other development teams

„ Need for interfaces with other software systems

„ Need to continue carrying out a project while the team changes

„ Need to continue

maintaining the software system for years

(62)

The Cost of Quality

„ Cost of Quality includes all costs incurred in the pursuit of quality or in performing quality related activities such as appraisal costs, failure costs and external failure costs.

[Pressman2004]

The Quality Compromise

:

„ We cannot wait for specifications to improve before paying attention to quality management.

„ We must put quality management procedures into place to improve quality in spite of imperfect specification.

(63)

Scope of Quality Management

„

Quality management is particularly

important for large, complex systems. The

quality documentation is a record of

progress and supports continuity of

development as the development team

changes.

„

For smaller systems, quality management

needs less documentation and should focus

on establishing a quality culture.

(64)

Quality Management and

Software Development

Software development process Quality management process D1 D2 D3 D4 D5 Standards and
(65)

Quality Management Activities

(1)

Quality assurance

† Establish organisational procedures and standards for quality.

(2)

Quality planning

† Select applicable procedures and standards for a particular project and modify these as required.

(3)

Quality control

† Ensure that procedures and standards are followed by the software development team.

„

Quality management should be

separate

from

project management to ensure independence.

(66)

(1)

Quality Assurance

Quality Assurance [ISO 9000]:

All those planned and systematic actions necessary to

provide adequate confidence that a product or service will satisfy requirements for quality

Software quality assurance [IEEE]:

1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.

2. A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with: quality control.

(67)

Quality Assurance

Software quality assurance is [Galin2004] :

A systematic, planned set of actions necessary to provide adequate confidence that the software development

process or the maintenance process of a software system product conforms to established functional technical

requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.

„ Quality assurance consists of the auditing and reporting functions of management [Pressman2004]

(68)

(2)

Quality Planning

„

Quality planning

is the process of

assessing the requirements of the

procedure and of the product and the

context in which these must be observed.

„

Quality assurance plan

is the central aid

for planning and checking the quality

assurance.

(69)

Quality Assurance Plan

„

A quality assurance plan sets out the desired

product qualities and how these are assessed and

defines the most significant quality attributes.

„

The quality assurance plan should define the

quality assessment process.

„

It should set out which organisational standards

should be applied and, where necessary, define

new standards to be used.

(70)

Quality Assurance Plans

„

Quality assurance plan structure:

†

Product introduction

†

Product plans

†

Process descriptions

†

Quality goals

†

Risks and risk management

„

Quality assurance plans should be

†

short,

†

succinct

(71)

„ Purpose of Plan

„ References

„ Management

† organization structure, SQA tasks, their placement in the process

† roles and responsibilities related to product quality

„ Documentation

† project documents, models, technical documents, user documents.

„ Standards, Practices and Conventions

„ Reviews and Audits

„ Test

† test plan and procedure

„ Problem Reporting and Corrective action

„

Tools, Techniques and

Methodologies

„

Code Control

„

Media Control

„

Supplier control

„

Records Collection,

Maintenance and

Retention

„

Training

„

Risk Management

[IEEE_Std_730-1998, Pressman2004]
(72)

(3)

Quality Control

Quality Control [ISO 9000]:

The operational techniques and activities

that are used to fulfil requirements for quality

„

Quality Control

is the series of inspections, reviews

and tests used throughout the development cycle

to ensure that each work product meets the

requirements placed upon it.

(73)

Quality Control

„

This involves checking the software

development process to ensure that

procedures and standards are being

followed.

„

There are two approaches to quality control

†

Quality reviews;

†

Automated software assessment and software

measurement.

(74)

Quality Control

Objective:

„

minimize the produced defects

„

increase the product quality

Implementation approaches:

„

Fully automated

„

Entirely manual

„

Combination of automated tools and human

(75)

Quality Control

Quality control includes a feedback loop to the process:

„ provide management with the necessary data about product quality.

„ gain the insight and confidence of product quality Two types of quality control:

„ Quality design: the characteristics that designers specify for an item (includes: requirements, specifications, and the design of the system).

„ Quality of conformance: the degree to which the design specification are followed. It focuses on implementation based on the design.

(76)

Quality Assurance System

„

Quality assurance system

is the organizational

structure, responsibilities, procedures, processes

and resources for implementing quality

management.

(77)

„

The quality of a developed product is influenced

by the quality of the production process.

„

This is important in software development as

some product quality attributes are hard to

assess.

„

However, there is a very complex and poorly

understood relationship between software

processes and product quality.

Process and Product Quality

(78)

Process-based Quality

„

There is a straightforward link between process

and product in manufactured goods.

„

More complex for software because:

† The application of individual skills and experience is particularly important in software development;

† External factors such as the novelty of an application or the need for an accelerated development schedule may impair product quality.

„

Care must be taken not to impose inappropriate

process standards - these could reduce rather

than improve the product quality.

(79)
(80)

„

Define process standards such as how

reviews should be conducted, configuration

management, etc.

„

Monitor the development process to ensure

that standards are being followed.

„

Report on the process to project

management and software procurer.

„

Don’t use inappropriate practices simply

because standards have been established.

(81)

I.4 Components of a SQA System

(1)

Pre-project components

(2)

Software project life cycle components

(3)

Infrastructure components for error prevention

and improvements

(4)

Management SQA components

(5)

SQA standards, system certification and

assessment components

(6)

Organizing for SQA – the human components

and considerations guiding construction of

(82)

(1)

Pre-project Components

Pre-project

„

Contract reviews

„

Development and quality plans

(83)

(2)

Project Life Cycle Components

Development

„

Reviews

„

Expert opinions

„

Software testing

„

Assurance of the quality of external participants’

work

Maintenance

„

Software maintenance components

(see Chapter II and III)

(84)

(3)

Infrastructure Components

„

Procedures and work instruction

„

Templates and checklists

„

Staff training, retraining and certification

„

Preventive and corrective actions

„

Configuration management

„

Documentation control

(see Chapter IV)

(85)

(4)

Management SQA Components

„

Project progress control

„

Software quality metrics

„

Software quality costs

(86)

(5)

Standards, Certification, Assessment

„

Project process standards

„

Quality management standards

Objectives:

„

Utilization of international professional knowledge

„

Improvement of coordination with other

organizations’ quality systems

„

Objective professional evaluation and

measurement of the organization’s SQA

achievement

(87)

(6)

Organizing for SQA

„

Management’s role in SQA

„

The SQA unit

„

SQA trusties

„

SQA committees

„

SQA forums

(88)

Project

Development plan and Quality Plan

(2) Project Life Cycle SQA components

Fo rmal Desig n Revie w s Ex pe rt s O pi ni on Pe er R ev ie w s SQ A o f E xt er na l P ar tic ip an ts So ftw ar e M ai nt en an ce So ftw ar e Te stin g

(3) Quality Infrastructure components

Procedures Supporting Devices InstructionTraining PreventiveActions ConfigurationManagement

Document-ation Control (4) Quality Management Project Progress Control Software Quality Metrics Software Quality Costs Quality Management Standards (5) Standards Project Process Standards (6) Organizational Base – Human components

Management SQA Unit SQA Trustees SQA Committees SQA Forums Contract review

(1) Pre-pro

ject SQA c

omponents

(89)

Project

Development plan and Quality Plan

(2) Project Life Cycle SQA components

Fo rm al D es ig n R ev ie w s Ex pe rt s O pi ni on Pe er R ev ie w s SQ A o f E xt er na l P ar tic ip an ts So ftw ar e M ai nt en an ce So ftw ar e Te stin g

(3) Quality Infrastructure components

Procedures Supporting Devices InstructionTraining PreventiveActions ConfigurationManagement

Document-ation Control (4) Quality Management Project Progress Control Software Quality Metrics Software Quality Costs Quality Management Standards (5) Standards Project Process Standards (6) Organizational Base – Human components

Management SQA Unit SQA Trustees SQA Committees SQA Forums Contract review

(1) Pre-pro

ject SQA c

omponents

[Galin2004]

I.5 Organizing for SQA

a) Management b) SQA Unit c) SQA Trustees d) SQA Committees e) SQA Forums a) Management b) SQA Unit c) SQA Trustees d) SQA Committees e) SQA Forums

(90)

[Galin2004] Management SQA unit Software Development and Maintenance Department Other Departments SQA Trustees SQA Committees Legend Line of authority line for SQA issues Flow of Forum ’s recommendations line Executive responsible for software quality Exec. Exec . Exec. Software Development Teams Software Testing Department Software Testing Teams SQA Forums

(91)

The SQA Framework: Participants

Managers

„ Top management executives, especially the executive in charge of SQA

„ Software development and maintenance department managers

„ Software testing department managers

„ Project managers and team leaders of development and maintenance projects

„ Leaders of software testing teams

Testers

„ Members of software testing teams

SQA professionals and interested practitioners

„ SQA trustees

„ SQA committee members

„ SQA forum members

(92)

a)

Management

Overview:

„

Top management’s quality assurance activities

„

Software quality policy

„

The executive in charge of software quality

„

Management review

„

Department management responsibilities for

quality assurance processes

„

Project management responsibilities for quality

assurance

(93)

TOP Management Responsibilities

„ Assure the quality of the Company’s software products and software maintenance services.

„ Communicate the importance of product and service

quality in addition to customer satisfaction to employees.

„ Assure full compliance with customer requirements.

„ Ensure that SQA objectives are established and accomplished.

„ Initiate planning and oversee implementation of changes to adapt the SQA system to changes related to the

organization's clientele, competition and technology.

„ Intervene directly to resolve of crisis situations and minimize damages.

„ Ensure availability of resources required by SQA systems.

(94)

SQ Policy Requirements

„ Quality policy refers to the basic aims and objectives of an organization regarding quality as stipulated by the management.

[Pressman2004]

Conformity to the organization purpose and goals Commitment to:

„ General software quality assurance concepts

„ The quality standards adopted by the organization

„ Allocate adequate resources for software quality assurance

„ Continuous improvement of the organizations quality and productivity

(95)

Responsibilities (Executive in Charge)

„

Responsibility

for preparation of an annual

SQA activities program and budget

„

Responsibility

for preparation of SQA system

development plans

„

Overall control

of implementation of the

annual SQA regular activities program and

planned SQA development projects

„

Presentation

and advocacy of SQA issues to

executive management

(96)

Management Reviews

Def.: Management review is the name given to the periodic meeting convened to allow executives to obtain an overview of their

organization’s software quality issues. Typical items:

„ Periodic performance reports, including quality metrics

„ Customer satisfaction feedback

„ Follow up reports for SQA annual regular activity program and SQA development projects

„ Summary of special quality events related to customers, suppliers, subcontractors, etc.

„ Review of significant findings of internal and external quality audits as well as special surveys

„ Identification of new software quality risks and unsolved pre-existing risks

„ Recommendations for software quality management improvements.

(97)

Management Reviews: Objectives

„

Assess

achievement of quality objectives set

for the organization’s software quality

management system

„

Initiate

updates and improvements of the

software quality management system and its

objectives

„

Outline directions

for remedying major SQA

deficiencies and software quality management

problems.

„

Allocate

additional resources to the software

(98)

Department Responsibilities (1/2)

The quality system-related responsibilities:

„

Preparation

of the department’s annual SQA

activities program and budget, based on

recommended SQA unit program.

„

Preparation

of the department’s SQA systems

development plans, based on recommended

SQA unit plan.

„

Control

of performance of the department’s

annual SQA activities program and development

projects

„

Presentation

of the department's SQA issues to

(99)

Department Responsibilities (2/2)

Project-related responsibilities

„ Control of compliance to quality assurance procedures in the department's units

„ Detailed follow up of contract review results and proposal approvals

„ Review of unit performance of planned review activities; approval of project documents and project phase completion

„ Follow up of software tests; approval of project’s software products.

„ Follow up of progress of software development project schedules and budget deviations. Advise and support project mangers in

resolving difficulties.

„ Follow up of quality of maintenance services

„ Detailed follow up of project risks and their solutions

„ Follow up of project's compliance with customer requirements and customers satisfaction.

„ Approval of large software change orders and significant deviations from project specifications.

(100)

Project Management Responsibilities

Professional hands-on tasks:

„ Preparation of project and quality plans and their updates.

„ Participation in joint customer-supplier committee

„ Close follow up of project team staffing, including recruitment, training and instruction.

Management tasks The follow up issues:

„ Performance of review activities and the consequent corrections, including participating in some reviews.

„ Software development and maintenance units’ performance with respect to development, integration and system test activities, corrections and regression tests and acceptance tests

„ Software installation in customer sites and the running-in of the software system by the customer

„ SQA training and instruction of project team members

„ Schedules and resources allocated to project activities.

„ Customer requests and satisfaction

„ Evolving project development risks, application of solutions and control of results.

(101)

b)

The SQA Unit

Overview:

„ Activities

„ Responsibilities

„ Tasks performed by the head of the SQA unit

„ SQA sub-unit tasks related to the project life cycle

„ SQA sub-unit infrastructure operations tasks

„ SQA sub-unit audit and certification tasks

„ SQA sub-unit support tasks

„ SQA sub-unit standards and procedures: Development and maintenance tasks

(102)

SQA Unit Tasks

„ Quality assurance planning oversight, record keeping, analysis and reporting

„ Participates in the development of the projects software process

„ Reviews software engineering activities to verify compliance with the defined software process.

„ Audits designated software work products to verify

compliance with those defined as part of the software process.

„ Ensures that deviations in software work and work products are documented and handled according to a document

procedure.

„ Records any noncompliance and reports to senior management.

(103)

Unit: Organizational Structure

[Galin2004] Head SQA Unit SQA Development and Maintenance SQA Operations SQA Standards and Procedures SQA Information Systems SQA Engineering Internal and Certification SQA Audits Project Life Cycle SQA SQA Support SQA Infrastructure Operations
(104)

SQA Unit Head Tasks (1/2)

Planning tasks

„ Preparation of proposals for the Unit’s annual activity program and budget

„ Planning and updating the organization’s software quality

management system and recommended annual SQA activities programs for the software development and maintenance

departments.

„ Preparation of recommended SQA systems development plans for the software development and maintenance departments.

Management tasks

„ Management of SQA team's activities

„ Monitoring implementation of the SQA activity program

„ Nomination of team members, SQA committee members and SQA trustees

„ Preparation of special and periodic status and performance reports.

(105)

SQA Unit Head Tasks (2/2)

Contacts with customers and other external bodies and the executive in charge of software quality

„ Serving as the customer’s address for software quality issues of software products and services supplied

„ Representation of the organization before external bodies regarding software quality issues

„ Drafting the management review reports

„ Raising SQA organizational issues and preparing requested material for top management's consideration

SQA professional activities

„ Participation in project joint committees

„ Participation in formal design reviews

„ Review and approval of deviations from specifications

„ Consultation to project managers and team leaders

„ Participation in SQA committees and forums

(106)

Life Cycle Tasks (Sub-Units)

Project life cycle control tasks

„ Follow up of development and maintenance teams’ compliance with SQA procedures and work instructions

„ Approval or recommendation of software products (design reports and code).

„ Monitoring delivery of software maintenance services to internal and external customers

„ Monitoring customer satisfaction (surveys, etc.) and maintaining contact with customer’s SQA representatives

Participation tasks participation in:

„ Contract reviews

„ Preparation and updating of project development and project quality plans

„ Formal design reviews

„ Subcontractors’ formal design reviews

„ Software testing, including customer acceptance tests

„ Software acceptance tests of subcontractors’ software products

„ Installation of new software products

(107)

Infrastructure Tasks (Sub-Units)

„ Publication of updated versions of procedures, work instructions, templates, checklists, etc., with their circulation.

„ Training and instruction to new and current staff and SQA trustees regarding SQA procedures, work instructions, new and revised procedures, development tools and methods, etc.

„ Monitoring and supporting implementation of new and revised SQA procedures

„ Follow up of staff certification activities

„ Proposal of subjects requiring preventive and corrective actions

„ Follow up of configuration management activities

„ Follow up of compliance with documentation procedures and work instructions

(108)

Types of Audits (in or by SW Org)

„

Internal audits

„

Audits of subcontractors and suppliers to

evaluate their SQA systems

„

External audits performed by certification

bodies

„

External audits performed by customers

who wish to evaluate the SQA system prior

to accepting the organization as a supplier

(109)

Audits and Certifications (Sub-Units)

„ Preparation of annual programs for SQA audits

„ Performance of SQA audits

„ Follow up of corrections

„ Preparation of periodic summary reports

„ Collection of data on the performance of the audited organization from internal and external sources

„ Periodic evaluation of the audited organization

„ Coordination of the external audit's contents and schedule

„ Preparation of documents as specified by external auditors

„ Instruction of the audited teams and performance of preparations for external audits

„ Participation in the audit

(110)

Support Tasks (Sub-Units)

„

Preparation of project development plans and

project quality plans

„

Staffing review teams

„

Choice of development methodologies and tools

that reflect the accumulated failure experience

„

Choice of measures to solve identified software

development risks

„

Choice of measures to solve schedule delays

and budget overruns

„

Choice of SQA metrics and software costs

components

„

Use of SQA information systems

(111)

Standard and Procedures (Sub-Units)

„ Prepare an annual program for development of new procedures and procedure updates

„ Responsibility for development of new procedures and procedure updates, including participation in appropriate committees and forums

„ Follow up of developments and changes in SQA and

software engineering standards; introduction of additional relevant procedures and changes

„ Initiation of updates and adaptations of procedures in

response to changes in professional standards, including adoption or deletion of standards applied by the

organization.

(112)

Engineering (Sub-Units)

„ Testing quality and productivity aspects with respect to new development tools and new versions of currently used development tools

„ Evaluation of quality and productivity of new and improved development and maintenance methods

„ Development of solutions to difficulties confronted in

application of currently used software development tools and methods

„ Development of methods for measuring software quality and team productivity

„ Provision of technological support to CAB committees during analysis of failures and formulation of solutions

(113)

Information Systems (Sub-Units)

„

Development of SQA information systems for

software development and maintenance units for:

†

Collection of activity data.

†

Processing of information delivered by the

units: periodic reports, lists, exception

reports, queries and estimates of software

quality metrics and software quality costs.

„

Updating of SQA information systems

„

Development and maintenance of the

organization's SQA Intranet/Internet site

(114)

SQA Unit Plan

„

Evaluations to be performed

„

Audits and reviews to be performed

„

Standards that are applicable to the project

„

Procedures for error reporting and tracking

„

Documents to be produced by the SQA group

„

Amount of feedback provided to software

(115)

c)

SQA Trustees

Unit-related tasks:

„ Support their colleagues' attempts to solve difficulties in the implementation of SQA procedures and work instructions

„ Help their unit manager in performing his or her SQA tasks Promote compliance and monitor implementation of SQA procedures and work instructions by colleagues

„ Report substantial and systematic non-compliance events to the SQA unit

„ Report severe software quality failures to the SQA unit

Organization-related tasks

„ Initiate changes and updates of organization-wide SQA procedures and work instructions

„ Initiate organization-wide improvements of development and

maintenance processes and applications for solutions to recurrent failures observed in their units

„ Identify organization-wide SQA training needs and propose an appropriate training or instruction program

(116)

d)

SQA Committees

Permanent committees commonly deal with:

„ SCC (software change control),

„ CA (corrective actions),

„ Procedures,

„ Development of method, tools and quality metrics.

Ad-hoc committees commonly deal with specific cases:

„ Updates of a specific procedure,

„ Analysis and solution of a software failure,

„ Elaboration of software metrics for a targeted process or product,

„ Updating software quality costs,

„ Data collection methods for a specific issue.

(117)

e)

SQA Forums

SQA forums typically focus on:

„ SQA procedures improvements and implementation

„ Quality metrics

„ Corrective actions – analysis of failure and success cases

„ Quality system issues – development and implementation of new tools

„ Quality line management problems – daily operational software quality problems

Members of an open forum may include:

„ SQA unit members

„ SQA trustees

„ Software development and maintenance staff

„ SQA and

References

Related documents

According to Christiano (1992), Banerjee, Lumsdaine and Stock (1992), Zivot and Andrews (1992), Perron and Vogelsand (1992) and Chu and White (1992), identification of the break

As is shown in Figure 1- 10, the default signal parameters are: 1kHz frequency, 4.0Vpp amplitude, 0Vdc offset, 200 μ s pulse width.. Press Noise button, and the waveform

In this regard, Culler (1976) believes that languages are not nomenclatures and the concepts of one language may differ radically from those of another, since each

Figure 19 - Base case ALFC scheme outcome with actual frequency variation as input System frequency behavior is different during the three demand scenarios, namely off peak,

Building on this conceptual foundation, this study employs a quantitative and survey- based approach to measure the organizational cultures of a sample of various

The main hypothesis of the study states that there is a relationship between the level of SM financial disclosure and firm value (Tobin’s Q) in firms listed in the GCC stock

Equally you might find that the ownership issue of social customer service between Marketing, PR and Customer Services provokes a broader debate about collaboration using the rich