You are here: SISSy / Features
Tuesday, 21 November 2017

Features

Code Extractors

The core feature of SISSy are the extractors for Java, C++ and Delphi code. Those extractors build up a G-AST model of the analyzed software. The extractors are available as part of the SISSy eclipse distribution but can also be integrated into a custom application.

Design Database

The G-AST model extracted by the SISSy code extractors is persisted into a relational database, optimized for downstream code metric calculation and problem pattern detections.

Problem Pattern Detection

SISSy provides a problem pattern detection analysis based on the extracted design database.

Actually supported problem patterns include:

  • Attribute overlap
  • Complexity
  • Cyclical dependencies
  • Constant redefinition
  • Dead code
  • Duplicated code / Clones
  • God constructs
  • Abstraction problems
  • Interface-Bypass
  • Permissive visibility
  • Length and size issues
  • Encapsulation problems
  • and others

A complete list of analysed patterns can be found in the documentation:
Catalog of Detected Problem Patterns

Code Metric Analysis

SISSy provides the following code metric analysis out-of-the-box:

  • ATFD
    Computes the ATFD (Access to Foreign Data) metric for methods or classes.
  • AMW
    Average complexity of all methods of the class. AMW(Class) = WMC(Class)/NOM(Class)
  • NOM
    Computes the Number of Methods in a class.
  • NOAM
    This metric computes the number of accessor methods for a given class.
  • NOPA
    This metric measures the number of public attributes of a class.
  • TCC
    Tight Class Cohesion metric. It is defined as a relative number of directly connected methods in a class.
  • WMC
    This metric is the Weighted Method Count, the sum of the CYCLO metric for all methods of the class.
  • WOC
    This class computes the WOC metric: the number of functional (non-accessor) public methods, divided by the total number of public methods.
  • CDISP
    This metric is defined as the number of classes in which the operations called from the measured function are defined in, divided by CINT.
  • CINT
    This is the Coupling Intensity metric, defined as a number of distinct function calls from a given function.
  • CYCLO
    This metric computes McCabes Cyclomatic complexity for methods.
  • FDP
    This class computes the FDP metric - Foreign Data Providers, it is defined as a number of distinct classes in which the attributes from the ATFD metric reside.
  • LAA
    Locality of Attribute Accesses. This metric is defined as a number of attributes from the methods definition class divided by the total number of variables accessed.
  • MAXNESTING
    This metric computes the maximum nesting level of a function.

Custom Analysis

The GAST model and the design database produced by SISSy provide base not only for the analysis and reverse engineering mentioned above but also for custom reports and further analysis approaches.

Actually, such custom analysis and reports based on the SISSy GAST model and database are developed by different research groups as well as within industrial projects taking use of the services offered by the FZI - Research Center for Information Technology.