Assignment 1

Due Date : 1/30 @ 11:59pm

Instructions

Each of you should have a repository in CCIS's GitHub with the name assignment1-ccisLogin. Use this repository and add all your work there. In order to clone the repositories from CCIS GitHub to your machine (or watch this video video instructions):

  1. Sign in to GitHub.

  2. On your CCIS GitHub home page your Github Handle should appear on the left as a button/drop down menu. Click that button and from the drop down menu select cs8674sp15-seattle. The CCIS GitHub page will then navigate to the class' web page and to the contents that is available to you.

  3. On the right you should be able to see all repositories to which you have been given access. Find the repository whose name matches the pattern assignment1-ccisLogin, where ccisLogin is your CCIS login name, e.g,assignment1-john123, and click on it.

  4. On the repositories home page look at the bottom right hand corner for a button with the text Clone in Desktop. By clicking on this button your browser will launch the GitHub client that we installed in Lab1 and ask for a location on your drive to store the repository.

    If you are not using the GitHub client the clone URL is located above the Clone in Desktop button. Copy the URL and issue the following command on your shell git clone URL.

  5. Create a file and save it under the folder on your drive that you selected in the preceding step.

Remember to push your changes to the CCIS GitHub repository often.

Assignment Rules

  1. You are not allowed to use any JDK APIs other than java.lang.
  2. For any Java class that contains methods you are expected to provide tests using JUnit.
  3. For any Java class you are expected to provide valid Javadoc documentation. This means that running Javadoc on your your source code should successfully compile and generate documentation in HTML.
  4. For any images, e.g., for Class Diagrams, you are expected to provide a PDF version of the image.

Problem 1

All Java source code that is part of your solution to this problem must reside inside a java package with the name edu.neu.ccs.cs8674.sp15.seattle.assignment1.problem1

A friend is trying to create a program to keep track of their library of books. He has started designing the program and after a first iteration your friend has create the following UML class diagram.

Books Class Diagram

Your friend asked you to create the code based on his Class Diagram. Also your friend has asked to implement the following

Problem 2

All Java source code that is part of your solution to this problem must reside inside a java package with the name edu.neu.ccs.cs8674.sp15.seattle.assignment1.problem2

You have been tasked to create the program to print boarding passes at airports. The boarding pass contains the following information

  1. Provide a UML Class Diagram of all classes that are part of your design. (For diagramming tools see UML Resources)
  2. Provide Java code for your design. For each class that you create ensure that you have appropriate implementation of toString(), equals() and hashCode()