Table of Contents
Top 8 Characteristics Of Software
Below are the top 8 characteristic of software which makes a software complete.The importance of these quality characteristic cannot be overemphasised.
Properties of software
- Reliability
- Correctness
- Performance
- Usability
- Interoperability
- Maintainability
- Portability
- Verifiability
Reliability
A measure of whether a user can depend on the software.For real-time systems, other informal characterisations of reliability might include
- Downtime is below a certain threshold.
- The accuracy of the system is within a certain tolerance.
- Real-time performance requirements are met consistently.
Correctness
- Closely related to reliability and the terms are often used interchangeably.
- The main difference is that minor deviation from the requirements is strictly considered a failure and hence means the software is incorrect.
- However, a system may still be deemed reliable if only minor deviations from the requirements are experienced.
- Correctness is measured in terms of number of failures detected over time.
Performance
- A measure of some required behavior.
- For example, an imaging system might be required to display a filtered image at a rate of 30 frames per second.
- A photo reproduction system might be required to digitize, clean and output color copies at a rate of 1 every two seconds.
- It can be measured via mathematical or algorithmic complexity, direct timing, or simulation.
Usability
- Often referred to as ease of use, or user friendliness.
- Usability is difficult to quantify (but we can easily determine its absence).
- However, informal feedback can be used, as well as user feedback from surveys and problem reports can be used in most cases.
Interoperability
- Refers to the ability of the software system to coexist and cooperate with other systems.
- In imaging systems the software must be able to communicate with various devices using standard bus structures and protocols.
- Open systems and standards foster interoperability.
- Interoperability can be measured in terms of compliance with open system standards.
Portability
- Software is portable if it can easily run in different environments.
- Because of the specialized hardware with which they interact, special care must be taken in making imaging systems portable.
- Portability is achieved through a deliberate design strategy in which hardware dependent code is confined to the fewest code units as possible.
- Can be achieved using either object-oriented or procedural programming languages and through object-oriented or structured approaches.
- Person months required to perform the port are the standard measure of this property.
Verifiability
- A software system is verifiable if its properties, including all of those previously introduced, can be verified easily.
- Can be achieved through the insertion of code that is intended to monitor various qualities such as performance or correctness.
- Modular design, rigorous software engineering practices and the effective use of an appropriate programming language can also contribute to verifiability.
I could not resist commenting. Very well written!