Skip to article frontmatterSkip to article content

Milestone 2: Requirements Engineering and MVP Development

Utah Valley University

Overview

With your project foundation set, it’s time to define what your To-Do List app truly needs—like turning vague ideas into precise specs, just as engineering teams do before building. In this milestone, you’ll refine your feature list into structured user stories, create a Software Requirements Specification (SRS), model key elements with UML diagrams, select a Minimum Viable Product (MVP), and implement a simple Command-Line Interface (CLI) version in Python (e.g., basic task addition, listing, and completion). This draws on requirements engineering and modeling concepts, focusing on clarity and feasibility without advanced design or automated testing—validate manually to ensure it works as intended.

By the end of this milestone, you’ll have documented requirements, visual models, and a functional CLI MVP, ready for expansion in later phases. Continue using GitHub releases for versioning.


Learning Objectives

Upon successful completion of this milestone, you will be able to:


Tasks and Instructions

1. Team Meeting Execution

Align your team on requirements and MVP through focused discussions.

2. Refine Product Backlog

Transform your initial feature list into actionable, user-focused items.

3. Create SRS

Develop a formal Software Requirements Specification (SRS) to document your system’s intended functionality and constraints.

Tips: Treat the SRS as a dynamic contract between your team and your users. Keep it aligned with implementation decisions, feedback, and design iterations throughout the course.

4. UML Modeling

Visualize your system’s interactions and structure.

5. Define and Implement MVP

Focus on core functionality for a testable prototype.

6. Individual Reflections

7. GitHub Releases


Submission Checklist

Submit via Canvas:

A .md file containing:

Repository Documents


Evaluation Rubric (100 Points)

CriteriaPointsDescription
Team Meetings5Detailed, actionable minutes
Refined Backlog2015+ user stories, prioritized effectively
SRS15Comprehensive and well-structured
UML Modeling20Accurate use case, class, and sequence diagrams
MVP Implementation & Validation35Functional CLI with manual proof
Individual Reflections5Insightful responses

Penalties: 20% for missing progress check after first week.


Resources

Textbook

Beginner Friendly Resources

Tutorials

CLI Enhancement Libraries (Python)

Rich

A modern Python library for creating visually appealing command-line interfaces, supporting features such as tables, panels, markdown rendering, and syntax highlighting.

Typer

A lightweight library for building intuitive command-line interfaces using Python type hints. Built on top of Click, Typer simplifies CLI app development with automatic help generation and command parsing.

cmd2

An enhanced wrapper around Python’s built-in cmd module that adds advanced features like tab completion, command history, and argument parsing.


All Project Milestones

  1. Milestone 1: Project Initiation
  2. Milestone 2: Requirements Engineering ← Current
  3. Milestone 3: System Modeling
  4. Milestone 4: Advanced Features
  5. Milestone 5.1: Final Presentation
  6. Milestone 5.2: Final Submission
  7. Final Project Submission