Mechanism: Binary Transformations

Intent

Binary transformations rewrite portions of an application to introduce new functionality.

Also Known As

Binary Patch files.

Motivation

A scenario that illustrates a problem and how the different elements of the mechanism solve the problem. The scenario will help you understand the more abstract description of the mechanism below.

Applicability

What are the situations in which the mechanism can be applied? What are examples of poor designs that the mechansim can address? How can you recognize these situations?

Participants

The elements participating in the mechanism and their responsibilities.

Collaborations

How the participants collaborate to carry out their responsibilities.

Consequences

Binary transformations have the following benefits:

  1. They don't require source code. Since the transformation is performed on object or executable code, the source code of the application is not required for adaptation.
  2. They can be used for fault isolation. Applications can be modified to prevent certain undesireable behavior during execution. This is commonly refered to as sandboxing (executing the code in an a restricted environment).

Binary transformations have the following limitations:

  1. They are low-level.
  2. They are difficult to compose.

Implementation

What pitfalls, hints, or techniques should you be aware of when implementing the mechanism? Are there language-specific issues?

  1. Description of Bullet

Known Uses

EEL from University of Wisconsin, Pure Atria's Purify and Quantify are examples of binary transformations.

Related Mechanisms

What mechanisms are closely related to this one? What are the important differences? With which other mechanisms should this one be used?


Back to the Adaptation home page. This page maintained by Peyman Oreizy (peymano at ics.uci.edu). Last updated on .