Development process in vogelvlucht:

  1. Define use cases (or user stories) and non-functional requirements
  2. Start with the most important use cases. Start with the "happy day flows" where everything goes right.
  3. Look for functional components or classes to divide the work that has to be done (divide and conquer!)
  4. Add implementation details
  5. Write and test the code

 

 

Refine requirements stepwise all the way down the development process

It is extremely important that requirements are worked out gradually from abstract high level requirements to concrete code. They have to go through the phases Requirements, Analysis and Design first before the can be implemented. Each phase ends up with milestones they have to be evaluated by stakeholders and users.

 

Break down complexity by addressing classes with responsibilities

 

Class Responsibility
Board Orchestration of user requests 
House Orchestrating of sudoku rules
Cell Managing digits and pencil marks

 

During Design the following classses are added:

Class Responsibility
Location Managing navigation
Candidates Bitwise operations