The software systems must do what they are supposed to do.
“
They must perform these specific tasks correctly or satisfactorily.
“
1.
2.
of software products or services, including customers and users, either internally or externally
of software products, or anyone involved with the development, management, maintenance, marketing, and service of software products
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 – “plugand- play”
Extended definition of users: smooth operation and interaction between the software and the non-human users in the form of interoperability, and adaptability.
Customer: same as the user, with additional concern for the cost of the software or service.
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
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 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
provides a hierarchical framework for quality definition, organized into quality characteristics and sub-characteristics
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
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
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
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
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
A set of attributes that bear on the effort needed to make specified modifications.
- Analyzability
- Changeability
- Stability
- Testability
Correctness => several quality characteristics or sub-characteristics
Defect – some problem with the software, either with external behavior or internal characteristics, there are three types of defects:
The inability of a system or component to perform its required functions within specified performance requirements.
An incorrect step, process, or data definition in a computer program.
A human action that produces an incorrect result.
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
View
Consumer/ External
(user & customer)
Producer/ Internal
(developer, manager, tester, etc)
Correctness
Failure- related properties
Fault-related properties
Attribute
Others
Usability
Maintainability
Portability
Performance
Instability
Readability etc (-ilities)
Design
Size
Change
Complexity etc
Information about the specific failures, what they are, how they occur, etc.
Measured directly by examining failure count, distribution, density, etc.
captured in various reliability measures, where
given set of input
-> probability of failure-free operations for a specific time period or for a
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.
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
Defect prevention
Defect detection and removal
Defect containment
Quality engineering includes
Quality planning
Measurement, analysis and feedback
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
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 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.