CS 2212 -- Introduction to Software Engineering
Group Assignment 2

Due Date: Friday,  March 2,  at  11:59 pm
Percentage of total mark: 7%

This is a group assignment.  READ THIS ENTIRE ASSIGNMENT OVER CAREFULLY BEFORE MEETING WITH YOUR GROUP!.

Each group in the class is to hand in one assignment. You can delegate the individual parts of the assignment to a subset of the group members, but it is a good idea for all group members to read over the entire completed assignment before one of the members hands it in to webct.

Overview

In this assignment, your group will start to plan out what the interface will look like, how data will be saved and what classes are required and how the classes will look. This information will be submitted as a pdf file. This year we will also be using an Agile development where you must complete some of the requirements for this assignment. The t.a. must be able to test these requirements so you must hand in jar files that the t.a. can run. Along with the .jar files, you will need to include instructions for the t.a. on how to test the assignment and also indicate which requirements you completed. If you do not have pdf writer software, there is a good free one called CutePDF at: http://www.cutepdf.com/. Join the pdf files for the title page, screen shots, sequence diagrams, class diagrams, file format information and Gantt chart together into one large, neatly organized pdf that the teaching assistant can view in order to grade this part of your report. The t.a. will also run your .jar files.

What to Hand In:

Your hand-in should consist of the following 3 things:

1) A PDF Report consisting of:

Note: You again must submit one large pdf file, you might send them each individually to pdf files and then join those pdf files together as one large pdf file for submission

2) Jar files containing the code you wish to be tested

3) A readme.txt file containing:

1) PDF REPORT DETAILS

The following 5 items must be put into PDF files and then the 5 items must be all merged as one pdf file. The pdf file should be called Group?Assignment2.pdf where ? is your group number.

a) Revised UML Class Diagram

This section should include a revised and updated version of the UML class diagram submitted for group assignment 1. Your diagram should capture ALL the systems functionality as specified in the requirements specification document. In addition, your diagram should include details such as attribute type, method parameter and return type, as well as identify which attributes and methods are public, private, etc. In order to make it easier for your teaching assistant to evaluate your new UML class diagram, make sure to use a different colour and/or font and/or weight in your diagram to distinguish all the updates you have made to the new class diagram versus the class diagram you submitted for group assignment 1. This class diagram should match up with the class descriptions in third part of this assignment, i.e. any methods listed in this class diagram MUST be also listed in the class descriptions.
 

b) User Interface Design

This section should include a prototype outlining the layout and design of your user interface. In particular, you should include one screen shot for each substantially different screen layout that the user is going to see while using your program.  Make sure you include any dialog boxes as well. You can put any example data that you like in the screen shots, as long as it gives a good indication of what the system will display. Be sure to further explain any parts of the screen that are not entirely obvious, for example if you have a status bar along the bottom of the screen, make sure to include a brief but clear comment indicating what it will display. Also be sure to indicate what options will be available within the main menu bar and the sub menu bars.  NOTE: You MUST write java code (using the Java swing API, J2ME or the BlackBerry widgets) to display the screens and then take screen shots of those screens. The java code just has to draw and layout the screens, it does not need to have any functionality at this point. Then save the screen shots as jpgs to hand in and then incorporate the jpgs into your pdf files.

c) UML Sequence Diagrams

In this section, you should include detailed sequence diagrams showing how actors and objects communicate to perform the following tasks:

Note: you can use MS Project to draw the sequence diagrams.

d) Class Descriptions

This section of your hand-in should show how you are going to translate your class diagram into java code. Thus, a one to many association between say CourseSection taught by Prof will mean that the CourseSection Class will contain a Prof object in it. No actual code should be provided, just the headers and comments for all the methods/attributes that you believe will be required within each class. This JavaDoc is not a contract (not "carved in stone"), thus, don't worry if you make a few changes to the classes in the future. Using JavaDoc, show what each of your JAVA classes will look like. Each class subsection should start on a separate page, be shown as a JavaDoc file and should have the following information:

The classes should be listed in alphabetical order, for ease of marking. To hand it in: view the JavaDoc in a browser and then send the webpage to a pdf file and join the all pdf files for each of your classes into one large pdf that has all the classes IN ALPHABETICAL ORDER.

The following example is a subset of a class description for a Person class from a hypothetical high level design of a payroll system. Note that this example is included to illustrate the format of the hand-in, and does not necessarily constitute an endorsement on the size of your descriptions. For example, a more detailed description may be needed for a complex classes and methods.

Example:

Person Class:

/**
* Person is the class that will be used to create a person in our payroll system
*
* @author Laura Reid
* @version Version 1.1
*/
public class Person
{
   // instance variables **********************************
   private String firstName;             // the persons first name
   private String lastName;              // the persons last name
   private String socialInsuranceNumber; // the social insurance number of the person
   private double salary;                // the persons current yearly salary

   /**
   * Constructor for objects of class Person,
   * initialize names and soc ins number
   * @param fn Person's First Name
   * @param ln Person's Last Name
   * @param ssn Person's Social Insurance Number
   */
   public Person(String fn, String ln, String ssn)
   {
   }

// ACCESSOR METHODS ***********************************
   /**
   * Gets the persons first name
   * @return the First Name of the person
   */
   public String getFirstName()
   {
   }

// MUTATOR METHODS ************************************

...

// HELPER METHODS *************************************
   /**
   *
Creates the persons full name
   */
   private String makeFullName ()
   {
   }

}

e) Project Plan Documentation

This section should be an update of the project plan from the first report. In particular, your group should provide a list of tasks to be accomplished between milestone 2 and milestone 3. Indicate all the information for each task that was required in group assignment 1. Remember to update the percentage of completion of any previous tasks and any upcoming tasks that you have already started. Make sure your Gantt chart correctly indicates who is/was assigned each task and who actually completed each task so that we know that the work is being fairly distributed.

2) THE .JAR FILES

When you view the Project Requirements you will notice that each requirement is numbered. We will have you submit this assignment in an Agile methodology, thus you must complete some (you may choose which ones) of the requirements for this assignment and some more for assignment 3. The following requirements must be completed:

For the rest of the project, you must pick at least 25% of the requirements from the list that are numbered 4.c, 4.d or 4.e

You must name the jar files as follows:

NOTE: For data persistence, you can do one or more of the following:

NOTE: for the .jar files, the t.a. will not test all of your screens so the screens do not have to all be connected yet (i.e. the button to display one screen doesn't have to make the screen display at this point) but the t.a.s must be able to get to/use the screen that will be necessary to test the functional requirements that you have implemented.

NOTE: the t.a. will take a quick peek at your code and make sure that you have included "some" javadoc comments for each method and class.

3) THE GROUP?README.TXT FILE

Your Group?readme.txt file must contain:

Tips

 

Marking

The marks will be tentatively assigned as follows. .

 

Submitting the Assignment

 

Peer Evaluation (to be done individually)

Within four days immediately after this assignment's due date, complete the following peer evaluations for each individual (including yourself) in your group. For each peer evaluations that you fail to submit within four days of the due date, you will individually lose 0.5% off of your final course mark (up to a total of 2% for the 4 peer evaluations you must submit).

Click here to submit a peer evaluation  (remember to also evaluate your own performance as well as ALL your other group members)

Note: Peer evaluations can affect the final mark given to an individual so please complete these peer evaluations CONSTRUCTIVELY.