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...
Saved in:
Published in: | Journal of computing in civil engineering Vol. 6; no. 3; pp. 282 - 301 |
---|---|
Main Authors: | , |
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!
|
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) |