next up previous
Next: Introduction

Teaching Software Design and Maintenance: A Document-Driven Approach

Daniel Hoffman
Dept. of Computer Science
Univ. of Victoria, P.O. Box 3055 MS7209,
Victoria, B.C., V8W 3P6 Canada

Paul Strooper
Dept. of Computer Science
Univ. of Queensland,
St. Lucia, Qld. 4072, Australia

Peter Walsh
Dept. of Computing Science
Malaspina Univ. College,
Nanaimo, B.C., V9R 5S5 Canada

Abstract:

We describe a novel Software Engineering course, based on over a decade of teaching experience. Compared to other Software Engineering courses, our approach is based on profoundly different goals and assumptions. We teach significant skill in a carefully restricted set of fundamental techniques. Documentation plays a central role; a single set of documents is used for design, implementation, and maintenance. Design for maintainability is emphasized. Our teaching vehicle is a substantial but idealized system, presented in its entirety from requirements specification through automated testing. We use this system to illustrate good practice, especially in maintenance. Exercises focus on understanding and modifying this system, not on the development of new systems. We have developed a complete teaching package, including exercises and solutions, transparency masters, an automated testing tool, and online code and documentation. This package is especially useful for the instructor who has good systems skills but is not a Software Engineering specialist.





Peter Walsh
Sat Apr 6 14:44:47 PST 1996