Goals
Through this project experience, the goal is to improve your
understanding of:
- The Unified Process (UP) and agile development methods,
- Object-oriented analysis and design principles, and
- Design patterns
The primary obstacles to this goal (IMHO) are time, apathy, and a
lack of real users... not necessarily in that order.
Logistics
The project is worth 20 points, 20% of your total grade for the
course.
The tentative schedule is:
- Iteration 1; 4 points; 1 week; due Saturday Oct 28
- Iteration 2; 8 points; 2 weeks; due Saturday Nov 11
- Iteration 3; 8 points; 1 week; due Sunday Nov 19
Deliverables
I will look for the following artifacts from your project:
Deliverables Table |
Discipline |
Artifact |
Inception Iteration 1 |
Elaboration Iteration 2 |
Elaboration Iteration 3 |
Business Modeling |
Domain Model |
|
s |
r |
Requirements |
Use-case model |
s |
r |
r |
|
Vision |
s |
r |
r |
|
Glossary |
s |
r |
r |
Design |
Design model |
|
s |
r |
Implementation |
Code |
|
s |
r |
[ s = start, r = refine ]
This table is almost a straight steal from Larman,
page 118. It describes the artifacts created through three
iterations of a UP/agile development methodology.
Iteration 1
As your project manager, I am happy to announce the
beginning of Iteration 1 (ITER1), the inception phase. Details:
-
ITER1 will end Saturday October 28th
-
See the Deliverables table above for what
artifacts are due
-
The deliverables for ITER1 will be worth 4
points
You should consult your notes and the Larman text
for elaboration on what your deliverables should look like. I would
pay especially close attention to Larman's guidelines that he is so
fond of passing on to you. This should help guide you in making
decisions about each artifact. I would also email me early, rather
than later, with your questions.
My short notes/comment regarding the ITER1
deliverables:
-
The Vision artifact shouldn't be
more than a paragraph or two.
-
For the Use Case Model, remember
that Use Cases are text. Do some together, preferably. Each team
member should then pick one use case to flush out in greater
detail. Toward the end of Iteration, the team should create a
Use Case UML diagram showing the use cases you have so far, the
actors, etc.
-
Your Glossary is just a
dictionary... nothing fancy. Use these terms liberally in your
other artifacts.
Iteration 2
Iteration 2 (ITER2) starts the elaboration phase and
commences Saturday October 28th.
The deliverables for ITER2:
-
ITER2 will end in 2 weeks on Saturday
November 11.
-
See the deliverables table for artifacts
of ITER2. Read on for a more detailed description of the Design
Model below.
-
Each team will have a 3-4 hour
pair-programming session in the spirit of Extreme Programming
(XP). I will be available on Saturday November 11th from 8:00 to
noon, if that time works for everyone. Select a small portion of
your design to implement and test. If you can't make the 11th,
then please email me and we'll try to arrange a different time.
Check out www.extremeprogramming.org
(or even better
www.extremeprogramming.org/rules.html ) and your notes to brush up on
your XP practices. In fact, maybe I could play the role of the
customer, instead of moping around and answering Java questions.
An ideal program chunk to work on would be something involving a
pattern application, eh, though that is not a requirement.
I think the Domain Model artifact is pretty well
flushed out in Larman's Chapter 9.
The Design Model is less clear. So, for your design
model, please include the following:
Artifact |
Description |
UML class diagrams |
A series of class diagrams showing the
classes that comprise your design and their
relationships. |
UML sequence diagrams |
Each team member should complete one UML
sequence diagram to show me that you can do it, then
move on. |
Technical notes |
A text description that ties your
technical documents together. Please include a special
section describing the patterns that you believe may be
applied to your design. Any discussion of how you got to
this point is needed for me to evaluate where you are. |
On each artifact, please indicate the roles of each
team member, either as creator of reviewer.
What will I be looking for?
- When in doubt, follow Larman's nice
guidelines.
- When in doubt about Larman, then email me.
- Your glossary terms should be consistent
throughout all artifacts... use cases, domain model, design
model, code!
- Artifacts are for communication, not
documentation. So:
-
Hand-drawn diagrams are preferred in
our current agile state. Yes?
-
Use your glossary terms throughout
-
You can use your technical notes to
communicate special cases or frustrations to me, your
project manager
I will meet with each team at the end of ITER2,
where you can walk me through the current state of your project.
Again, the 11th would be ideal, but we'll see. I can provide copying
services on the 11th for teams that have hand-drawn stuff.
If something is missing or confusing, then please
email me. Otherwise, RUN!
thanks... yow, bill
Iteration 3
For iteration 3 (ITER3), we will use two guides:
Larman Chapter 40 and the
www.extremeprogramming.org web site. Here are some specific,
interesting links:
I'll have some handouts from these sources for
emphasis as well.
As project manager, I will have an iteration
planning meeting with each team when you come in for your pairs
programming on Saturday. We will:
-
Review the current suite of use cases and
target which ones we feel need "improvement" or elaboration. Any
artifact may be up for revision as the team see fit.
-
We'll select one or two use cases to
implement in this iteration.
-
Each team will then decide how the work
from use case to working, tested code will happen... as in
iteration 2. You'll want to flesh out a UML class diagram for
the new stuff. You don't have to do pairs programming for this
iteration, but you can if you like. Please use the other aspects
XP methodology, like unit test first, where you can.
-
I'll ask that you try and apply at least
one pattern in your solution this time. Identify the pattern in
your code documentation please. Speaking of documentation...
please continue using Javadoc.
-
Please integrate your pieces of code into
a single "system" along with your unit tests.
-
Email me the final decisions on what will
be done on iteration 3 for your team... the specific of who's
doing what over the next week.
Iteration 3 is the end of the road for our project,
alas. I'll ask that the final versions of all your documents and
code be on the k: drive by the deadline. Please leave me lots of
README files and descriptions so that I can understand what you are
doing. You will be graded on the final state of all your artifacts
and your code.
Notes: Oct 7, 2006
We'll pair off and each team will complete a separate project.
I will do my "Graphical Programming Tutor" idea in class as an
example to demonstrate concepts.
Today we'll get the blog going for everyone (or die in the attempt).
There we'll banter project ideas. I'll start the fire.
Next week I'll firm up the specifics of what I want you to deliver. A
sneak peek:
- Use an agile development approach (where possible)
- I hedge my bets because our circumstances (meeting only
every other week) are work against us. We won't go all the way down
to code, and I won't require that you scurry up users. Sigh.
- Deliverables? I will whittle Larman's RUP down to what I
expect you guys to produce. But we will start with a requirements
statement, then use cases, then domain model, then CRC cards, and so
on, until you can create some "nice" class diagrams. I believe that
UML class diagrams will be the endpoint of this particular journey.
There is more "coming soon."
|