This page lists various changes that might be made to the system. Modifying the
various documents and program to incorporate one or more of these changes would
make an interesting exercise for the reader. They are listed in order of estimated
increasing difficulty.
- The Print Mailing Labels Use Case prints all the information about a
person in "mailing label" format. Of course, a phone number doesn't
appear on a mailing label. A new use case (perhaps called Print All) might be
added that prints all information.
- Another piece of information that might be valuable to store about a
person is the individual's email address. Adding this would require
including this information in the relevant use cases (Add, Edit, Print All,
Find/Find Again). (Of course, if a Labels Use Case were added, the email
address would not be included in it.)
- It was noted in the orginal requirements that the program might be modified
to allow multiple address books to be open at the same time - each in its
own window. This might entail the following changes:
- The Create New Address Book and Open Existing Address Book Use Cases
would no longer close the current address book. Instead, they
would create a new copy of the GUI, with its own address book
(either a newly created, empty one, or one read from a file
specified by the user.) There would thus be two (or more) windows
visible on the screen.
- A new Close Address Book Use Case would be added to allow the
user to close a single window (and its associated address book).
This could be initiated by a new Close option in the File menu,
or by clicking the close box for the window.
It would offer to save changes, if necessary, and then close
the window. If the window that is closed is the last open
window in the program, then the program should be terminated as
well; otherwise, the program would continue running
with the remaining window(s) visible.
- The code that is activated when the close box for the window
is clicked would be the Close Address Book Use Case described
above, instead of the Quit Program Use Case.
- The Quit Program Use Case (activated from the Quit item in the
File menu) would need to cause all open windows
to be closed, with appropriate offers to save changes, unless
the user cancels the operation for any window.
If the user cancels the save for any window, the entire use
case would terminate at once, without attempting to close
additional windows.
- The existing searching facility looks for persons that contain a
given value in one of their fields - e.g. a search for "son" would find
persons named Johnson, Peterson, ... as well as individuals living in
Johnson City, Tennessee ... An alternative would be a search that looks for
an exact match between the search criterion and the value contained
in some field - e.g. a search for "Johnson" would find a person named "Johnson"
but not person living in "Johnson City", though a search for "Buffalo" would
find both Bill Buffalo and a person living in Buffalo, NY, since in the
first case the last name field contains an exact match for the desired value,
and in the second case the city field does. A facility might be added that
allows a user request such searches; in this case "Find Text Again" might
continue the last type of search that was requested (contains or exact match.)
Some good practice in working with UML might come by modifying the various design
documents (beginning with the use cases), not just changing the code.