Written by well-respected experts, this how-to guide provides patterns for the design of human computer human interaction (HCHI). An increasing number of applications are currently designed for use by more than one user, eg: multi-player games, interactive web sites, mobile phones, collaborative learning systems, interactive workspaces and smart environments. In these areas there is a shift from (HCI) human computer interaction to (HCHI) human computer human interaction. The role of patterns in this movement is twofold: 1st – patterns focus on the human user of the system; 2nd – patterns assist developers in the development process of groupware applications.
About the Author
Stephan Lukosch: During his graduation he developed a platform called DreamObjects. DreamObjects simplifies the development and management of shared data objects that are necessary to enable collaboration among distributed users. DreamObjects is an extension of DreamTeam, which is a platform for the development of synchronous, collaborative applications. Since August 2003, Assistant Professor for ‘Distributed systems for cooperative working/learning environments’ at the University of Hagen.
Table of Contents1. Introduction. 1.1 Groupware: Systems that support computer-mediated interaction. 1.2 A day with Paul Smith. 1.3 Outline. 1.4 Acknowledgements. 2. From Patterns to a Pattern-oriented Development Process. 2.1 Patterns and Pattern Languages. 2.1.1 Towards an Holistic Understanding of Socio-technical Forces. 2.1.2 Representations of Patterns. 2.1.3 A Pattern Style for Computer-Mediated Interaction. 2.1.4 How patterns should be applied. 2.1.5 Relationships among patterns in a pattern language. 2.2 An Overview of our Pattern Language for Computer-Mediated Interaction. 2.2.1 The three layers of the pattern language. 2.2.2 Topic clusters on the different layers. 2.2.3 Related Pattern Languages. 2.3 The 2.3.1 Conceptual Iteration. 2.3.2 Development Iteration. 2.3.3 Tailoring Iteration. 2.3.4 Applicability of OSDP. 3. Community Support. 3.1 Welcome me: : : or how to arrive in the community. 3.1.1 Quick Registration **. 3.1.2 Login **. 3.1.3 Welcome Area *. 3.1.4 Mentor. 3.1.5 Virtual Me **. 3.1.6 User Gallery *. 3.1.7 Buddy List **. 3.1.8 Welcome me: : : applied. 3.2 Guide me: : : or how to deal with quality. 3.2.1 Quality Inspection *. 3.2.2 Letter of Recommendation *. 3.2.3 Birds of a Feather. 3.2.4 Expert Finder. 3.2.5 Hall of Fame *. 3.2.6 Reward. 3.2.7 Guide me: : : applied. 3.3 Save me: : : or how to protect users. 3.3.1 Reciprocity *. 3.3.2 Masquerade *. 3.3.3 Availability Status **. 3.3.4 Attention Screen *. 3.3.5 Quick Goodbye *. 3.3.6 Save me: : : applied. 4. Group Support. 4.1 Touch me: : : or on how to modify shared material together. 4.1.1 Group *. 4.1.2 Shared File Repository **. 4.1.3 Shared Browsing *. 4.1.4 Vote *. 4.1.5 Application Sharing **. 4.1.6 Shared Editing **. 4.1.7 Floor Control **. 4.1.8 Touch me: : : applied. 4.2 Meet me: : : or how to create places for collaboration. 4.2.1 Room **. 4.2.2 Active Map *. 4.2.3 Interaction Directory **. 4.2.4 Bell **. 4.2.5 Invitation **. 4.2.6 Blind Date. 4.2.7 Meet me: : : applied. 4.3 Read.Me: : : or how to support textual communication. 4.3.1 Embedded Chat **. 4.3.2 Forum **. 4.3.3 Threaded Discussions *. 4.3.5 Shared Annotation. 4.3.6 Feedback Loop *. 4.3.7 Digital Emotions **. 4.3.8 FAQ. 4.3.9 Read.Me: : : applied. 4.4 Feel me: : : or the provide synchronous group awareness. 4.4.1 User List **. 4.4.2 Spontaneous Collaboration *. 4.4.3 Active Neighbors. 4.4.4 Interactive User Info *. 4.4.5 Remote Field of Vision *. 4.4.6 Remote Selection *. 4.4.7 Remote Cursor **. 4.4.8 Telepointer *. 4.4.9 Activity Indicator *. 4.4.10 Feel me: : : applied. 4.5 Remember me: : : or how to maintain asynchronous group awareness. 4.5.1 Activity Log **. 4.5.2 Timeline. 4.5.3 Periodic Report **. 4.5.4 Change Indicator **. 4.5.5 Aliveness Indicator. 4.5.6 Away Message *. 4.5.7 Remember me: : : applied. 5. Base Technology. 5.1 Connect me: : : or how to handle sessions. 5.1.1 Collaborative Session **. 5.1.2 Persistent Session *. 5.1.3 State Transfer **. 5.1.4 Replay. 5.1.5 Connect me: : : applied. 5.2 Share me: : : or how systems manage common data. 5.2.1 Centralized Objects **. 5.2.2 Remote Subscription **. 5.2.3 Replicated Objects **. 5.2.4 Nomadic Objects. 5.2.5 Mediated Updates **. 5.2.6 Decentralized Updates *. 5.2.7 Distributed Command *. 5.2.8 Share me: : : applied. 5.3 Control me: : : or how systems ensure data consistency. 5.3.1 Pessimistic Locking *. 5.3.2 Optimistic Concurrency Control **. 5.3.3 Conflict Detection **. 5.3.4 Operational Transformation *. 5.3.5 Lovely Bags. 5.3.6 Immutable Versions *. 5.3.7 Control me: : : applied. 6. Examples of Applying the Pattern Language. 6.1 The Case of BSCW. 6.1.1 Community Support. 6.1.2 Group Support. 6.1.3 Base Technology. 6.2 The Case of CoWord. 6.2.1 Group Support. 6.2.2 Base Technology. Chapter 7. Epilogue. Bibliography. Index.