This paper describes a general code management system which allows an exhaustive history control of all the software units and associated knowledge files. Practical examples related to its application to reservoir engineering software, mainly composed of a multipurpose reservoir simulator, are given.


Unmanaged inflation of the number and complexity of software applications associated with the multiplication of various operating conditions may lead to dramatic productivity losses in all the connected activities and even, in the worst case, to uncontrollable use.

Such situations are usually characterized by the well-known typical problems:

  • absent or insufficient information, informal communication leading to dramatic confusion

  • manual control of the software evolution

  • incoherence between applications which seem tobelong to the same baseline (incompatible interface, etc.)

  • industrial software specifications always destabilized by the integration of new developments

  • general confusion between maintenance and development activities.

From an industrial point of view, they imply abnormal costs on ALL connected activities and need to be corrected by a rigorous approach.


In order to get a positive answer to the above mentioned problems, a management system fully linked with the classical software tasks has to be implemented.

Fundamental objectives of this system are :

  • to allow an exhaustive control of the history of an application software, that means to be able to :

    • *

      store, in an exhaustive but minimal way, any software evolution which is significant from an industrial point of view

    • *

      generate any software unit, at any step of its history

  • to manage all the knowledge dealing with the software history and use. This implies :

    • *

      an exhaustive storage of all the useful information

    • *

      the availability of tools dedicated to the knowledge communication between the software users (software deficiency report, release note, etc.)

  • to improve the software reliability by a global approach, leading to the availability of :

    • *

      general libraries which can be effectively used by different models (duplication always means weakness)

    • *

      global test procedures in order to get coherent baselines.

P. 359^

This content is only available via PDF.
You can access this article if you purchase or spend a download.