Abstract

This article presents an approach to using open-source tools and open-source projects to add realistic and practical examples to a course on software design in a professional master's program of software engineering. Students are encouraged to use object-oriented, open-source software projects available on the Internet, and to analyze their design attributes using open-source tools, to hopefully improve their designs using documented design patterns and other design strategies. The proposed approach provides a variety of realistic examples for study, which can vary from semester to semester, without the instructor having to prepare complicated realistic examples or to rely on over-simplified examples in textbooks. Because the course and the approach are relatively new, a quantifiable assessment of the pedagogical approach has not been presented. However, the argument is made that realistic examples provide for better learning, and evidence is provided to show the feasibility of the approach. The instructor's role is more of a mentor than a traditional teacher, as every open-source project is different from a design perspective.

Highlights

  • Software design is said to be a ‘wicked’ problem (Budgen, 2003), because “it can be characterized as a problem whose form is such that a solution for one of its aspects changes the problem”

  • The results presented in this paper are anecdotal, based on two offerings of a master’s level course in software design at the École de technologie supérieure in Montreal, in a professional master’s program

  • We have shown that for seven of the projects studied in the autumn, 2005 offering of the course, there were diverse and interesting applications of design patterns to improve the designs based on measurable attributes obtained using open-source tools

Read more

Summary

Introduction

Software design is said to be a ‘wicked’ problem (Budgen, 2003), because “it can be characterized as a problem whose form is such that a solution for one of its aspects changes the problem”. It stands to reason that teaching software design is a difficult task. Some of the challenges include teaching design notations, design modeling, design qualities and design methods. A common technique to illustrate these problems in a realistic manner is to teach OO design patterns (Gamma, 1995; Larman, 2005). Design patterns are essentially industry-accepted solutions to recurring design problems. Several pedagogical challenges arise when attempting to teach design patterns, when the nature of the problem they are intended to resolve is complex

Methods
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call