Iteration
2
Details for MPCS 51205
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, Tuesday, November 6, 2018
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 (as a sketch or more formally as a UML Class or
Deployment Diagram) 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. Your architecture rendition
should include key components and their interactions.
Remember,
your goal here is to communicate your conceptual architecture.
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.