| ![]() |
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