18 using TraceLab.Components.DevelopmentKit.Metrics.Traceability;
19 using TraceLab.Components.Types;
21 using TraceLabSDK.Types;
23 namespace TraceLab.Components.Library.Metrics.Traceability
25 [Component(Name =
"Principal Component Analysis (triple)",
26 Description =
"Performs PCA on three TLSimilarityMatrix.",
27 Author =
"SEMERU; Evan Moritz",
29 ConfigurationType = typeof(
RConfig))]
30 [IOSpec(IOSpecType.Input,
"Matrix1", typeof(TLSimilarityMatrix))]
31 [IOSpec(IOSpecType.Input,
"Matrix2", typeof(TLSimilarityMatrix))]
32 [IOSpec(IOSpecType.Input,
"Matrix3", typeof(TLSimilarityMatrix))]
33 [IOSpec(IOSpecType.Output,
"Matrix1Contribution", typeof(
double))]
34 [IOSpec(IOSpecType.Output,
"Matrix2Contribution", typeof(
double))]
35 [IOSpec(IOSpecType.Output,
"Matrix3Contribution", typeof(
double))]
36 [Tag(
"RPlugin.Metrics.Traceability")]
37 [Tag(
"Metrics.Traceability")]
46 Configuration = _config;
51 TLSimilarityMatrix matrix1 = (TLSimilarityMatrix)Workspace.Load(
"Matrix1");
52 TLSimilarityMatrix matrix2 = (TLSimilarityMatrix)Workspace.Load(
"Matrix2");
53 TLSimilarityMatrix matrix3 = (TLSimilarityMatrix)Workspace.Load(
"Matrix3");
55 double[] results = (
double[])engine.
Execute(
new PCAScript(matrix1, matrix2, matrix3));
56 Workspace.Store(
"Matrix1Contribution", results[0]);
57 Workspace.Store(
"Matrix2Contribution", results[1]);
58 Workspace.Store(
"Matrix3Contribution", results[2]);