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 &