Sokrates
Features of Interest

Intro
  • Features of interest are any aspects of a software system that can be identified through patterns in code.
  • Features of interest provide you with a way to focus your attention on relevant parts of the codebase. Typical examples include, security, TODOs, logging.
  • A feature of interest may be present in multiple files. Any source code file may be in zero or multiple features of interest.
Overview

GENERAL

exception handling
6,717 LOC (23%) 48 files | found text | found text per file
logging
5,685 LOC (19%) 33 files | found text | found text per file
file operations
9,076 LOC (31%) 65 files | found text | found text per file

BAD PRACTICES

System.out.println
1,470 LOC (5%) 7 files | found text | found text per file
e.printStackTrace
4,363 LOC (15%) 29 files | found text | found text per file

TECHNOLOGY

javafx
3,899 LOC (13%) 36 files | found text | found text per file
fasterxml
4,531 LOC (15%) 45 files | found text | found text per file
apache commons
13,164 LOC (45%) 100 files | found text | found text per file
1 GENERAL Concerns
  • The "general" group contains 8 concerns.
    • exception handling
    • logging
    • file operations
    • Unclassified
    • Multiple Classifications
    • - exception handling (60%) AND file operations (45%)
    • - exception handling (63%) AND logging (75%)
    • - logging (61%) AND file operations (38%)
general
1.1 exception handling
  • The following criteria are used to filter files:
    • files with paths like ".*[.]java" AND any line of content like ".* try \{.*".
  • 48 files match defined criteria (6,717 lines of code, 23.4% vs. main code). All matches are in *.java files.
  • 101 lines match the content pattern.
details...
general
1.2 logging
  • The following criteria are used to filter files:
    • files with any line of content like "import .*logging[.]Log.*".
  • 33 files match defined criteria (5,685 lines of code, 19.8% vs. main code). All matches are in *.java files.
  • 66 lines match the content pattern.
details...
general
1.3 file operations
  • The following criteria are used to filter files:
    • files with any line of content like "import .*java[.]io[.]File.*".
  • 65 files match defined criteria (9,076 lines of code, 31.7% vs. main code). All matches are in *.java files.
  • 68 lines match the content pattern.
details...
general
1.4 Multiple Classificationsexception handling (60%) AND file operations (45%)
4,045 LOC (14%) 23 files

details...
general
1.5 Multiple Classificationsexception handling (63%) AND logging (75%)
4,257 LOC (14%) 23 files

details...
general
1.6 Multiple Classificationslogging (61%) AND file operations (38%)
3,440 LOC (12%) 15 files

details...
2 BAD PRACTICES Concerns
  • The "bad practices" group contains 5 concerns.
    • System.out.println
    • e.printStackTrace
    • Unclassified
    • Multiple Classifications
    • - System.out.println (57%) AND e.printStackTrace (19%)
bad practices
2.7 System.out.println
  • The following criteria are used to filter files:
    • files with any line of content like "[ ]*System[.]out[.]print.*".
  • 7 files match defined criteria (1,470 lines of code, 5.1% vs. main code). All matches are in *.java files.
  • 30 lines match the content pattern.
details...
bad practices
2.8 e.printStackTrace
  • The following criteria are used to filter files:
    • files with any line of content like ".*[.]printStackTrace[(].*".
  • 29 files match defined criteria (4,363 lines of code, 15.2% vs. main code). All matches are in *.java files.
  • 60 lines match the content pattern.
details...
bad practices
2.9 Multiple ClassificationsSystem.out.println (57%) AND e.printStackTrace (19%)
845 LOC (2%) 4 files

details...
3 TECHNOLOGY Concerns
  • The "technology" group contains 8 concerns.
    • javafx
    • fasterxml
    • apache commons
    • Unclassified
    • Multiple Classifications
    • - javafx (61%) AND apache commons (18%)
    • - javafx (12%) AND fasterxml (10%)
    • - fasterxml (45%) AND apache commons (15%)
technology
3.10 javafx
  • The following criteria are used to filter files:
    • files with any line of content like "import javafx.*".
  • 36 files match defined criteria (3,899 lines of code, 13.6% vs. main code). All matches are in *.java files.
  • 231 lines match the content pattern.
details...
technology
3.11 fasterxml
  • The following criteria are used to filter files:
    • files with any line of content like ".*fasterxml.*".
  • 45 files match defined criteria (4,531 lines of code, 15.8% vs. main code). All matches are in *.java files.
  • 52 lines match the content pattern.
details...
technology
3.12 apache commons
  • The following criteria are used to filter files:
    • files with any line of content like ".*apache[.]commons.*".
  • 100 files match defined criteria (13,164 lines of code, 45.9% vs. main code). All matches are in *.java files.
  • 182 lines match the content pattern.
details...
technology
3.13 Multiple Classificationsjavafx (61%) AND apache commons (18%)
2,383 LOC (8%) 18 files

details...
technology
3.14 Multiple Classificationsjavafx (12%) AND fasterxml (10%)
462 LOC (1%) 2 files

details...
technology
3.15 Multiple Classificationsfasterxml (45%) AND apache commons (15%)
2,034 LOC (7%) 18 files

details...