A method for improving maintainability in object-oriented software applications
Abstract
The prevailing thesis of software development in today's day and age is that of developing software in rapid development environments. This practice has resulted in software developers achieving higher customer satisfaction rates, faster times to market and a plethora of other benefits. However, Rapid Development Environments do introduce problems. The primary issue that arises is a lack of maintainability. To achieve rapid delivery of software, developers are forced to make decisions to ignore practices that improve software maintainability and make use of crude solutions when implementing software functionality. This is known as introducing technical debt. This thesis aims to improve software maintainability by means of the formulation and testing of a method to improve maintainability via remedying technical debt in object-oriented software applications. To determine the details of the method to improve maintainability in object-oriented software applications, a literature study is conducted. The literature study is performed to determine techniques for identifying areas of low maintainability, techniques for improving software maintainability and techniques for assessing the maintainability of object-oriented software applications. Findings within the literature study are used to determine refined method requirements as well as formulate the steps and processes used within the method. The method identifies areas of low maintainability via the usage of code metrics at different application levels and the usage of a third-party tool. Remedying areas of low maintainability consists of two steps: testing and refactoring. Testing is accomplished by ensuring that identified areas are testable and creating automated unit, integration or behavioural tests exercising the identified area. The automated test suite acts as a safety-net preserving existing application functionality while changes are made to the application. Refactoring is accomplished by identifying and remedying anti-patterns, grime and code smells. The refactoring step is the most important part of the method as it is responsible for improving the maintainability of the application. A maintainability assessment is performed using any combination of three distinct methods. After developing the method to improve maintainability, the method is verified and validated. The method is verified against refined method requirements through a survey of software developers with at the minimum, a degree related to software development and varying ranges of development experience. All responses received provide positive results in terms of the verification of the method. This led to the conclusion that the method can be applied to a real-world application for validation purposes. The method is validated by applying it to an Android data collection application. The overall method objective is evaluated for the Android data collection application through the usage of the maintainability index which improved by 9.92%. A more granular look at the change in maintainability index revealed that the method influences the three aspects that affect source code maintainability: the source code control structure; the source code information structure; and the source code typography, naming and commenting.
Collections
- Engineering [1403]