CSSE 220: Team Project
The primary aim of the team project is to learn the use of key
software engineering tools. A secondary aim is to learn teaming
skills. As such, the grading scheme will focus on those two
activities.
General Project Specifications
- Work on this project in teams.
- The project is specified in Project 12.2 on page 554 of our
book. It is a tic-tac-toe game
- As an additional requirement, you are asked to provide a GUI
enabling users a convenient way to play the game.
- A further requirement makes your life easier when it comes to the
learning component: Save loosing combinations to a file, so that when
you restart the software, it does not have to relearn everything it
had before.
Design Documents
You must use the object-oriented design technique discussed in the
book and in class to generate CRC Cards, user stories, screen layouts
and a UML Class Diagram for your project. Name your class with the
main()
method Main
.
Before brainstorming candidate classes, you will find it helpful
to do two things. First, decide as a team which features sound most
interesting to do and which you'll want to do first (cycle 1). Second,
make some sketches of potential screen layouts for your project.
You must draw your UML Class Diagram using UMLet.
Short development cycles are a key feature of Extreme
Programming. This is especially useful for projects where the
development team—that’s you—is unfamiliar with the
problem to be solved. At the start of each development cycle, the team
negotiates with the customer on the work to be accomplished during
that cycle.
The customer suggests user stories to be
completed. These are short, often one sentence, descriptions of what
the user would be able to do with the software. For example,
User launches program and sees a blank drawing area and
some buttons representing actions that could be taken.
This story doesn’t say anything about the buttons actually
working, so that is not part of this user story. A user story for a
button working might be something like,
User clicks
the Rectangle button and can then draw a rectangle in the drawing area
by clicking and dragging the mouse.
User stories are powerful in two important ways. First, they make
it very clear how to test whether the story has been
completed. Second, they keep the development team focused on the
importance of meeting the needs of the user.
After the customer has suggested some user stories for the cycle,
the development team will decide whether it is reasonable to complete
them all in the time available. If not, the customer will withdraw
some of the proposed stories until an achievable set of stories is
agreed upon.
For this assignment you’ll play both the customer role and
that of the development team. As a customer, the number of features
completed will help determine your grade (and how much fun you have
with the project). As a development team, you’ll have to do the
work to implement the user stories.
Each user story should have an estimate in ideal development time
(likely between 30 mins and 4 hours). Calculate the total estimated
time for this cycle and include it at the end of the list.
Teaming
Please keep meeting minutes for each team meeting you hold. In the
minutes record who is present, which decisions were made and who is
responsible for them and which
issues were put in the issue bin. At the next team meeting, go through
the minutes and ask each person to give an update on the items they
were responsible for. Also, decide which issue bin items to resolve or
leave in the issue bin.
Milestones
- Wed. October 20: First round of CRC cards and user stories. Turn in
hard copies so we can give you immediate feedback.
- Tue. October 26: Second round of CRC cards and user stories. First round of UML
class diagram. Turn in hard copies so we can give you immediate feedback.
- Fri. October 29: Third round of CRC cards and user stories. Second
round of UML class diagram. Submit them to the appropriate drop-box on
Angel.
- Fri. October 29, AC. Specifications for cycles 1, 2, and 3.
- Tue. Nov.2: Cycle 1
- Fri. Nov.5: Cycle 2
- Tue. Nov.9: Cycle 3
- Wed. Nov. 10: Presentation
- Fri. Nov. 12: Final deliverables
- Fri. Nov. 12: Team Evaluation and Individual Reflection. I will use the survey results to help decide
whether to give different assignment scores to different team
members. Perhaps most importantly, the survey results will help me
identify where you are doing well as a teammate and where you can
improve. Along with this is an individual reflection. It helps you
introspect on what went well in the project and how you can do even
better on your next project. You will be graded on the thoughtfulness
of your answers.