Software
Development Assignments for a Software Architecture Course
Authors: David Garlan and Mary Shaw
Software Engineering Resources: Proceedings of
the ACM/IEEE International Workshop on Software Engineering Education,
May, 1994.
Download the Postscript
or
PDF
Abstract
As software systems grow in size and complexity their design problem
extends beyond algorithms and data structures to issues of system
design. These issues|the software architecture level of software
design|are becoming increasingly important to the practicing software
engineer. Consequently, it is important to nd eective ways to teach
this material. To meet this need we developed a course, \Architectures
for Software Systems," and have taught it four times. In this paper we
describe the principal software development assignments that this
course uses to develop skill at applying architectural principles to
the design and implementation of software systems. The major
challenges in designing such assignments are (1) making sure that
students spend their time on architectural issues rather than coding,
and (2) helping students establish and maintain a desired
architectural style. We address these issues by providing working
examples as starting points. These examples are usable in other
courses.
Keywords:software engineering education, software architecture, programming assignments, software development exercises, software design
Brought to you by the
Composable
Software Systems Research Group in the School
of Computer Science at Carnegie Mellon
University.
Last modified: 8/29/2006. For comments and problems, contact able-help@cs.cmu.edu.