Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.
Some software quality features are:
1.Understandability:
The purpose of the software product is clear. This goes further than just a statement of purpose - all of the design and user documentation must be clearly written so that it is easily understandable. Obviously, the user context must be taken into account, e.g. if the software product is to be used by software engineers it is not required to be understandable to lay users.
2.Completeness:
All parts of the software product are present and each of its parts are fully developed. For example, if the code calls a sub-routine from an external library, the software package must provide reference to that library and all required parameters must be passed. All required input data must be available.
3.Conciseness:
No excessive information is present. This is important where memory capacity is limited, and it is important to reduce lines of code to a minimum. It can be improved by replacing repeated functionality by one sub-routine or function which achieves that functionality. This quality factor also applies to documentation.
4.Portability:
The software product can be easily operated or made to operate on multiple computer configurations. This can be between multiple hardware configurations (such as server hardware and personal computers), multiple operating systems (e.g. Microsoft Windows and Linux-based operating systems), or both.
5.Consistency:
The software contains uniform notation, symbology and terminology within itself.
6.Maintainability:
The product facilitates updating to satisfy new requirements. The software product that is maintainable is simple, well-documented, and should have spare capacity for processor memory usage.
7.Testability:
The software product facilitates the establishment of acceptance criteria and supports evaluation of its performance. Such a characteristic must be built-in during the design phase if the product is to be easily testable, since a complex design leads to poor testability.
8.Usability:
The product is convenient and practicable to use. The component of the software which has most impact on this is the user interface (UI), which for best usability is usually graphical.
9.Reliability:
The software can be expected to perform its intended functions satisfactorily over a period of time. Reliability also encompasses environmental considerations in that the product is required to perform correctly in whatever conditions it is operated in; this is sometimes termed robustness.
10.Structure:
The software possesses a definite pattern of organization in its constituent parts.
11.Efficiency:
The software product fulfills its purpose without wasting resources, e.g. memory or CPU cycles.
12.Security:
The product is able to protect data against unauthorized access and to withstand malicious interference with its operations. Besides the presence of appropriate security mechanisms such as authentication, access control and encryption, security also implies reliability in the face of malicious, intelligent and adaptive attackers
Answered by
Nagendra
, an ibibo Master,
at
12:32 PM on May 18, 2008