Why do we need a seperate quality model for software maintainability?
Complex software systems tend to be very large nowadays. For instance, a modern car contains more than 100 million lines of code, and this is expected to increase to 1 billion lines in the next few years due to autonomous driving and security measures in the code. Imagine that 100 million lines of code is 1.8 million pages of text, which would stack twice as high as Big Ben in London if printed out. Who is able to maintain such a vast amount of pages? With this in mind, it shouldn’t come as a surprise that the maintenance costs of a software system take about 90% of the total software lifetime. In conclusion, maintainability is an important quality characteristic that needs to be taken seriously.
ISO/IEC 25010 standard on software product quality is the most well-know standard when it comes to software maintainability. This standard defines 8 main quality characteristics, maintainability being one of them. The standard defines maintainability as “The degree of effectiveness and efficiency with which the product can be modified.” To measure maintainability and determine which degree of maintainability is acceptable, the TIOBE / TÜViT Trusted Product Maintainability ISO/IEC 25010 Quality Model has been created. Based on scientific research on the topic of software maintainability, we have selected five metrics that are proven to affect software maintainability: Compiler Warning, Cyclomatic Complexity, Coding Standards, Fan-Out and Code Duplication.
TIOBE objectively assesses against the TIOBE TÜViT Trusted Product Maintainability ISO/IEC 25010 Quality Model to determine the maintainability of the software. The outcome of the assessment will be the basis for TÜViT certification. These assessments are conducted according to the strict rules of the Quality Management System (QMS) of TIOBE within TIOBE’s Quality Lab by authorized and skilled personnel. TIOBE is regularly audited by TÜViT to confirm compliance to ISO 17025. As an additional service, TIOBE provides guidance on where to improve the software quality as it’s the mission of TIOBE to get rid of all software bugs in the world.