Due (see your project schedule):
- Privilege Walk Project Assignment Schedule
- RevMetrix Project Assignment Schedule
- YCPHacks Website Project Assignment Schedule
This is a Team assignment.
Your Task
Your task is to demonstrate a minimal working version of your system.
For a “minimal” working system:
- 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 most important requirements of your system? You should be able to demonstrate to us that they are at least partially implemented, with appropriate navigation between the components of the system.
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 code. Also, do NOT demonstrate your system components in isolation - those components should be interacting with each other, at least on a basic level.
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). 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 Presentation / Demonstration
Each project team should plan to present for about 45 to 60 minutes. Larger teams (with multiple sub-teams) will likely go longer than that. There will likely also be an extensive question and answer period. All presentations need to be limited to less than two hours (including the question and answer period).
You should use some presentation software such as PowerPoint or Google Slides. Your slides should contain brief bulleted points and graphics (tables, diagrams, screen captures, wire frames) that provide overall context for your bullet points. Slides should not be a “wall of text”, and please avoid reading your slides or from a prepared script.
Your presentation should include the following elements:
- Provide a brief description of the project.
- Provide a high-level overview of your system architecture.
- Explain what tools/technologies you are using, and what role they play in your project development.
- Explain what parts of your design are implemented, and which parts remain to be implemented by referencing your updated UML diagram(s) and Database Schema.
- Demonstrate the system in action. Walk through your UI (and/or internal workflow) and explain the Use Case functionality it demonstrates.
- Discuss your automated test strategy, and run your unit tests to demonstrate your testing framework, and describe what is happening.
- 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 team to troubleshoot issues that arise during the presentation.
Grading
Your team grade will be determined as follows:
- Issue tracker is up-to-date with latest Use Cases and Issues: 10%
- Discussion of how this functionality is implemented in the underlying object model, including updated UML diagram(s) and Database Schema: 25%
- Important system functionality is demonstrated: 30%
- Demonstration of automated Unit Test framework: 10%
- Discussion of how system will be evolved to add remaining functionality: 10%
- Organization and quality of presentation: 15%
You will also be submitting Mid-Term Peer Evaluations a few days after your presentation. See the schedule for the date. You instructor will provide the form and further details to you.