Chapter 18. Development
18.1. Methodology Overview
The diagram below explains the overall structure of the OptaPlanner source code:

In the diagram above, it’s important to understand the clear separation between the configuration and runtime classes.
The development philosophy includes:
- Reuse: The examples are reused as integration tests, stress tests and demos. The documentation images are reused as slides.
-
Consistent terminology: Each example has a class
App(executable class),Dao(Data Access Object) andPanel(swing UI). -
Consistent structure: Each example has the same packages:
domain,persistence,app,solverandswingui. - Real world usefulness: Every feature is used in an example. Most examples are real world use cases with real world constraints, often with real world data.
- Automated testing: There are unit tests, integration tests, performance regressions tests and stress tests. The test coverage is high.
- Fail fast with an understandable error message: Invalid states are checked as early as possible.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.