Changeset 1152 for trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics
- Timestamp:
- 04/08/13 16:50:21 (11 years ago)
- Location:
- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java
r1150 r1152 25 25 import com.google.common.collect.Multiset; 26 26 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 29 29 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 30 30 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 34 34 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 35 35 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 36 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;36 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 37 37 38 38 /** … … 52 52 * @param taskTree 53 53 */ 54 public NoLetterOrDigitRatioMetric(ITask Tree taskTree) {55 super(task Tree);54 public NoLetterOrDigitRatioMetric(ITaskModel taskModel) { 55 super(taskModel); 56 56 this.name = "NoLetterOrDigitRatio"; 57 57 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 64 64 public Optional<UsabilityDefect> calculate() { 65 65 FilterResult textInputEvents = extractNodesFromTaskTree(); 66 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter());66 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter()); 67 67 return this.defect.isPresent(evaluationMetric); 68 68 } 69 69 70 70 private FilterResult extractNodesFromTaskTree() { 71 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)72 .from(this.task Tree);71 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 72 .from(this.taskModel); 73 73 } 74 74 75 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents) {75 private float calculateEvaluationMetric(List<ITask> textInputEvents) { 76 76 Multiset<String> enteredTextFragments = 77 77 aggregateEnteredTextFromTextInputs(textInputEvents); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java
r1150 r1152 25 25 import com.google.common.collect.Multisets; 26 26 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask Tree;28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask TreeNode;27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 29 29 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 30 30 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 34 34 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 35 35 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 36 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;36 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 37 37 38 38 /** … … 52 52 * @param taskTree 53 53 */ 54 public TextInputEntryRepetitionsMetric(ITask Tree taskTree) {55 super(task Tree);54 public TextInputEntryRepetitionsMetric(ITaskModel taskModel) { 55 super(taskModel); 56 56 this.name = "TextInputEntryRepetitions"; 57 57 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 64 64 public Optional<UsabilityDefect> calculate() { 65 65 FilterResult textInputEvents = extractNodesFromTaskTree(); 66 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter());66 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter()); 67 67 return this.defect.isPresent(evaluationMetric); 68 68 } 69 69 70 70 private FilterResult extractNodesFromTaskTree() { 71 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)72 .from(this.task Tree);71 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 72 .from(this.taskModel); 73 73 } 74 74 75 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents) {75 private float calculateEvaluationMetric(List<ITask> textInputEvents) { 76 76 Multiset<String> enteredTextFragments = 77 77 aggregateEnteredTextFromTextInputs(textInputEvents); -
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java
r1150 r1152 23 23 import com.google.common.collect.Iterables; 24 24 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 27 28 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 28 29 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 32 33 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 33 34 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 34 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;35 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 35 36 36 37 /** … … 50 51 * @param taskTree 51 52 */ 52 public TextInputRatioMetric(ITask Tree taskTree) {53 super(task Tree);53 public TextInputRatioMetric(ITaskModel taskModel) { 54 super(taskModel); 54 55 this.name = "TextInputRatio"; 55 56 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 62 63 public Optional<UsabilityDefect> calculate() { 63 64 FilterResult textInputEvents = extractNodesFromTaskTree(); 64 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter(), textInputEvents.nodesNotMatchedFilter());65 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter(), textInputEvents.tasksNotMatchedFilter()); 65 66 return this.defect.isPresent(evaluationMetric); 66 67 } 67 68 68 69 private FilterResult extractNodesFromTaskTree() { 69 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)70 .from(this.task Tree);70 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 71 .from(this.taskModel); 71 72 } 72 73 73 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents, List<ITaskTreeNode> nonTextInputEvents) {74 private float calculateEvaluationMetric(List<ITask> textInputEvents, List<ITask> nonTextInputEvents) { 74 75 float numberOfTextInputEvents = textInputEvents.size(); 75 float numberOfNonTextInputEvents = nrOfEvent NodesNotMatchedFilter(nonTextInputEvents);76 float numberOfNonTextInputEvents = nrOfEventTasksNotMatchedFilter(nonTextInputEvents); 76 77 return numberOfTextInputEvents / (numberOfTextInputEvents + numberOfNonTextInputEvents); 77 78 } 78 79 79 private int nrOfEvent NodesNotMatchedFilter(List<ITaskTreeNode> nonTextInputEvents) {80 private int nrOfEventTasksNotMatchedFilter(List<ITask> nonTextInputEvents) { 80 81 return Iterables.size(Iterables.filter(nonTextInputEvents, 81 new Predicate<ITask TreeNode>() {82 new Predicate<ITask>() { 82 83 83 84 @Override 84 public boolean apply(ITaskTreeNode node) { 85 return (node.getChildren() == null) || 86 (node.getChildren().size() == 0); 85 public boolean apply(ITask task) { 86 return task instanceof IEventTask; 87 87 } 88 88 }));
Note: See TracChangeset
for help on using the changeset viewer.