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

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