HUMAN-CENTERED SOFTWARE ENGINEERING - INTEGRATING USABILITY IN THE SOFTWARE DEVELOPMENT LIFECYCLE HUMAN-COMPUTER INTERACTION SERIES VOLUME Editors-in-Chief John Karat, IBM Thomas Watson Research Center (USA) Jean Vanderdonckt, Université Catholique de Louvain (Belgium) Editorial-Board Gregory Abowd, Georgia Institute of Technology (USA) Gaëlle Calvary, IIHM-CLIPS-IMAG (France) John Carroll, School of Information Sciences & Technology, Penn State University (USA) Gilbert Cockton, University of Sunderland (United Kingdom) Mary Czerwinski, Microsoft Research (USA) Steve Feiner, Columbia University (USA) Elizabeth Furtado, University of Fortaleza (Brazil) Kristiana Höök, SICS (Sweden) Robert Jacob, Tufts University (USA) Robin Jeffries, Google (USA) Peter Johnson, University of Bath (United Kingdom) Kumiyo Nakakoji, University of Tokyo (Japan) Philippe Palanque, Université Paul Sabatier (France) Oscar Pastor, University of Valencia (Spain) Fabio Paternò, CNUCE-CNR (Italy) Costin Pribeanu, National Institute for Research & Development in Informatics (Romania) Marilyn Salzman, Salzman Consulting (USA) Chris Schmandt, Massachussetts Institute of Technology (USA) Markus Stolze, IBM Zürich (Switzerland) Gerd Szwillus, Universität Paderborn (Germany) Manfred Tscheligi, Center for Usability Research and Engineering (Austria) Gerrit van der Veer, Vrije Universiteit Amsterdam (The Netherlands) Shumin Zhai, IBM Almaden Research Center (USA) Human-Centered Software Engineering - Integrating Usability in the Software Development Lifecycle Edited by Ahmed Seffah Concordia University, Montreal, Quebec, Canada Jan Gulliksen Uppsala University, Sweden and Michel C Desmarais Ecole Polytechnique de Montreal, Quebec, Canada A C.I.P Catalogue record for this book is available from the Library of Congress ISBN-10 ISBN-13 ISBN-10 ISBN-13 1-4020-4027-X (HB) 978-1-4020-4027-6 (HB) 1-4020-4113-6 (e-book) 978-1-4020-4113-6 (e-book) Published by Springer, P.O Box 17, 3300 AA Dordrecht, The Netherlands www.springeronline.com Printed on acid-free paper All Rights Reserved © 2005 Springer No part of this work may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, microfilming, recording or otherwise, without written permission from the Publisher, with the exception of any material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work Printed in the Netherlands Contents List of Figures xi List of Tables xv Preface xvii Dedication xxi Contributing Authors Part I xxiii Introductory Chapter An Introduction to Human-Centered Software Engineering: Integrating Usability in the Development Process Ahmed Seffah, Jan Gulliksen, and Michel C Desmarais 1.1 1.2 1.3 1.4 1.5 1.6 Introduction Major Obstacles for Effective Integration The Series of Workshops on HCI/SE Integration Why Human Centered Software Engineering? Audience A Quick Tour of The Book 10 12 12 Part II Principles, Myths and Challenges Key Principles for User-Centred Systems Design 17 Jan Gulliksen, Bengt Gă oransson, Inger Boivie, Jenny Persson, Stefan Blomkvist, ˚ Asa Cajander 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Purpose and Justification Background The Project Definition and Key Principles Tools for Applying UCSD Application Agile Approaches and UCSD Discussion/Conclusions 18 18 19 26 29 31 31 32 v vi HUMAN-CENTERED SOFTWARE ENGINEERING HCI, Usability and Software Engineering Integration: Present and Future 37 Ahmed Seffah, Michel C Desmarais, and Eduard Metzker 3.1 3.2 3.3 3.4 3.5 3.6 Introduction Development Processes Artefacts Design Knowledge Organisational Approaches Conclusion Surveying the Solitudes: An Investigation into the Relationships between Human Computer Interaction and Software Engineering in Practice 38 40 45 49 52 56 59 Bill Jerome, Rick Kazman 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 Introduction The State of the Research The State of the Practice Knowledge of SE and HCI Working Together in the Workplace Software Process Interactions Implications of the Process Issues Use of HCI Methods Conclusions/Recommendations Future Research Convergence or Competition between Software Engineering and Human Computer Interaction 60 60 63 64 65 65 67 68 68 69 71 Allistair G Sutcliffe 5.1 5.2 5.3 5.4 5.5 5.6 Introduction Design Processes and Methods Design Representations in SE and HCI Viewpoints in HCI and SE Theoretical Underpinnings Conclusions 72 73 76 79 80 83 Part III Requirements, Scenarios, and Use-cases Experience with Using General Usability Scenarios on the Software Architecture of a Collaborative System 87 Rob J Adams, Len Bass, and Bonnie E John 6.1 6.2 6.3 6.4 6.5 6.6 6.7 Introduction Usability and Software Architecture The Usability and Software Architecture Project Prior Use of U&SA Materials Questions for a Real-world Case The Merboard Project U&SA’S Application to Merboard 88 88 89 98 99 100 102 CONTENTS 6.8 6.9 Summary of Findings Ongoing Work Linking User Needs and Use Case-driven Requirements Engineering vii 109 110 113 Sari Kujala 7.1 7.2 7.3 7.4 7.5 Introduction Understanding User Needs Linking User Needs to User Requirements Writing User Requirements from the User Point of View Evaluating the Approach in Industry 114 116 117 120 122 Guiding Designers to the World of Usability: Determining Usability Requirements Through Teamwork 127 Timo Jokela 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 Introduction Related Methods Development of KESSU URD General Features of KESSU URD Steps of KESSU URD Findings from the Case Studies Conclusions Discussion Transforming Usability Engineering Requirements Into Software Engineering Specifications: From PUF to UML 128 130 131 132 136 140 141 142 147 Jim A Carter, Jun Liu, Kevin Schneider, David Fourney 9.1 9.2 9.3 9.4 9.5 9.6 9.7 Part IV Introduction The Putting Usability First (PUF) Methodology The Unified Modeling Language Applying PUF in UML Implementing These Additions in UML Example Transformations Conclusion 147 148 152 155 164 166 168 UCD, Unified and Agile Processes 10 Which, When and How Usability Techniques and Activities Should Be Integrated 173 Xavier Ferre, Natalia Juristo, Ana M Moreno 10.1 10.2 10.3 10.4 10.5 10.6 Introduction Usability Methods Approach to Integration Integration Proposals Based on SE Methods Summary of Integration Proposals Mapping Between Usability and SE Activities Assignment of Usability Techniques to Activities 174 177 179 182 183 186 viii 10.7 10.8 10.9 HUMAN-CENTERED SOFTWARE ENGINEERING When to Apply Usability Activities and Techniques Discussion Conclusions 11 Coping with Complexity 187 198 199 201 Dave Roberts 11.1 11.2 11.3 11.4 Introduction The Designers’ Model User Engineering Modeling Continued Development 12 Towards a Model for Bridging Agile Development and User-Centered Design 201 204 206 217 219 Stefan Blomkvist 12.1 12.2 12.3 12.4 12.5 12.6 12.7 Introduction Software Development Risks – Reasons for the Agile Approach Characteristics of Agile Development User-Centered Design User-Centered Design Qualities in Agile Development Discussion Towards a Model for Bridging Agile and UCD 13 Ripple: An Event Driven Design Representation Framework for Integrating Usability and Software Engineering Life Cycles 220 221 224 229 230 238 239 245 Pardha S Pyla, Manuel A P´erez-Qui˜ nones, James D Arthur, and H Rex Hartson 13.1 13.2 13.3 13.4 13.5 13.6 13.7 Part V Introduction Background Current Practices Ripple: A Design Representation Framework Contributions Potential Downsides of Ripple Current Status 246 250 252 257 261 265 265 UCD Knowledge and UI design Patterns 14 Integrating User-Centered Design Knowledge With Scenarios 269 Steven R Haynes, John M Carroll, Mary Beth Rosson 14.1 14.2 14.3 14.4 14.5 14.6 Introduction What’s in Design? An Integrative Example A Design Knowledge Research Agenda Related Work Conclusion 269 270 276 277 284 285 CONTENTS 15 Patterns of Integration: Bringing User Centered Design Into The Software Development Lifecycle ix 287 Lisa Battle 15.1 15.2 15.3 15.4 15.5 15.6 Introduction Pattern A: Foot in the Door (for internal usability group) Pattern B: Foot in the Door (for external consultants) Pattern C: UCD Focus on Early Definition and Design Pattern D: UCD in Every Phase Conclusion 16 UI Design Patterns: Bridging Use Cases and UI Design 287 290 294 297 303 308 309 John M Artim 16.1 16.2 16.3 16.4 16.5 16.6 Introduction Tree—An Example of a UI Pattern Composed UI Design Patterns in Use Pattern Descriptions in Practice Future Work Conclusions 17 UI Design Patterns: From Theory to Practice 309 312 321 325 328 329 331 Janet Wesson and Lester Cowley 17.1 17.2 17.3 17.4 17.5 17.6 Introduction Pattern Identification Pattern Use: The Dome Case Study Pattern Evaluation Further Research Conclusions 331 332 335 344 350 351 References 353 Authors Index 379 Subject Index 387 List of Figures 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 5.1 5.2 5.3 6.1 6.2 Collaborative prototyping in which the usability designer facilitates the users’ production of mock-ups Low-fidelity prototyping tools were used as these were the most convenient for visualizing the future use situation without limiting the design space Personas were used to describe typical users In this example, the persona ‘Gudrun’ is described based on personal background, the work setting, colleagues and contacts User-centered system design (UCSD) is a process focusing on usability throughout the entire development process and further throughout the system life cycle UCSD poster The two system perspectives Carroll and Rosson’s scenario-based framework (adapted from Carroll and Rosson, 2002) Constantine and Lockwood’s usage-centered design (adapted from Constantine and Lockwood, 1999) Meta-Model for institutionalizing UCD methods Use of scenarios and models in different phases of the HCI/SE design process Scope of modelling in HCI and SE Craft, engineering and science framework for HCI and SE, adapted from Long and Dowell (1989) The J2EE Model-View-Controller software architectural separation pattern (Sun Microsystems Inc., 2003) Arrows represent control flow, while boxes represent the major software components The layered boxes indicate the existence of several instances of the component type The “Reusing Information” general scenario description xi 21 22 23 25 36 39 41 44 53 75 80 82 89 91 ... Seffah (eds.), Human- Centered Software Engineering – Integrating Usability in the Development Process, 3–14 © 2005 Springer Printed in the Netherlands 4 HUMAN- CENTERED SOFTWARE ENGINEERING Practical... from usability engineering and at the same time to improve collaboration between usability engineering and software engineering INTRODUCTION TO HUMAN- CENTERED SOFTWARE ENGINEERING 1.2.3 The Responsibilities... Universiteit Amsterdam (The Netherlands) Shumin Zhai, IBM Almaden Research Center (USA) Human- Centered Software Engineering - Integrating Usability in the Software Development Lifecycle Edited by Ahmed