• 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