Defining and implementing a scientific analysis software architecture

  • Authors:
  • William Ingram, III;Rodney D. Brown

  • Affiliations:
  • ExxonMobil;ExxonMobil

  • Venue:
  • OOPSLA '02 OOPSLA 2002 Practitioners Reports
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

The computing employed in oil and gas exploration is predominately scientific, resulting in a variety of data analysis applications. Although the analytical domains vary greatly (e.g., seismic processing,, geologic modeling, engineering facilities design, etc.), the requirements that shape their software architectures are similar. Such analysis systems are rarely illustrated in the software analysis/design and architecture literature.We describe a product line software architecture,SALSA (Scientific Analysis System Layers Architecture), developed at ExxonMobil's Upstream Technical Computing Organization. Key forces that led to the SALSA include the data analysis process itself, the need to access data stored in a variety of formats, integrating our analysis tools with third party tools, and isolating our codes from external changes. Although derived from Layers software architectures described in the literature, we have elaborated SALSA to identify objects within each layer specific to an architecture focussed on analysisSALSA is a product of a software development cultural change instituted over the past few years at ExxonMobil. We adopted a vision of "architecture-centric" software development. This vision, supported at the upper management and grassroots levels, began with a software architecture team to steward our architectures; and a career development program including OOAD training for all developers and a biweekly "School of the Architects" seminar series. Thus far, the results include a way of thinking about our main product, captured inSALSA; several product-line architectures based onSALSA; a beginning of an architecture-centric reuse effort, also based on SALSA; and a visible change in the way we view and approach software development.