You are on page 1of 14

An INTRODUCTION TO

SOFTWARE
QUALITY

Presented By
Lipsa Rajnandini
Sandeep Kumer Behera
Santwana Sahu
Objective:

Ø To study the characteristics of software quality and


techniques for improving software quality
INTRODUCTION:
Ø Software is a general term for the various kinds of programs used to
operate computers and related devices.
q A program is a specific set of ordered operations for a computer to perform

Ø Systems software : Includes the operating system and all the


utilities that enable the computer to function.

Ø Applications software : Includes programs that do real work for


users. For example, word processors, spreadsheets, and database
management systems..etc
SOFTWARE QUALITY:

Ø External Characteristics: What a system’s user is interested in;


typically properties of any single particular system

Ø Internal Characteristics : What programmers/management are


interested in; properties of the development of a collection of
systems (all versions of a particular system, related systems, etc.)
CONT…
EXTERNAL CHARACTERISTICS:

Ø Correctness: Degree to which system is free from faults in specification, design


and implementation
Ø Usability: The ease with which users can learn and use a system
Ø Efficiency: Minimal use of system resources incl. memory and execution time
Ø Reliability: The ability of a system to perform whenever required without/with
few failures
Ø Integrity: Prevention of unauthorized or improper use (allowed permissible users
and data)
Ø Adaptability: Usability in other applications than the original one
Ø Accuracy: Degree of ‘quantitative’ correctness
Ø Robustness: Functioning
INTERNAL CHARACTERISTICS:

• Maintainability: Ease of modifying software for changing/adding capabilities,


improving performance, correcting defects
• Flexibility: Extent of modifying system for other uses/environments
• Portability: Ease of modifying system for operating in different environment
• Reusability: Extent of using parts in other systems
• Readability: Ease of reading and understanding source code
• Testability: Support for unit- and system-testing
• Understandability: Ease of comprehension of a system’s organization at high and
low levels.
TECHNIQUES FOR IMPROVING
SOFTWARE QUALITY:
Ø Explicit software quality objectives: Making clear which qualities are most
important

Ø Testing strategy: Planning and conducting unit- and system testing

Ø Software engineering guidelines: Recommendations/rules/standards for


requirements analysis, design, coding, testing

Ø Informal technical reviews: Reviewing specifications, design, code alone or with


peers

Ø Formal technical reviews: Formal reviews at well-defined milestones


(requirements/architecture, architecture/detailed design, detailed design/coding,
coding/testing)
CONT…
Ø External audits: Technical review conducted by outside personnel, usually
commissioned by management

Ø Development process: Development process with explicit risk management

Ø Change-control procedures: Explicit procedures for changing requirements,


design, code; documenting them and checking them for consistency

Ø Measurement of results: Measuring effects of quality assurance activities

Ø Prototyping: Developing realistic models of a system's key functions.

Ø Mathematical proof: Formal verification of correctness and robustness


properties

Ø Modular programming techniques: Design by contract Defensive programming


EFFECTIVENESS OF
TECHNIQUES:
Ø Different techniques are good at finding different kinds of errors

Ø Different people find different errors (using the same technique)

Ø Reviewing finds more errors than testing

Ø Corollary: High quality requires multiple techniques and multiple people


Timeliness of defect
detection:
Ø Late defect detection costs much more than early defect detection
q E.g., specification error detected after coding is much more costly than if
detected before or during design

Ø Corollary: Quality assurance must be built into the project throughout its stages
CONT…
CONCLUSION:

Ø General Principle of Software Quality: Improving quality


reduces development costs.