Ignore:
Timestamp:
04/11/14 11:21:45 (10 years ago)
Author:
pharms
Message:
  • state of the HCSE 2014 Paper. An appropriate tag will follow.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/UsabilityEvaluationManager.java

    r1335 r1493  
    1919import java.util.logging.Level; 
    2020 
     21import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship; 
     22import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship; 
     23import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
    2124import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 
    2225import de.ugoe.cs.util.console.Console; 
     
    4548     */ 
    4649    private void init() { 
    47         rules.add(new TextInputStatisticsRule()); 
    48         rules.add(new RequiredScrollRule()); 
     50        //rules.add(new TextInputStatisticsRule()); 
     51        rules.add(new MissingFeedbackRule()); 
     52        rules.add(new EventCoverageRatioRule()); 
     53        rules.add(new RequiredInefficientActionsRule()); 
     54        //rules.add(new TaskCooccurrenceRule()); 
     55        rules.add(new TargetDistanceRule()); 
     56        //rules.add(new UnusedGUIElementsRule()); 
     57        //rules.add(new TaskTreeTestRule()); 
    4958    } 
    5059 
     
    6473                            " usability defects, of which " + result.getSevereDefects().size() + 
    6574                            " are severe."); 
     75             
     76            if ((rule instanceof EventCoverageRatioRule) || 
     77                (rule instanceof RequiredInefficientActionsRule) || 
     78                (rule instanceof TargetDistanceRule)) 
     79            { 
     80                ITask[] referredTasks = new ITask[result.getAllDefects().size()]; 
     81 
     82                for (int i = 0; i < result.getAllDefects().size(); i++) { 
     83                    referredTasks[i] = 
     84                        (ITask) result.getAllDefects().get(i).getDescriptionFragments().get(1); 
     85                } 
     86                 
     87                int counter = 0; 
     88                for (int i = 0; i < referredTasks.length; i++) { 
     89                    for (int j = 0; j < referredTasks.length; j++) { 
     90                        if (isChildOf(referredTasks[i], referredTasks[j])) { 
     91                            counter++; 
     92                            break; 
     93                        } 
     94                    } 
     95                } 
     96                 
     97                if (counter > 0) { 
     98                    Console.traceln(Level.INFO, counter + " of the findings are duplicates in " + 
     99                                    "that they refer to tasks whose parent tasks are also " + 
     100                                    "referred by the findings"); 
     101                } 
     102            } 
    66103        } 
    67104 
    68         UsabilityEvaluationResult result = new UsabilityEvaluationResult(interimResults); 
     105        UsabilityEvaluationResult result = new UsabilityEvaluationResult(taskModel, interimResults); 
    69106        Console.println("the evaluation result contains " + result.getAllDefects().size() + 
    70107                        " defects, of which " + result.getSevereDefects().size() + " are severe."); 
    71  
    72         List<UsabilityDefect> defects = result.getAllDefects(); 
    73         for (int i = 0; i < defects.size(); i++) { 
    74             Console.println((i + 1) + ": " + defects.get(i).getParameterizedDescription()); 
    75         } 
    76108 
    77109        return result; 
    78110    } 
    79111 
     112    /** 
     113     * <p> 
     114     * TODO: comment 
     115     * </p> 
     116     * 
     117     * @param iTask 
     118     * @param iTask2 
     119     * @return 
     120     */ 
     121    private boolean isChildOf(final ITask potChild, ITask potParent) { 
     122         
     123        if (potParent instanceof IStructuringTemporalRelationship) { 
     124            for (ITask child : ((IStructuringTemporalRelationship) potParent).getChildren()) { 
     125                if ((child == potChild) || isChildOf(potChild, child)) { 
     126                    return true; 
     127                } 
     128            } 
     129        } 
     130        else if (potParent instanceof IMarkingTemporalRelationship) { 
     131            ITask child = ((IMarkingTemporalRelationship) potParent).getMarkedTask(); 
     132            if ((child == potChild) || isChildOf(potChild, child)) { 
     133                return true; 
     134            } 
     135        } 
     136         
     137        return false; 
     138    } 
     139 
    80140} 
Note: See TracChangeset for help on using the changeset viewer.