Journal of Computing in Civil Engineering · 1992 · 31 citations · 12 references
ComputingComputer ScienceDesign AutomationProgramming LanguagesSoftware EngineeringData AbstractionData RepresentationData TypesObject-oriented DesignObject-oriented ProgrammingSoftware DesignAbstractionAbstraction MechanismsObject-oriented Language Design
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.
12
A specifier's introduction to formal methods
Bruce M. Irons, Syed Ishtiaq Ahmad, Ted Belytschko · Journal of Applied Mechanics · 1980 · 382 citations · Full text
Common Lisp Object System specification
Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel et al. · ACM SIGPLAN Notices · 1988 · 381 citations
Keynote address - data abstraction and hierarchy
Barbara Liskov · 1987 · 267 citations