Library of Congress Cataloging-in-Publication Data. Galin, Daniel,. Software quality assurance / Daniel Galin. p. cm. Includes bibliographical references and. PDF | On Dec 1, , Alok Mishra and others published TITLE: Download full- text PDF Quality Assurance” from theory to implementation by Daniel Galin, It provides a broad overview of software quality assurance. April, Alain, author. Title: Software quality assurance / by Claude Y. Laporte, Alain April. (pdf) | ISBN (epub) | ISBN (hardback). Subjects: .. Finally, we would like to thank Karl Wiegers and Daniel. Galin for allowing us to use figures from their books. xxiii.
|Language:||English, Spanish, French|
|Genre:||Children & Youth|
|Distribution:||Free* [*Sign up for free]|
View Table of Contents for Software Quality: Concepts and Practice Daniel Galin on software quality issues and software quality assurance (SQA) principles DOWNLOAD FULL BOOK PDF · Request permissions · xml. From theory to implementation Dr Daniel Galin currently serves as Head of Information QXD 21/9/05 PM Page i Software Quality Assurance SQAS_A from a SQA public file or downloaded from Templates the organization's. Solutions Manual. Software Quality. Assurance. From Theory to Implementation. Daniel Galin. For further instructor material please visit: saicumspecsacont.gq
Stress is placed throughout on SQA application, operation, organization and control. Comprehensive coverage of SQA topics. Topics rarely covered in SQA texts are included: procedures and work instructions, supportive quality devices, costs of software quality and the actors participating in the SQA framework.
State-of—the-art topics. Automated testing, computerized SQA tools and interna- tional standards e. Pedagogical support. Each chapter includes summary frames, case studies, real-life examples and implementation tips, review questions and topics for discussion.
The guide contains lesson planning guidelines, PowerPoint presentations and a test bank. The book comprehensively covers the ISO requirements. In addition to his many papers, Dr Galin has also authored several books on the analysis and design of information systems as well as co- authoring with Dr Z. Bluvband a book on software quality assurance in Hebrew. His professional experience includes numerous consulting projects in software quality assurance and information systems design for major Israeli firms.
Both processes are characterized by creativity and require specific reviewing and testing procedures. It should be noted that many of the complicated operational options of automobiles are controlled by software operated by the car s computer or computers. Identify and describe these characteristics.
Which of these environmental characteristics mainly affect the professional efforts required for carrying software development and maintenance projects. List the characteristics and explain why a professional effort is needed. Which of these environmental characteristics mainly affect the managerial efforts required for carrying out software development and maintenance projects.
List the characteristics and explain why such efforts are needed. The characteristics of the software development and maintenance environment are: Contract conditions and commitments defining content and timetable. Teamwork requirements. Need for cooperation and coordination with other software and hardware development teams both internally and externally. Need for interfaces with other software systems. Need for continuity in carrying out a project when team members change. Need for ongoing maintenance of the software system over several years.
Each of the abovementioned characteristics affects both the professional and the managerial efforts, though usually to differing extents. The following characteristics affect mainly the professional side: Contract conditions defining content the need to prepare a document listing functional and other requirements of the project. Conditions of the customer supplier relationship the need to maintain ongoing contacts with the customer s professionals for presentations of development products, consultations with the customer, and securing customer approval of the development products.
Teamwork requirements the need for the team leader to take responsibility for professional instruction of the team members and checking of their products. Cooperation and coordination with other software and hardware development teams both internally and externally the need to understand the tasks performed by other teams to the extent that enables proper professional communication.
The following characteristics affect mainly the managerial side: Contract conditions defining timetable the commitments relating to completion of a project and usually also to completion of each stage of the development process. Teamwork requirements the need to recruit a team and appoint a team leader to manage and to supervise the work of each of the team members.
Continuity in carrying out a project when team members change the need to recruit, sometimes at short notice, a replacement team member having the professional knowledge and experience similar to those of the departing member. Ongoing maintenance of the software system over several years the need to ensure the constant availability of updated documentation on the software system, and to maintain a professional team well acquainted with the software system and capable of providing support at short notice.
Examine the procedural requirements of a software development project or final software project, and determine what of the requirements could be considered as preparatory to professional life situations as discussed above. Only part of the software development environment can be practiced within the framework of educational systems.
Let us examine this issue with reference to each of the seven environmental characteristics: Contract conditions and commitments defining content and timetable. Students projects simulate contract conditions to some extent.
A typical students project includes definitions of the required functions as well as the time schedule for completion. Budget commitments are naturally not applicable. Conditions of the customer supplier relationship, as exemplified by the need for consultation with customers and securing of their approval. The instructor student relationship simulates to some extent the relationship between customer and supplier.
Projects done by student teams incorporate some aspects of team work, but are usually carried out without an appointed team leader. This is usually not applicable in students projects.
This is applicable in some cases. Contract conditions and commitments defining content and timetable. Customers can be expected to be much more demanding with respect to full implementation of functional and other requirements. Typical time schedules for similar development projects are expected to be substantially shorter than those currently allowed. Conditions of the customer supplier relationship.
The nature of future projects is likely to demand a much closer relationship between client and supplier. Teamwork will continue to be required, though it is expected that new technologies will be implemented to support teamwork.
These characteristics will become increasingly critical for the successful handling of projects. More comprehensive standardization will facilitate more effective coordination and cooperation. The number of interfaces and the intensity of their use can be expected to increase. More comprehensive standardization of interfaces between software systems and between software and hardware will facilitate more effective development of interfaces.
No significant change is expected. Give two additional examples where input interfaces are applied. Give two additional examples where output interfaces are applied.
Suggest additional situations where the use of input and output interfaces is not applied and should be recommended. Would you advise all information transfers from one organization to another be performed by computerized interface? Discuss the reasons behind your answer. The main benefits are: Reducing the time period required to handle the input and update the system s database, and contributing to better up-to-dateness of the information provided by the system.
Drastically reducing the percentage of input errors, thus significantly improving the accuracy and completeness of the system s outputs. Drastically reducing the human resources required to handle the input, both for keying in the input data and for correcting identified errors. This reduction will significantly reduce the costs of handling the input.
A software interface serves two software systems, since it serves as an output interface for one and as an input interface for the other.
Let us examine the following two examples: Example 1: A monthly procedure of money transfers from the bank account of an employer to the employees bank accounts. The required interface is between the software system for calculation of salaries and the bank s system for transferring money to customers accounts.
Example 2: A centralized price update procedure for a network of stores. This procedure distributes the price updates and sale prices fixed by the network s head office, thus ensuring that all stores apply a uniform pricelist. Efficient operation of this procedure requires an interface between the price and sales management system of the head office and the point-of-sale system of the store.
The following table summarizes the two examples presented above: Procedure carried out by the interface Procedure for money transfers from the employer s bank account to employees bank accounts Centralized price update procedure for a network of stores Software system for which it serves as an output interface Employer s software system for salary calculation Head office price and sales management system Software system for which it serves as an input interface Bank s system for transferring money to customers accounts.
Store s point-of-sale system 4. Another example: Interface between a personal computerized health log system and a clinic s computerized information system. The computerized personal health system would probably be encapsulated as a smart card, whose database includes 11 12 personal medical records. The clinic s system allows the medical staff to decide on the treatment needed by the patient, and to record diagnoses, medical treatments, medications, etc.
A standard interface between personal health log systems and the clinic s information system, stationed in clinics, hospitals, first aid centers, etc.
The service provided by this two-way interface is summarized in the following table: Procedure carried out by the interface Transfer of patient s medical information to the clinic system Transfer of records of current medical treatment to update the patient s health log system Software system for which it serves as an output interface Personal computerized health log system Clinic s computerized information system Software system for which it serves as an input interface Clinic s computerized information system Personal computerized health log system 5.
In some situations an automatic computerized transfer of data may be not desirable. Where an interface is hardly used, the expense is not economically justifiable. If the data sources are of low quality, the transfer of information will be inaccurate and incomplete. In such cases the data and any necessary corrections should be checked manually before any input into the database of the recipient can be considered reliable.
Discuss whether these managerial efforts could be saved if the work were performed as a one-man job. Teamwork obviously requires a team leader, who needs to spend much time on coordination among the team members, so that the work done by each of them can be assembled into a unified software system.
The costs of these activities are overheads to software development costs. Obviously these extra costs are negligible by operating via a one-man show. It should be emphasized, however, that a substantial part of a team leader s time is invested in checking the work of the team members. If the project is a one-man show the task of checking still needs to be performed by another member of the staff, possibly the head of department. Discuss whether a customer supplier relationship is expected when the software developed is to be sold to the public as a software package.
Discuss whether a customer supplier relationship is expected when software is developed for in-house use, as in the case where a software development department develops an inventory program for the company s warehouses. Some managers claim that the closer relationships are to a formal pattern, the greater the prospects are for the project s success.
Discuss whether implementing customersupplier relationships in the situations mentioned in 1 and 2 are a benefit for the company referring to the internal customer and supplier or an unnecessary burden to the development team.
In the development of COTS commercial off the shelf software packages, the customer is the marketing department that initiates and approves the development project. In the development of an internal project, the customer is the initiating department, the finance department, or the logistics department.
A formal relationship between an internal supplier systems development department and an internal customer can be expected to be beneficial for both parties by: Providing more realistic project planning for scheduling and budgeting. Providing more comprehensive and realistic plans with respect to functionality of the software products. Contributing to better scheduling and budgetary control of the project.
It might be claimed that a formal atmosphere among the internal parties to the project will reduce the creativity of the development team. Discuss the reasons behind this claim, including an analysis of the managerial effort created by each of the SQA environmental characteristics. The following characteristics require effort mainly on the part of management: Contract conditions defining timetable. The possibility of schedule failures can be minimized only by continuous and intensive follow-up of a project s progress at the management level, especially in problematic cases where additional team members are needed or in a situation that needs to be resolved by negotiation with the customer.
Rigorous follow-up procedures will ensure earlier detection by management of deviations from schedule and their easier correction. Teamwork requires managerial abilities in addition to professional qualities on the part of the team leader. One of the managerial aspects of teamwork is the need to recruit and instruct team members.
Management needs to recruit, sometimes at short notice, a replacement team member having the professional knowledge and experience similar to those of a departing team member. Whereas professionals engaged in a development process may resign from the company without being obliged to complete their work, management personnel are usually committed to these projects over relatively long periods.
It is the duty of management to ensure the constant availability of updated documentation on the software system during this period, and to keep the professional team well acquainted with the software system and capable of carrying out maintenance tasks at short notice. Proper managerial support, as discussed above, allows the professional teams to focus on the functional requirements of the project.
Review questions 2. List the four components of a software system. How does the quality of each component contribute to the quality of the developed software? How does the quality of each component contribute to the quality of the software maintenance? The four components of a software system are: Computer programs the code Procedures Documentation Data necessary for operating the software system. The contributions of these components to the quality of developed software are: Computer programs the code obviously, its quality is the basic component for the quality of services and functionality of the software product.
Procedures which define the methods of the program development process, i.
Development documentation the requirements report, design reports, program descriptions, software testing plan, etc. Data, including parameters and code lists that adapt the software to the specifications as well as test case files are necessary for testing the software before completion of the development process is possible. The contributions of these components to the quality of maintenance services are: 15 16 Computer programs the code obviously, its quality is the basic component for the quality of services and functionality of the software product.
The procedures that accompany the software system deal with both, the regular operation of the software system and its maintenance. The regular software operational procedures define the method of program employment and the responsibilities for performing input processing, output processing and control activities.
The maintenance procedures define the processes and responsibilities for the correction of bugs. Another group of procedures deals with changes and improvements of programs, their approval and performance. The quality of these types of procedures contributes to the quality of services the software system provides.
Documentation supports both users and maintenance professionals. The user s documentation the user s manual etc. Their quality is a major factor regarding the ability of users to successfully and efficiently apply the software applications.
The maintenance documentation the programmer s software manual, etc.
This information is used when trying to locate causes of software failures bugs or to change or improve an existing software system. Data including parameters code lists that adapt the software to the needs of the specific user are necessary for operating the software. Another type of essential data is the standard test data, used to ascertain that no undesirable changes in the code or software data have occurred and to determine what kind of software malfunctioning can be expected Define software error, software fault and software failure.
Explain the differences between these undesirable software statuses. Suggest a situation where a new type of software failure bug appears in a software package that has been serving clients for the first time six years since the software package was first sold to the public. A software error can be a grammatical or logical error in trying to comply with one or more of the client s requirements included in one or more of the code lines.
A software fault is a software error which can cause improper functioning of the software in general or of a specific application. A software failure is a failure that has been activated and causes improper functioning of the software as a whole or of a specific, faulty application. Let s refer to a meteorological application based on remote measuring stations; in this case the remote unit is required to initiate a protective closing operation that prevents 16 17 2.
The meteorological information system purchased by several Spanish organizations was installed in various sites in Spain, none of which suffers from low temperatures.
The fault only turned into a failure once a Russian version of the system had been developed and installed in various northern sites of Russia, causing severe damage to the measuring stations equipment. List and briefly describe the various causes of software errors. Classify the causes of error according to the groups responsible for the error: the client s staff, the systems analysts, the programmers, the testing staff or is it a shared responsibility belonging to more than one group?
Nine causes of software errors are listed: a. Faulty definition of requirements The faulty definition of requirements, usually prepared by the client, is one of the main causes of software errors.
The most common errors of this type are: erroneous definition of requirements, absence of vital requirements, incomplete definition of requirements and inclusion of unnecessary requirements. Client-developer communication failures Misunderstandings resulting from defective client-developer communication are additional causes of errors. Typical situations: Misunderstanding of the client s instructions relating to the requirement document and to changes requested either written or orally by the client.
Additional misunderstandings are failures to understand and to give the needed attention to the client s response to design problems raised by the development team. Deliberate deviations from software requirements In several circumstances, developers may deliberately deviate from the documented requirements, often causing software errors.