Move from Conservative to Liberal Approach

From FetchWiki

Jump to: navigation, search

Contents

[edit] Status

  • Problem described.
  • Solution suggested.

[edit] Problem description

Currently, we ignore information on references when we cannot decide upon the exact target. We can differentiate between two different scenario's:

  1. Polymorphic case -- The set of potential targets belong to the same inheritance hierarchy, and there is merely a unique signature implemented by various classes in this hierarchy.
  1. Overloading case -- The set of potential targets belong to the same class. I.e., there are multiple method signatures in one class which only differ with regard to parameter types.
  1. Multiple classes case -- The set of potential targets belong to multiple unrelated classes.

Our current conservative approach dictates that in case of uncertainty, we ignore information. This introduces a lot of False Negatives, which might be converted to True Positives and False Positives when we take a more liberal approach.

[edit] Relevance

In case studies that contain a large number of methods/attributes having similar signatures (e.g., identical names), we currently have a lot of False Negatives.

[edit] Suggested Solution

In a liberal approach, we would no longer ignore information in case there is uncertainty, yet we would attempt to classify the scenario (in one of the cases mentioned above). We then can introduce additional FAMIX entities or extend existing FAMIX entities to indicate that there might be a reference to that particular target, but that we can't be sure of it.

Personal tools