IBM ILOG Solver User's Manual > Developing Solver Applications > Developing Applications

When you are developing an application, of course, you are concerned with a great many more parts than simply the solution to the problem. No doubt you also have to handle such aspects as the user interface, connections to databases, networking with other systems, and so forth. In short, developing an application with Solver is just one activity among many others relevant to a highly technical project.

Perhaps your first difficulty is to define the objectives of a given application. In as much as these objectives may evolve during development, they may prove harder to achieve than predicted.

For those reasons, we recommend an incremental method of development. With respect to Solver an incremental development cycle entails these phases:

  1. Describe the problem.
  2. Specify the objectives of the application.
  3. Design a model and prototype the application.
  4. Implement and optimize the application.

Obviously, these phases are not entirely independent of one another. Developers find themselves returning from one phase to another as they work. In fact, the prototyping phase frequently calls the entire cycle into question as the end-user reacts to the initial model, discovers that some constraint has not yet been formulated, and brings the cycle back to phase one; often the end-user is wishing at the same time to be able to modify a solution interactively and thus hoping to return to the specification phase as well. Even phase 4, when the application is exercised with real data, can call the entire design into question if performance proves poor. In short, a developer can expect several loops among these phases throughout a typical development cycle.

This chapter acknowledges the kinds of difficulties a developer encounters while creating an application that exploits Solver, and it offers a few hints for avoiding or overcoming these difficulties.