next up previous
Next: Conclusions Up: In the classroom Previous: Implementation to specification

Maintenance projects

During the last five weeks of the term, students work on a 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 and disciplined integration testing.

Students are divided into three-person teams. The project is initiated by roughly describing the required changes in system behavior. All teams respond by submitting a new requirements specification and a change analysis. The change analysis lists the other work products that must be modified along with an estimate of the time required to modify each work product. Following the change analysis, a single requirements specification is adopted for use by all teams. Each team is asked to modify one module and test another module. To provide training in independent verification, teams are never asked to test the module that they modify.

A ``superteam,'' consisting of four teams working together, is responsible for producing a completely modified system. Each superteam performs its own integration testing under the control of the instructor. Communication between teams and the instructor is primarily by electronic mail, with little or no direct communication between teams. For each module, the instructor issues a Test Request to the team responsible for testing that module. The testing team responds with a Test Report that describes the test results. In the event that testing reveals a defect in a module, the instructor issues a Fix Request to the team responsible for modifying that module. The modifying team responds with a Fix Report that details the team's response to the Fix Request. Successful completion of the project occurs when (1) the cycle of requests and reports terminates with all Test Reports indicating no failures and (2) the resulting system passes the instructor's acceptance tests.

In the January 1994 offering, four superteams were formed; three completed the integration and acceptance tests before the deadline. The strongest superteam finished three days early and received a total of three Fix Requests. The superteam that did not finish received nine Fix Requests. Teams that depend on a ``try it and see'' approach do poorly on our maintenance projects. Within our framework, as in industry, code sent back through the test cycle can cause serious scheduling problems.



next up previous
Next: Conclusions Up: In the classroom Previous: Implementation to specification



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