The quest by E&P companies and their service providers to gain a competitive edge through technology is driving a demand for higher standards in engineering software. Time to market is a critical success factor and is often viewed as contradictory to higher standards and other factors such as limited resources and budgets. An optimum approach to engineering software development can successfully satisfy both time-to-market and budgetary requirements while continually raising standards.

This paper will discuss software practices that have proven effective during a full oilfield engineering software application development life cycle. Although the process activities - including specification, design, development, testing and deployment - were conventional, they were sequenced in a non-conventional manner and augmented with techniques such as risk management, use cases analysis, software modeling and configuration management.

The paper presents a case study that illustrates how these practices were used in a sand control engineering software development project to successfully design and remodel an existing horizontal gravel pack spreadsheet application into a standalone desktop application. The new application provides a user-friendly interface to design and analyze gravel transport for solids of varying density in Newtonian fluids. A computation engine was developed as a plug-in component to perform various computations during the gravel packing process. An object-oriented architecture and framework were designed and built to avoid having to rebuild every new application from scratch. The authors will explain how the system was built and extended to incorporate new capabilities and how adopting optimized development practices has enabled reuse of software components in new applications and increased both the standards and cost-effectiveness of engineering software development.


In the digital oilfield era, software solutions play an integral role in oilfield operations and decision making. Different software engineering methodologies have been adopted in various industries to improve the productivity and quality of applications.

Today, many software development projects still follow the sequential process of specification, design, development, testing and deployment, which is known as the waterfall model. This developnment model may work in developing simple, small-scope software applications. However, the systematic sequence creates rigid dependencies among the various activities, which makes the project less flexible and incorporatesto handle ever-changing requirements. It also is not as apt in identifying and rooting out system problems until much later in the development cycle, which in turn may cause overbudget and delay. The waterfall model does not work as well in the fast-paced and dynamic software development environment. The application of aAn iterative process has been applied to successfullywill be examined in this paper to design and remodel an existing horizontal gravel pack spreadsheet application into a standalone desktop application.

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