Quality Attributes

Attribute

Definition

Compatibility  
The degree to which two or more software modules or packages can perform their required functions while sharing the same hardware or software environment [1]
Code Complexity
The degree to which a system or component has a design or implementation that is difficult to understand and verify [3]

Code Coupling
The degree of interdependence between software modules [3]
Completeness
The degree to which a software module or package possesses the functions necessary and sufficient to satisfy user needs [1]
Comprehensibility
The degree to which the source code can be understood easily [2]
Consistency
The degree of uniformity, standardization, and freedom from contradiction within the documentation or parts of a software package [1]
Correctness
The degree of the results obtained with precision, specified by the user requirements [2]
Efficiency
The degree to which a software module or package performs its required function with minimum consumption of resources (hardware and / or software) [1]
Extensibility
The degree to which the design of a system can be extended [2]
Flexibility
The degree to which a software module or package can be modified for use in applications or environments other than those for which it was designed [1]
Generality
The degree to which a system provides a wide range of functions at runtime [2]
Integrity
The degree to which a software package prevents unauthorized access to or modification of computer programs or data [1]
Learnability
The degree to which the code source of a system is easy to learn [2]
Maintainability
The degree to which a software module or package can be easily modified to correct faults, improve the performance, or other attributes [2]
Modifiability
The ease of changing a system or component in response to a change request [2]
Modularity
The degree to which the implementation of the functions of a system are independent from one another [2]
Modularity at Runtime
The degree to which the functions of a system are independent from one another at runtime [2]
Performance
The degree to which a system or component accomplishes its designated functions within give constraints, such as speed, accuracy, or memory usage [3]
Portability
The degree to which a software package can be transferred from one hardware or software environment to another [1]
Reliability
The degree to which a software package can execute its required function without causing system failures [1]
Reusability
The degree to which a software module can be used in another program [1]
Robustness
The degree to which a software module or package can function correctly in the presence of invalid inputs or highly stressed environmental conditions [1]
Scalability
The degree to which they system can cope with large amount of data and computation at runtime [2]
Simplicity
The degree to which a software module or package has been conceived and implemented in a straightforward and easily understandable way [1]
Testability
The degree to which a software module or package facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met [1]
Usability
The degree to which a user can learn to operate, prepare inputs for, and interpret outputs of a software package [1]

                                                                                                 [1] A. Alvaro, E.S. Almeida, S.R.L. Meira, Quality Attributes for a Component Quality Model, in:  The 10th International Workshop on Component-Oriented Programming (WCOP) in Conjunction

                                                                                                 with the 19th European Conference on Object   Oriented Programming (ECOOP), 2005

                                                                                                 [2] SO/IEC, Information technology –Software product quality-Part1, in:  Quality model, ISO/IEC FDIS 9126-1:2000(E), 2000.

                                                                                                 [3] Approved, IEEE Standard Glossary of Software Engineering Terminology, Office, 121990 (1990)

Last Updated on September 12, 2012.