Overview
The Simulation Assistant uses a simple version of the model-view-controller (MVC) design approach to separate the underlying data (model), how the data is represented (view), and how actions are performed (controller).
At the highest level, the Simulation Assistant, you only create a model with simple data (a derivative of the Java class SimulationAssistant). The view and the controller are handled internally.
For an individual task, the model (the Task class), specifies the type of view (the Content class). The model also specifies the controller (a derivative of the TaskController class) to represent and control itself at runtime. The view and controller are instantiated when the Task is created and displayed. For a task, you almost always create a model (a derivative of Task) and a controller (typically a derivative of FunctionTaskController). The type of view is specified using one of the pre-existing Content classes containing or pointing to some XHTML.

As the API was developed to maximize coding flexibility, the model, view, and controller can be extended in a number of ways. This development section emphasizes the expected approach.
For a rudimentary Simulation Assistant, see the Hello World example at:
[STAR-CCM+_Installation] > star > lib > java > platform > examples > assisant > HelloWorld > src
See also the tutorial Simulation Assistant: Internal Flow Assistant.