SWE 437 Assignment 3
Spring 2018
Maintenance Work

Due 12-February, beginning of class

If you want truly to understand something, try to change it. —Kurt Lewin

Answer the following questions. All homeworks are due before class on the due date. Please remember that the GMU Honor Code is in effect: You may use one of the collaborative options as specified on the syllabus. You may also request help and advice from your classmates on Piazza. Any other help not allowed by that policy will be an honor violation. Bring hardcopies of your answers to class; either hand written or printouts.

We will continue using the quotes software from the previous two weeks. (Original source files here; and a web application runnable version here.)

Your job this week is to evolve the quotes server to provide the ability to add new quotations through the interface. (Please note that editing the data file directly does not satisfy the assignment.) For full credit, the new quotations should be saved in the permanent file. (update 7-February)

You can decide how to add this feature, but you must attempt to preserve the integrity of the data file. That is, check the new text to ensure it conforms to minimal syntactic requirements. It is up to you to determine the rules for new quotes (what to check for), how to check, and what to do if the quotes are not valid.

The original web app had a “community search” feature. If that does not make sense in your system, you may remove that functionality.

As in assignment 2, when you make the changes, keep a simple documentation log of what you do. Note which components and methods you change and added. Summarize the changes in a few words. You do not need to go to the level of which variables you create or delete or how you change the control flow. I just want the highlights. This should be one page or less. (Hint: This will much easier if you keep the log while you change the program. Trying to remember later will take more time. That is, waiting until the end will create maintenance debt, always a bad thing.)

Next, write a short assessment of the maintainability of the software. What did the original programmers do that made it hard to change the software? What did the original programmers do that made it easy to change the software? What would you do differently if you did it again?


Submit five items in class, on paper:

  1. A very simple cover page with all partner names (no more than three per team), and where the TA can access your source files
  2. A screen shot showing your working software
  3. A one-paragraph description of the data integrity checks
  4. The simple documentation log
  5. Your maintainability assessment


We will grade on several factors.

And of course, you receive a 5% bonus (2 points) for working in a team of two or three.