CSE 219 : Computer Science III

Homework 4 — Implementation (Stage I)

Submission Deadline: Monday, Novemeber 13 @ 11:59 pm

Based on your third homework, you now have a basic design for the final project, and it's time to start implementing it! Note that you can make any changes to your design during this implementation. However, do not forget to consult the grading criteria for the second stage of homework 3 when you do so.

The expectation is that through this process of back-and-forth between the initial implementation and design, you will gain a better understanding of the design-implementation iterations in the software development lifecycle.

  • You are expected to use version control throughout the remainder of this semester, up to and including the final project submission. Proper use of version control will often be a part of the grading criteria.
  • Your Bibucket repository must be private so that others cannot plagiarize your work. Also, be sure to invite your grading TA's account to your Bitbucket project.
  • If you struggled with the second homework assignment, you may use this solution for any part of your assignments from this point on in the semester.
  • If you want to use IntelliJ IDEA as your IDE, follow these instructions:
    1. Select File > New > Project from Existing Sources
    2. The Import Project dialog box will open.
    3. Select Create project from existing sources and follow the instructions. IntelliJ IDEA will add the .idea folder, which contains the definition files required by this IDE. Note that the NetBeans definitions in the .nbproject folder and the build.xml file will remain untouched, so you will be able to return to using NetBeans if you want. In this process, IntelliJ IDEA will automatically create a run configuration.
  • The homework-2 solution is already in an IntelliJ IDEA project format, so the definitions are already there. There is, however, one change in the code, and that is regarding the relative paths. The following relative paths have been modified for use with IntelliJ IDEA:

    • djf.language.AppLanguageSettings#PATH_DATA
    • djf.language.AppLanguageSettings#PATH_WORK
    • djf.language.AppLanguageSettings#PATH_IMAGES

    To use with NetBeans, simply revert the paths back to their original values, which have been mentioned in the code comments.


In this assignment, you must complete the following:

1. Complete Layout for the User Interface

In this stage of the implementation process you will serve in part as the UI designer, choosing the user interface fonts, colors and icons. Be careful when doing so to make sure they complement each other well and provide an inviting, intuitive experience for the user. To start with, you will need to find appropriate icons for all UI controls. Note that icons should all use a similar style. For this, you may use glyphicons. Of course, you are free to use any other style as well. Note that most of the controls will not yet be functional, but the UI should look complete. What this means is that when the user requests to start New work one can navigate to all tabs and controls there are neatly and properly arranged.

2. First Benchmark Use Cases

If you go back to the SRS document provided to you for homework three, you will see that there are seven use cases marked for the first benchmark. These are

  1. Create New Map from the Welcome Dialog (2.1)
  2. Select Recent Map to Load (2.2)
  3. Close Welcome Dialog (2.3)
  4. Create New Map from the main UI (2.4)
  5. Export Map (2.8)
  6. Learn About Application (2.11)
  7. Exit Application (2.39)

The remaining use cases are part of subsequent benchmarks, and will involve file management and editing.

Submission Format

Submit a single .zip consisting of all the projects. You should add your name as the author to any source file you provide.