Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Quality Assurance - Coggle Diagram
Software Quality Assurance
What is Software?
Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.
Quality problems
Major Dfficulties
Complexity
Environmental Stress/ Contraints
Size
Flexibility/ Adaptability expected
Quality: Views and Attributes
View :
Customer (external)
Attributes
Correctness :
Failures - Reliability and Safety
Others :
Maintainability, Readability, Portability, Performance, Installability, Usability
View :
Developer (internal)
Attributes
Correctness :
Faults - Count, Class
Others :
Design, Size, Change, Complexity, Presentation, Control, Data
Characteristics of Software Quality
Reliability
A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for stated period of times.
Reliability Compliance :
Maturity, Fault tolerance, Recoverability
Usability
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.
UsabilityCompliance :
Understandability, Learnability, Operability, Attractiveness
Functionality
A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfied stated or implied needs.
Functionality Compliance :
Suitability, Accuracy, Interoperability, Security
Efficiency
A set of attributes that bear on the relationship between the level of performance of the software and the amount of resouces used, under stated conditions.
Efficiency Compliance :
Time behavior, Resource utilisation
Maintainability
A set of attributes that bear on the effort needed to make specified modifications.
Maintainability Compliance :
Analysability, Changeability, Stability, Testablity
Portability
A set of attributes that bear on the ability of software to be transffered from one environment to another
Portability Compliance :
Adaptability, Installability, Co-existence, Replaceability
Quality in Use
Effectiveness
Productivity
Safety
Satisfaction
Technical Quality Parameters
Capability
- does all that is required
Maintainability
- is easy to change and adapt to new requirements
Reliability
- does not fail or crash often
Correctness
- lack of bugs and defects
Performance
- lack of bugs and defects
User Quality Parameters
Installability
- is convenient and fast to install
Documentation
- is well documented
Usability
- is sufficiently convenient for the intended users
Availability
- is easy to access and available when needed
Classification of Software Quality Factors
McCall’s Factor Model
: Classifies all software requirements into 11 factors.
Product operation factors
Maintainability, Flexibility, Testability
Product revision factors
Correctness, Reliability, Efficiency, Integrity, Usability
Product transition factors
Portability, Reusability, Interoperability
Software error, fault and failure
Fault
An incorrect step, process, or data definition in a computer program.
Failure
The inability of a system or component to perform its required functions within specified performance requirements.
Error
A human action that produces an incorrect result
Causes of software errors
Fault requirement definition
Client-developer communication failures
Deliberate deviation from software requirements
Logical design error
Coding errors
Non-compliance with documentation and coding instructions
Shortcomings of the testing process
Procedure errors
Documentation errors
Failure-related properties and measurement
Failure properties and direct failure measurement
Failure likelihood and reliability measurement
Failure severity measurement and safety assurance
Quality in Software Engineering
Functional Stage :
Focus on providing the automated functions to replace what had been done manually
Schedule Stage :
Focus on introducing important features and new systems on a timely and orderly basis to satisfy urgent users needs.
Cost Stage :
Focus on reducing the price to stay competitive accompanied by the widespread use of personal computers.
Reliability Stage :
Focus on managing user's quality expectations under the increased dependency on software and high cost or severe damages associated with software failures
Formal Methods
Include formal verification (proofs of correctness), abstract interpretation (simulated execution in a different semantic domain
Testing
Testing includes a wide range of methods based on the idea of running the software through a set of example inputs or situations and validating the results
Inspection
Includes methods based on a human review of the software artifacts
Metrics
metrics includes methods based on using tools to count the use of features or structures in the code or other software artifacts, and compare them to standards
Achieving Software Quality
Software Process
achieved by applying these techniques in the framework of a software process