-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the ClassTrim wiki!
Strictly follow the tool CKjm used in the paper Shatnawi, R. The application of ROC analysis in threshold identification, data imbalance and metrics selection for software fault prediction. Innovations Syst Softw Eng 13, 201–217 (2017). https://doi.org/10.1007/s11334-017-0295-0.
Where are the parsed classes and methods possibly from?
- JDK
- Third-party libraries
- Local project
Number of methods declared in the class.
Cardinality of the set of referenced classes (excluding JDK classes), including:
- Superclass
- Implemented interfaces
- Field types
- Declared method exception types
- Declared method argument types
- Declared method return types
- Other classes referenced via fields
- Classes of invoked methods
Note: When using global variables from other classes, primitive constants (e.g., int, boolean) cannot be traced
back. See the
discussion: https://stackoverflow.com/questions/75954598/how-to-record-visited-constants-by-methodvisitor-in-asm
Number of methods that can execute in response to a message to the class: sum of the class's own methods and the distinct external methods they directly invoke.
-
Why are class files visited multiple times?
- Different traversals collect different facts (e.g., signatures, calls, fields) to compute metrics accurately and cache results.
-
Why not use a database instead of files?
- The dataset size is modest, and TSV files (not csv file becasue method name may contain comma) plus object serialization keep the footprint and complexity low. A database could improve querying, but is intentionally avoided to reduce operational overhead.