Iteration 1 Details for MPCS 51221

Each iteration will deliver an incremental accretion of work toward the final project deliverable.  Generally (see specifics within each Iteration), each student will be responsible for delivering some piece of the work (documentation, code, etc.).  You will be evaluated on the clarity and depth of your analysis of these and other deliverables.  "Deep Thinking" as well as "Shallow Thinking" are generally obvious.  Deep Thinking requires time and....thought.

Unless specifically specified, you may take pictures of whiteboards, papers, napkins, etc. as submission artifacts.  However, some artifact deliveries will need to be in the form of formal models (such as the Use Case Model submission in Visual Paradigm below).  When a formal artifact is required, it will be so specified.

See the syllabus for information on grading.  Turning in Iteration assignments is required.  Submit your assignments as a tarball to the subversion repository according to the directions on the syllabus page.

Iteration 1   Due: 5:00 pm, Tuesday, October 17, 2017

Initial Requirements Modeling: 

Considering the functional and technical requirements of the system (to be named by each Team as a whole) described here, envision the high level requirements and determine the preliminary landscape of use cases and produce a use case model depicting that landscape using the use case modeling notation in UML.  Based on the functional requirements of the system, and at a high level, what is your system going to need to do?  What activities are your users going to want to accomplish as they use your system? Your model is to be prepared by the team interactively ("whiteboarding") and formally documented and delivered as a zipped Visual Paradigm use case model (Visual Paradigm Community Version can be downloaded here).   This model should show all the use cases your team has identified as well as all the actors.

Additionally, you are to produce a user story delivery map (aka "story map") that shows the same functionality outlined by the use cases from the model but breaks them out into user stories organized by planned iterations (there will be four more iterations (2 through 5)).  You should lay out your user stories for delivery according to the iterations of the project (iterations 2, 3, 4, and 5).  Examples of User Story Maps are covered during the lectures.

Additionally, produce a first draft of a list of Risks to the project.  Think about what risks there are in this effort.  Remember, you will be evaluated on the clarity and depth of your analysis of this and other deliverables.

Additionally, each member of the team is responsible for (in this first iteration) individually delivering one Essential Use Case  fleshed out from the model, along with dependent user stories.  These will detail user intentions as well as system responsibilities.  The verbage should be a simple, general, abstract, technology-free and implementation-independent description of one task or interaction of the system you envision.  Try your best to avoid any inherent assumptions about the underlying technology implementation and the user interface yet to be designed. This will come in later iterations.  Your use cases should be based on the intentions of a user in a particular context, rather than on the concrete implementation by which the purpose or intention might be carried out.  Your use case description should be both meaningful and descriptive from the point-of-view of users in some role or set of roles as they derive value from a system that will  embody the purpose or intentions underlying the user interaction.

You can find a quick index to UML diagrams here.

Further Reading:

http://www.mountaingoatsoftware.com/agile/user-stories

http://www.agilemodeling.com/artifacts/userStory.htm

http://agileatlas.org/articles/item/user-stories

http://www.alexandercowan.com/best-agile-user-story/

http://www.ibm.com/developerworks/library/ws-tip-essentialuse/

http://www.bced.gov.bc.ca/imb/downloads/essentialusecasestandards.pdf

Cockburn:  Writing Effective Use Cases