Case study Software Design Methodologies
A Software Engineering course is driving change toward a more sustainable future by integrating more sustainable practices into software design! Discover how.
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.
Redesign Summary
Instructor
Dr. Yann-Gaël Guéhéneuc
Student partners
Nicolas Rousse & Laurent Voisard
SOEN 6461: Software Design Methodologies
- A 4-credit Computer Science and Software Engineering graduate course that introduces students to software design processes and their models, representations of design/architecture, software architectures, and design plans. Students learn about design methods, object-oriented application frameworks, design patterns, design quality and assurance, coupling and cohesion measurements, design verification and documentation.
- About 100 students take this course per term.
- The course consists of weekly lectures.
- The course assessment structure includes multiple quizzes, in-class discussions, self-assessment activity, and a semester-long design project.
Goal
The goal of the project was to redesign one unit (now called Design, design patterns, and their relations to sustainability) to provide students with:
- A contextual introduction to climate change and the main sustainability development goals.
- A general understanding of power consumption by software systems and their impact on greenhouse gas emissions (through the consumption of fossil energy).
Redesigned units
The redesign was applied to one unit located on the second half of the course. The newly designed unit addresses the power consumption of different design choices and prompts students to think about responsible consumption and production.
Sustainability lens or Sustainable Development Goals (SDGs)
This redesigned unit focuses on different SDGs, such as:
- Quality Education (SDG 4), with a focus on the students themselves, developers, and maintainers.
- Clean and Affordable Energy (SDG 7)
Sample learning outcomes
By the end of the module, students will understand the impact of programming design choices in general and design patterns in particular on power consumption. By the end of the module, students will be able to:
- Recognize the impact of software design patterns on power consumption.
- Measure the power consumption of software.
- Examine the impact of design patterns on power consumption.
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