P06 CISC474 07S-Model,View,JavaDoc,SVN

Due Date Extended one week to April 18th (to make room for H07)

New: Please see Updates/Clarifications about
Tomcat, Javadoc and Download deployment
under steps 6 and 7 (highlighted below)

Due date extended to April 20th to allow for this adjustment.

Next steps towards a working "Common Free Time" webapp

In this project, you'll take several next steps towards a working "common free time" webapp (see the description of this app in P03 and P05). You may have already started on some of these steps.

Part today in class, rest over the next 12 days

Here's what you need to do today in class (there is more detail below)

Wiki pages
07S_CFT_T01 07S_CFT_T02 07S_CFT_T03 07S_CFT_T04 07S_CFT_T05
07S_CFT_T06 07S_CFT_T07 07S_CFT_T08 07S_CFT_T09 07S_CFT_T10

 

What you'll do over the next 12 days

Detailed Instructions for What You Need To Do Today

Step 1: Divide up Roles

The list of roles appears below.

The first roles to assign: Team Leader, and Wiki Editor

Assign these roles first, since the Team Leader will organize the discussion, and Wiki Editor will document who has what role on the wiki (look ahead to Step 2)

About dividing up the roles

The list of roles

Step 2: Document Roles on the Wiki

The wiki editor should indicate who is doing which role.

It may be helpful to copy the wiki markup for the team members names directly from the page CISC474_07S_NumberedTeams and just fill in an extra column in that table for the roles.

What you need to do over the next 12 days

Note that some of the steps below can and should be done in parallel

I've numbered the steps "sequentially" only to make it easier to refer to them.

One of the most important jobs of the team leader is to make sure that the most important work is getting done so that the team completes its work on time. That includes figuring out which steps can be done in parallel, as well as any dependencies between or among the different steps.

Step 3: Establish an SVN Repository (SVN Administrator)

The SVN Administrator for your group should follow the instructions at the wiki page SVN_Repository_Setup to set up a repository for your group.

Add accounts for all team members, plus accounts for Oana (account name "tudor") and Professor Conrad (account name "pconrad").

Send each team member (along with Professor Conrad and Oana) his/her password via email. Use the subject line: CISC474 P06 SVN Password

Use passwords that are arbitrary strings of letters and numbers, e.g. 7vh62esy4

Create a directory structure in the repository that represents your development environment (similar to the example in Ch3 of HFSJ). Before you set up this directory structure, look ahead at Step 5 to be sure you have the correct package name for the directory for the model class.

Be sure that each team member understands how to check code out of the repository into their own working directory (sometimes called a "sandbox"), and how to then check code into the repository.

Step 4: First attempt at the User Interface
(Lead Web Designer, and Associate Web Designer(s))

The Lead Web Designer, along with the Associate Web Designer (if any) and the Team Leader comprise the User Interface Team.

Complete the first attempt at the view by writing:

Link your form's submit button to the static HTML that represents the sample output. Note on the sample output that it is in fact, only sample output.

Include a CSS stylesheet (internal or external) to make the user interface look more attractive (see Chapter 3 in Sebesta), and some JavaScript (internal or external) to do client-side validation of user input (see Chapters 4,5,6 in your Sebesta textbook).

Be sure that all files validate with DOCTYPE HTML 4.0.1 (strict), XHTML 1.0 (strict), or XHTML 1.1.

Check both HTML files (along with any .css and/or .js files) into the SVN repository under the web directory.

Step 5: First attempt at the Model (Lead and Associate Java Developers and JUnit Testers)

The Lead Java Developer and the Associate Java Developer(s) should work together to complete the Model, together with JUnit classes that test the model thoroughly. Together with the Team Leader, these folks comprise the Java Development Team.

The model should be sufficient to take input—in some form that comes from the Web form your User Interface Team (see Step 4) is developing—and produce a Java object (e.g. an ArrayList object) that could be converted by code in a JSP into the output that your User Interface Team has developed.

Be sure to work with the User Interface Team closely to be sure that your model matches what they have in mind.

Having said that, as the Java Development Team you also need to be sure that your Model is not dependent in any way on being part of a web app. It may be helpful, in fact, to develop a command line version of the User Interface and hook it up to your model, to illustrate that it works.

You should develop the JUnit classes along with the Model, not after the fact.

Follow the test-driven development approach. Write stubs and JUnit tests before you write the code that implements the methods—watch the tests fail—then write the code and watch the tests pass.

You do not have to turn in tests that fail for this project (that was just an exercise for P05)

Follow the Java Standards indicated on the wiki page General Submission Standards, including but not limited to:

Check the build.xml file and the Java code into the repository early and often.

Step 6: Create a Javadoc/Download site for your team (Javadoc/Download site administrator )

