SE4S: Software Engineering for Sustainability

 

The use of information and communications technology (ICT) has led to profound advances in human civilizations, but in doing so has also contributed significantly to the exploitation of our planet’s resources. New forms of ICT, on the other hand, also generate considerable potential for “greening through ICT” – that is, making the world more sustainable by means of ICT interventions. This project seeks to understand how software engineering can help in this endeavor.

Software-intensive systems are deeply engaged with many different aspects of life in the industrialized world; as such, they provide a powerful leverage point for enabling sustainability concerns to be brought to bear across a wide range of domains. Yet, developers of these systems lack a comprehensive understanding of how to integrate sustainability into their software development processes.  We are creating a methodology for developing software-intensive systems that meet the functional needs of users while reducing the environmental impacts brought about by those systems. This project, software engineering for sustainability (SE4S), therefore, is focused on how software engineering can support environmental sustainability in the wide variety of domains in which software is deployed, rather than just how software engineering can contribute to improving the sustainability of either software or ICT itself.

One of our primary emphases is on requirements engineering for sustainable software-intensive systems. Specifically, how can sustainability be considered as a first class quality in describing constraints on the design and implementation of a software-intensive system so that it mitigates negative impact on its environment and thereby supports sustainability? We are also exploring how different aspects of sustainability (e.g., reducing carbon emissions, increasing sustainable energy sources, managing water, supporting biodiversity, organizing food production) can be represented and implemented in common ways across various domains.  We are designing adaptable, reusable sustainability “widgets” that will reduce the costs associated with developing software that addresses sustainability.  We view these efforts as one way to incentivize stakeholder buy-in, which will be critical to adopting this new approach. Considering sustainability as a first-class requirement is likely to incur additional costs at some point in the production process and/or deployment of the software. Whether overall costs go up or down, incentivizing developers and/or consumers to expend greater local costs to address sustainability adequately will be an important part of this effort's success.

This interdisciplinary project links the fields of software engineering and environmental informatics, and also reaches beyond these disciplines to other environmental sciences and industries to integrate the most current understanding of sustainability issues.

This work is in progress with Professor Bill Tomlinson and German postdoc Birgit Penzenstadler of TU Munich.