icsea 2007 - environment for ui evolution
DESCRIPTION
We present an environment to conduct evolution of UIs.TRANSCRIPT
Software Environment for Research on Evolving User Interfaces
Juan Quiroz, Anil Shankar, Sergiu M. Dascalu, Sushil J. Louis
Department of Computer Science and Engineering
University of Nevada, Reno
USA
2
Outline
• Motivation
• Background
• Evolution environment
• Improving research productivity
• Transitioning from research to end-user tool
3
Motivation
• User interface design is a complex, expensive, time consuming process
• Iterative process
• Users and contexts of use are numerous
• Streamline and improve UI design
4
IGA for UI Evolution
• IGA to explore the space of UIs– Creativity and insight
• Evolution is guided by both the user preferences and coded guideline metrics
5
Genetic Algorithms
• Population based search technique– Natural selection– Survival of the fittest
6
Interactive Genetic Algorithms (IGAs)
7
Implementation Details
• Python
• GUI – wxPython
• Target language – XUL
8
XUL User Interfaces
• XML User Interface Language
• Mark-up language for UIs– Buttons, textboxes, sliders
menubars, toolbars
• <button label=“Hello World” />
Poor XUL rendering support in python
9
10
Investing Time on Development
vs.
Research Experimentation
11
Research Environment Improvements
• wxPython integration
• Experiment runs manager
• Data manager
12
wxPython Integration
13
Experiment Runs Manager
14
Data Manager
15
Future Productivity Improvements
• GUI definition in wxGlade or NetBeans
• Integration of user interface definition in the environment
• Higher level user interface specification
• Code generation
• User interface editing
16
Transitioning from Research to End-User Tool
• Users– Researchers– UI designers
• Environment Modes– End-user mode– Researcher mode
17
User Modes
• End-user mode– Minimalist interface– Reduce technical jargon
• “Variety”• “Creativity”
– Subset of functionality of researcher mode
• Researcher mode– Advanced configuration
18
Use CaseEnd-User Mode
Researcher Mode
1 Define user interface √ √
2 Load user interface definition √
3 Customize high level IGA details √ √
4 Customize low level IGA details √
5 Start IGA √ √
6 Stop IGA √ √
7 Open IGA state √ √
8 Save IGA state √ √
9 Select best and worst UI √ √
10 Undo evolution step √ √
11 Redo evolution step √ √
12 Edit evolved UI √ √
13 Run batch mode √
14 Extended help √
19
Summary
• UI evolution
• Investing time on environment development– Improves productivity– Less error prone– Reduces tedious tasks
• Transition from end-user to research tool