CS 383 HW#2: Requirements Analysis

Due Thursday February 4, 2016 10pm, via blackboard. Include the full names and canonical e-mail addresses of coauthors on a title page at the front of the group document you turn in.

You are to work in the following (randomly assigned) teams:

            1                             2
	slip5295			brec9824
	ratc8795			ocke8865
	knic1468			gent7104
	benz5834			cart1189
	juts3869			guan2264
	carl7595			doum6708
	ferg2065			song6803
	mora5651			camp7325
	gwade				fran6139

            3                             4
	gall7417			bolt1003
	burd3195			wern0096
	purk2552			alsh5301
	denn2725			sass8427
	welc2150			dani2918
	harr5275			boss2849
	mars2681			snev7821
	helb4651			jank6275
  1. Learn plantUML, UMLGraph, MetaUML or some other textual drawing notation. I am almost mandating plantUML, but check out this list of other candidates. You can look at others via Google etc. If you find one better than PlantUML, e-mail Dr. J a pointer to it and use it.

    PlantUML was used in Fall 2013/Spring 2014:

    Pros
    • Very concise, git-commit-friendly human-readable file format
    • Actively developed, gaining in capability
    • Web-based interpreter available, no tool install necessary
    • A bit of a learning curve to get diagrams to look decent
    Cons
    • a lack of layout capability
    • is somewhat fragile
    • some past students had complained about it.
  2. Install a Java development kit and one or more IDEs on any machines you wish to use. Recommend current toolset from Oracle, home of fine Java products. Historically there were reasons to prefer Netbeans, but I am not going to mandate an IDE. Once we have permanent teams, your team may want to agree on one.
  3. Refine/merge use cases from last week's teams' output to construct a new use-case set. Expand use case descriptions to full CS 383 expected format. Each student should do three or more use-case descriptions, with your name on them, in the graded team document. If you haven't identified enough use cases for this, think of some more or ask the instructor for help.
  4. Individually: everyone develop one or more use case diagrams (e.g. in plantUML) that summarizes those use cases. Discuss them, make fixes, and turn in copies with your names on them. Avoid the usual student mistake of trying to use this diagram to design the user interface or control flow of the program!
  5. Jointly: vote and merge on a team's combined best-effort use case diagram(s) and use case descriptions. Show team members how to improve diagrams and descriptions to achieve an overall consistent look and feel. Generate .png images from your UML diagrams. Write a makefile rule for building your latex document with UML diagrams up front as a table of contents, followed by your use case descriptions.
  6. Coordinate your team's efforts on Github (if there were a reason that you cannot use Github, discuss alternatives with the instructor).
  7. Given the decision to do networked multi-player, write a description of how that should look and feel.
  8. Each person turnin your own "best effort" use case diagrams and descriptions.
  9. Turnin a LaTeX document (PDF, one for the group) containing your team's "voted best" use case diagram(s) and the set of "refined, polished, merged" use case descriptions.
  10. Submit via Blackboard an attached .zip archive of files. (Note for future weeks: absolutely no .exe files please.)