cseb233: fundamentals of software engineering software quality management

41
CSEB233: Fundamentals of Software Engineering Software Quality Management

Upload: pamela-hutchinson

Post on 27-Dec-2015

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSEB233: Fundamentals of Software Engineering Software Quality Management

CSEB233: Fundamentals of Software Engineering

Software Quality Management

Page 2: CSEB233: Fundamentals of Software Engineering Software Quality Management

Objectives

Explain the concepts and principles of quality, software quality and software quality management.

Discuss several indicators of a high quality software product

Present real life quality dilemmas for even the best SE organizations

Describe four broad activities that help a software team achieve high quality software

Elaborate the concepts, principles, methods and standards for Software Quality Assurance (SQA)

Page 3: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Management

Concepts and Principles

Page 4: CSEB233: Fundamentals of Software Engineering Software Quality Management

What is Software Quality Management? Adopts a number of management principles that are

used by upper management to guide their organizations towards improved software product performance

e.g., continuous quality improvement, customer focus, process approach, leadership, etc.

Concerned with ensuring that the required level of quality is achieved in a software product

Should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility

Software Quality Assurance (SQA) is often called quality management!

Page 5: CSEB233: Fundamentals of Software Engineering Software Quality Management

Scope of Software Quality Management Quality management

particularly important for large, complex systems

The Quality documentation 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’

Page 6: CSEB233: Fundamentals of Software Engineering Software Quality Management

What is Quality?

The American Heritage Dictionary defines quality as “a characteristic or attribute of something”

For software, two kinds of quality may be encountered: Quality of design encompasses requirements,

specifications, and the design of the system. Quality of conformance is an issue focused

primarily on implementation User satisfaction = compliant product + good

quality + delivery within budget and schedule

Page 7: CSEB233: Fundamentals of Software Engineering Software Quality Management

Comments on Quality

Phil Crosby once said: The problem of quality management is not what people

don't know about it. The problem is what they think they do know . . . In this regard, quality has much in common with sex.

