• DocumentCode
    780562
  • Title

    Architectural tradeoffs for a meaning-preserving program restructuring tool

  • Author

    Griswold, William G. ; Notkin, David

  • Author_Institution
    Dept. of Comput. Sci. & Eng., California Univ., San Diego, La Jolla, CA, USA
  • Volume
    21
  • Issue
    4
  • fYear
    1995
  • fDate
    4/1/1995 12:00:00 AM
  • Firstpage
    275
  • Lastpage
    287
  • Abstract
    Maintaining the consistency of multiple program representations in a program manipulation tool is difficult. I describe a hybrid software architecture for a meaning-preserving program restructuring tool. Layering is the primary architectural paradigm, which successively provides increasingly integrated and unified abstract machines to implement the tool. However, layering does not provide adequate control over extensibility or the independence of components, so I also adopt the paradigm of keeping the key program abstractions separate throughout the layering, providing independent columns of abstract data types. A pair of columns is integrated by a mapping column that translates elements in one column´s data type into related elements in the other column´s data type. Thus, integration of function and separation of representation can be achieved simultaneously. This hybrid architecture was crucial in overcoming severe performance problems that became apparent once the basic tool was completed. By taking advantage of the independence of the columns and the special characteristics of meaning-preserving restructuring, it was possible to extend one representation column of the architecture to the uppermost layer to provide the required access for efficient updating without compromising independence. The cost of the extended architecture is that the upper layers are no longer as simple because they expose operations that only guarantee consistency under careful usage. However, the structural constraints of the hybrid architecture and the models for building the more complicated layers minimizes the negative impact of this tradeoff
  • Keywords
    abstract data types; computer aided software engineering; program compilers; software tools; abstract data type columns; abstract machines; architectural tradeoffs; component independence; consistency maintenance; extensibility; hybrid software architecture; key program abstractions; layered systems; layering; mapping column; meaning-preserving program restructuring tool; modularization; multiple program representations; performance problems; program manipulation tool; software design; structural constraints; system evolution; updating; Buildings; Computer architecture; Computer science; Costs; Operating systems; Protocols; Software architecture; Software design; Software systems; Tree graphs;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.385967
  • Filename
    385967