Sustainability has become a pressing concern, especially given the looming effects of climate change. Sustainable development aims to meet present needs while ensuring sustainability of natural systems and the environment so as to not compromise the ability of future generations to meet their own needs. Current software engineering methods, however, do not explicitly support sustainability or sustainable development. Yet because software systems have such an enormous influence on our daily lives—in many spheres and in varying contexts—comprehensively supporting sustainability in software engineering has considerable potential for making our planet greener in the long run as well as improving our communities and our environment.
Professor Debra J. Richardson is working to solve this shortcoming through Software Engineering for Sustainability (SE4S), a joint research project with Informatics Professor Bill Tomlinson and postdoctoral researcher Birgit Penzenstadler, who is visiting UCI from Technische Universität München on a two-year German Research Foundation (DFG) fellowship.
The Big Picture
The ultimate goal of SE4S is to support all dimensions of sustainability—human, social, economic, environmental, and technical—throughout the software lifecycle. The SE4S team’s primary efforts emphasize environmental sustainability with a focus on requirements engineering (RE) and quality assurance (QA). They believe these touchpoints have the greatest potential—RE will form the foundation for sustainable development and QA will provide the ability to assess progress.
The SE4S team is investigating to what extent and how RE and QA can contribute to improving sustainability of software systems in general, but most importantly on their impact within and on the environment. This involves identifying stakeholder needs, eliciting appropriate goals and requirements, finding metrics to assess realization of the requirements, and evaluating the extent to which the proposed activities help to improve the quality of environmental sustainability. Software engineers can choose to engage in ways that enable the greatest impact on sustainability while still satisfying the other requirements of the system.
Selected Components of the Research
Sustainability Goal Model: Penzenstadler has developed a generic sustainability goal model with process- and product-specific instances to help requirements engineers analyze their project according to the different dimensions of sustainability, instantiate concrete goals for the project, and incorporate actions that will improve the system’s sustainability. The goal model emphasizes environmental sustainability in and via software systems, as this dimension of sustainability is the one that is least supported by traditional methods for developing software systems.
Sustainability as a Non Functional Requirement: A non-functional requirements (NFR) framework for sustainability is envisioned as the basis upon which requirements engineers can categorize various sustainability requirements that are elicited for a software system to be built. The framework would allow goals from the sustainability goal model to be categorized based on two dimensions: (1) sustainability aspects – environmental, human, social, economic and technical; and (2) order of effect – direct result of requirement, effect of application, or long-term socio-economic structural changes.
To transition from goals to requirements and adequately document them, the SE4S team, specifically Ph.D. student Ankita Raturi (D. Richardson and B. Tomlinson, advisors), is adapting a number of requirements analysis techniques, including life cycle analysis, and integrating sustainability information into requirements artifacts.
Sustainability Quality Model: At present, there is no common understanding of how sustainability can be measured and how the realization of sustainability requirements can be verified. Development of a sustainability quality model, led by Penzenstadler with Master’s student Anshu Singh (D. Richardson, advisor), will enable evaluation of the sustainability of software systems, with special emphasis on the environmental aspect of systems in their application domain.
Sustainability Requirements Recommender System: Ph.D. student Kristin Roher (D. Richardson, advisor) is working to create a recommender system that will lessen the burden associated with requirements elicitation for incorporating sustainability in software systems. The recommender system will present sustainability requirements patterns (templates from which requirements are constructed) to the user based on application domain, organizational values and guidelines, and deployment locale.
Sustainability Standard: To ensure wider applicability and so that sustainability truly becomes as a first class quality consideration, the SE4S team proposes establishing a governing standard with relevant policies and recommendations included as components for two standards: (1) IEEE 830—Recommended Practice for Software Requirements Specifications (and the related ISO/IEC/IEEE 29148:2011): a brief, first definition of sustainability in a software requirements context; and (2) ISO/IEC 9126—Software Engineering—Product Quality (and the related ISO/IEC 25010): application of the sustainability goal model, quality model, and NFR framework to create a hierarchically structured set of characteristics of sustainability as a software quality.
Collaboration Plan – Industry Partners
Research on this topic is only valuable if it can be applied in practice. Therefore, Richardson and Tomlinson would like to engage with industry partners to jointly develop feasibility studies and pilot projects to evaluate their research, to get feedback on their results, and to help their partners improve their current software engineering practices with respect to supporting the objective of sustainability.
They are looking for industrial case studies, such as the following: an existing system built with environmental sustainability considerations; a system (existing or under development) with potential direct impact on environmental sustainability; or a system (existing or under development) where user behavior can be influenced with respect to environment sustainability.
They envision the following phases in such a collaboration: (1) interviews, (2) project reviews, and (3) a collaborative case study:
1. A series of semi-structured interviews with different stakeholders (e.g., business analyst, requirements engineer, project manager, system architect) to explore the state of practice in sustainability support.
2. A review of one or more example projects (sharing artifacts with the research team) to deepen their understanding of the state of practice in RE and QA.
3. A collaborative case study (training and support for the industrial partner, evaluation and feedback for the research team) that includes instantiating the sustainability goal model and the corresponding quality model, along with analyzing and documenting sustainability requirements, and if relevant, also experimenting with the sustainability recommender system.
If you are interested in being an industry partner, or if you’d like to learn more about the project, contact Prof. Debra J. Richardson.
For more info, visit the Software Engineering for Sustainability project page.