Milestone 4: Testing and Refactoring¶
Milestone 4: Design Patterns and Feature Integration¶
Overview¶
Imagine your To-Do List app as a basic skeleton—now it’s time to add the muscles and joints that make it flexible and powerful, like how fitness apps evolve from simple trackers to personalized coaches. Milestone 4 brings the excitement of enhancement, motivated by how developers at companies like Uber use patterns to handle complex features without reinventing the wheel, saving time and reducing errors. In this dynamic phase, relatable to upgrading a basic planner notebook to a smart digital assistant that anticipates your needs (e.g., auto-sorting tasks for a harried parent or remote worker), you’ll select 3-7 backlog features (like search or tagging), integrate them with prior MVC and SOLID, and apply 3-5 design patterns (e.g., Observer for real-time updates, Strategy for customizable sorting) to make your app adaptable and efficient. Updating the SRS with pattern details and refining the class diagram keeps everything synced, like fine-tuning a recipe after tasting to perfect the flavor.
By the end, your project will flex with new capabilities and clean design, delivering that “wow” moment of seeing a static app become dynamic, empowering you with skills to build resilient software that scales in real-life scenarios like growing startups or personal productivity tools.
Learning Objectives¶
Upon successful completion of this milestone, you will be able to:
Select and apply design patterns to solve problems in your To-Do List app.
Implement and integrate features from backlog with prior architecture/principles/UI.
Update project documents (SRS with pattern details, refined class diagram, Zenhub backlog).
Develop tests for new features and patterns.
Reflect on design enhancements from patterns/principles.
Tasks and Instructions¶
1. Feature Selection and Implementation¶
Choose 3-7 backlog features (e.g., search, reminders).
Code in
/task_manager_app/src
, integrating with MVC/SOLID/wireframes.
2. Design Patterns Integration¶
Adopt 3-5 patterns (e.g., Observer for updates, Strategy for sorting).
Document in
/task_manager_app/docs/patterns.md
with diagrams/explanations.Update SRS (template.md) with pattern sections; refine class diagram in
/task_manager_app/docs/uml
.
3. Testing¶
- Add 10+ unit/integration tests for features/patterns in
/task_manager_app/tests
.
4. Tool Updates¶
Update Zenhub backlog with pattern/feature tasks; link to commits.
Enhance GitHub README with feature/pattern overviews.
5. Team Meeting Execution¶
Hold meeting to review patterns/features; assign actions.
Document in
/task_manager_app/docs/meeting_minutes/milestone_4/week_1.md
.
6. Individual Reflections¶
- Submit a
.md
file via Canvas with release/Zenhub links and reflection answers (see Submission Checklist).
7. GitHub Releases¶
Progress Check (One Week): Create a minor release (
v3.1
, taggedmilestone4-progress-v3.1
) with feature/pattern drafts. Submit URL via Canvas. Note: Missing this incurs a 20% penalty.Final Submission (Two Week): Create a major release (
v4.0
, taggedmilestone4
) with all linked in notes and changelog (e.g., “Added Strategy pattern to sorting; refined class diagram”). Submit URL via Canvas.
Submission Checklist¶
Submit via Canvas:¶
A
.md
file containing:GitHub release link (e.g.,
https://github.com/user_name/project_name/releases/tag/v4.0
)Zenhub board link (e.g.,
https://app.zenhub.com/workspaces/...
)Reflection answers:
Contribution to the project (50–100 words): Describe your specific contributions (e.g., pattern implementation, feature coding).
Rating team dynamics (1–5 scale, with justification, 50 words): Rate collaboration; explain.
How did design patterns enhance your code from previous milestones? (50–100 words): Discuss improvements.
Feedback/comment about this milestone (50 words): Suggest improvement.
Repository Documents¶
All documents must be checked into the GitHub repository under /task_manager_app/docs
and linked in release notes. Use checkboxes to confirm completion:
Feature Report (
/task_manager_app/docs/features.md
)- Selected features, pattern rationale.
Patterns Documentation (
/task_manager_app/docs/patterns.md
)- Diagrams, explanations; updated SRS with patterns.
Updated UML (
/task_manager_app/docs/uml
)- Refined class diagram.
Meeting Minutes (
/task_manager_app/docs/meeting_minutes/milestone_4/week_1.md
)- Attendance, agenda, decisions, action items.
Evaluation Rubric (100 Points)¶
Criteria | Points | Description |
---|---|---|
Feature Implementation | 25 | 3-7 features integrated effectively |
Design Patterns | 30 | 3-5 patterns applied, documented/diagrammed |
Document Updates | 20 | SRS/patterns added, class diagram refined |
Tests & Tool Updates | 15 | Tests for features, Zenhub/README updated |
Meeting Minutes | 5 | Detailed notes |
Individual Reflections | 5 | Insightful responses |
Penalties: 20% for missing progress check.
Resources¶
Textbook¶
- Chapter 6: Design Patterns (Factory, Singleton, etc.)
Tutorials¶
Best Practices¶
Update Zenhub with pattern tasks for traceability.
Use commit messages like “Integrate Strategy pattern for sorting”.
Ensure releases have detailed changelogs.
Navigation¶
- Previous: Milestone 3: System Modeling
- Next: Milestone 5.1: Final Presentation