Software Project Management. Lecture # 10. Outline. Quality Management (chapter 26) What is quality? Meaning of Quality in Various Context Some quality concepts SQA SQA activities. Quality Management.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Software Project Management Lecture # 10
Outline • Quality Management (chapter 26) • What is quality? • Meaning of Quality in Various Context • Some quality concepts • SQA • SQA activities
Quality Management • Quality Management (often called Software Quality Assurance) is an umbrella activity that is applied through out the software process. • Every one involved in software engineering process is responsible for quality. • Emphasis on quality in all software engg. activities reduces the amount of rework that the software engg. team must do • this eventually lowers costs, improves time to market • The team must identify SQA activities that will filter errors out of the work products before they are passed on. But before doing so, • they must define software quality at different levels of abstraction • SQA Plan is created to define the quality strategy of the team
Quality Management • It encompasses • Software quality assurance process • Specific quality assurance & quality control tasks (including FTRs and testing strategies) • Effective SE practice (methods & tools) • Control of all software work products & changes made to them • A procedure to ensure compliance with software dev. Standards • Measurement & reporting mechanism
What is Quality? • British Standard Institute’s definition • Quality is totality of features & characteristics of a product or service which relate on its ability to satisfy a given need • American Heritage Dictionary definition • Quality is characteristic or attribute of something • Quality of Software • Quality of Software is software that does what it is supposed to do • customer dissatisfaction is lack of quality
Meaning of Quality in Various Context • In Manufacturing • Quality means that the developed product should meet its specification • In Software Development • Quality would mean that a software product conforms to its specification • Software specification should be oriented towards customer requirements. • There may be some implicit requirements like maintainability, usability, etc. but they are not included in the specification
Meaning of Quality in Various Context • Practically , its very difficult to write complete software specifications/ characteristics • Therefore, although the product conforms to its specifications, it may not satisfy the customer as hence may not be considered as a high quality product
Another school of thought … • Quality can be achieved by defining standards & organizational quality procedures that check that these standards are followed by the software development team • Besides standards & procedures there are intangible aspects also involved in software quality like elegance, readability, etc.
Quality Concepts • Quality of design • Refers to the characteristics that designers specify for an item • Focuses on requirements, specifications & design of system • Quality of conformance • Is the degree to which the design specifications are followed during manufacturing • Focuses primarily on implementation • User satisfaction • Robert Glass suggested the following relationship: • Compliant product + good quality + delivery within budget & schedule
Quality Concepts • Quality Control • Definition & enhancement of processes that ensure the software development team has followed project quality procedures & standards • Quality Control is a series of inspections, reviews & tests used through out the development cycle to ensure that each work product meets the requirements placed on it • It includes feed-back loop to the process that created the work product • The combination of measurement & feedback helps to fine tune the process when work products fail to meet their specification
Quality Concepts • Quality Assurance • The process of defining how software quality can be achieved & how the development organization knows that the software has the required level of quality • It involves establishment of a framework of organizational procedures & standards that lead to high quality software • It consists of a set of auditing & reporting functions that assess the effectiveness of quality control activities. • The aim is to provide management with facts & figures and proofs that product quality is meeting its goals
Quality Concepts • Variation Control • Variation control is the heart of quality control • Variation control may be equated to quality control • Manufacturers aim to minimize the variation among the products that are produced • For software projects, from one project to another, we may want to minimize the difference between predicted resources needed to complete project and actual resources used, including staff, equipment, and calendar time
Quality Concepts • Cost of Quality • It includes all costs incurred in performing quality related activities • Cost of quality studies are conducted to • Provide a baseline for current cost of quality • Identify opportunities for reducing cost of quality • Provide normalized basis of comparison (usually in dollars) • Quality costs are divided into • Prevention costs • Appraisal costs • Failure costs
Quality Concepts • Quality costs • Prevention costs relate to • Quality planning • Formal technical reviews • Test equipment • training • Appraisal costs relate to • Activities to gain insight into product – “first time through” each process, e.g., • In-process and inter process inspection • Equipment calibration &maintenance • testing
Quality Concepts • Quality costs • Failure costs • Those that would disappear if no defects appeared before shipping a product to customer • Failure costs subdivided into 2 types • Internal failure costs (related to defects found before product is shipped) • Rework, repair & failure analysis mode • External failure costs (related to defects found after product is shipped) • Complaint resolution, product return and replacement, helpline support & warranty work
Relative cost of correcting an error • Refer to figure 26.1
Software Quality Assurance Although there are many definitions of quality but for our purposes, software quality is: • Conformance to … • the explicitly stated functional & performance requirements, • explicitly documented development standards & • implicit characteristics that are expected of all professionally developed software • This definition emphasizes on 3 important points • S/W requirements – a foundation from which quality is measured • Standards – define development criteria against which S/W is engineered • Implicit requirements – often go unmentioned but if not met, can cause suspicion in quality
Who does it? • Prior to 20th Century • SQA was responsibility of the craftsperson • During 1950s and 1960s • Responsibility of programmer • Today responsible ones are … • S/W Engrs. (Apply technical methods & measures, Conduct FTRs & perform planned testing) • Project managers • Customers • Sales Person • SQA group (Serves as customer’s in-house representative, Looks at S/W from customer’s point of view, Assists the S/W Engrs team to achieve quality)
SQA • SQA is an activity that is applied throughout the software process and not after the software has been developed • SQA covers the following • Quality management approach • Effective s/w engineering technology (methods & tools) • Formal technical reviews (applied throughout the process) • A multi-tiered testing strategy • Control of software documentation & changes made to it • A procedure to assure compliance with software development standards • Measurement & reporting mechanism
SQA Group & SQA Activities • SQA group is responsible for QA planning, oversight, record keeping, analysis and reporting • SEI recommends the following set of SQA group activities: • Prepares an SQA plan for project • Participates in the development of project’s software process description • Reviews s/w engg activities to verify compliance with defines s/w process • Audits designated s/w work products to verify compliance • Ensures that deviations in s/w work & work products are documented • Records any non compliance & reports to senior management • SQA groups also participates in change management & help to collect & analyze s/w metrics