Вы находитесь на странице: 1из 44

CH1.

Quality Concept

Quality
Quality is the presence of desired characteristics and the absence of undesirable characteristics in the product or process.
Quality is the optimum set of solutions to a given set of problems.

Software Quality
Software quality is:
The degree to which a system, component, or process meets customer or user needs or expectations.

Quality Factors
Functionality Reliability Usability Efficiency Maintainability, Portability 3 Critical Questions
How much of which quality factor be adequate? How do we measure it adequately? How do we control it adequately?
FACT: The Client can never know the Quality of the Project

Software Quality Assurance


A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. The review of software products and related documentation for completeness, correctness, reliability and maintainability. It includes assurances that the system meets the specification and the requirements for its intended use and performance.
Quality Assurance presence in every phase of the development process, from requirements definition to final testing.

SQA
SQA does this by checking that:
plans are defined according to standards; procedures are performed according to plans; products are implemented according to standards.

SQA is not the only checking activity in a project. Whereas SQA checks
procedures against plans and output products against standards, Software Verification and Validation (SVV) checks output products against input products.

Objectives of SQA in development


Assuring an acceptable level of confidence that the software will conform to functional technical requirements. Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.

General Principles of QA
Know what you are doing
understand what is being built, how it is being built and what it currently does

Know what you should be doing


having explicit requirements and specifications suppose a software development process with
requirements analysis, acceptance tests, frequent user feedback

Know how to measure the difference


having explicit measures comparing what is being done from what should be done.

SQA includes
Verification
are we building the product right ? performed at the end of a phase to ensure that requirements established during previous phase have been met.

Validation
are we building the right product ? performed at the end of the development process to ensure compliance with product requirements. Cont

SQA includes
Defect Prevention
prevents defects from occurring in the first place Activities: training, planning, and simulation

Defects detection
finds defects in a software artifact Activities: inspections, testing or measuring

Defects removal
isolation, correction, verification of fixes Activities: fault isolation, fault analysis, regression testing

Nine Causes of Software Errors


Faulty requirements definition. Client-developer communication failures. Deliberate deviations from software requirements. Logical design errors. Coding errors. Non-compliance with documentation and coding instructions. Shortcomings of the testing process. User interface and procedure errors. Documentation errors.

Software Quality Metrics


In general, software quality metrics are more closely associated with process and product metrics than with project metrics.
Measurements to be collected to answer the questions.

classified into three categories:


product metrics
describe the characteristics of the product such as size, complexity, design features, performance, and quality level.

process metrics
used to improve software development and maintenance.

project metrics
describe the project characteristics and execution.

Product Quality Metrics


consists of two levels:
intrinsic product quality .
measured by the number of bugs (functional defects) in the software two metrics
Mean time to failure used with safety critical systems such as the airline traffic control systems, avionics, and weapons. measures the time between failures Defect density is used in many commercial software systems. measures the defects relative to the software size

Product Quality Metrics


customer satisfaction.
measured by customer survey data via
Very satisfied =100% Satisfied =75% Neutral =50% Dissatisfied =25% Very dissatisfied =0%

To understand the programming process. To learn to engineer quality into the process. Tracking defect arrival during formal machine testing for some organizations.

Product Quality Metrics


Defect Removal Effectiveness: DRE=Defects removed during a development phase/Defects latent in the product 100% Because the total number of latent defects in the product at any given phase is not known, the denominator of the metric can only be approximated. It is usually estimated by:
Defects removed during the phase + defects found later

The metric can be calculated for the entire development process, for the front end (before code integration), and for each phase. It is called early defect removal

McCalls Quality Model (1977)


presented by Jim McCall primarily aimed towards the system developers and the system development process attempts to bridge the gap between users and developers by focusing on a number of software quality factor Three major perspectives
product revision(ability to undergo changes) product transition (adaptability to new environments) product operations (its operation characteristics)

McCalls Quality Model (1977)

