Ohjelmiston ylläpidettävyyden mittaaminen

Viljanen, Juha · Aaltodoc (Aalto University) · 2015

Maintenance forms the major part of the software's development costs. Keeping the software's code base in a good shape, i.e. maintainable, speeds up and reduces the cost of making changes and makes them less risky. Refactoring and reengineering are practices to improve a software's maintainability. An essential part of keeping a software's maintainability at a desired level or systematically improving its maintainability is to measure the progress and to find the parts of code whose improvement would have the biggest affect on the overall maintainability. This can be done by using metrics. It is crucial to make sure the metrics are actively used by the company personnel. This can be done by providing useful deployment practices for the metrics. A literature review and a case study was conducted using a simplified version of the Design Science. The aim was to find a relevant set of metrics and useful ways of deploying them at the case company. In the case study, workshops were organized at the case company to fulfill the aim. Out of the suggested metrics the three top prioritized ones were implemented in a automated metrics system. The analyzed files were prioritized based on the file activity. An aggregated index was calculated out of the three metrics to provide a quick overview on the situation. Out of the suggested deployment ideas two deployment practices were prototyped. A reactive way is proposed for monitoring the change in the maintainability of the code base and a proactive way for systematically reducing the technical debt by identifying the most problematic places in the code base whose refactoring would most benefit the total maintainability of the software. The implemented metrics system and the prototyped deployment practices were presented and evaluated at the case company and were found useful. Apart from the three company specific code measures, the results should be generally applicable to any Scrum organization that aims to control and systematically repay its quality debt. The organization can use a similar approach as described in this thesis to find out their unique set of top priority technical debt issues to measure. The process was applied in a multi-site Scrum organization and hence applied techniques that fit well distributed teams. The deployment practices utilize cloud services making them useful to distributed teams.

Read the paper · More papers on PaperTik