Drexel University, Carnegie Mellon University and the University of Hawaii are advancing the education of software engineers through research on teaching software modularity. This project addresses designing for modularity with an approach based on design rule theory, design structure matrix modeling, and architecture review. Activities include development of labs and homework assignments featuring a series of evolution scenarios for realistic software applications. A teaching package which includes the activities, instructional materials, and a tool for detecting modularity problems is being constructed. The tool is used to identify design problems within student implementations. Several approaches to performing architecture reviews are being evaluated to determine which approach best helps students design better modularized software.
Designing for modularity is a fundamental topic in educating software engineers, yet there has been little rigorous research on how to teach it. This project leverages research results to facilitate teaching practice and has the potential to advance our basic understanding of the causes of design problems that may eventually result in maintenance difficulties. Project results may fundamentally change the way software design is taught by introducing rigorous modularity analysis techniques and semi-automatic architecture review into the classroom, resulting in better trained software designers who are equipped with the knowledge, skills, and tools to produce software that incurs much lower maintenance costs.