DOI: 10.5281/zenodo.10268006
title: A Dataset of Atoms of Confusion in the Android Open Source Project

description: This is a dataset cataloging the presence of Atoms of Confusion in the  Android Open Source Project, alongside metricsof object-oriented software development.

 

Schema

ac_reports

id INTEGER  The primary key  project_name VARCHAR Name of the project/repository in the AOSPline INTEGER NOT NULL Line where the AC was foundsnippet VARCHAR NOT NULL The excerpt of code that represents the Atom of Confusionclass_name VARCHAR Name of the class where the AC was foundac VARCHAR NOT NULL Type of Atom of Confusionpath VARCHAR Path to the file in the AOSP superproject"commit" VARCHAR SHA of the commit of the file in the repositoryloc VARCHAR Number of lines of code in the file

files

path VARCHAR The path of the file

loc INTEGER Lines of code

project_name VARCHAR Name of the project/repository in the AOSP

projects

name VARCHAR The name of the project/repository in the AOSP

 

classes

id INTEGER The primary key  

file_path VARCHAR Path to the file in the AOSP superproject

name VARCHAR Name of the class

type VARCHAR The type of class (e.g. interface, anonymous...)

cbo INTEGER From CK: Coupling between objects, number of dependencies a class has.

"cboModified" INTEGER From CK: Coupling between objects, number of dependencies a class has. (References from other classes to this class + references from this class to other classes)

fanin INTEGER From CK: number of classes that reference this particular class.

fanout INTEGER From CK: the number of classes referenced by this class

wmc INTEGER From CK: Weight Method Class | McCabe's complexity | Cyclomatic Complexity

dit INTEGER From CK: Depth Inheritance Tree

noc INTEGER From CK: Number of Children

rfc INTEGER From CK: Response for Class

lcom INTEGER From CK: Lack of Cohesion of Methods

lcom_normalized DOUBLE From CK: Refers to the LCOM* metric that computes Lack of Cohesion of Methods between 0 and 1.

tcc DOUBLE From CK: Tight Class Cohesion

lcc DOUBLE From CK: Loose Class Cohesion

"totalMethodsQty" INTEGER From CK: Number of methods (constructors are included)

"staticMethodsQty" INTEGER From CK: Number of static methods

"publicMethodsQty" INTEGER From CK: Number of public methods

"privateMethodsQty" INTEGER From CK: Number of private methods

"protectedMethodsQty" INTEGER From CK: Number of protected methods

"defaultMethodsQty" INTEGER From CK: Number of default methods

"visibleMethodsQty" INTEGER From CK: Number of visible methods

"abstractMethodsQty" INTEGER From CK: Number of abstract methods

"finalMethodsQty" INTEGER From CK: Number of final methods

"synchronizedMethodsQty" INTEGER From CK: Number of synchronized methods

"totalFieldsQty" INTEGER From CK: Number of fields

"staticFieldsQty" INTEGER From CK: Number of static fields

"publicFieldsQty" INTEGER From CK: Number of public fields

"privateFieldsQty" INTEGER From CK: Number of private fields

"protectedFieldsQty" INTEGER From CK: Number of protected fields

"defaultFieldsQty" INTEGER From CK: Number of default fields

"finalFieldsQty" INTEGER From CK: Number of final fields

"synchronizedFieldsQty" INTEGER From CK: Number of synchronized fields

nosi INTEGER From CK: Number of static invocations

loc INTEGER From CK: Lines of code

"returnQty" INTEGER From CK: Number of return statements

"loopQty" INTEGER From CK: Number of repetition structures (while, for)

"comparisonsQty" INTEGER From CK: Number of comparisons, e.g. ==, !=

"tryCatchQty" INTEGER From CK: Number of try...catch statements

"parenthesizedExpsQty" INTEGER From CK: Number of expressions inside parenthesis.

"stringLiteralsQty" INTEGER From CK: Number of string literals. Repeated strings are counted as well.

"numbersQty" INTEGER From CK: Number of numbers, e.g. ints, floats, doubles

"assignmentsQty" INTEGER From CK: Number of assignments, usage of the = operator.

"mathOperationsQty" INTEGER From CK: Number of math operations.

"variablesQty" INTEGER From CK: Number of variables

"maxNestedBlocksQty" INTEGER From CK: Number of the highest nested block in the class.

"anonymousClassesQty" INTEGER From CK: Number of anonymous classes

"innerClassesQty" INTEGER From CK: Number of inner classes

"lambdasQty" INTEGER From CK: Number of lambdas

"uniqueWordsQty" INTEGER From CK: Number of unique words in the source file

modifiers INTEGER From CK: Number of modifiers in class/methods (usage of "public", "static", "abstract"...)

"logStatementsQty" INTEGER, From CK: Number of log statements.

 

methods

id_ INTEGER NOT NULL  The primary key

file_path VARCHAR NOT NULL Path to the file in the AOSP superproject

class_id INTEGER NOT NULL ID of the class where this method is

name VARCHAR NOT NULL The name of the method

constructor BOOLEAN NOT NULL From CK: True if method is a constructor

line INTEGER From CK: Line where this method is located

cbo INTEGER From CK: Coupling between objects, number of dependencies a class has.

"cboModified" INTEGER From CK: Coupling between objects, number of dependencies a class has. (References from other classes to this class + references from this class to other classes)

fanin INTEGER From CK: number of classes that reference this particular class.

fanout INTEGER From CK: the number of classes referenced by this class

wmc INTEGER From CK: Weight Method Class | McCabe's complexity | Cyclomatic Complexity

rfc INTEGER From CK: Response for Class

loc INTEGER From CK: Lines of code

"returnQty" INTEGER From CK: Number of return statements

"variablesQty" INTEGER From CK: Number of variables

"parametersQty" INTEGER From CK: Number of parameters

"methodsInvokedQty" INTEGER From CK: all methods invoked

"methodsInvokedLocalQty" INTEGER From CK: methods invoked locally

"methodsInvokedIndirectLocalQty" INTEGER From CK: number of indirect local invocations

"loopQty" INTEGER From CK: Number of repetition structures (while, for)

"comparisonsQty" INTEGER From CK: Number of comparisons, e.g. ==, !=

"tryCatchQty" INTEGER From CK: Number of try...catch statements

"parenthesizedExpsQty" INTEGER From CK: Number of expressions inside parenthesis.

"stringLiteralsQty" INTEGER From CK: Number of string literals. Repeated strings are counted as well.

"numbersQty" INTEGER From CK: Number of numbers, e.g. ints, floats, doubles

"assignmentsQty" INTEGER From CK: Number of assignments, usage of the = operator.

"mathOperationsQty" INTEGER From CK: Number of math operations.

"maxNestedBlocksQty" INTEGER From CK: Number of the highest nested block in the class.

"anonymousClassesQty" INTEGER From CK: Number of anonymous classes

"innerClassesQty" INTEGER From CK: Number of inner classes

"lambdasQty" INTEGER From CK: Number of lambdas

"uniqueWordsQty" INTEGER From CK: Number of unique words in the source file

modifiers INTEGER From CK: Number of modifiers in class/methods (usage of "public", "static", "abstract"...)

"logStatementsQty" INTEGER, From CK: Number of log statements.

"hasJavaDoc" BOOLEAN From CK: True if method has a JavaDoc