Type Evolution Software System

  1. Name:
    TESS (Type Evolution Software System)

  2. Source:
    University of Massachusetts Arcadia Project

  3. Brief description:
    TESS supports the evolution of persistent types by semi-automatically generating a transformer that can translate between two versions of a set of types. More specifically, the input to TESS is two source files representing two versions of a set of type definitions. TESS compares these files and produces a transformer describing how to translate instances of the old versions of the types into the new versions of the types. Ultimately, the user will be able to edit these descriptions if they are incorrect, but this is not yet implemented. Also, a runtime environment to interpret these descriptions and actually update the instances (either permanently via converting the instances or virtually via screening the instances) is planned, but does not yet exist.

  4. Evaluation against applicable general dimensions:

    1. Availability: commercial/licensed/public domain
      Not currently available to the public.

    2. Cost:

    3. Degree of support/maturity/testing/usage:

    4. Speed:
      In the worst case, the type comparison algorithm is NP-complete. However, there are several features of the system that make type comparison feasible. First, there are a several heuristics to reduce the number of types that must be compared. For example, types with the same names are compared first. Given the nature of type changes in evolving systems, this will typically offer good results and make it unnecessary to compare these types to other types. Other heuristics are also used to limit the number of comparisons. Furthermore, the user has the ability to limit the kinds of comparisons that are done to prevent an exhaustive search comparison of the types, and also can focus the system on the comparison of a pair of old and new types rather than entire sets of types if necessary.

    5. Computing platforms:
      SunAda 1.1 for Sun/SPARC C X windows Pleiades RepoManGen BMS SUIT 2.3 (The Simple User Interface Toolkit from the University of Virginia)

    6. Language compatibilities:
      TESS is currently able to accept input written either in Pleiades.

    7. Footprint:
      1. Kernel: 23381 SLOC
      2. Pleiades front-end: 529 SLOC
      3. User interface (C code): 1808 SLOC
      4. Total for Pleiades version: 25718 SLOC

    8. Openness/integrability/source availability:
      The license includes source. Integration is restricted to non-commercial use.

    9. Extensibility:
      The kernel type comparison algorithms use a language independent type model. A new version of Tess can be created to compare types in a different language by creating a new front-end for that language and a back-end capable of reading and writing persistent objects of that language.

    10. Pedigree: ARPA developed?

  5. Contact person(s)


    Dr. Lori A. Clarke (clarke@cs.umass.edu)
    Department of Computer Science
    University of Massachusetts
    Amherst, MA 01003
    (413) 545-1328
    (413) 545-1249 - fax

  6. Pointers to literature, demos, etc.:

The Arcadia Project <arcadia-www@ics.uci.edu>
Last modified: Wed Nov 30 14:44:52 1994