Introduction
- Introduce the general issue with which the project deals, e.g. rising cost of health care, environment, etc.
- Why is it an issue? supporting evidence; statistics, news, articles, etc.
- Briefly describe how the project deals with the issue.
- Project Impact on society locally and globally:
- Positive impact.
- Possible negative impact, due to misuse or unaccounted for risks.
Problem Statement
The specific problem the project is trying to solve.
Background
- Related terminology, concepts, and technology.
- Existing solutions, e.g. products, research.
Requirements and Specifications
- Functional user requirements.
- Non-functional user requirements, e.g. response time, power consumption, cost, size.
- Technical specifications:
- Derived from and maps to customer requirements.
- Must be specific and testable. The product must meet all specifications.
System Design
Completely document the project design. Use graphical illustrations as much as you can.
Solution Concept
- General approach of solving the stated problem.
- Description of used/developed algorithms.
- Alternative approaches and algorithms, comparison, and selection criteria.
- Sub-function identification.
Architecture
- System architecture and components.
- Alternative architectures, comparison, and selection criteria.
- Hardware vs. software components.
- Functions of each component.
Component Design
For each hardware and software component:
- Custom vs. off-the-shelf, and justification for developing a custom component.
- Off-the-shelf components: alternatives, comparison, and selection criteria.
- Custom components:
- Design and implementation, e.g. flow chart, state machine, pseudocode.
- Component design alternatives, comparison, and selection criteria.
System Integration
- Standard vs. custom interfaces between components, and justification for developing custom interfaces.
- Specification of custom interfaces.
- Component interaction, e.g. sequence diagrams.
Progress
For each task, whether completed, in progress, or not started yet, list:
- Owner.
- Description.
- Timespan: when does it start and when is it completed.
- Status: in progress, completed, waiting for another task (specify), delayed (why), … etc.