Advanced level · Module 6: C++ Capstone Project · Lesson 1 of 5
Capstone Requirements and Design
Define the input format, outputs and quality requirements, then design the library and command-line interface.
In this lesson you will
- Specify inputs, outputs and non-functional requirements
- Design the library API and the CLI
Key concepts
data format specificationnon-functional requirementlibrary APIcommand-line interface
The lesson
Write down the log format precisely — field order, types, units and what counts as invalid — and the reports the tool must produce. Ambiguities found now are cheap to resolve.
Non-functional requirements matter for this tool: it must run on old laptops with limited memory, finish a month of data within a stated time and never crash on a malformed line.
Design a small library API (parse, validate, summarise, report) and a CLI on top of it with clear options such as --input, --output and --threads.
Step by step
- Write the data format specification.
- List functional and non-functional requirements.
- Design the library functions and types.
- Design the CLI options and usage text.
Practice activity
Submit the specification and design for milestone 1.
Expected result: An approved specification with measurable non-functional requirements.
Check your understanding
-
Give an example of a non-functional requirement for this tool.
Show answer
For example: process a month of data in under a stated time on a given laptop.
-
Why build the CLI on top of a library?
Show answer
So the logic can be tested and reused independently of the command line.
Taught live by an instructor — online or in person. Free course lessons are for self-study and do not lead to a certificate — see registration options.