SQA NOTES Unit 1
SQA NOTES Unit 1
SQA NOTES Unit 1
Being contracted
Subjection to customer–supplier relationship
Requirement for teamwork
Need for cooperation and coordination with other development teams
Need for interfaces with other software systems
Need to continue carrying out a project while the team changes
Need to continue maintaining the software system for years
Being contracted:
Interfaces allow data in electronic form to flow between the software systems:
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, metal processing equipment, etc.
Need to continue carrying out a project while the team changes:
Team members leave, are hired, fired, take unexpected vacations, transferred within the
company, and more.
2
Whether external customers or in-house customers, follow-on maintenance is typical and for
many years
Software:
Software is a Computer programs, procedures, and possibly associated documentation and data
pertaining to the operation of a computer system. (IEEE)
A Software is a
Software Fault:
Software Failures:
Software fault becomes a software failure only when it is “activated” – when the software
user tries to apply the specific, faulty application.
Example: Standard software running in different client shops.
3
Classification of the causes of software errors:
2. The degree to which a system, component, or process meets customer or user needs or
expectations.
1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an
item or product conforms to established technical requirements.
2. A set of activities designed to evaluate the process by which the products are developed or
manufactured. Contrast with quality control.
4
3. A systematic, planned set of actions necessary to provide adequate confidence that the software
development process or the maintenance process of a software system product conforms to
established functional technical requirements as well as with the managerial requirements of keeping
the schedule and operating within the budgetary confines.( Expanded Definition).
Quality Control is defined as a designed to evaluate the quality of a set of activities developed or
manufactured product
Activities prevent causes of errors; detect and correct them early in the development process.
QA substantially reduces the rate of products that do not qualify for shipment and/at the
same time, reduce the costs of guaranteeing quality in most cases.
The objectives of SQA activities for software development and maintenance are:
Assuring, with acceptable levels of confidence, conformance to functional technical
requirements.
Assuring, with acceptable levels of confidence, conformance to managerial requirements of
scheduling and budgets.
Initiating and managing activities for the improvement and greater efficiency of Software
development and SQA activities.
McCall’s factor model classifies all software requirements into 11 software quality factors. The 11
factors are grouped into three categories:
The three categories are:
5
Product operation category
Product revision category
Product transition category
Correctness: Correctness requirements are defined in a list of the software system’s required
outputs, such as a query display of a customer’s balance in the sales, printout, and
temperature, completeness of the output information etc.
Efficiency: Efficiency requirements deal with the hardware resources needed to perform all
the functions of the software system in conformance to all other requirements.
Integrity: Integrity requirements deal with the software system security, that is,
requirements to prevent access to unauthorized persons
Usability: Usability requirements deal with the scope of staff resources needed to train a new
employee and to operate the software system.
Product revision factors: These factors deal with those requirements that affect the
complete range of software maintenance activities.
Flexibility: This factor’s requirements also support perfective maintenance activities, such as
changes and additions to the software in order to improve its service and to adapt it to
changes in the firm’s technical or commercial environment.
Product transition factors: According to McCall, three quality factors are included in the
product transition category, a category that pertains to the adaptation of software to other
environments and its interaction with other software systems.
Reusability: The reuse of software is expected to save development resources, shorten the
development period, and provide higher quality modules.
6
McCall’s factor model tree
Two factor models, appearing during the late 1980s, considered to be alternatives to the McCall
classic factor model (McCall et al., 1977), deserve discussion:
The Evans and Marciniak factor model (Evans and Marciniak, 1987).
The Deutsch and Willis factor model (Deutsch and Willis, 1988).
An SQA system always combines a wide range of SQA components, all of which are employed to
challenge the multitude of sources of software errors and to achieve an acceptable level of
software quality.
8
The SQA system – SQA Architecture
Pre-project components
The SQA components belonging here are meant to improve the preparatory steps taken prior to
initiating work on the project itself:
Contract review
Development and quality plans.
Contract review:
Specifically, contract review activities include:
Schedules
Required manpower and hardware resources
Risk evaluations
Organizational issues: team members, subcontractors and partnerships
Project methodology, development tools, etc.
Software reuse plans.
9
Quality goals, expressed in the appropriate measurable terms
Criteria for starting and ending each project stage
Lists of reviews, tests, and other scheduled verification and validation activities.
Several SQA components enter the software development project life cycle at different points.
Their use should be planned prior to the project’s initiation.
The main components are:
Reviews
Expert opinions
Software testing
Software maintenance
Assurance of the quality of the subcontractors’ work and the customer supplied parts.
Reviews: Reviews can be categorized as formal design reviews (DRs) and peer reviews.
Reviews done on design reports, software test documents, software installation plans and
software manuals, among others.
Formal design reviews (DRs): It should be emphasized that the developer can continue to the
next phase of the development process only on receipt of formal approval of these documents.
Peer reviews: The main objective of inspections and walkthroughs is to detect as many design
and programming faults as possible. The output is a list of detected faults and improving
development methods.
Expert opinions: Expert opinions support quality assessment efforts by introducing additional
external capabilities into the organization’s in-house development process.
Software testing: Software tests are formal SQA components that are targeted toward review
of the actual running of the software. The tests are based on a prepared list of test cases that
represent a variety of expected scenarios. Software tests examine software modules, software
integration, or entire software packages (systems).
10
Maintenance preventive and corrective actions
Configuration management
Control of maintenance documentation and quality records.
Training new employees and retraining those employees who have changed assignments.
Continuously updating staff with respect to professional developments and the in-house,
hands-on experience acquired.
Certifying employees after their knowledge and ability have been demonstrated.
11
Correction of similar faults found in other projects and among the activities performed by
other teams.
Implementing proven successful methodologies to enhance the probability of repeat
successes.
Configuration management:
Configuration management procedures to control the change process like modify software to
create new versions and releases, conducted throughout the entire software service period.
Documentation control:
Documentation control functions refer mainly to customer requirement documents, contract
documents, design reports, project plans, development standards, etc.
Resource usage
Schedules
Risk management activities
The budget.
SQA committee members are members of various software development and maintenance units,
and are usually appointed for term or ad hoc service.
13
Analysis of problem and failure records as well as other records, followed by initiation of
corrective and preventive actions when appropriate.
Initiation and development of new procedures and instructions; updating existing
materials.
Initiation and development of new SQA components and improvement of existing
components.
SQA forums are composed of professionals and practitioners who meet and/or maintain an Internet
site on a voluntary basis for discussion of quality issues pertaining to development and maintenance
processes.
Several situations can lead a software company to sign a contract with a customer. The most
common are:
Participation in a tender.
Submission of a proposal according to the customer’s RFP.
Receipt of an order from a company’s customer.
Receipt of an internal request or order from another department in the organization.
Stage One: Review of the proposal draft prior to submission to the potential customer (“proposal
draft review”). This stage reviews the final proposal draft and the proposal’s foundations: customer’s
requirement documents, customer’s additional details and explanations of the requirements, cost and
resources estimates, existing contracts or contract drafts of the supplier with partners and
subcontractors.
Stage Two – Review of contract draft prior to signing (“contract draft review”). This stage
reviews the contract draft on the basis of the proposal and the understandings (including changes)
reached during the contract negotiations sessions.
It is recommended that the following steps be taken to facilitate the review process:-
The contract review should be scheduled.
A team should carry out the contract review.
A contract review team leader should be appointed. The activities of the team leader include:
• Recruitment of the team members
• Distribution of review tasks among the team’s members
15
• Coordination between the members of the review team
• Coordination between the review team and the proposal team
• Follow-up of activities, especially compliance with the schedule
• Summarization of the findings and their delivery to the proposal team.
16