page 1  (11 pages)
2to next section

1 of 11

A Framework-Based Environment

for Object-Oriented

Scientific Codes1

Robert A. Ballance

Kachina Technologies, Inc. &

The University of New Mexico

Anthony J. Giancola

Kachina Technologies, Inc.

George F. Luger

Timothy J. Ross

The University of New Mexico

Abstract

Frameworks are reusable object-oriented designs for domain-specific programs. In our estimation, frameworks are the key to productivity and reuse. However, frameworks require increased support from the programming environment. A framework based environment must include design aides and project browsers that can mediate between the user and the framework. A framework-based approach also places new requirements on conventional tools such as compilers. This paper explores the impact of object-oriented frameworks upon a programming environment, in the context of object-oriented finite element and finite difference codes. The role of tools such as design aides and project browsers are discussed, and the impact of a framework-based approach upon compilers is examined. Examples are drawn from our prototype C++-based environment.

1.0 Frameworks

Object-oriented scientific programming aims to harness the power of object-oriented design and representation to the task of scientific computing. The goals of our work are:

1. To provide useful computational tools to scientists and engineers, so that they need not become programmers,

2. To enhance user productivity via component and design reuse,

3. To support a spectrum of computer architectures, including sequential, vector, and massively parallel processors, and

4. To reclaim any computational costs introduced while satisfying the first three goals by developing and applying new translation technology to the resulting programs.

Reusable designs, implemented as object-oriented frameworks [14] [15] [18], are key to object-oriented scientific programming. A framework describes the basic elements used to create a general solution. But a framework is not just a collection of design guidelines or libraries; it is an integrated collection of components and interfaces that is designed to be easily extended into a working code. By choosing among various particular components, and by

1Work supported in part by the Air Force Phillips Laboratory under Contract F29601-91-C-0074 and by the University of New Mexico College of Engineering.

The authors may be contacted at Kachina Technologies, Inc., 1420 Carlisle Blvd., NE, Suite 202, Albuquerque, NM 87110. By email: [email protected].

Report No. CS 93-7, Department of Computer Science, The University of New Mexico, 87131