Product Revision
Maintability
to identify the reasons for software failures, to correct the failures, and to verify the success of the corrections. Flexibility These include the resources required to adapt a software package to a variety of customers of the same trade, of various extents of activities, of different ranges of products, and so on. Testability deal with the testing of an information system as well as with its operation.

Product Transition
Portability
The adaptation of software system to other environenments consisting of different hardware, different operating systems, and so forth.

Reusability
deal with the use of software modules originally designed for one project currently being developed.

Interoperability
focus on creating interfaces with other software systems or with other equipment firmware. specify the name of the software or firmware for which interface is required.

Product Operations
Correctness:
The required accuracy of output The completeness of the output information The standards for coding and documenting the software

Reliability
Determine the maximum allowed software system failures rate, and can refer to the entire system or to one or more of its separate functions.

the ability of a system or component to perform its required functions under stated conditions for a specified period of time.

Efficiency
deal with the hardware resources needed to perform all the functions of the software system in conformance to all other requirements.

Integrity
deal with the software system security, that is requirements to present access to an authorize person.

Usability
deal with the scope of staff resources needed to train a new employee and to operate the software system.

ISO 9126 Software Quality Factors


Defines six key quality factors: Functionality
Are the required functions available in the software?

Reliability
How reliable is the software?

Usability
Is the software easy to use?

Maintainability
How easy is to modify the software?

Portability
How easy is to transfer to another environment?

Efficiency How efficient is the software?

ISO 9126

Functionality
It is expressed as a totality of essential functions that the software product provides. It also note that the presence or absence of these functions in a software product
Suitability
refers to the appropriateness of the functions of the software.

Accurateness
correctness of the functions

Interoperability
ability of a software component to interact with other components or systems.

Compliance
certain industry (or government) laws and guidelines need to be complied with.

Security
relates to unauthorized access to the software functions

Reliability
defines the capability of the system to maintain its service provision under defined conditions for defined periods of time.
Maturity
Frequency of failure of the software

Fault tolerance
ability of software to recover from component, or environmental failure.

Recoverability
ability to bring back a failed system to full operation, including data and network connections.

Usability
It only exists with regard to functionality and refers to the ease of use for a given function. Understandability
Determines the ease of which the systems functions can be understood

Learnability
Learning effort for different users.

Operability
Ability of the software to be easily operated by a given user in a given environment.

Efficiency
concerned with the system resources used when providing the required functionality. The amount of disk space, memory, network etc. provides a good indication of this characteristic.
Time behavior
Characterizes response times for a given thru put, i.e. transaction rate.

Resource behavior
Characterizes resources used, i.e. memory, cpu, disk and network usage.

Maintainability
ability to identify and fix a fault within a software component.
Analyzability
To identify the root cause of a failure within the software.

Testability
needed to verify a system change.

Stability
change of a given system that is the negative impact that may be caused by system changes.

Portability
Software can adopt to changes in its environment or with its requirements.
Adaptability
ability of the system to change to new specifications or operating environments.

Replaceability
the plug and play aspect of software components, that is how easy is it to exchange a given software component within a specified environment.

Process Improvement
Understanding existing processes and introducing process changes. to improve product quality, reduce costs or accelerate schedules. focused on defect reduction. to making a process more effective, efficient, or transparent

The process improvement cycle

Process improvement stages


Process measurement
Attributes of the current process are measured. These are a baseline for assessing improvements.

Process analysis
The current process is assessed and bottlenecks and weaknesses are identified.

Process change
Changes to the process that have been identified during the analysis are introduced.

PROCESS AND PRODUCT QUALITY


Process quality and product quality are closely related. The quality of the product depends on its development process. A good process is usually required to produce a good product. To provide staff and management with objective insight into processes and associated work products. ensure that planned processes are implemented. If we do not know whether the process is implemented properly then we do not know whether the process was helpful.

Principal product quality factors


Develo pment techn olo gy

Process qu ality

Prod uct qu ality

People qu ality

Co st, time and sch ed ule

Product Quality Factors


For large projects with average capabilities, the development process determines product quality. For small projects, the capabilities of the developers is the main determinant. The development technology is particularly significant for small projects. In all cases, if an unrealistic schedule is imposed then product quality will suffer.

