Incorporating Usability Evaluation in Software Development Environments
Total Page:16
File Type:pdf, Size:1020Kb
Sapienza Universita` di Roma Dottorato di Ricerca in Ingegneria Informatica XXII Ciclo – 2011 Incorporating Usability Evaluation in Software Development Environments Shah Rukh Humayoun Sapienza Universita` di Roma Dottorato di Ricerca in Ingegneria Informatica XXII Ciclo - 2011 Shah Rukh Humayoun Incorporating Usability Evaluation in Software Development Environments Thesis Committee Reviewers Prof. Tiziana Catarci (Advisor) Prof. Maristella Matera Prof. Giuseppe De Giacomo (Co-Advisor) Prof. Giuliana Vitiello Prof. Massimo Mecella Author’s address: Shah Rukh Humayoun Dipartimento di Informatica e Sistemistica “Antonio Ruberti” “Sapienza” Universit`adi Roma Via Ariosto 25, I-00185 Roma, Italy. e-mail: [email protected] www: http://www.dis.uniroma1.it/∼humayoun/ To my late father Muhammad Yaqoob Contents Contents v List of figures vii List of tables ix 1 Introduction 1 1.1 Problem Statement and Motivation . 1 1.2 ResearchContributions . 3 1.3 ThesisOrganization ........................ 8 2 Preliminary Background 11 2.1 AgileSoftwareDevelopment . 11 2.1.1 AgileDevelopmentMethods. 13 2.2 The User-Centered Design (UCD) Philosophy . 15 2.2.1 UCDProcessLife-Cycle . 16 2.2.2 User-CenteredDesignActivities . 18 2.3 UsabilityEvaluation . 20 2.3.1 Usability Evaluation Methods . 23 2.4 TaskAnalysis............................ 26 2.4.1 TaskModelingTechniques. 26 2.4.2 Task Modeling Languages . 28 3 Integrating User-Centered Design into Agile Software Devel- opment 31 3.1 Motivation ............................. 31 3.2 The Three-fold Integration Framework . 33 3.3 TheLife-CycleLevelIntegration . 37 3.3.1 MethodCategories . 37 3.3.2 SelectionCriteria. 38 3.3.3 A Life-Cycle for Involving UCD in Agile Development Iteration........................... 40 iii 3.4 TheIterationLevelIntegration . 40 3.4.1 The Users’ Role in Software Development Processes . 42 3.4.2 User Experience and The Development Processes . 43 3.5 The Development-Environment Level Integration (UCD Man- agement) .............................. 46 3.6 UEMan: A Tool for UCD Management in Integrated Develop- mentEnvironment ......................... 49 3.6.1 The UEMan Process for Managing and Executing Ex- periments .......................... 51 3.6.2 Automatic Measures using Development Aspects . 55 3.6.3 UEMan Evaluation Studies . 57 3.7 RelatedWork............................ 61 3.8 Summary and Further Directions . 64 4 Framework for Task Modeling Formalization 67 4.1 Motivation ............................. 67 4.2 PreliminaryBackground . 69 4.2.1 SituationCalculus . 69 4.2.2 Golog-family of High-level Programming Languages . 71 4.3 A Dynamic Framework for Multi-View Task Modeling . 79 4.4 FrameworkConcepts. 80 4.4.1 TaskTypes ......................... 82 4.4.2 ViewType ......................... 86 4.4.3 ViewModels ........................ 87 4.4.4 An Example for Task Modeling . 88 4.5 TaMoGolog – A Formal Task Modeling Language . 92 4.5.1 Task Modeling Golog (TaMoGolog) . 93 4.5.2 TaMoGolog Set of Constructs . 94 4.5.3 TaMoGolog Syntax and Semantics . 100 4.6 A Framework for External Nondeterministic Constructs.............................. 110 4.7 Summary .............................. 119 5 Task Model-based Usability Evaluation in Development En- vironment 121 5.1 Motivation ............................. 121 5.2 TaMUFramework ......................... 123 5.2.1 TaMUProcessLife-cycle. 124 5.3 The Role of TaMoGolog in conducting Usability Evaluation . 127 5.3.1 Defining and Tagging Tasks and Variables at the Code level ............................. 127 5.3.2 Benefits of TaMoGolog in Usability Evaluation . 128 5.3.3 Modeling Usability Scenarios through TaMoGolog-based TaskModels ........................ 131 5.3.4 The Data Recording Process during Evaluation Experi- ments ............................ 133 5.3.5 The Data Analysis Criteria using TaMoGolog-based Task Models ........................... 134 5.3.6 The Role of TaMoGolog Formalism in TaMU Framework 137 5.4 TaMUlator: A Tool for Managing TaMU Process Life-Cycle . 138 5.4.1 High-LevelModulesOverview. 139 5.4.2 TaMUlatorAPIs . 140 5.4.3 How TaMUlator Works . 141 5.4.4 The Analyzer Module ................... 143 5.4.5 TaMUlator Evaluation Case Study . 144 5.4.6 Evaluating TaMUlator . 147 5.5 RelatedWork............................ 151 5.6 Summary and Conclusions . 153 6 Conclusions and Future Directions 157 6.1 Conclusions ............................. 157 6.2 FutureDirections. 159 A Golog-family based High-level Program Syntax 163 B Prolog-based Code for IndiGolog Interpreter 171 C Labeling Framework Implementation 177 List of Figures 1.1 Thesisresearchcontributions . 6 2.1 Agileiterationlife-cycle . 13 3.1 Life cycle for involving UCD philosophy into agile development iteration............................... 41 3.2 Structural division of UCD methods . 48 3.3 UEMan evaluationlifecycle . 50 3.4 UEMan experimentmanagement . 52 3.5 UEMan experimentexecution . 54 3.6 UEMan automatic measures using Development Aspects . 58 3.7 UEMan preliminary evaluation study results . 60 3.8 Average ranking of participants for each problem per heuristic 61 4.1 Relationship between framework concepts ............ 82 4.2 A task model of Book-Purchasing from user-interactive view perspective ............................. 90 4.3 A task model of Book-Purchasing from complete view perspective 91 5.1 TaMU framwork .......................... 124 5.2 TaMU processlife-cycle . 125 5.3 Relationship between evaluation experiment and the attached taskmodels ............................. 131 5.4 TaMUlator high-levelmodulesoverview . 139 5.5 Tagged set of tasks (activities) and variables . 141 5.6 ScreenshotofatypicalAspectJhook . 142 5.7 A task model written in TaMUlator ................ 142 5.8 Analyzer output of an evaluation experiment . 144 5.9 Timespentgameplaying . 150 5.10 Time spent on users’ sessions . 150 6.1 Hierarchyofthesistargetedareas . 158 vii List of Tables 3.1 Set of attributes for determining the selection of appropriate UCDmethods............................ 38 4.1 Golog setofconstructs[73] . 72 4.2 ConGolog setofconstructs[18] . 73 4.3 GameGolog setofconstructs[20] . 74 4.4 TaMoGolog setofconstructs. 95 5.1 Example task model no. 2 - time measures . 149 ix Chapter 1 Introduction 1.1 Problem Statement and Motivation High-level usability is acknowledged as a significant feature of software prod- ucts. On the other side, poor usability and inefficient design of the end product are common causes, amongst others, for failed software products [4, 69, 86]. That’s why, one of the challenges in software development is to involve end users in the design and development stages so as to observe and analyze their behavior and to collect feedback in effective and efficient manner and then to manage the ensuing development accordingly. One way to achieve this is by applying user-centered design (UCD) [25, 43, 110] philosophy. This philosophy puts the end users of the system at the centre of the design and evaluation activities, through a number of methods and techniques. The UCD philosophy is applied in software projects with the aims of increasing product usability, reducing the risks of failure, decreasing long-term costs, and increasing overall quality. The International Organization for Standardization (ISO) has also de- fined the standard guidelines to deal with different aspects of human-computer interaction (HCI) and UCD; in particular, ISO/DIS 13407 [116] provides the guidance on user-oriented design process. Other relevant ISO standard guid- ance are ISO 9241-11 [115] and ISO TR 16982 [117]. The agile approach [1, 2, 31] is one software development approach that has emerged over the last decade. This approach is used for constructing software products in an iterative and incremental manner; in which each iter- ation produces working artifacts that are valuable to the customers and to the project. This is performed in a highly-collaborative fashion to produce quality products that meet the requirements in a cost-effective and timely manner. Generally, in software development practice, software teams hesitate to imply UCD activities due to their time-consuming and effort-intense nature. Using the agile approach, in which customers and product owners lead the 1 2 CHAPTER 1. INTRODUCTION prioritization of the development, helps developers overcome these hesitations. By emphasizing the benefits common to both the end users and the developers, UCD and the agile approach can be dynamically integrated to get benefits from both, resulting in the development of high-quality and usable software products. We identified that agile development teams were often lacking a properly- integrated approach that utilizes the UCD philosophy from end-to-end at all levels. To overcome this gap, firstly, this thesis proposes a three-fold integra- tion framework that incorporates UCD philosophy into agile software devel- opment at three levels: the process life-cycle level, the iteration level, and the development-environment level. This proposed framework identifies ways to apply appropriate UCD activities alongside agile development activities, with the aim of developing high-quality and usable products. Integrating UCD activities into software development activities fuses the user experience with the development process, attaining a high level of usabil- ity in the resulting product. One of the challenges of this integration is the management and automation of the usability evaluation along the develop- ment process. Usability evaluation aims at involving users, especially