Beginning with a detailed analysis, we shaped a conceptual reference model, which has the objective to support software developers and software users in creating and using software in a more sustainable way.
The “Green Software” reference model comprises a holistic lifecycle model for software products, sustainability criteria and metrics of software products, a “Green Software Engineering” procedure model, and recommendations for actions as well as tools.
“[Green and] Sustainable Software is software, whose direct and indirect negative impacts on economy, society, human beings, and environment that result from development, deployment, and usage of the software are minimal and/or which have a positive effect on sustainable development.” (Dick, Naumann & Kuhn 2010, p 250)
The reference model introduces a lifecycle model for software products that is -in contrast to traditional lifecycles of software- geared to life cycle thinking (abbr. LCT), which follows the motto “from cradle to grave”.
Life cycle thinking has the objective to assess the ecological, social, human, and economic compatibility of a product during its whole lifecycle already in early stages of product development. The findings gained from these assessments can then be used for a balanced optimization of the product (cf. Tischner et al. 2000, pp 13–14).
Beginning with well known metrics for the measurement of software quality, we develop metrics for evaluating the software product’s sustainability. Here, memory requirements and processor time are issues. Network bandwidth, which is generated by a software product, also influences the ecological footprint of this software product. For the development of criteria and metrics, we use and adapt models for the measurement of software quality, procedure models for software development, as well as life cycle assessment (LCA).
The reference model makes is possible to classify procedure models that cover acquisition and development of software, maintenance of IT systems, and user support.
Currently we are preparing a generic extension for ambiguous software development processes that enables the systematic consideration of sustainability aspects during software development. This process extension follows agile software development paradigms (cf. Dick & Naumann 2010).
Recommendations for actions and tools support actors with different professional skill levels in applying green or sustainable techniques in general when developing, administrating or using software products. Possible roles of actors are software developers, acquirers of software, administrators as well as professional and private users (cf. e.g. Dick, Naumann & Held 2010; Fischer, Naumann & Dick 2010).