Technische Universität München
A Framework for Remote Usability Evaluation
- n Mobile Devices
Bachelorarbeit in Informatik Daniel Bader
A Framework for Remote Usability Evaluation on Mobile Devices - - PowerPoint PPT Presentation
Technische Universitt Mnchen A Framework for Remote Usability Evaluation on Mobile Devices Bachelorarbeit in Informatik Daniel Bader Technische Universitt Mnchen Introduction Usability - An indicator for the ease of use and
Technische Universität München
Bachelorarbeit in Informatik Daniel Bader
Technische Universität München
Daniel Bader 15.04.2011
Introduction
Usability
Usability Evaluation
Common activities (Ivory and Hearst, 2001)
2
Common usability evaluation activities Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Introduction
Automated Usability Evaluation
Remote Usability Evaluation
Automated Remote Usability Evaluation
3
Technische Universität München
Daniel Bader 15.04.2011
Introduction
Usability Evaluation is especially important on mobile devices
Current mobile devices have a rich ability to track their surroundings
Usability Evaluation can be (partly) automated
4
Technische Universität München
Daniel Bader 15.04.2011
Problem statement
A lack of software support for Usability Evaluation on current mobile platforms
(microphone, accelerometer, GPS, ...)
graphically (screenshots, video)
5
Technische Universität München
Daniel Bader 15.04.2011
Proposed solution
The muEvaluationFramework (mobile usability Evaluation Framework)
An application-independent software framework for remote usability evaluation on mobile platforms which supports automation in all phases of a usability evaluation.
6
Common usability evaluation activities Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Outline
✓ Introduction ✓ Problem statement
– Requirements specification – System design – Object design
7
Common usability evaluation activities Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Functional requirements
Capture phase
8
Common usability evaluation activities Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Functional requirements
Analysis phase
9
Common usability evaluation activities Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Functional requirements
Critique phase
10
Technische Universität München
Daniel Bader 15.04.2011
Nonfunctional requirements
Minimal setup work required by the developer
Wireless communication with the mobile device
Extensibility
11
Technische Universität München
Daniel Bader 15.04.2011
Use case model
12
<<actor>>
HostApplication ControlSession ConfigureReport ViewReport CaptureUsabilityData muEvaluationFramework TestUser Developer <<initiate>> <<initiate>> <<initiate>> <<participate>> <<participate>> <<initiate>>
Technische Universität München
Daniel Bader 15.04.2011
Object model and Dynamic model
13
Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Conceptual sub-models for each of the three phases
Technische Universität München
Daniel Bader 15.04.2011
Object model and Dynamic model
13
Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Conceptual sub-models for each of the three phases
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
14
HostApplication TestUser EvaluationSession Developer 4: stop() 3: interactWith() 2: participate() 1: start()
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
The life cycle of an EvaluationSession
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
15
+start() +stop() +selectSensors(sensorSet : Sensor []) EvaluationSession TestUser Developer +launch() +quit() HostApplication UsabilityData MobileDevice +attachTo(t : SensorTarget) +enable() +disable() Sensor monitors collects runs on uses is collected in is analyzed in participates in initiates interacts with
<<abstract>> Event +attachTo(t : SensorTarget) +enable() +disable() <<abstract>> Sensor +addEvent(e : Event) SessionJournal UsabilityData * * {ordered} collects <<represents>> creates
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
16
Sensors and Events
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
17
<<abstract>> Sensor TouchInputSensor AudioSensor TextEntrySensor ScreenSensor
Sensor specializations
<<abstract>> Event UserInputEvent CustomEvent ApplicationEvent UserInterfaceEvent DeviceSensorEvent
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
18
Event specializations
Technische Universität München
Daniel Bader 15.04.2011
Object model and Dynamic model
19
Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Analysis phase
20
<<abstract>> InterpretationResult <<abstract>> Interpreter InterpreterController +addResult(r : InterpretationResult) ResultStore
<<abstract>> Event * * * 1..* stores results in controls * interprets interprets generates
Interpreters work on data collected in the Capture phase and generate InterpretationResults.
<<abstract>> Interpreter OverviewInterpreter ViewChangesInterpreter ScreenshotInterpreter UIGuidelineChecker ViewDurationInterpreter TouchHeatmapInterpreter AnalysisStatisticsInterpreter
Technische Universität München
Daniel Bader 15.04.2011
Analysis phase
21
Interpreter specializations
Technische Universität München
Daniel Bader 15.04.2011
Object model and Dynamic model
22
Capture Analysis Critique
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Critique phase
23
Report InterpretationResult Developer HostApplication recommends changes to views summarizes
+addSection(s : Section) Report <<abstract>> Section OverviewSection EventTimeline TouchHeatmaps UserNavigationPath 1..* {ordered}
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Critique phase
24
Report document model
Technische Universität München
Daniel Bader 15.04.2011
High-level dynamic model
25
Capture Analysis Critique TestUser Report ResultStore SessionJournal UsabilityData InterpretationResults Events
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Inputs and outputs of the three phases
Technische Universität München
Daniel Bader 15.04.2011
System design
26
Capture Critique Analysis ReportController ResultStorage AnalysisController Interpretation SectionGenerator CaptureLibrary CaptureServer Communication
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Subsystem decomposition of the framework
Technische Universität München
Daniel Bader 15.04.2011
System design
27
<<device>> Mobile device <<device>> Desktop computer <<component>> CaptureLibrary <<component>> HostApplication <<component>> Critique <<component>> Analysis <<component>> CaptureServer <<artifact>> CaptureServer.py <<artifact>> libCapture.a <<artifact>> ReportGenerator.py <<manifest>> <<wireless network>> <<manifest>> <<manifest>> <<manifest>>
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Deployment of the framework
Technische Universität München
Daniel Bader 15.04.2011
Object design
28
Capture Critique Analysis ReportController ResultStorage AnalysisController Interpretation SectionGenerator CaptureLibrary CaptureServer Communication
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
29
UIWindow
+sendEvent() +... +... Original implementation
Event
UIWindow sendEvent() behavior before method interception
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
29
UIWindow
+sendEvent() +... +... Original implementation
Event
UIWindow sendEvent() behavior before method interception
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
29
UIWindow
+sendEvent() +... +... Original implementation
Event
UIWindow sendEvent() behavior before method interception
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
30
UIWindow
+sendEvent() +... +... Original implementation
UIWindow sendEvent() behavior after method interception Our implementation of sendEvent()
Event CaptureLibrary
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
30
UIWindow
+sendEvent() +... +... Original implementation
UIWindow sendEvent() behavior after method interception Our implementation of sendEvent()
Event CaptureLibrary
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
30
UIWindow
+sendEvent() +... +... Original implementation
UIWindow sendEvent() behavior after method interception Our implementation of sendEvent()
Event CaptureLibrary
Technische Universität München
Daniel Bader 15.04.2011
CaptureLibrary - Method interception
30
UIWindow
+sendEvent() +... +... Original implementation
UIWindow sendEvent() behavior after method interception Our implementation of sendEvent()
Event CaptureLibrary Event
Technische Universität München
Daniel Bader 15.04.2011
Object design
31
Capture Critique Analysis ReportController ResultStorage AnalysisController Interpretation SectionGenerator CaptureLibrary CaptureServer Communication
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Technische Universität München
Daniel Bader 15.04.2011
Analysis subsystem
32
Usage of the Blackboard design pattern in the Analysis subsystem
ResultStore InterpreterController Interpreter +getResultsOfType() +addResult() <<Interface>> Blackboard +canContribute() +updateBlackboard() <<Interface>> BlackboardExpert +loop() +getReadyExperts() <<Interface>> BlackboardSupervisor supervises 1..* controls updates and accesses
Technische Universität München
Daniel Bader 15.04.2011
Analysis subsystem
33
Dependencies between Interpreters are resolved automatically
InterpreterA InterpreterB InterpreterC InterpreterD
Generated order of execution:
Technische Universität München
Daniel Bader 15.04.2011
Analysis subsystem
33
Dependencies between Interpreters are resolved automatically
InterpreterA InterpreterB InterpreterC InterpreterD InterpreterC InterpreterB InterpreterA InterpreterD
Generated order of execution:
{C} → {B} → {A, D}
Technische Universität München
Daniel Bader 15.04.2011
Object design
34
Capture Critique Analysis ReportController ResultStorage AnalysisController Interpretation SectionGenerator CaptureLibrary CaptureServer Communication
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Technische Universität München
Daniel Bader 15.04.2011
Critique subsystem
35
Element
+__init__(title) +add_element(e) +generate_html(result_store) : string <<abstract>> Section OverviewSection NavigationPathSection TouchHeatmapSection ViewDurationSection UIGuidelineIssuesSection
+add_section(s) +generate_html(result_store) : string +generate(result_store, filename) Report
+addInterpreter(i : string) +addSection(s : string) +setEventsFilename(s : string) +setReportFilename(s : string) +generateReport() ReportGeneratorFacade 1..* 1..*
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Technische Universität München
Daniel Bader 15.04.2011
Prototypical implementation
Full vertical prototype for Apple iOS
Capture support
Analysis support
Critique support
36
Technische Universität München
Daniel Bader 15.04.2011
37
Technische Universität München
Daniel Bader 15.04.2011
Future work
Add more sensors and interpreters
Use the framework in a real world scenario Add support for Google Android
Add ability to playback sessions
Integrate framework in FastFix
38
Technische Universität München
Daniel Bader 15.04.2011
Questions?
39
Technische Universität München
Daniel Bader 15.04.2011
40
<<actor>>
HostApplication PreviewEvents SelectSensors StopSession StartSession ControlSession ConfigureReport ViewReport CaptureUsabilityData muEvaluationFramework TestUser Developer <<Extend>> <<initiate>> <<initiate>> <<initiate>> <<participate>> <<participate>> <<initiate>> Technische Universität München
Daniel Bader 15.04.2011
Use case model (with refinements)
41
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
42
Sensors and SensorTargets
+attachTo(t : SensorTarget) +enable() +disable() <<abstract>> Sensor HostApplication UsabilityData SensorTarget * 1..* *
collects monitors
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
SessionJournal e1 : UserInputEvent TestUser a1 : Action Sensor 2: detect() 4: addEvent(e1) 3: create(time) 1: perform()
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
43
Event detection example
Technische Universität München
Daniel Bader 15.04.2011
Capture phase
44
Capture phase Initialize SessionJournal Initialize Sensors Create Event Observe SensorTargets Continue with next Sensor ActiveSensors <<structured>> for each Sensor SessionJournal [targets did not change] Event [targets changed]
Run analysis phase Initialize ResultStore Initialize Interpreters Update ResultStore Run Interpreter ResultStore <<structured>> Loop SessionJournal InterpretationResult Event
Technische Universität München
Daniel Bader 15.04.2011
Analysis phase
45
Generate Report Add Section to Report Generate Section Select Section to generate ReportConfiguration <<structured>> Loop Report ResultStore InterpretationResult Section
Technische Universität München
Daniel Bader 15.04.2011
Critique phase
46
Technische Universität München
Daniel Bader 15.04.2011
System design
47
The Capture package
Capture CaptureLibrary CaptureServer Communication <<abstract>> Sensor SensorTarget <<abstract>> Event SessionJournal NetworkConnection NetworkMessage CaptureManager ServerController 1..* 1..* * * * receives Events sends Events
creates
Technische Universität München
Daniel Bader 15.04.2011
System design
48
The Analysis package
Analysis Capture AnalysisController Interpretation Storage InterpretationResult Interpreter InterpreterController ResultStore stores results in 1..* * * generates SessionJournal
Visual Paradigm for UML Standard Edition(TUM - Institut fuer Informatik - Lehrstuhl 1)Technische Universität München
Daniel Bader 15.04.2011
System design
49
The Critique package
Critique Analysis SectionGenerator ReportController ReportConfiguration ReportGenerator Report Section SectionGenerator 1..* 1..* uses generates ResultStore uses generates