source: trunk/quest-core-usability/src/main/java/de/ugoe/cs/quest/usability/UsabilityEvaluationManager.java @ 725

Last change on this file since 725 was 725, checked in by pharms, 12 years ago
  • use console for logging instead of logger
File size: 2.3 KB
Line 
1package de.ugoe.cs.quest.usability;
2
3import java.util.ArrayList;
4import java.util.List;
5import java.util.logging.Level;
6
7import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTree;
8import de.ugoe.cs.util.console.Console;
9
10/**
11 * TODO comment
12 *
13 * @version $Revision: $ $Date: 16.07.2012$
14 * @author 2012, last modified by $Author: pharms$
15 */
16public class UsabilityEvaluationManager {
17   
18    /** */
19    private List<UsabilityEvaluationRule> rules = new ArrayList<UsabilityEvaluationRule>();
20
21    /**
22     * TODO: comment
23     *
24     */
25    public UsabilityEvaluationManager() {
26        super();
27        init();
28    }
29
30    /**
31     * TODO: comment
32     *
33     */
34    private void init() {
35        rules.add(new TextInputStatisticsRule());
36    }
37
38    /**
39     * TODO: comment
40     *
41     * @param taskTree
42     */
43    public UsabilityEvaluationResult evaluateUsability(ITaskTree taskTree) {
44        Console.traceln(Level.INFO, "evaluating usability of task tree " + taskTree);
45
46        List<UsabilityEvaluationResult> results = new ArrayList<UsabilityEvaluationResult>();
47
48        for (UsabilityEvaluationRule rule : rules) {
49            Console.traceln(Level.INFO, "applying rule " + rule.getClass().getSimpleName());
50            UsabilityEvaluationResult result = rule.evaluate(taskTree);
51            results.add(result);
52            Console.traceln(Level.INFO, "the rule found " + result.getAllDefects().size() +
53                            " usability defects, of which " + result.getSevereDefects().size() +
54                            " are severe.");
55        }
56
57        UsabilityEvaluationResult result = mergeResults(results);
58        Console.println("the evaluation result contains " + result.getAllDefects().size() +
59                        " defects, of which " + result.getSevereDefects().size() + " are severe.");
60        return result;
61    }
62
63    /**
64     * TODO: comment
65     *
66     * @param results
67     * @return
68     */
69    private UsabilityEvaluationResult mergeResults(List<UsabilityEvaluationResult> results) {
70        UsabilityEvaluationResult result = new UsabilityEvaluationResult();
71
72        for (UsabilityEvaluationResult ruleResult : results) {
73            for (UsabilityDefect defect : ruleResult.getAllDefects()) {
74                result.addDefect(defect);
75            }
76        }
77
78        return result;
79    }
80
81}
Note: See TracBrowser for help on using the repository browser.