The major cause of the increasingly higher software development costs resides in the lack of reuse of existing technology in new applications combined with the costs of maintaining existing codes. Related to these considerations, Computer Aided Software Engineering (CASE) was introduced in the software industry as a methodology aimed at improving the software productivity. Some of these concepts have been used in the development of a modular software architecture to simulate completion operations, such as cementing, gravel packing, and coiled tubing. The open architecture was designed to host, at a minimal cost, incremental developments in the physics of the underlying processes as well as major modifications. The methodology of the development and the choice of the software technology are discussed: this includes the language specifications, the steps in documenting the project and the actual implementation. Compromises between "quick prototyping" and maintenance considerations/code performance have often to be made. The criteria for selecting a given strategy are discussed in terms of software metric.

You can access this article if you purchase or spend a download.