18 using System.Collections.Generic;
22 using TraceLabSDK.Types;
23 using TraceLab.Components.Types;
24 using TraceLab.Components.DevelopmentKit.Metrics.Traceability;
27 namespace TraceLab.Components.Library.Metrics.Traceability
29 [Component(Name =
"Principal Component Analysis (quadruple)",
30 Description =
"Performs PCA on four TLSimilarityMatrix.",
31 Author =
"SEMERU; Evan Moritz",
33 ConfigurationType = typeof(
RConfig))]
34 [IOSpec(IOSpecType.Input,
"Matrix1", typeof(TLSimilarityMatrix))]
35 [IOSpec(IOSpecType.Input,
"Matrix2", typeof(TLSimilarityMatrix))]
36 [IOSpec(IOSpecType.Input,
"Matrix3", typeof(TLSimilarityMatrix))]
37 [IOSpec(IOSpecType.Input,
"Matrix4", typeof(TLSimilarityMatrix))]
38 [IOSpec(IOSpecType.Output,
"Matrix1Contribution", typeof(
double))]
39 [IOSpec(IOSpecType.Output,
"Matrix2Contribution", typeof(
double))]
40 [IOSpec(IOSpecType.Output,
"Matrix3Contribution", typeof(
double))]
41 [IOSpec(IOSpecType.Output,
"Matrix4Contribution", typeof(
double))]
42 [Tag(
"RPlugin.Metrics.Traceability")]
43 [Tag(
"Metrics.Traceability")]
52 Configuration = _config;
57 TLSimilarityMatrix matrix1 = (TLSimilarityMatrix)Workspace.Load(
"Matrix1");
58 TLSimilarityMatrix matrix2 = (TLSimilarityMatrix)Workspace.Load(
"Matrix2");
59 TLSimilarityMatrix matrix3 = (TLSimilarityMatrix)Workspace.Load(
"Matrix3");
60 TLSimilarityMatrix matrix4 = (TLSimilarityMatrix)Workspace.Load(
"Matrix4");
62 double[] results = (
double[])engine.
Execute(
new PCAScript(matrix1, matrix2, matrix3, matrix4));
63 Workspace.Store(
"Matrix1Contribution", results[0]);
64 Workspace.Store(
"Matrix2Contribution", results[1]);
65 Workspace.Store(
"Matrix3Contribution", results[2]);
66 Workspace.Store(
"Matrix4Contribution", results[3]);