SE513 Software Quality Control Lecture01: Introduction to Software Quality Assurance Galin, SQA from Theory to Education Limited 2004
The Software Crisis The Software Crisis: IBM Consulting group estimates that 55% of large distributed systems projects cost more than expected, 68% overrun their schedules, and 88% require redesign. The Standish group estimated the cost of “bad software” for US businesses at $85 billion for The Y2K problem was estimated to cost $1 to $2 trillion. W.W Gibbs, in “Software's Chronic Crisis” in the Scientific American, September 1994 estimates that the average software project overshoots its schedule by half. How to develop quality software?
Software Quality Assurance Questions: What can be done to yield a high-quality system? Which quality aspects should be taken into account? How can these quality aspects be reached? Procedure 5 – 10 minutes quickie discuss with your friends come up with two suggestions
Textbook
The uniqueness of software quality assurance The environments for which SQA methods are developed Galin, SQA from Theory to Education Limited 2004
High complexity Invisibility of the product Limited opportunities to detect defects (“bugs”) Galin, SQA from Theory to Education Limited 2004
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 Galin, SQA from Theory to Education Limited 2004
Galin, SQA from Theory to Education Limited 2004
Galin, SQA from Theory to Education Limited 2004
What is software? Software errors, faults and failures Classification of the causes of software errors Software quality – definition Software quality assurance – definition and objectives Software quality assurance and software engineering Galin, SQA from Theory to Education Limited 2004
Software is: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Galin, SQA from Theory to Education Limited 2004
Software development process software fault software failure software error Galin, SQA from Theory to Education Limited 2004
The nine causes of software errors are: 1.Faulty requirements definition 2.Client-developer communication failures 3.Deliberate deviations from software requirements 4.Logical design errors 5.Coding errors 6.Non-compliance with documentation and coding instructions 7.Shortcomings of the testing process 8.User interface and procedure errors 9.Documentation errors Galin, SQA from Theory to Education Limited 2004
Software quality is: (1)The degree to which a system, component, or process meets specified requirements. (2)The degree to which a system, component, or process meets customer or user needs or expectations. Galin, SQA from Theory to Education Limited 2004
Software quality is : Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. Galin, SQA from Theory to Education Limited 2004
Software quality assurance is: 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. Galin, SQA from Theory to Education Limited 2004
Software quality assurance is: 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. Galin, SQA from Theory to Education Limited 2004
(1)Assuring an acceptable level of confidence that the software will conform to functional technical requirements. (2)Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements. (3)Initiation and management of activities for the improvement and greater efficiency of software development and SQA activities. Galin, SQA from Theory to Education Limited 2004
(1)Assuring an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements. (2)Assuring an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements. (3)Initiate and manage activities to improve and increase the efficiency of software maintenance and SQA activities. Galin, SQA from Theory to Education Limited 2004