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

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