18 using TraceLab.Components.DevelopmentKit.Metrics;
19 using TraceLab.Components.DevelopmentKit.Metrics.Traceability;
20 using TraceLab.Components.Library.Metrics.Controller;
22 using TraceLabSDK.Types;
24 namespace TraceLab.Components.Library.Metrics.Traceability
26 [Component(Name =
"Traceability Metrics - Query granularity",
27 Description =
"Computes various traceability metrics per source artifact in a similarity matrix.",
28 Author =
"SEMERU; Evan Moritz",
31 [IOSpec(IOSpecType.Input,
"CandidateMatrix", typeof(TLSimilarityMatrix))]
32 [IOSpec(IOSpecType.Input,
"AnswerMatrix", typeof(TLSimilarityMatrix))]
33 [Tag(
"Metrics.Traceability")]
42 Configuration = _config;
47 Logger.Trace(
"Starting metrics computation: " + _config.TechniqueName);
48 TLSimilarityMatrix matrix = (TLSimilarityMatrix)Workspace.Load(
"CandidateMatrix");
49 TLSimilarityMatrix oracle = (TLSimilarityMatrix)Workspace.Load(
"AnswerMatrix");
51 if (_config.Precision)
53 Logger.Trace(
"Computing precision...");
60 Logger.Trace(
"Skipped precision computation.");
66 Logger.Trace(
"Computing recall...");
73 Logger.Trace(
"Skipped recall computation.");
76 #region Average Precision
77 if (_config.AveragePrecision)
79 Logger.Trace(
"Computing average precision...");
86 Logger.Trace(
"Skipped average precision computation.");
89 #region Mean Average Precision
90 if (_config.MeanAveragePrecision)
92 Logger.Trace(
"Computing mean average precision...");
99 Logger.Trace(
"Skipped mean average precision computation.");