Everybody is for it. (Under certain conditions, of course.) Everyone feels they understand it. (Even though they

wouldn't want to explain it.) Everyone thinks execution is only a matter of following

natural inclinations. (After all, we do get along somehow.) And, of course, most people feel that problems in these

areas are caused by other people. (If only they would take the time to do things right.)

Page 8: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality

In 2005, ComputerWorld lamented “bad software” plagues nearly every organization that uses computers, causing lost work hours during computer downtime, lost or corrupted data, missed sales opportunities, high IT support and maintenance costs, and low customer satisfaction.

A year later, InfoWorld wrote about the “the sorry state of software quality” reporting that the

quality problem had not gotten any better

Page 9: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality

Today, software quality remains an issue Who is to be blamed?

Customers blame developers, arguing that sloppy practices lead to low-quality software

Developers blame customers, and other stakeholders

arguing that irrational delivery dates and stream of changes force them to deliver software before it is fully validated

Page 10: CSEB233: Fundamentals of Software Engineering Software Quality Management

What is Software Quality?

Software quality can be defined as: An effective software process applied in a manner

that creates a useful product that provides measurable value for those who produce it and those who use it

Effective process: Establishes the infrastructure that supports any

effort at building a high quality software product The management aspects of process create the

checks and balances that help avoid project chaos - a key contributor to poor quality.

Page 11: CSEB233: Fundamentals of Software Engineering Software Quality Management

What is Software Quality?

Useful product Delivers the content, functions, and features

that the end-user desires in a reliable, error free way

Satisfies requirements of stakeholders and that are expected of all high quality software

Page 12: CSEB233: Fundamentals of Software Engineering Software Quality Management

What is Software Quality?

Adding value High quality software provides benefits to producer and

user To producer:

less maintenance effort, fewer bug fixes, and reduced customer support

To user: expedites some business process.

End results Increased revenue, better profitability when an application

supports a business process, and/or improved availability of information that is crucial for the business.

Page 13: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Management

Indicators of High Quality Software

Page 14: CSEB233: Fundamentals of Software Engineering Software Quality Management

Quality Dimensions and Factors Can be used as generic quality indicators

of a software product Garvin Quality Dimensions McCall’s Quality Factors ISO 9126 Quality Factors Targeted Factors

Page 15: CSEB233: Fundamentals of Software Engineering Software Quality Management

Quality Dimensions and Factors

Garvin McCall ISO 9126 Targeted1. Performance

Quality2. Feature Quality

Reliability3. Conformance4. Durability

Serviceability5. Aesthetic6. Perception

1. Correctness 2. Reliability3. Efficiency4. Integrity5. Usability6. Maintainability7. Flexibility8. Testability9. Portability10. Reusability11. Interoperability

1. Functionality2. Reliability3. Usability4. Efficiency5. Maintainability6. Portability

1. Intuitiveness2. Efficiency3. Robustness4. Richness

Page 16: CSEB233: Fundamentals of Software Engineering Software Quality Management

Quality Dimensions and Factors Efficiency

The degree to which the software makes optimal use of software resources.

Usability The degree to which the software is easy to

learn, use, operate, prepare input for and interpret output from.

Page 17: CSEB233: Fundamentals of Software Engineering Software Quality Management

Quality Dimensions and Factors Maintainability

The ease with which repair maybe made to the software

Reliability The amount of time that the software is

available for use

Page 18: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Management

Software Quality Dilemmas

Page 19: CSEB233: Fundamentals of Software Engineering Software Quality Management

The Software Quality Dilemmas If you produce a software system that has

terrible quality, you lose because no one will want to buy it

If you spend infinite time, extremely large effort, and huge sums of money to build an absolutely perfect piece of software, then it's going to take so long to complete, and it will be so expensive to produce that you’ll be

out of business anyway

Page 20: CSEB233: Fundamentals of Software Engineering Software Quality Management

The Software Quality Dilemmas Either you missed the market window, or

you simply exhausted all your resources So people in industry try to get to that

middle ground where the product is good enough not to be rejected

right away, such as during evaluation, but also not the object of so much

perfectionism and so much work that it would take too long or cost too much to complete

Page 21: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Management

Achieving High Quality Software

Page 22: CSEB233: Fundamentals of Software Engineering Software Quality Management

Achieving Software Quality Broad activities that help a software team

achieve high quality software: Quality assurance (QA)

establishes the infrastructure that supports solid software engineering methods, rational project management, and quality control actions

Quality control (QC) action that helps ensure each work products

meets its quality goals e.g., review design models to ensure that they are

complete and consistent

Page 23: CSEB233: Fundamentals of Software Engineering Software Quality Management

Achieving Software Quality Broad activities that help a software team

achieve high quality software: Software engineering method

understand the problem to be solved, create a design that conforms to the problems and exhibit characteristics that lead to software that are reliable, efficient, usable, etc.

Project management technique use estimation to verify that delivery dates are

achievable, schedule dependencies are understood and conduct risk planning so that problem do not breed chaos.

Page 24: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Management

Software Quality Assurance

Page 25: CSEB233: Fundamentals of Software Engineering Software Quality Management

Software Quality Assurance (SQA) An SQA process Specific QA and QC tasks

technical review, audits, multitier testing strategy etc. Effective SE practice (methods and tools)

risk management Control of all software work products and changes made

to them change management, security management

A procedure to ensure compliance with standards IEEE, ISO, CMMI, Six Sigma, etc.

Measurement and reporting mechanisms SQA group

Page 26: CSEB233: Fundamentals of Software Engineering Software Quality Management

Role of the SQA Group

Prepares an SQA plan for a project, which identifies: 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 the software

project team

Page 27: CSEB233: Fundamentals of Software Engineering Software Quality Management

Role of the SQA Group

Participates in the development of the project’s software process description

The SQA group reviews the process description for compliance with

organizational policy internal software standards externally imposed standards (e.g., ISO-

9001), and other parts of the software project plan

Page 28: CSEB233: Fundamentals of Software Engineering Software Quality Management

Role of the SQA Group

Reviews software engineering activities to verify compliance with the defined software process identifies, documents, and tracks deviations from the

process and verifies that corrections have been made Audits designated software work products to verify

compliance with those defined as part of the software process reviews selected work products; identifies, documents,

and tracks deviations; verifies that corrections have been made

periodically reports the results of its work to the project manager

Page 29: CSEB233: Fundamentals of Software Engineering Software Quality Management

Role of the SQA Group

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

Records any noncompliance and reports to senior management. Noncompliance items are tracked until they

are resolved.

Page 30: CSEB233: Fundamentals of Software Engineering Software Quality Management

SQA Goals

Requirements quality The correctness, completeness, and consis-

tency of the requirements model strongly influence the quality of all work products that follow

Design quality Every element of the design model should be

assessed by the software team to ensure that it exhibits high quality, and

The design itself conforms to requirements

Page 31: CSEB233: Fundamentals of Software Engineering Software Quality Management

SQA Goals

Code quality Source code and related work products (e.g.,

other descriptive information) must conform to local coding standards, and

Exhibit characteristics that facilitate maintain-ability

Quality control effectiveness Software team should apply limited resources

in a way that has the highest likelihood of achieving a high quality result

Page 32: CSEB233: Fundamentals of Software Engineering Software Quality Management

Statistical SQA

Steps to perform statistical SQA: Collect and categorize information about software errors

and defects Trace each error and defect to its underlying cause

e.g., non-conformance to specifications, design error, violation of standards, poor communication with customer

Identify vital few causes of defects (20%) by using the Pareto principle 80% of defects can be traced to 20% of all possible causes

Correct the problems that caused errors and defects Widely used strategy for statistical SQA in the

industry is Six Sigma

Page 33: CSEB233: Fundamentals of Software Engineering Software Quality Management

Six-Sigma for Software Engineering Originally popularized by Motorola in the

1980s A rigorous and disciplined methodology

that uses data and statistical analysis to measure and improve a company’s operational performance

Page 34: CSEB233: Fundamentals of Software Engineering Software Quality Management

Six-Sigma for Software Engineering The Six Sigma methodology defines three

core steps: Define customer requirements and deliver-ables

and project goals Use well-defined methods of customer communi-

cation Measure the existing process and its output to

determine current quality performance Collect defect metrics

Analyze defect metrics and determine the vital few causes

Page 35: CSEB233: Fundamentals of Software Engineering Software Quality Management

Six-Sigma for Software Engineering If improvement is required when software

process exist, Six Sigma suggest two extra steps: Improve the process by eliminating the root

causes of defects Control the process to ensure that future work

does not reintroduce the causes of defects

Page 36: CSEB233: Fundamentals of Software Engineering Software Quality Management

ISO 9001:2000 Standard

ISO 9001:2000 is the quality assurance standard that applies to software engineering

The standard contains 20 requirements that must be present for an effective quality assurance system

Page 37: CSEB233: Fundamentals of Software Engineering Software Quality Management

ISO 9001:2000 Standard

The requirements set down by ISO 9001: 2000 address topics such as management responsibility quality system contract review design control document and data control product identification and traceability

Page 38: CSEB233: Fundamentals of Software Engineering Software Quality Management

ISO 9001:2000 Standard

The requirements set down by ISO 9001: 2000 address topics such as process control, inspection and testing corrective and preventive action control of quality records internal quality audits training servicing, and statistical techniques

Page 39: CSEB233: Fundamentals of Software Engineering Software Quality Management

ISO 9001:2000 Standard

Update and upgrade of standard: visit

http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=46486

Page 40: CSEB233: Fundamentals of Software Engineering Software Quality Management

Summary

The concepts and principles of quality, software quality and software quality management.

Several indicators of a high quality software product

A real life quality dilemmas for even the best SE organizations

Four broad activities that help a software team achieve high quality software

The concepts, principles, methods and standards for Software Quality Assurance (SQA)

Page 41: CSEB233: Fundamentals of Software Engineering Software Quality Management

THE ENDCopyright © 2014

College of Information Technology