The Software Quality Challenge
The differences between software and other industrial products
1. High complexity, as compared to other industrial
products
2. Invisibility of the product
3. Opportunity to detect defects (“bugs”) are limited
the product development phase
1. Product complexity
• Product complexity can be measured by the number of
operational modes the product permit.
• An industrial product, even an advanced machine, does not
allow for more than a few thousand modes of operations,
created by the combinations of its different machine settings.
• Looking at a typical software package one can find millions of
software operation possibilities.
2.Product visibility
• Where as the industrial products are visible, software products
are invisible.
• Most of the defects in an industrial products can be detected
during the manufacturing process.
• Moreover the absence of a part in an industrial product is, as a
highly visible (Imagine a door missing from you new car)
3.Product development and production process
The phases at which the possibility of detecting defects in an industrial products
may arise in;
• Product development : The designer and quality assurance (QA) staff
check and test the product prototype in order to detect its defects
• Product production Planning : During this phase the production process
and tools are designed and prepared. In some products there is a
need for a special production line to be designed and built. This
provides additional opportunities to inspect the product.
• Manufacturing : QA procedures are applied to detect failures of the
products themselves. Defects in the detected in the first period of
manufacturing can usually be corrected by a change in the product’s
design or material, or in the production tools .
The environments for which
SQA methods are developed
Software are developed by many individuals and in different
situations fulfills a variety of needs;
• Pupils and students development software as a part of their
education
• Software amateurs develop software as a hobby
• Professionals in engineering, economics, management and
fields develop software to assist them in their work, to
perform calculations, summarize research and survey
activities etc.
• Software development professionals (system analysts and
programmers) develop software products or firmware as a
professional career .
The main characteristics of SQA environment
1. Being contracted
2. Subjection to customer–supplier relationship
3. Requirement for teamwork
4. Need for cooperation and coordination with other
development teams
5. Need for interfaces with other software systems
6. Need to continue carrying out a project while the team
changes
7. Need to continue maintaining the software system for years.
1. Contractual conditions
• The commitments and conditions defined in the contract
between the software developer and the customer
• The activities of software development and maintenance
need to cope with;
A defined list of functional requirements that the developed
software and its maintenance need to fulfill
The project budget
The project timetable
2. Customer – supplier relationship
• Throughout the process of software development and
maintenance, activities are under the oversight of the
customer.
• The project team has to cooperate continuously with
the customer.
• Such relationship do not usually exist when software
is developed by non-software professionals.
3. Required teamwork
Three factors usually motivate the establishment of a
project team rather than assigning the project to one
professional
Timetable requirements
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 enhancement of project quality.
4. Cooperation and coordination
with other teams
In these cases, 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 others s/w systems
• Most software systems include interfaces with other software
packages.
One can identify the following main types of interfaces;
Input interfaces, where other software systems transmit data
to your software system
Output interfaces, where your software system transmits
processed data to other software systems
Input and output interfaces to the machine’s control board, as
in medical and laboratory control systems, Salary processing
software.
6.The need to continue carrying out a
project despite team member changes
•It is quite common for team members to leave the
team during the project development period whether
owing to promotions to higher level jobs,
switch in employers,
transfers to another city/branch etc
• Training the newly appointed people
7. The need to continue carrying out s/w
maintenance for an extended period
•During the service period, the need for maintenance
No comments:
Post a Comment