DocumentCode
754680
Title
On the Multiple Implementation of Abstract Data Types Within a Computation
Author
White, John R.
Author_Institution
Xerox Palo Alto Research Center
Issue
4
fYear
1983
fDate
7/1/1983 12:00:00 AM
Firstpage
395
Lastpage
411
Abstract
A fundamental step in the software design process is the selection of a refinement (implementation) for a data abstraction. This step traditionally involves investigating the expected performance of a system under different refinements of an abstraction and then selecting a single alternative which minimizes some performance cost metric. In this paper we reformulate this design step to allow different refinements of the same data abstraction within a computation. This reformulation reflects the fact that the implementation appropriate for a data abstraction is dependent on the behavior exhibited by the objects of the abstraction. Since this behavior can vary among the objects of a computation, a single refinement is often inappropriate. Accordingly, three frameworks are presented for understanding and representing variations in the behavior of objects and, thus, the potential for multiple implementations. The three frameworks are based upon: 1) a static partitioning of objects into disjoint implementation classes; 2) static partitioning of classes into implementation regions; and 3) dynamic partitioning of classes into implementation regions. These frameworks and analytic tools useful in investigating expected performance under multiple implementations are described in detail.
Keywords
Abstract data type; abstraction refinement; data abstraction; multiple implementations; performance analysis; software design; software engineering; Computer science; Costs; Design methodology; Encapsulation; Packaging; Performance analysis; Software design; Software engineering; Software maintenance; Software systems; Abstract data type; abstraction refinement; data abstraction; multiple implementations; performance analysis; software design; software engineering;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.1983.234776
Filename
1703074
Link To Document