This is an old revision of the document!
Source: arXiv:2003.00447.
Maintainability is the “degree of effectiveness and efficiency with which a product or system can be modified to improve it, correct it or adapt it to changes in environment, and in requirements”.
Maintenance hotspots, (…) parts of the source code that are most difficult to maintain.
You cannot control what you cannot measure.
— DeMarco, T. (1982). Controlling Software Projects; Management, Measurement and Estimation.
Models:
The study compared models mentioned above by applying them to 3 FOSS applications (FreeMind, jEdit and TuxGuitar).
Further reading about the Maintainability Index:
My take-away is that while these methods can be useful, they probably won't be for Scala code-bases since branching is often hidden behind higher-order functions. Also, Scala is such an advanced language, that sometimes its own rich feature set adds to the complexity and decreases maintainability.