330 likes | 594 Views
Software Quality. People’s Quality Expectations. The software systems must do what they are supposed to do. “ do the right things” They must perform these specific tasks correctly or satisfactorily . “ do the things right”. People’s Roles and Responsibilities.
E N D
People’s Quality Expectations • The software systems must do what they are supposed to do. “do the right things” • They must perform these specific tasks correctly or satisfactorily. “do the things right”
People’s Roles and Responsibilities • Consumers of software products or services, including customers and users, either internally or externally • Producers of software products, or anyone involved with the development, management, maintenance, marketing, and service of software products
Quality Expectations on the Consumer Side User: The software system performs useful functions as it is specified • Performs the right functions as specified • Performs these functions correctly over a long period of time The V & V of software: Verification & Validation • Many: ease of use or usability • Others: installation and operation – “plug-and- play”
Quality Expectations on the Consumer Side Extended definition of users: smooth operation and interaction between the software and the non-human users in the form of inter-operability, and adaptability. Customer: same as the user, with additional concern for the cost of the software or service.
Quality Expectations on the Producer Side Fulfill contractual obligations by: • producing software products that conform to specifications or • Providing services that conform to service agreement Product and service managers: adherence to pre-selected software process and relevant standards, proper choice of software methodologies, languages and tools
Quality Expectations on the Producer Side Other people on the producer side: • Usability and modifiability (for service) • Maintainability (for maintenance) • Portability (for third party or software packaging providers) • Profitability and customer value (for product marketing)
Quality Frameworks and ISO-9126 Quality frameworks • accommodate various quality views and expectations • Define quality and related attributes, features, characteristics and measurements ISO-9126 (ISO,2001) • Most influential in the Software Engineering • Discusses various adaptations of quality frameworks for specific application environments
ISO-9126 provides a hierarchical framework for quality definition, organized into quality characteristics and sub-characteristics • Functionality • Reliability • Usability • Efficiency • Maintainability • Portability
ISO-9126 FUNCTIONALITY A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs. - Suitability - Accuracy - Interoperability - Security
ISO-9126RELIABILITY A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time. - Maturity - Fault tolerance - Recoverability
ISO-9126USABILITY A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users. - Understandability - Learnability - Operability
ISO-9126EFFICIENCY A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions. - Time behavior - Resource behavior
ISO-9126MAINTAINABILITY A set of attributes that bear on the effort needed to make specified modifications. - Analyzability - Changeability - Stability - Testability
Alternative Frameworks and Focus on Correctness Correctness => several quality characteristics or sub-characteristics Typically the most important aspect of quality for situations where daily life or business depends on software
Correctness and Defects Defect – some problem with the software, either with external behavior or internal characteristics, there are three types of defects: • Failure: The inability of a system or component to perform its required functions within specified performance requirements. • Fault: An incorrect step, process, or data definition in a computer program. • Error: A human action that produces an incorrect result.
Correctness and Defects NOT • Bugs??? • Debug??? Or Debugging??? INSTEAD Defect detection and removal - Specific activities related to defect discovery, including testing, inspection, etc. - Specific follow-up activities after defect discovery, including defect diagnosis, analysis, fixing, and re-verification
Causal Relation Errors Faults Failures
Correctness-centered properties and measurements – Consumer Side Failure properties and direct failure measurement: • Information about the specific failures, what they are, how they occur, etc. • Measured directly by examining failure count, distribution, density, etc.
Correctness-centered properties and measurements – Consumer Side Failure likelihood and reliability measurement: captured in various reliability measures, where reliability -> probability of failure-free operations for a specific time period or for a given set of input
Correctness-centered properties and measurements – Consumer Side Failure severity measurement and safety assurance: Accidents - failures with severe consequences, need to be avoided, contained, or dealt with to ensure the safety for the personnel involved and to minimize other damages.
Correctness-centered properties and measurements – Producer Side • Fix Problems or Faults that caused failures • Deal with the injection and activation of other faults • Faults can be analyzed and examined according to: • Types • Relations to specific failures and accidents • Causes • Time and circumstances when they are injected • Distribution and density
Defects in the context of QA and Quality Engineering • Defect prevention • Defect detection and removal • Defect containment Quality engineering includes • Quality planning • Measurement, analysis and feedback
Historical Perspective of Quality Evolving perceptions of quality • Quality --- physical objects (cars, tools, radio, TV, etc • QA --- manufacturing process • Focus --- product conform to specifications • Quality problems --- non-conformance • Quality problems --- observed defects • Shift to expectations of quality, • Focus --- 0 defect • Customer loyalty over conformance • Conformance, adaptability and innovation
Quality in Software Engineering 1. Functional stage - providing the automated functions to replace 2. Schedule stage - introducing important features and new systems on a timely and orderly basis to satisfy urgent user needs 3. Cost stage - reducing the price to stay competitive accompanied by the widespread use of personal computers. 4. Reliability stage - managing users’ quality expectations under the increased dependency on software and high cost or severe damages associated with software failures.
Software Quality • Software quality may include many different attributes and may be defined and perceived differently based on people’s different roles and responsibilities • High quality means none or few problems of limited damage to customers. These problems are encountered by software users and caused by internal software defects.