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

Last change on this file since 442 was 442, checked in by pharms, 12 years ago

Initial import.

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