Project Milestones

You've been assigned to work in teams to design and develop a database web application using Java EE 6 technology -- in particular JPA, EJB, JavaServer Faces, and Facelets. There are several milestones that you will be required to complete on your way to the final submission of your project. This web page provides overviews of these milestones, some of which you would have been introduced to in your software engineering class.

Software Requirements Specification

The Software Requirements Specification (SRS) is the first milestone of the project; it provides a thorough description of the web application. First, it is expected that you will collect information from the research that you conduct and the decisions that you take as a team regarding the functionality of your web application.

In a software requirements specification, you are to state what your web application will and will not do. A requirements document is written to describe the purpose of a software product. It does not state how the functionality of the software is implemented. Thus, this document states what can be done with the web application, including what takes place when a user performs some function. The results of all user interactions are to be described in this document. Note that this document does not attempt to propose solutions, rather, it describes all functionality required.

You should incorporate all of the following in the SRS:

Everyone should read the article Writing Software Requirements Specifications to gain additional understanding of what an SRS document entails. It also provides templates that I strongly recommend you use.

For additional information about what goes in a complete software requirements specification, you should read the IEEE Recommended Practice for Software Requirements Specifications (CSULB has a license to the IEEE Explore Digital Library). In particular, the document describes the characteristics of a good software requirements specification.

  1. Correct
  2. Unambiguous
  3. Complete
  4. Consistent
  5. Ranked for importance and/or stability
  6. Verifiable
  7. Modifiable
  8. Traceable

Object Oriented Design

In this document you will provide the OO model of your application. This is a UML Class Diagram of the entities in your web application. You may use this sample UML class diagram for the academic programs of a University(PDF) and the accompanying documentation of the University academic programs (PDF) of the model to review the use of UML in designing models.

Web Application Architecture

Describe all of the elements (HTML static pages, JSF Facelets, Servlets, JavaBeans, EJB's, etc) planned for the application and their interactions in the application. Include a diagram showing how the elements are related and how they relate to a database and any other existing applications or systems if present. In the site architecture diagram, elements are connected by the actions which cause the user to navigate from one page to another. Be sure to include all elements that will be used in your application.

Intermediate Project Review

This milestone consists of a demonstration of your web application thus far. This demonstration occurs with approximately five weeks left for the completion of the project. While the milestone is graded, the goal of the review is to give the project manager an idea of the progress completed so far, assess team dynamics, and it's an opportunity for each team to assess the priorities of the project given the final deadline.

You will need to demonstrate what has been completed thus far and you should also seek feedback from your classmates. You will also submit a snapshot of all of your work (all code making up the project) completed up to this point.

Final Project

A debugged, documented, "graduating student"-quality application with a short user's guide and thorough documentation. The user's guide is expected to be part of your web application -- in an about.html page for example.

Demonstrations

Each team will have about 30 to 40 minutes for their demonstration. All members of the team need to participate in the demonstration and questions may be addressed to specific members. Reserve time to organize the demonstration and to determine what parts are presented by each of you. You should also rehearse to have your presentation be smooth.

Teams should focus their presentation on a demonstration of the web application. Each team should also pick one or two non-trivial parts of the application and explain how you implemented it. To do this you should show your object model, database, and also source code.

Demonstrate the functionality of your application. It is your job to determine the actual parts of the web application that you'll demonstrate, each project will be graded separately after the presentation for completeness and correctness of all proposed functionality.

Documentation

Your web application should be well documented throughout (i.e. JavaDoc style comments in your source code).

Each team must submit one final team report. This report should include the information listed below.

Grading of your project

The members of the class and other invited guests will evaluate your project based on the presentation given. This will account for part of the grade of your project. Since you will be evaluating other projects, you're expected to be attentive while others are presenting -- do not work on your project and/or presentation during another team's presentation as your grade will be negatively affected!!!

Each team member will also be evaluating her work as well as the work of the other members in the team. This evaluation will only be seen by the instructor.

Your project will be tested thoroughly after the presentation, specifically to test parts of the project that were either not demonstrated or that were minimally shown.

The entire source code will be retrieved from the Subversion repository and all will be inspected and graded for correctness, style, consistency, etc. This includes all aspects of software writing that you would have learned about throughout your CECS education.

Web Apps