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; government statistics, news, magazine, or journal articles, etc.
- Briefly describe how the project deals with the issue.
Problem Statement
- The specific 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: 5 m/s, response time: 10 ms, range: 2 m, accuracy: 5% error.
System 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.
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
- Interfaces between components (hardware and software).
- Component interaction and related interfaces.
Design Decisions
- Examined design options at both levels: system and components.
- Criteria for choosing the adopted design options.
- Tradeoffs.
Design Evolution
How and why the system evolved from the initial design to the final design.
Testing, Analysis, and Evaluation
- Testing methodology and results: how did you determine whether the system is operational and meets all requirements and specifications.
- Debugging: how did you find sources of errors.
- System analysis and evaluation: performance, efficiency, reliability, security – as applicable (use graphs).
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.
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.
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.
Conclusion
- What was learned.
- What would you do differently in a similar project?
- Conclusions.