com.puresoltechnologies.purifinity.server.metrics.cocomo.intermediate.IntermediateCoCoMoEvaluatorParameter Maven / Gradle / Ivy
package com.puresoltechnologies.purifinity.server.metrics.cocomo.intermediate;
import java.util.HashSet;
import java.util.Set;
import com.puresoltechnologies.commons.domain.LevelOfMeasurement;
import com.puresoltechnologies.commons.domain.ParameterWithArbitraryUnit;
import com.puresoltechnologies.commons.money.Money;
import com.puresoltechnologies.parsers.source.SourceCodeLocation;
import com.puresoltechnologies.purifinity.analysis.domain.CodeRangeType;
import com.puresoltechnologies.purifinity.evaluation.api.CodeRangeNameParameter;
import com.puresoltechnologies.purifinity.evaluation.api.CodeRangeTypeParameter;
import com.puresoltechnologies.purifinity.evaluation.api.SourceCodeLocationParameter;
import com.puresoltechnologies.purifinity.evaluation.domain.metrics.MetricParameter;
public class IntermediateCoCoMoEvaluatorParameter {
public static final ParameterWithArbitraryUnit SOURCE_CODE_LOCATION = SourceCodeLocationParameter
.getInstance();
public static final ParameterWithArbitraryUnit CODE_RANGE_TYPE = CodeRangeTypeParameter
.getInstance();
public static final ParameterWithArbitraryUnit CODE_RANGE_NAME = CodeRangeNameParameter
.getInstance();
public static final MetricParameter KSLOC = new MetricParameter(
"kPhyLOC",
"kSLOC",
LevelOfMeasurement.RATIO,
"Total Physical Source Lines Of Code in thousands:\nkPhyLOC = phyLOC / 1000",
Double.class);
public static final MetricParameter PERSON_MONTH = new MetricParameter(
"Development Effort in Month", "Person-Months",
LevelOfMeasurement.RATIO,
"Intermediate COCOMO model, Person-Months = c1 * (kPhyLOC ^ c2)",
Double.class);
public static final MetricParameter PERSON_YEARS = new MetricParameter(
"Development Effort in Years", "Person-Years",
LevelOfMeasurement.RATIO,
"Person-Years = Person-Month / (12 Month / Year)", Double.class);
public static final MetricParameter SCHEDULED_MONTH = new MetricParameter(
"Schedule in Months", "Months", LevelOfMeasurement.RATIO,
"Intermediate COCOMO model, Months = 2.5 * (Person-Months ^ c3)",
Double.class);
public static final MetricParameter SCHEDULED_YEARS = new MetricParameter(
"Schedule in Years", "Years", LevelOfMeasurement.RATIO,
"Years = Months / 12", Double.class);
public static final MetricParameter TEAM_SIZE = new MetricParameter(
"Team Size", "", LevelOfMeasurement.RATIO, "Effort / Schedule",
Double.class);
public static final MetricParameter COSTS = new MetricParameter(
"Estimated Cost", "kMoney", LevelOfMeasurement.RATIO,
"cost = Schedule * Team Size * 2.4 / 1000.0 * Salary", Double.class);
public static final MetricParameter SALARY = new MetricParameter(
"Salary", "Currency", LevelOfMeasurement.RATIO,
"Average developer salary.", Money.class);
public static final MetricParameter AI = new MetricParameter(
"ai",
"",
LevelOfMeasurement.RATIO,
"Intermediate CoCoMo equation constant. This constant is set by project.",
Double.class);
public static final MetricParameter BI = new MetricParameter(
"bi",
"",
LevelOfMeasurement.RATIO,
"Intermediate CoCoMo equation constant. This constant is set by project.",
Double.class);
public static final MetricParameter CI = new MetricParameter(
"ci",
"",
LevelOfMeasurement.RATIO,
"Intermediate CoCoMo equation constant. This constant is set by project.",
Double.class);
public static final MetricParameter DI = new MetricParameter(
"di",
"",
LevelOfMeasurement.RATIO,
"Intermediate CoCoMo equation constant. This constant is set by project.",
Double.class);
public static final Set> ALL = new HashSet<>();
static {
ALL.add(KSLOC);
ALL.add(PERSON_MONTH);
ALL.add(PERSON_YEARS);
ALL.add(SCHEDULED_MONTH);
ALL.add(SCHEDULED_YEARS);
ALL.add(TEAM_SIZE);
ALL.add(COSTS);
ALL.add(SALARY);
ALL.add(AI);
ALL.add(BI);
ALL.add(CI);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy