A modular framework for the effective development of web-based applications
Abstract
A significant part of the software development life cycle consists of maintenance. Software maintenance is crucial to ensure that bugs are fixed, and continuous updates are applied to increase performance. Regular maintenance also ensures that technical debt is repaid and kept to a minimum. Technical debt refers to the concept where compromises are made to code quality and performance in order to achieve a shorter software release cycle. With only a finite amount of development resources available, large amounts of technical debt may lead to various types of problems at a later stage. This study introduces a solution in the form of a web framework. The framework is based on the Model-View-Controller (MVC) architecture. The modular nature of the framework allows for Rapid Application Development (RAD) and ensures that maintenance can easily be performed. A set of rules for best-practices with regards to implementation is provided in order to reduce technical debt. A number of case studies were implemented using this framework to evaluate its effectiveness in terms of modularity, scalability, ease of maintenance and rapid development. The specifications of each case study were defined by the specific need for an application that was required by an Energy Services Company (ESCo). The applications implemented in the case studies either aided the ESCo personnel in day-to-day activities, or provided tools with which to manage other existing systems. Software engineers employed by the ESCo were asked to complete a survey with regards to experiences gained by developing for case studies on the framework. These engineers all worked on an existing web framework owned by the ESCo, and were able to compare the two frameworks in terms of learning curve, available resource material, ease of development, code quality, maintainability, technical debt accrued and best practices followed by each framework. From the results yielded by the survey, it was observed that the engineers rated the framework developed in this study higher in all questions asked when compared to the existing framework. Out of the maximum score of 5 points (where higher is better), this framework scored an average of 4.42, as opposed to a score of 2.73 for the existing framework. Technical debt was analysed in more detail by using a software tool called SonarQube, which uses several metrics to quantify the amount of technical debt. These include bugs, vulnerabilities, debt, code smells and duplications. From the analysis it was observed that this framework only consisted of 9.2% duplicated code and 15 days of technical debt. In contrast, a system of similar size used by the ESCo had 23.6% duplications and 206 days of technical debt. It was concluded that the framework developed in this study achieved all of its objectives. Modular components were developed, which provides reusable functionality to all applications developed on the framework. The survey proved that efficient development was obtained through the use of modular components, rigid coding standard and best-practice procedures and guidelines. Finally, technical debt present in the framework components was measured to effectively be less than the debt in the overall web platform, which include applications developed on the framework.
Collections
- Engineering [1403]