Iteration
2 Details for MPCS 51210
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.).
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 2
Due: 5:00 pm, Monday, October 20, 2014
High Level Architecture and Initial Domain Model:
You will have one week to produce this second iteration. You are to work together as a team on these deliverables except when you are instructed to individually deliver something.
Considering the functional and technical requirements of the
system (to be named by the class as a whole), envision the high level
architecture and list of candidate classes.
Deliverable One: High Level Architecture
As a team, produce a high level architectural model of your proposed
solution. This model will be necessarily high level (you don't
know enough yet) and will be a rough sketch of your "current
architectural approach". You can depict this in terms of boxes
and lines showing interactions.
Deliverable Two: Preliminary List of Candidate Classes and CRC Cards
Based on the functional
requirements of
the system and your initial use cases and stories, this preliminary
list of candidate classes will contain
just enough information about the main domain entities, their major
attributes, and the relationships between these entities, depicted in
CRC cards. Your list and associated cards don't need to be
complete, they just need to
cover enough information to make you comfortable with the primary
domain concepts. You are to work collaboratively in producing
this list of candidate classes, whiteboarding various design
alternatives, using CRC cards and optionally analysis classes as
discussed in class.
Deliverable Three: Second Iteration of Use Case Model, User Story Map & Iteration Plan
Modify your team use case/story models to reflect the planning changes you encounter. Additionally, each member of the team is responsible for (as in the first
iteration) individually delivering one new Essential Use Case fleshed out
from the model, along with dependent user stories. These will detail user intentions
as well as system responsibilities. As in the first exercise, 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. 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.
Deliverable Four: Code
Your final requirement for this iteration is some
actual code and tests that investigate
some of the capabilities of a few important classes that you have
identified thus far. The purpose of this code is to become
comfortable with your coding environment, the source code management
system you will use, coding collaboratively (if not in physically
together pairs), and finally becoming comfortable with deployment of
code. This code is not intended to be the final version of any of
the classes you choose to implement. Feel free to stub out
whatever functionality you don't yet have time for or understand.
This first "code release" is intended to represent a "first stab" at
several collaborating and central classes.
You may find the following online resources helpful as you work together to produce these deliverables:
http://guide.agilealliance.org/guide/crc.html
http://agilemodeling.com/artifacts/crcModel.htm
http://css.dzone.com/articles/crc-cards-primer
You should also begin to contemplate your user interface. You may find the following sites helpful:
http://getbootstrap.com/
http://learn.shayhowe.com/html-css/
http://www.codecademy.com/
You can find a quick index to UML diagrams here.