Chapter 1
The Software Quality Challenge
The Uniqueness of Software QA
o Software Vs. other industrial products:
• No developer will declare that its software or
hardware is free of defects
o The difference between software and other industrial
products can be categorized as follows:
1- Product complexity : High complexity, as compared
to other industrial products.
2- Product visibility : Invisibility of the software product
makes it hard to asses it’s development and quality
3- Product development and production process.
Product complexity.
• Product complexity can be measured by the number
of operational modes the product permits.
• An industrial product, even an advanced machine, does
not allow for more than a few thousand modes of
operation, created by the combinations of its different
machine settings.
• software package one can find millions of software
operation possibilities.
Product visibility
• Industrial products are visible whereas software
products are invisible.
• Defects in an industrial product can be detected
during the manufacturing process
• Moreover the absence of a part in an industrial
product is, as a rule, highly visible (imagine a
door missing from your new car).
• However, defects in software products are
invisible, as is the fact that parts of a software
package may be absent from the beginning.
Product development and production
process
• Phases at which the possibility of detecting defects in
an industrial product may arise:
(a) Product development. In this phase the designers
and quality assurance (QA) staff check and test the
product prototype, in order to detect its defects.
(b) Product production planning. During this phase the
production process and tools are designed and
prepared.
• This phase thus provides additional opportunities to
inspect the product, which may reveal defects that
“escaped” the reviews and tests conducted during
the development phase.
Product development and
production process
(c) Manufacturing. At this phase, QA procedures are
applied to detect failures of products themselves.
Defects in the product detected in the first period of
manufacturing can usually be corrected by a
change in the product’s design or materials or in
the production tools, in a way that eliminates such
defects in products manufactured in the future.
Product development and
production process
• In comparison to industrial products, Software Products
do not benefit from the opportunities for detection of
defects at all three phases of the production process.
• Defects only can be detected in the development phase.
• The phases that contributes to the detection of defects:
(a) Product development. During this phase, efforts of the
development teams and software quality assurance
professionals are directed toward detecting inherent
product defects. At the end of this phase an approved
prototype, ready for reproduction, becomes available.
Product development and
production process
(b) Product production planning. This phase is not
required for the software production process, as the
manufacturing of software copies and printing of
software manuals are conducted automatically. This
applies to any software product, whether the number of
copies is small, as in custom-made software, or large, as
in software packages sold to the general public.
(c) Manufacturing. As mentioned previously, the
manufacturing of software is limited to copying the
product and printing copies of the software manuals.
Consequently, expectations for detecting defects are
quite limited during this phase.
Factors affecting defect detection in software
products vs. other industrial products
Characteristic Software products Other industrial
products
Complexity Usually, very complex Degree of complexity
product allowing for much, lower, allowing
very large number of at most a few
operational options operational options
Visibility of Invisible product, Visible product,
product impossible to detect allowing effective
defect or omissions by detection of defects
sight(e.g. of a diskette by sight
or CD storing the
software)
Factors affecting defect detection in
software products vs. other industrial
products
Characteristic Software products Other industrial products
Nature of Opportunities to detect defects Opportunities to detect
,arise in only one phase defects arise in all phases of
development
namely product development development and
and
production:
production
■ Product development
process
■ Product production
planning
■ Manufacturing
The environment for which SQA methods
are developed
o The software developed by many individuals and in
different situations fulfills a variety of needs:
• Students develop software as part of their education.
• Software amateurs develop software as a hobby.
• Professionals in engineering, economics,
management and other fields develop software to
assist them in their work, to perform calculations,
summarize research and so forth.
• Software development professionals( system analysts
and programmers) develop software products or
firmware as a professional career objective
The environment for which SQA methods
are developed
SQA for whom??
This course is devoted to defining and solving many of the SQA problems
confronted by software development and maintenance professionals..
The main characteristics of the environment of professional
software
development and maintenance (hereafter “the SQA
environment) are:
1) Contractual conditions:
As a result of the conditions defined in the contract between
the software developer and the customer, the activities of
software development and maintenance need to cope with:
- List of requirements needed to be fulfill
- The project budget
- The project timetable
The environment for which SQA methods
are developed
2) Subjection to customer–supplier relationship
The project team has to cooperate continuously with the
customer: to consider his request for changes, to discuss his
criticisms about the various aspects of the project, and to get his
approval for changes initiated by the development team.
3)Required teamwork
Three factors usually motivate the establishment of a project team
rather than assigning the project to one professional:
■ Timetable requirements. In other words, the workload undertaken during the
project period requires the participation of more than one person if the project
is to be completed on time.
■ The need for a variety of specializations in order to carry out the project.
■ The wish to benefit from professional mutual support and review for the
enhancement of project quality.
The environment for which SQA
methods are developed
4)Cooperation and coordination with other software
teams.
Cooperation may be required with:
■ Other software development teams in the same organization.
■ Hardware development teams in the same organization.
■ Software and hardware development teams of other suppliers.
■ Customer software and hardware development teams that take part
in the project’s development.
5)Interfaces with other software systems.
Nowadays, most software systems include interfaces with other
software packages. These interfaces allow data in electronic
form to flow between the software systems.
The environment for which SQA
methods are developed
4)Cooperation and coordination with other software
teams.
Cooperation may be required with:
■ Other software development teams in the same organization.
■ Hardware development teams in the same organization.
■ Software and hardware development teams of other suppliers.
■ Customer software and hardware development teams that take part
in the project’s development.
5)Interfaces with other software systems.
Nowadays, most software systems include interfaces with other
software packages. These interfaces allow data in electronic
form to flow between the software systems.
The environment for which SQA
methods are developed
What are types of software interface?
6) The need to continue carrying out the project while
the team members change.
It is quite common for team members to leave the team during
the project development period, whether owing to promotions to
higher level jobs, a switch in employers, transfers to another city,
and so forth. The team leader then has to replace the departing
team member either by another employee or by a newly recruited
employee. No matter how much effort is invested in training the
new team member, “the show must go on”, which means
that the original project contract timetable will not change.
The environment for which SQA
methods are developed
7) The need to continue carrying out software maintenance for an
extended period.
Customers who develop or purchase a software system expect
to continue utilizing it for a long period, usually for 5–10 years. During the
service period, the need for maintenance will eventually arise. In most
cases, the developer is required to supply these services directly. Internal
“customers”, in cases where the software has been developed in-house,
share the same expectation regarding the software maintenance during
the service period of the software system.
The environmental characteristics create a need for intensive and
continuous managerial efforts parallel to the professional efforts that have
to be invested in order to assure the project’s quality, in other words to
assure the project’s success.