Software Quality(1) The degree to which a system, component, orprocess meets specified requirements.(2) The degree to which a system, component, orprocess meets customer or user needs orexpectations. Source: IEEE Std. 610-1990
According with Jones, a workable definition of software qualityneeds to have six fundamental features:1. Quality should be predictable before a softwareapplication starts.2. Quality needs to encompass all deliverables and not justthe code.3. Quality should be measurable during development.4. Quality should be measurable after release to customers.5. Quality should be apparent to customers and recognizedby them.6. Quality should continue after release, duringmaintenance
Business advantages of software quality• Increases sales volume• Decreased support costs.• Reduced liability.• Software reuse.
Benefits of implementing software engineering standards• Increasing software quality.• Reducing project cost and schedule.• Achieving compliance.• Improving manageability of software projects.
Metrics and Measures•IEEE Std. 982.1-1988, IEEE Standard Dictionary ofMeasures to Produce Reliable Software•IEEE Std. 1061-1998, IEEE Standard for a Software QualityMetrics Methodology•IEEE Std. 982.2-1988, IEEE Guide for the Use of IEEEStandard Dictionary of Measures to Produce ReliableSoftwareThese standards can be used to evaluate the software itself,or the software development process
IEEE Std. 982.1• Measure: a quantitative assessment of the degree to which asoftware product or process possesses a given attribute.• Reliability: The probability that software will not cause the failureof a system for a specified time under specified conditions.•Failure:(1) The termination of the capability of a functional unit to performits required function.(2) An event in which a system or system component does notperform a required function within specified limits.
IEEE Std. 1061 Software Quality Metrics: a function whose inputs aresoftware data and whose output is a single numerical valuethat can be interpreted as the degree to which softwarepossesses a given attribute that affects its quality.
Goals IEEE 982.11. The process goal is to provide measures that maybe applicable throughout the life cycle and mayprovide the means for continual self-assessmentand reliability improvement.2. The product goal is to increase the reliability ofthe software in its actual use environment during theoperations and support phases.
Benefits• The use of metrics and measures can increase softwareproduct reliability and quality,• Metrics and measures can also increase the effectivenessof software review and testing activities,• Because metrics and measures provide a quantitativemeans of evaluating software reliability and quality, they canprovide more objective, tangible, and neutral goals for projectpersonnel.
Goals IEEE 1061The use of software metrics reduces subjectivity inthe assessment and control of software quality byproviding a quantitative basis for making decisionsabout software quality.…The use of software metricswithin an organization or project is expected to havea beneficial effect by making software quality morevisible.
Software quality assuranceQuality Assurance (QA):(1) A planned and systematic pattern of all actions necessaryto provide adequate confidence that an item or productconforms to established technical requirements.(2) A set of activities designed to evaluate the process bywhich products are developed or manufactured. Source: IEEE Std. 610.12
Verification and Validation (V&V)The process of determining whether therequirements for a system or component arecomplete and correct, the products of eachdevelopment phase fulfill the requirements orconditions imposed by the previous phase, andthe final system or component complies withspecified requirements.