This is a Team assignment.
Your Task
Your task is to demonstrate a minimal working version of your system.
By “minimal”, we mean that
- Your minimal working system should implement the most important classes in the core object model, and test them comprehensively using unit tests
- What are the 2 or 3 most important requirements of your system? You should be able to demonstrate to us that they are at least partially implemented.
For example, let’s say you’re developing a 3-D game which eventually will support a full 3-D environment with walls, obstacles, monsters, etc. A minimal working system might just implement a flat plane with a few static cubes as obstacles, allow the player to move around, but not implement features such as collision detection, enemy AI, etc.
Extremely important: whatever functionality you demonstrate should be implemented in your core object model classes. We do not want to see a hacked-together “prototype” that looks good but internally is spaghetti.
Because this milestone involves implementing several of your most important use cases or user stories, you will need to make sure that your use cases/user stories are documented. Make sure that your project’s issue tracker has an issue for each use case, and each use case issue has a reasonably detailed textual description of the use case. You can write your use cases as full-blown use cases (see Chapter 9 of UML Distilled), or you can write them as user stories (see Extreme Programming Explained). The important concern is that you document the important functionality of the system from the perspective of the user. You will not receive full credit for implementing use cases unless they are documented.
The Demonstration
Your group should plan to present for 12 minutes. Your presentation should include the following elements:
- Demonstrate the system in action. If you have a UI, show it.
- Run your unit tests to demonstrate your testing framework, and describe what is happening.
- Explain what parts of your design are implemented, and which parts remain to be implemented by referencing your UML diagram. Briefly talk about how you plan to evolve the system to implement the remaining functionality.
Please do a dry run before class. Because of the limited amount of time we have in class, we can’t wait for your group to troubleshoot.
Important: because of the large number of teams we have this year, we will be splitting the class into two sections, each consisting of three project groups. One section will present in KEC 118, and the other will present in KEC 119. We will let you know in advance which room you will present in.
Grading
Your grade will be determined as follows:
- Use cases are documented as issues: 10%
- Important system functionality is demonstrated: 50%
- Demonstration of Unit tests: 15%
- Discussion of how this functionality is implemented in the underlying object model: 15%
- Discussion of how system will be evolved to add remaining functionality: 10%