Project for  COMP 442


Summary

This semester we will do the same project as last years class. It didn't work out so well then, so we will take a different approach this year. The basic project description is below.

The customer wants a generic web framework to make lists of locations along with user commentary available on the web. For example one persom might use this system to display information about used-book stores while another might use it to track resteraunts.

More complete requirements description.

This system needs to run on the web without fancy client side requirements (typical cross-platform client requirements like java and javascript are fine). The system should keep the names, locations and other data concerning the establishments in some sort of retrievable storage. The user should be able to view the entire list on the web as html. The user should also be able to download the entire list as either text, postscipt or pdf for offline viewing. The system should also be tied in to one of the free online mapping programs (google, frapper maps or something entirely different). When using the mapping feature, the locations of the establishments should be available visually (using 'pins' or some other technique. There should be a way of clicking on a pin and seeing (more) information about the establishment. Ideally, there should also be a mechanism  to select a subset of locations for printing or download by clicking on map pins.

Users should be able to update the list of locations and establishments. There should be a mechanism for the user to submit data (a record) about an establishment and its location via the site. There should be a flag to either allow this data to be automatically be added to the visible data or for it to be quaranteened till a moderator can vett it. Finally there should be a mechanism to allow users to comment on existing entries. A moderator should be allowed to remove inappropriate comments.

Requirements Assignment:


Your group assignments have been made, If there is someone unable to work in the groups as assigned for personal or scheduling reasons, let me know immediately since there is limited time and I had to make some of the assignments randomly.


  1. Your assignment is to meet with a representative of the client (that would be your instructor) and begin developing a set of requirements documents. The meetings will probably take about a half hour. Please bring any questions you have about the project with you and I will answer them at that time. I will also be available by email, but more irregularly at other time.

  2. Your documents will include:

    1. A short domain Aalysis document (1-3 pages as needed including the sections discussed in class, some may be empty if they are not applicable)

    2. A requirements document which contains short, clear, objectively testable requirements for at least the following types of requirements:

      1. Functional requirements
        Describe what the system should do

      2. Quality requirements
        C
        onstraints on the design to meet specified levels of quality

      3. Platform requirements
        C
        onstraints on the environment and technology of the system

    3. A series of use cases describing likely interactions between users and administrators of your product and the product itself. You should have at least 5, but as many as needed to make a good analysis of the project.

  3. Your group should try to make an appointment in the following sets of time which I will try to keep available for this class in the next week till the groups have all make appointments.

    1. Thursday:1:15pm-2:15pm

    2. Friday: 10:30am-2pm

    3. Monday: 11am-12:30pm. 3:15-5pm

    4. Tuesday: 12:15-1:15pm

    5. Wednesday:11am-12:30pm. 3:15-4:30pm

  4. Your group should make an appointment with me by 4pm on Friday.

  5. the first draft of this document will be due Thursday Feb 7th by 4:30pm, feel free to slip it under my door.

Design Assignment:

It is now time to begin designing your software solution to the problem. Read chapter 9 (which we are seeing in the lecture this week) and understand it. Then start designing the software. Your group will need to make a number of design decisions. Keep track of the major decisions and the reasons for them.

Your design assignment should include the following parts in the first draft:

In your design you should look to increase cohesion and reduce coupling as discussed in class and in chapter 9. Discuss briefly what your group did to reduce coupling and to increase cohesion in your design in a section of your documentation. You have relatively free reign, but when picking a language for implementation, you need to make sure that you choose one that is/can be object oriented.

The first draft is due on March 5th (Wednesday) In class.

Implementation:


Now it is time to start on the part of the project that you all know well: Implementation.

In beginning implementation, I've selected 2 of the 5 designs that were submitted last week. These designs were chosen partly on their clarity, but also partly on my ability to cover some of the required technologies in class. You are to read the two documents and comment on one of them (if your document is one of the ones included you will comment on the other one. Your comments should include:

  1. What additional information you would need to know to implement this design.
  2. What do you view the chances of success in implementing this design
  3. Which of the two would you perfer to implement and why?
You may send this to me by email so long as it is sent by Wednesday April 9th at noon.You may also turn in your assesment to me on paper at the beginning of class on Wednesday. You will be graded on the thoroughness of your assesment. No late assignments will be accepted.

Upon recieving this information I will make a final decision on the design to be implemented and post assignments later that day. Your group will recieve more information about logging in and doing assignments on Wednesday.