Introduction
- Introduce the issue with which the project deals, e.g. rising cost of health care, environment, … etc.
- Why is it an issue? supporting evidence; government statistics, news, magazine, or journal articles, etc.
Problem Statement
- The problem the project is supposed to solve.
- Why was the project conducted? why do we need it?
- Project Impact: potential impact of the project on society locally
and globally:
- Positive impact.
- Possible negative impact, due to misuse or unaccounted for risks.
Project Specifications
- Customer/User requirements, functional and non-functional.
- Technical specifications:
- Derived from and maps to customer requirements.
- Must be specific and testable. The product must meet all specifications.
- Examples: speed, response time, range, accuracy.
Teamwork
For each team member, list:
- Responsibilities: tasks managed by the team member.
- Contributions: tasks contributed to by the team member.
- Expertise: areas in which the team member is knowledgeable and often consulted.
Engineering Design
Completely document the project design. Use graphical illustrations as much as you can.
Architecture
- Sub-function identification
- System architecture and components
- Hardware vs. software components
- Functions of each component
- Interfaces between components
Design Decisions
- Examined design options
- Criteria for choosing the adopted design options
- Tradeoffs
Component Design and Implementation
- Off-the-shelf hardware and software components.
- Custom hardware and software components, and justification for developing custom components.
- Design and implementation of each component, e.g. flow chart, pseudocode.
System integration
- Testing
- Debugging
- Maintenance: how to keep the system operational
Issues
- Problems, faults, bugs, challenges. For each issue, list:
- The issue
- Attempted, unsuccessful resolutions
- Final resolution: solution, workaround, issue ignored
- Limitations and constraints of the design.
- Limitations and constraints of the implementation.
Engineering Tools and Standards
- Relevant available tools, and for what purpose, e.g. simulators, emulators, boards, development environments, IDEs, debuggers, software frameworks … etc.
- Used tools: which of the available tools are chosen, and why.
- Relevant standards, and for what purpose, e.g. communication protocols, storage formats, component interfaces, specification languages … etc.
- Used standards: which of the relevant standards are used, and why.
Conclusion
- What was learned
- What would you do differently in a similar project?
- Conclusions