Package 'hotspot'

Title: Software Hotspot Analysis
Description: Contains data for software hotspot analysis, along with a function performing the analysis itself.
Authors: Csaba Farago
Maintainer: Csaba Farago <[email protected]>
License: GPL (>= 2)
Version: 1.0
Built: 2024-12-16 06:50:28 UTC
Source: CRAN

Help Index


Software Hotspot Analysis

Description

Contains data for software hotspot analysis, along with a function performing the analysis itself.

Details

The package contains results of hotspot analysis of some open source system, and a function which performs the test itself. See hotspot.data for details about the input data, and perform.hotspot.tests for the execution of tests.

Author(s)

Csaba Farago <[email protected]>


Hotspot Data

Description

Contains data for hotspot analysis. It contains information about version control based hotspot calculation, relative maintainability indexes and number of post release bugs per source file basis, of 14 versions of 4 open source systems.

Usage

data("hotspot.data")

Format

The format is the following:

The first level is a list of 4 elements, each representing an open source software: Ant, JEdit, Log4J and Xerces.

The second level is also a list, the elements represent the version of the system. These are the following (in the format of reference):

  • hotspot.data$Ant$"1.3"

  • hotspot.data$Ant$"1.4"

  • hotspot.data$Ant$"1.5"

  • hotspot.data$Ant$"1.6"

  • hotspot.data$Ant$"1.7"

  • hotspot.data$JEdit$"4.0"

  • hotspot.data$JEdit$"4.1"

  • hotspot.data$JEdit$"4.2"

  • hotspot.data$JEdit$"4.3"

  • hotspot.data$Log4J$"1.0"

  • hotspot.data$Log4J$"1.1"

  • hotspot.data$Log4J$"1.2"

  • hotspot.data$Xerces$"1.3"

  • hotspot.data$Xerces$"1.4"

The third level is a data frame of 4 columns:

  • name (string): the fully qualified name of the source code element (e.g. org.apache.tools.ant.AntClassLoader).

  • hotspot (real number in interval [0.0, 1.0)): the hotspot number calculated based on code ownership and cumulative code churn values, using Hotspot Detector (https://github.com/maintainability/hotspot). Higher value indicates more intensive past modifications and/or lack of clear ownership. See the 2 articles by Farago et al. (2015) for details.

  • rmi (real number): relative maintainability index of the Java class. It was calculated using the Columbus Quality Model. Higher number indicates better maintainability. See articles by Bakota et al. (2011) and Hegedus et al. (2013) for details.

  • bug (integer): number of post-release bugs. It was downloaded from Promise database (http://openscience.us/repo/defect/).

References

Bakota, T., Hegedus, P., Kortvelyesi, P., Ferenc, R. and Gyimothy, Tibor (2011): A Probabilistic Software Quality Model, 27th IEEE International Conference on Software Maintenance - ICSM 2011

Hegedus, P., Bakota, T., Ladanyi, G., Farago, Cs. and Ferenc, R. (2013): A Drill-Down Approach for Measuring Maintainability at Source Code Element Level, Electronic Communications of the EASST, volume 60

Farago, Cs., Hegedus, P. and Ferenc, R. (2015): Code Ownership: Impact on Maintainability, 15th International Conference on Computational Science and Its Applications - ICCSA 2015

Farago, Cs., Hegedus, P. and Ferenc, R. (2015): Cumulative Code Churn: Impact on Maintainability, 15th IEEE International Working Conference on Source Code Analysis and Manipulation - SCAM 2015


Perform Hotspot Tests

Description

Performs correlation tests between hotspot numbers and RMI numbers, and between hotspot numbers and number of post-release bugs.

Details

The input is the hotspot.data, found in this package. The result is a data table, containing the project name, the version, the comparison (i.e. if that is RMI or bug), the resulting p-value and the resulting rho.

Examples

data(hotspot.data)
perform.hotspot.tests(hotspot.data)