Under the ACAD web pages of the Javadoc/Download site administrator (under http://www.ecl.udel.edu/~yourAcadAccount/cisc474, which corresponds to the /usb/username/public_html/cisc474 directory ), create a Javadoc/Download site for your team.

This is a place where your team will store its Javadoc, and also a place from which folks can download a source code distribution of your groups work (as a gzipped tar file, or a zip file).

Setup ACLs so that all team members can update the Javadocs and/or the tarball from the build.xml file.

Update/Clarification (04/13/2007):

We have found that there are some bugs with ACL support on porsche.cis.udel.edu. So, instead of setting the ACLs so that all team members can update the Javadocs and/or tarball directly, instead it will be the responsibility of the team member who is the Javadoc/Download site administrator to copy the Javadocs and the tarball or zip file into his/her personal web space.

For testing purposes, other team members can establish alternate Javadoc or download deployment targets in their own personal web space, by having an alternative properties file (e.g. instead of global.properties, freds.properties, or sheilas.properties.

That is to say:

See the wiki page AccessControlLists for more information on ACLs. Be sure that you are looking at the portion of the page about ZFS ACLs (you have to scroll down a bit), not UFS.

Note that you may also decide to provide public "read" access to your SVN repository. However, you are still required to have a download site for a source distribution.

Make sure there is a link to this page from the Wiki page for your group, i.e. from one of these pages:

Wiki pages
07S_CFT_T01 07S_CFT_T02 07S_CFT_T03 07S_CFT_T04 07S_CFT_T05
07S_CFT_T06 07S_CFT_T07 07S_CFT_T08 07S_CFT_T09 07S_CFT_T10

Step 7: Establish a primary deployment environment for your group (Tomcat Administrator)

The Tomcat Administrator for your group should establish one of the group members Tomcat installations (on porsche) as the primary deployment environment for your group.

Create a directory CFT_Tnn (where Tnn is your Team number, T01, T02, etc.) under your ~/tomcat/webapps directory.

Create a deployment environment here, and add code into the build.xml and global.properties files so that typing ant deploy copies the static HTML files developed by your User Interface Team from the web subdirectory into the root directory of your deployment environment (i.e. ~/tomcat/webapps/CFT_Tnn).

Update/Clarification (04/13/2007):

Previously I may have indicated in lecture that you should use ACLs to make that deployment directory writable by all team members. Because of the bugs with ACL support on Porsche, instead, we'll handle this in a similar fashion to the way we handle the Javadoc and Download directories. That is to say:

That is all you need to do for this project—you do not need to worry about deploying the model classes yet. We'll do that by way of a WAR file in either P07 or P08.

Step 8: Make sure it all comes together (Team Leader, and entire team)

Every team member should look over the section "Your deliverables for P06" and the Grading rubric, and make sure he/she has done her/his part.

Look at everything and make sure it is a coherent whole. This is primarily the team leader's job, but everyone on the team should take responsibility for supporting the team leader in this task.

Your deliverables for P06 (due April 18 20 , by 11:55pm).

The team leader of your group should submit, on WebCT, a gzipped tar file or a zip file containing a directory called P06 that contains your deployment environment. This file should be created automatically by an Ant task. (We'll go over how to do this in lecture on 04/04 or 04/06.)

The team leader and primary wiki editor should verify that the wiki page has:

The team leader should also double check that

The team leader (along with the entire team) should also verify that if/when you download the tarball and adjust any global.properties values as appropriate, that there are tasks in the Ant file that successfully

Finally, the team leader, User Interface Team and Tomcat Administrator should verify that when you go to that Tomcat instance and click the submit button (or equivalent) on the user interface, that it takes you to a "sample" results page (in static HTML).

Next steps

Upcoming assignments will turn this all into a working web app—here's a preview:

Grading: 150 pts

Item Explanation Point Value
tarball or zip files submitted on WebCT and available on download page Source code submitted on WebCT should match what is available on the download page 10
Design of View View is well designed, easy to use, attractive, and validates with either HTML 4.0.1 strict, XHTML 1.0 strict, or XHTML 1.1 20
Design of Model Design a model with objects and methods that are reasonable and fit well with the user interface delivered 20
Choice of tests Choose reasonable tests that cover the basic functionality of the methods specified for the object. Tests should pass for this submission. 10
Header comments Source code follows the Javadoc style guideline on the Wiki for these header comments. 10
Internal comments Each file is well commented with internal comments explaining what the code is doing. 10
Submission structured as a .tar.gz or .zip file When untarred or unzipped, the result should be a single directory containing a well-structure development environment.

10
Use of Ant There should be a build.xml file in the submission that will compile your code when it is unpacked, and do all of the following:
  • compile the code
  • running JUnit tests (that pass)
  • create the Javadoc
  • deploy the Javadoc
  • create a tarball or zip file (source distribution)
  • deploy the source distribution to the download page
  • deploy the "view" to the running tomcat
20
Wiki is complete
  • the list of roles
  • links to the Javadoc page and download page
  • links to the Tomcat instance where the view is deployed
10
SVN Repository Setup SVN repository is setup correctly and can be access by TA and Instructor as well as team members 10
General correctness,
style, and following instructions
See GeneralSubmissionStandards and also review this entire file (P06.html) to be sure you have followed all instructions 20
Total   150