Skip to main content

Bringing Sustainability and Software Design Together: A Transformational Co-Design Journey

What is the role of software design in the construction of a more sustainable world? This is a question that Concordia Computer Science and Software Engineering Master's and PhD students taking the newly co-designed SOEN 6461: Software Design Methodologies course will be pondering on. The course, which offers advanced material on software design and implementation, will now be one of the first courses to feature a unit dedicated to the study of design patterns and their relationship to sustainability. All thanks to the work of Dr. Yann-Gaël Guéhéneuc, and student partners Nicolas Rousse and Laurent Voisard.

The goal of the re-design was to create awareness among students about the use of sustainable software development practices and their positive impact on energy consumption. This was successfully achieved through the development of a series of learning activities and material that introduce students to key sustainability topics and teach them about power consumption by software systems and their impact on greenhouse gas emissions. Students will learn to measure and examine the impact of software design patterns on power consumption. This, the team believes, will help them start thinking about software design and energy efficiency, inspiring students to become actors of change in the software engineering field.

Design, Design Patterns and their Relations to Sustainability: The Re-Design at a Glance

The redesign of this unit focused on two important pillars of sustainability: technology and the environment. Through an in-class lecture, as well as online videos and resources, students with different levels of software design expertise will get a basic introduction to climate change and different Sustainable Development Goals (SDGs), including clean and affordable energy (SDG 7). Building on this, students will then be introduced to power measuring tools and shown how to use them through in-class practice activities and a final project that the co-design team developed. Thus, students will not only be learning how to evaluate the power consumption of a software program, but also how to apply systems thinking, one of the key competencies of sustainability which refers to the ability to see how various components of a system interrelate and influence one another within a whole.

Given that the team wanted students to approach these pillars and the topic of sustainability within software design from a place of hope and agency, they added some examples of how different design decisions can positively impact power consumption. As the co-design team explains, the goal of the unit if for future software designers to consider these aspects when developing new software and equipping them with practical examples and possible solutions was an important step. In the world of computer science and software engineering, there is a growing focus on sustainability (Sriraman & Raghunathan, 2023; Tanveer, 2021). However, some areas, such as the integration of sustainability into software design, remain underexplored (Sriraman & Raghunathan, 2023) and courses exploring this issue are even more limited. Thanks to their research, the team was able to present examples and content that will act as eye-openers to students taking the course.

Finally, students will also engage in self-reflection activities through which they will reflect on their own engagement with sustainability in the context of software engineering. This aspect of the course is also innovative, as it is aligned with education for sustainability pedagogies, which are not common practice in software engineering courses. This, along with all the other activities, works together to make the newly designed course stand out and promote change both within and outside the university.

Assessments and Feedback

Assessment

Students will successfully demonstrate their learning by:

  • Answering a quiz about that particular module.
  • Showing they can use power measuring tools to evaluate the power consumption of a program as part of their final project.
  • Incorporating all that was learned in their final project.

There will be also self-reflection assessments throughout the course (formative assessment instead of summative).

Feedback

Feedback will be provided though ungraded quizzes, polls and project milestones.

Examples of redesigned or created teaching resources

The co-design team shared the blog post “Using PowerAPI to measure the energy consumption of your device” (Ptidej Team). This blog will serve as a supplementary online resource that will accompany the in-class interactive activity on measuring the power consumption of software.

Works Cited

Sriraman, G., & Raghunathan, S. (2023). A systems thinking approach to improve sustainability in software engineering—a grounded Capability Maturity Framework. Sustainability, 15(11), 8766. https://doi.org/10.3390/su15118766

Tanveer, B. (2021). Sustainable software engineering - have we neglected the software engineer’s perspective? 2021 36th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW). https://doi.org/10.1109/asew52652.2021.00059

Back to top

© Concordia University