Our second undergraduate course in Software Engineering culminates with a software maintenance project. The project requires skill in specification reading and modification, implementation to specification, and systematic verification. The focus of the project is change analysis, distributed implementation, and disciplined module, integration, and system testing.