Engineering
Team HULKs wants to sustain high quality and correct software for playing soccer at RoboCup. This requires common software engineering skills that are briefly covered on this page. Each feature that lands in the software in the end has a purpose and should fulfill the purpose well. The purpose is described with requirements which allow to design a solution that meets the requirements. The solution can later be implemented, tested, and integrated into the software.
The section "Tasks in large scale projects" gives a rough outline over the software engineering duties. Team HULKs is interpreting this in the following ways:
- Requirements:
- What problem do you want to solve?
- Is that problem worth solving? Cost vs. benefit, measure to acquire facts
- What is required?
- What is not required?
- Design:
- What components need to be touched/created?
- What properties have the components?
- What properties need to be added/modified/removed?
- How do the components interact?
- What data structures and algorithms should be used?
- What is the implementation plan?
- How can this design be tested?
- Construction:
- Design is implemented
- Tests are written during development to ensure correctness
- Measure
- Evaluation:
- Are the requirements fulfilled?
Each phase ends with a review of the artifacts, by a non-author.