McCall Quality Factors and Criteria
1 Answer

Quality Factors

A quality factor represents a behavioural characteristic of a system. Following are the list of quality factors:

1. Correctness:

  • 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.

2. Reliability

  • 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.

3. Efficiency:

  • 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.

4. Integrity:

  • 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.

5. Usability:

  • 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.

6. Maintainability:

  • 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.

7. Testability:

  • 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.

8. Flexibility:

  • 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.

9. Portability

  • 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.

10. Reusability

  • 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.

Quality Criteria

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.

Please log in to add an answer.