A Systematic Review for Sustainable Software Development Practice and Paradigm
Keywords:
Software Sustainability, Architectural Decisions, Technical Debt, Metrics for Sustainability, Code Metrics, Architecture Metrics, Software Development in Research, Architectural Knowledge, Software Quality, Research Software EngineeringAbstract
Sustainability is essential to current software development in order to guarantee the lifespan and quality of software systems. The present study delves into the many aspects of software sustainability, emphasizing architectural choices, sustainability measurements, and the use of software in scholarly investigations. It presents the idea of "sustainability debt," which results from poor design decisions and lowers the calibre of software. The significance of gathering and organizing architectural knowledge (AK) is covered in the article as a means of reducing this debt and enhancing decision-making. The paper discusses metrics for code complexity and maintainability as well as architectural metrics for modularity and design smells that are used to assess software sustainability at various abstraction levels. It also looks at new architectural knowledge measures that evaluate how long-lasting design choices are and how they affect the development of software. The study also emphasizes the importance of software in research and the problems associated with a lack of recognition and training in this area. It examines programs like the Software Sustainability Institute's Open Call for Projects and its endeavours to advance software practices and talent development. To sum up, attaining software sustainability requires a thorough strategy that incorporates strategic architectural choices, efficient use of metrics, and continuous enhancements in software processes. The study urges ongoing efforts to tackle these issues in order to maintain software systems' dependability and support long-term objectives for research and development.