ISO = International Organization for Standards


ISO 9000 is a quality system standard that:
Is a three-part, continuous cycle of planning, controlling, and documenting quality in an organization. Provides minimum requirements needed for an organization to meet its quality certification standards. Helps organizations around the world reduce costs and improve customer satisfaction.
The structural framework of a business system to provide organizations with useful internationally recognized models for operating a quality management system.

purpose behind the new ISO 9001:2000 standard was to provide users an opportunity to add value and enhance their performance through continuous improvement of their processes.

P-D-C-A
Plan what you do Do what you planned & record what you did Check the results Act on the difference

36

ISO
If you're now ISO 9001 certified, ISO 9002 or ISO 9003 certified, you're going to have to become ISO 9001 2000 certified. ISO 9001 Model for quality assurance in design, development, production, installation and servicing. ISO 9002 Model for quality assurance in production, installation and servicing. ISO 9003 Model for quality assurance in final inspection and testing.

Six Sigma
Sigma : A scale for levels of quality of product. A statistical concept that measures a process in terms of defects at the six sigma level. To eliminate defects and always deliver products and services that meet customer specifications. Originally developed by Motorola in 1986. helps to find out number of defects that a system is producing. Finding the exact root cause. One of the major problem solving approaches in Six Sigma include DMAIC:
DEFINE, MEASURE, ANALYZE, IMPROVE, CONTROL

Six Sigma

Six Sigma
DEFINE:
Define the project goals and customer (internal and external) deliverables A well defined problem is half the solution The problem needs to be defined properly, thoroughly, in-depth.

MEASURE:
Measure the process to determine current performance include a carefully measured way of presenting the problem, proper data collection, critical inputs and outputs, and the proper capability measurement model of any organization.

ANALYZE:
Analyze and determine the root cause(s)of the defects include the documentation of the measure step, identification of the variables occurring in the system.

IMPROVE:
Improve the process by eliminating defects The major step, which include the application of the solutions for the major problems identified during the last 3 steps.

CONTROL:
Control future process performance measuring that whether the solution applied is sustainable or not comes under control step.

The SEI capability maturity model


Capability Maturity Model, developed by the SEI. The application of process management and quality improvement concepts to software development and maintenance. A model for organizational improvement 5 levels of organizational maturity that determine effectiveness in delivering quality software. Each maturity level provides a layer in the foundation for continuous process improvement. It is geared to large organizations according to the SEI: "Predictability, effectiveness, and control of an organization's software processes are believed to improve as the organization moves up these five levels. to improve product quality and development efficiency for both hardware and software

The SEI capability maturity model


Initial Anything at all. Ad-hoc and chaotic. Will have some successes, but will also have failures and badly missed deadlines. Repeatable SW processes are defined, documented, practiced, and people are trained in them. Groups across an organization may use different processes. Defined Process management procedures and strategies defined and used standard software development and maintenance processes are integrated throughout an organization Managed Quality management strategies defined and used i.e metrics are used to track productivity, processes, and products. Project performance is predictable, and quality is consistently high. Optimising Process improvement strategies defined and used The focus is on continuous process improvement. The impact of new processes and technologies can be predicted and effectively implemented when required.

CMMI Staged Representation - 5 Maturity Levels


Level 5 Optimizing Level 4 Quantitatively Managed Level 3 Defined Level 2 Processes are controlled using statistical and other quantitative techniques. Process performance continually improved through incremental and innovative technological improvements.

Processes are well characterized and understood. Processes, standards, procedures, tools, etc. are defined at the organizational (Organization X ) level. Proactive.

Managed
Level 1 Initial
Slide 43 of 146

Processes are planned, documented, performed, monitored, and controlled at the project level. Often reactive.

Processes are unpredictable, poorly controlled, reactive.

Overall Benefits
Defect rates have dropped Defect detection occurs earlier User requirements are documented, controlled, and managed
Especially important when users change their minds!

Estimating improves and becomes more precise Risk management is a practice

Вам также может понравиться