Data Abstraction in Engineering Software Development

Large-scale engineering analylsis programs are among the most difficult to develop, maintain, and extend. The translation of a few pages of classical mathematics turns into tens of thousands of lines of nontrivial code. This paper discusses the role of data abstraction in engineering program develop...

Full description

Saved in:
Bibliographic Details
Published in:Journal of computing in civil engineering Vol. 6; no. 3; pp. 282 - 301
Main Authors: Baugh, John W, Rehak, Daniel R
Format: Journal Article
Language:English
Published: Reston, VA American Society of Civil Engineers 01-07-1992
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Large-scale engineering analylsis programs are among the most difficult to develop, maintain, and extend. The translation of a few pages of classical mathematics turns into tens of thousands of lines of nontrivial code. This paper discusses the role of data abstraction in engineering program development, where data, instead of processes, are used to decompose a program into parts. Data abstraction improves the modularity of a program by encapsulating implementation details and by providing a clear delineation between design and implementation. We describe a library of finite element data types that have been designed with data abstraction in mind. Using this approach, multiple, representations and algorithms coexist, with proper selection made at run time. In addition, space-time trade-offs can generally be postponed without impacting other parts of the program. Throughout the paper, we address design issues with careful specifications of program behavior and implementation issues using object-oriented languages, which support data abstraction as well as polymorphism and inheritance.
Bibliography:ObjectType-Article-2
SourceType-Scholarly Journals-1
ObjectType-Feature-1
content type line 23
ISSN:0887-3801
1943-5487
DOI:10.1061/(ASCE)0887-3801(1992)6:3(282)