Project Iteration 1: Requirements

In this iteration you are to give the requirements your project should meet, and a sketch of how the implementation will grow. Refer to the lecture notes and the HFOOA&D book for more details on the requirements capture process.
Components of your group's submission should include the following. Structure your document to have section headers being the names in bold below (you can of course include more sections).
  1. Include your names, group number, and project title.
  2. Give an Overview including the following
    • A Vision Statement summarizing your project in words;
    • Write a feature list and/or a requirements list, to help flesh out the vision statement.
    • Include some rough GUI sketches of key GUI elements to help express your vision.
    • Possibly a Domain model: if your application has a complex domain which needs to be better understood, give a domain model which describes the features of the domain relevant to the project. If there is a nontrivial structure of associations between the domain entities, you should also include a UML class diagram of the domain model.
  3. Actors: who does what? List the actors and give short descriptions of their purpose. Include a use-case diagram showing how the actors will be involved in the different use-cases if you think that diagram is a helpful one.
  4. Use-cases. Present your use-cases expressing the desired functionality. Don't leave out any obvious use-cases. Write a short English description of each use-case, using the format given in lecture.
    For your most complex use-case, explore the tasks involved in the use-case more deeply by writing a UML activity diagram (required).
  5. Give a proposal for the Architecture: the major packages, components, and proposed deployment.
  6. Give a listing of Resources you are using. Include here a list of all the Java API's and advanced features you may need, e.g. EJB/JDBC/RMI... If you are thinking about reusing some other library or building on some legacy code, list that as well. And, if your project is your version of some existing application, mention the application. Note, the project must have some advanced aspect to it, e.g. it uses an advanced feature of Java, is distributed, etc. If you have doubts about whether your project qualifies under this, consult the prof/TA in advance.
Make sure you have been complete in your requirements. Some common incompletenesses include: Please discuss any sticking points with the Prof/TA's early so your group can get over the hump and get a great requirements document completed!

Submission

You are required to produce a web document representing a snapshot of your project at this point. A similar format will be followed for subsequent iterations.
  1. The home page of your project is at http://ugrad.cs.jhu.edu/~groupnn/ where nn is your group number. Make sure all of the iterations are accessible from your homepage -- don't delete previous iterations from the webpage, keep them all around for the record.
  2. Don't forward this URL to your home PC on your DSL line which will probably be down when we want to look at it.
  3. Test to make sure the URL works (e.g. file permissions all OK etc).
  4. Please make a readable and visually pleasing hypertext document.
  5. For UML diagrams and GUI sketches, you can scan them in if drawn by hand, or you can use a tool. A useful, meaningful hand sketch is better than a neat but irrelevant drawing. Some tools for drawing UML include the free OmondoUML eclipse plugin, UMLet, and ArgoUML.