SE-2030 Software Engineering Tools and Practices
Lab 1: Application Design

 

Problem Statement

Consider a Java-based "contacts" application that does the following:

1) The application has a GUI that contains a menu that contains 5 commands Create, List, Open, Save, and Quit. Note there is no Edit or Delete command.

2) The Create command allows a user to create a contact by presenting a dialog that accepts a person's first name, last name, and phone number. As Contacts are created, they are appended to some type of collection.

3) The Open command allows the user to open a file containing previously-saved contacts. That file may contain an arbitrary number of contacts. When the file is opened, the contacts are appended to the existing collection, which may or may not be empty. Thus you can create a contact, open a file containing 2 previously-created contacts, open a 2nd file containing 3 previously-created contacts, and then create another contact. In the end, you'll have 7 contacts in the collection. Duplicates contacts are OK.

4) The List command allows the user to view the collection of contacts, sorted alphabetically by last name, within the GUI of the application.

5) The Save command allows the user to save the collection of contacts to a file, possibly overwriting an existing file after obtaining permission from the user to do so.

6) The Quit command exits the application.

Assignment

You and your team are to design (but not implement) the application described above. You must design it such that each team member can take responsibility for implementing some significant aspect (ie 1 or more classes) of the functionality.

You must create:

  1.  A design document (UML class diagram) so that everyone understands how the application will be implemented, and what part(s) each person will be responsible for. You may use Enterprise Architect to create this diagram, but you don't have to - you can submit a neatly-drawn diagram on paper, for instance.

  2. A (Word/PDF/text) document that describes the approach that your team will use for coordinating your development, such that all team members understand how you will all work together.

  3. A (Word/PDF/text) document that contains a list of challenges that you may need assistance with in order to complete the creation of the working application.

Submission

Your submission is due via Blackboard by the end of lab. Only one person from each team must submit, but the documents should contain the names of all team members.

Clarity, spelling, and grammar all count towards your grade; bad spelling or grammar can lop off 25% of your grade!
 

Be sure to keep copies of all your files, in case something gets lost.