As we all aware that software systems are abstract and intangible quantity that includes computer programs and associated documentation. Software products may be developed for a particular customer (as application software) or may be developed for a general market (as system software). To gain an understanding of software products (and ultimately an understanding of software engineering), it is important to examine the characteristics of software that make it different from other things that human beings build. As we know that software is a logical rather than a physical system element (like; computer hardware). Therefore, software has characteristics that are considerably different than those of hardware. Hence as a software examiner when we focus on the quality of the professional software, we have to take into account the environment at where the software is used and behavior of software changed by people apart from its developers.
Quality of software products is therefore not just concerned with what the software does. Rather, it has to include the software’s behavior while it is executing and the structure and organization of the system programs and associated documentation. This is reflected in so-called quality or non-functional software attributes. For example to examine the quality of software products includes the response time of software to a user query, the understandability of the program code, running time and space occupied by the software product.
There are three specific factors set of attributes that easily must be included for a quality software products. These set of factors can be easily explained by software quality triangle as follows;
- Operational Characteristics
- Transition Characteristics
- Revision Characteristics
Figure: Software Quality Triangle Characteristics
Operational Characteristics of a good quality software product:
Operational characteristics of a good quality software product are based on the functionality and related to ‘exterior quality’ of software product. Various operational characteristics of quality software product are as follows;
a) Correctness: The developed software product make sure should meet all the customer specification.
b) Usability/Learnability: The software product must be user friendly and easy to understand even for IT-illiterate end users. To learn and understand the operational behavior and how to use the software product should be less.
c) Integrity: Quality software should be side effects free product. For example, like each medicine have side-effects (either direct or indirect), in the same way software may have side-effects i.e. it may affect the working of another application, so for good quality software it should have no side effect.
d) Reliability: For a good quality software product reliability factor is highly important i.e. software should not have any defects. Not only this, it shouldn’t run time failed.
e) Efficiency: Efficiency factor of a quality software relates to the effectively uses the available resources by the software product.For example developed software should be effectively used the available memory (like; permanent memory-ROM and/or temporary memory- RAM) and execute command as per the desired timing requirement.
f) Security: To keep data secure from external threats good software product have high security factors.
g) Safety: The software should not be hazardous to the environment and/or end user life.
Revision Characteristics of a good quality software product:
Reviewcharacteristics of a good quality software product based on the engineering factors that relates to the ‘Interior quality’ of the developed software. This factor of software quality deals with the efficiency, documentation and the structure of the software product. Various revision characteristics of software are as follows;
a) Maintainability: After delivering the software product at the end user, maintenance should be easy for any kind of end user.
b) Flexibility: As per the end users requirements software product changes should be easy to make.
c) Extensibility: For the future functionality enhancement software product should be easy to increase the functions performed by it.
d) Scalability: Developed software product should be very easy to upgrade for more work and/or more number of users.
e) Testability: Testing the software should be easy.
f) Modularity: Every software is collection of separate programs, unites and modules which are dependent and/or independent of each other. These programs, units and modules are then integrated to make the final software. If the software is divided into separate independent parts that can be modified, tested separately, it has high modularity.
Transition Characteristics of a good quality software product:
Transition characteristics of a good quality software product based on the data intervention behavior factor that relates to the software end user environment and platform, modules reusability and interoperability of the software. Various transition characteristics of software are as follows;
a) Interoperability: Interoperability is the ability of software to exchange information/data with other applications and make use of information transparently.
b) Reusability: If we are able to use the software code with some modifications for different purpose then we call software to be reusable.
c)Portability: The factor of software refers to how well the software can adopt to changes in its environment and/or platform or with its requirements. The sub-factor of this characteristic includes adaptability, conformance and replaceability.