The need for comprehensive SQ Requirements
- “our new sales information system seems okay, the invoices are correct, the inventory records are correct, the discounts granted to our clients exactly follow our very complicated discount policy, but our new sales information system frequently fails, usually at least twice a day, each time for twenty minutes or more…”
“But’s …”
- All the software project fulfilled the basic requirements
- All the software project suffered from poor performance in important areas
Evaluation of Software Quality Framework
- Quality requirements -that the software product must meet
Example : “The product will be easy to use”
- Quality factors –attributes of software that contribute to its quality
Example : Usability (An attribute that bears on the effort needed for use and on the assessment of such use by users)
- Quality subfactors – Decompositions of a quality factor to its technical components
Example : Understandability, ease of learning, operability, communicativeness
- Metrics – quantitative measures of the degree to which given attributes (factors) are present
Example : Learning time for Understandability, ease of learning, operability, communicativeness
What is Quality Management
- Also called software quality assurance (SQA)
- Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality.
- Serves as an umbrella activity that is applied throughout the software process
- Involves doing the software development correctly versus doing it over again
- Reduces the amount of rework, which results in lower costs and improved time to market
Quality Defined
- Defined as a characteristic or attribute of something
- Refers to measurable characteristics that we can compare to known standards
- In software it involves such measures as cohesion, coupling, and source lines of code
- Includes variation control
–A software development organization should strive to minimize the variation between the predicted and the actual values for cost, schedule, and resources
–One goal is to ensure that the variance in the number of bugs is also minimized from one release to another
Two kinds of quality are sought out
–Quality of design
- The characteristic that designers specify for an item
- This encompasses requirements, specifications, and the design of the system
–Quality of conformance (i.e., implementation)
- The degree to which the design specifications are followed during manufacturing
- This focuses on how well the implementation follows the design and how well the resulting system meets its requirements
- Quality also can be looked at in terms of user satisfaction
User satisfaction = good quality + delivery within budget and schedule
- Involves a series of inspections, reviews, and tests used throughout the software process
- Ensures that each work product meets the requirements placed on it
- Includes a feedback loop to the process that created the work product
–This is essential in minimizing the errors produced
- Combines measurement and feedback in order to adjust the process when product specifications are not met
Kinds of Quality Costs
- Prevention costs
–Quality planning, formal technical reviews, test equipment, training
- Appraisal costs
–Inspections and testing maintenance
- Failure costs
– subdivided into internal failure costs and external failure costs
–Internal failure costs
- Incurred when an error is detected in a product prior to shipment
- Include rework, repair, and failure mode analysis
–External failure costs
- Involves defects found after the product has been shipped
- Include product return and replacement, help line support, and warranty work
The SQA Group
- Assists the software team in achieving a high-quality product
- Views the software from the customer’s point of view
–Does the software adequately meet quality factors?
–Has software development been conducted according to pre-established standards?
–Have technical disciplines properly performed their roles as part of the SQA activity?
- Performs a set of of activities that address quality assurance planning, oversight, record keeping, analysis, and reporting
SQA Activities
- Prepares an SQA plan for a project
- Participates in the development of the project’s software process description
- Reviews software engineering activities to verify with the defined software process
- Audits designated software work products to verify compliance with those defined as part of the software process
- Ensures that software work are documented and handled according to a documented procedure
- Records any and reports to senior management
- Coordinates the control and management of change
- Helps to collect and analyze software metrics