Software Sustainability: A Systematic Literature Review and
  Comprehensive Analysis
  Software Engineering is a constantly evolving subject area that faces new
challenges every day as it tries to automate newer business processes. One of
the key challenges to the success of a software solution is attaining
sustainability. The inability of numerous software to sustain for the desired
time-length is caused by limited consideration given towards sustainability
during the stages of software development. This review aims to present a
detailed and inclusive study covering both the technical and non-technical
challenges and approaches of software sustainability. A systematic and
comprehensive literature review was conducted based on 107 relevant studies
that were selected using the Evidence-Based Software Engineering (EBSE)
technique. The study showed that sustainability can be achieved by conducting
specific activities at the technical and non-technical levels. The technical
level consists of software design, coding, and user experience attributes. The
non-technical level consists of documentation, sustainability manifestos,
training of software engineers, funding software projects, and leadership
skills of project managers to achieve sustainability. This paper groups the
existing research efforts based on the above aspects. Next, how those aspects
affect open and closed source software is tabulated. Based on the findings of
this review, it is seen that both technical and non-technical sustainability
aspects are equally important, taking one into contention and ignoring the
other will threaten the sustenance of software products.
