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.

