McCall identified 11 factors in 1978 that can be used to develop software quality metrics by measuring attributes of a software product during its operation, revisions, and transitions between environments. The factors relate to correctness, reliability, efficiency, integrity, usability during operation, and maintainability, flexibility, and testability during revisions. Additional factors include portability, reusability, and interoperability. Measuring these factors allows the quality of software that is in use to be inferred based on observable attributes.