Iteration 0
Introduction
If you review the diagram on pages 484-5 of OOA&D, you'll note
that some things need to be done before
you start iterative development. These activities, along with
a few others to help you get ready to design and code, will be the
focus of the Zeroeth Iteration. My intention is that you will not write any code
during this iteration.
Activities
Here's what I expect you to do during the Zeroeth Iteration. You won't
necessarily do them in this order, and some you will probably visit
more than once (e.g., your feature list). Use your best
judgment.
We have a project workshop scheduled for Friday of Week 6. I will be away during Week 7.
I will have email access during this week, but it will be
intermittent---consider yourselves to have a fair bit of latitude to
get things done. We will catch up after fall break.
Make sure your group has times to meet. Some of these activities
parallelize well (e.g., you might not all need to meet with each
customer, and you can each think about which features are
architecturally significant), but you will need to make decisions
together. (Fortunately, you will have class time during Week 7 to hash
things out. Don't make other plans!)
Preparation
- Choose a name for your project.
- Check out your new Subversion repository. (I will provide
you with a URL.) In your repository:
- Create three directories: trunk, branches, and tags.
- In the trunk directory, use
tg-admin quickstart to start a new TurboGears project.
- Once this is done, each team member should check out the project from the trunk directory. (Remember the Subversion work cycle!)
- Decide
what tools you will use for keeping track
of design documents (such as your feature list). In an ideal world,
each team would have its own workroom and whiteboards that were never
erased, but this isn't an ideal world.
You will have the
following places (real and virtual)
available to you:
- a project binder in SCI 3819
- part of a tackboard in SCI 3819
- your Subversion repository
- The CSWiki
Remember that diagrams will probably need to be kept on paper (unless you like taking photographs of whiteboards).
Design & analysis
- Develop a feature list.
- Develop use case diagrams.
- Meet your customers and/or users to get
feedback. If a user is not a
specific person but a group of people (e.g., leaders/secretaries for
campus groups), find a few representative users to talk with. Let
me know ASAP if you would like me to introduce you to someone.
- Break up the problem into modules of functionality.
- Decide which features are most architecturally significant,
and why.
- Figure out what questions you will need to answer to make
architectural decisions.
- Perhaps begin to answer your questions.
(For example, you might meet with your customer again or research a
TurboGears capability online. You may write a small amount of code here
if you want to conduct some controlled experiments with unfamiliar
aspects of your tools.) It's also OK to plan on answering these
questions during Iteration 1.
- Decide you will start off with feature- or
use-case-driven development.
Deliverables
Here's what I expect you to turn in, and how. The deadline is before you leave for fall break.
In your Subversion repository, I should find the stuff I asked you to create above.
On your tackboard or in your project binder, I should find the following:
- The name of your project.
- Contact information for your customers. (I don't plan to contact them, but I'd like to know that you can!)
- A feature list.
- A use case diagram.
- A module diagram.
- A plan for your first iteration, in which you will make
architectural decisions and complete at least one use case or
significant feature. (This plan should take into account your decisions and questions from above.)
- A high-level plan addressing which features or use cases you will
address in Iterations 2 and 3. (I expect to adjust this later.)
Email me with 2-3 times
your group can meet for 30-45 minutes during the M-W after fall break.
Meeting with you will be a high priority for me, so you can suggest a
meeting during office hours OR any time that is empty on my schedule (including 5:15). There is no faculty meeting that week.
The primary goal of the meeting is for me to give you feedback on your plan for the first iteration.
Janet
Davis (davisjan@cs.grinnell.edu)
Created October 7, 2007
Last revised October 10, 2007