A quality factor represents a behavioural characteristic of a system. Following are the list of quality factors:
Defination: Extent to which a program satisfies its specifications and fulfills the user’s mission objectives
A software system is expected to meets the explicitly specified functional requirements and the implicitly expected non-functional requirements.
If a software system satisfies all the functional requirements, the system is said to be correct.
Defination: Extent to which a program can be expected to perform its intended function with required precision
Customers may still consider an incorrect system to be reliable if the failure rate is very small and it does not adversely affect their mission objectives.
Reliability is a customer perception, and an incorrect software can still be considered to be reliable.
Defination: Amount of computing resources and code required by a program to perform a function
Efficiency concerns to what extent a software system utilizes resources, such as computing power, memory, disk space, communication bandwidth, and energy.
A software system must utilize as little resources as possible to perform its functionalities.
Defination: Extent to which access to software or data by unauthorized persons can be controlled
A system’s integrity refers to its ability to withstand attacks to its security.
In other words, integrity refers to the extent to which access to software or data by unauthorized persons or programs can be controlled.
Defination: Effort required to learn, operate, prepare input, and interpret output of a program
A software is considered to be usable if human users find it easy to use.
Without a good user interface a software system may fizzle out even if it possesses many desired qualities.
Defination: Effort required to locate and fix a defect in an operational program
Maintenance refers to the upkeep of products in response to deterioration of their components due to continuous use of the products.
Maintenance refers to how easily and inexpensively the maintenance tasks can be performed.
For software products, there are three categories of maintenance activities : corrective, adaptive and perfective maintenance.
Defination: Effort required to test a program to ensure that it performs its intended functions
Testability means the ability to verify requirements. At every stage of software development, it is necessary to consider the testability aspect of a product.
- To make a product testable, designers may have to instrument a design with functionalities not available to the customer.
Defination: Effort required to modify an operational program
Flexibility is reflected in the cost of modifying an operational system.
In order to measure the flexibility of a system, one has to find an answer to the question: How easily can one add a new feature to a system.
Defination: Effort required to transfer a program from one hardware and/or software environment to another
Portability of a software system refers to how easily it can be adapted to run in a different execution environment.
Portability gives customers an option to easily move from one execution environment to another to best utilize emerging technologies in furthering their business.
Defination: Extent to which parts of a software system can be reused in other applications
Reusability means if a significant portion of one product can be reused, maybe with minor modifications, in another product.
Reusability saves the cost and time to develop and test the component being reused.
11. Interoperability :
Defination: Effort required to couple one system with another
Interoperability means whether or not the output of one system is acceptable as input to another system, it is likely that the two systems run on different computers interconnected by a network.
An example of interoperability is the ability to roam from one cellular phone network in one country to another cellular network in another country.
A quality criteria is an attribute of a quality factor that is related to software development. For example, modularity is an attribute of the architecture of a software system.
List of Quality Criteria :
1. Access Audit: Ease with which the software and data can be checked for compliance with standards.
2. Access Control: Provisions for control and protection of the software
3. Accuracy: Precisions of computations and output.
4. Completeness: Degree to which full implementation of required functionalities have been achieved.
5. Communicativeness: Ease with which the inputs and outputs can be assimilated.
6. Conciseness: Compactness of the source code, in terms of lines of code.
7. Consistency: Use of uniform design and implementation techniques.
8. Data commonality: Use of standard data representation.
9. Error tolerance: Degree to which continuity of operation is ensured under adverse conditions.
10. Execution efficiency: Run time efficiency of the software.
11. Expandability: Degree to which storage requirements or software functions can be expanded.
12. Hardware independence: Degree to which a software is dependent on the underlying hardware.
13. Modularity: Provision of highly independent modules.
14. Operability: Ease of operation of the software.
15. Simplicity: Ease with which the software can be understood.
16. Software efficiency: Run time storage requirements of the software.
17. Traceability: Ability to link software components to requirements.
18. Training: Ease with which new users can use the system.