Thursday, May 06, 2021

Software Qualities

Mostly external software qualities

Correctness: Adherence to stated objectives, aka requirements or specifications

Robustness: Resilience to incorrect inputs or adverse/unanticipated external conditions (such as the lack of some resource)

Usability: A measure of the effort needed to learn how to use software and to achieve its goals; ease of use

Efficiency: Adequate consumption of resources

Readability: Clarity, understandability by fellow programmers


Mostly internal software qualities

Readability: Clarity, understandability by fellow programmers

Reusability: Ease of reusing the code to solve similar problems, and amount of changes needed to do so—aka adaptability

Testability: The ability to write tests, and how easy it is to do so, that can trigger all relevant program behaviors and observe their effects

Maintainability: Ease of finding and fixing bugs, as well as evolving the software


Special qualities

Thread safety: The ability of a class to work seamlessly in a multithreaded environment

Succinctness: Writing the shortest possible program for a given task

No comments: