Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
IEEE Software
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Software Design
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Agile Programming: Design to Accommodate Change
IEEE Software
IEEE Transactions on Education
Towards Combining Ontologies and Model Weaving for the Evolution of Requirements Models
Innovations for Requirement Analysis. From Stakeholders' Needs to Formal Designs
Exploiting web resources for teaching/learning best software design tips
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.01 |
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.