The fields of HCI and Software Engineering have evolved almost independently of each other until the last decade, when it became apparent that an integrated and combined perspective would benefit the development of interactive software applications. The chapters in this book are written by prominent researchers who bring to light the major integration issues and challenges, and offer a variety of solutions to bridging the HCI and SE gap, including:
- Extending software engineering artifacts for UI specification, such as annotating use cases with task descriptions,
- Enhancing object-oriented software engineering notations and models
- Possible extensions of HCI methods for requirements gathering through field observations and interviews, deriving a conceptual design model from scenario, task models and use cases and using personae as a way to understand and model end-users,
- New methodologies for interactive systems design, as well as approaches complementing existing methodologies.
From its beginning in the 1980’s, the field of human-computer interaction (HCI) has been defined as a multidisciplinary arena. By this I mean that there has been an explicit recognition that distinct skills and perspectives are required to make the whole effort of designing usable computer systems work well. Thus people with backgrounds in Computer Science (CS) and Software Engineering (SE) joined with people with backgrounds in various behavioral science disciplines (e.g., cognitive and social psychology, anthropology) in an effort where all perspectives were seen as essential to creating usable systems. But while the field of HCI brings individuals with many background disciplines together to discuss a common goal - the development of useful, usable, satisfying systems - the form of the collaboration remains unclear. Are we striving to coordinate the varied activities in system development, or are we seeking a richer collaborative framework? In coordination, Usability and SE skills can remain quite distinct and while the activities of each group might be critical to the success of aproject, we need only insure that critical results are provided at appropriate points in the development cycle. Communication by one group to the other during an activity might be seen as only minimally necessary. In collaboration, there is a sense that each group can learn something about its own methods and processes through a close partnership with the other. Communication during the process of gathering information from target users of a system by usability professionals would not be seen as something that gets in the way of the essential work of software engineering professionals. Knowing how software engineers will turn the requirements into a functioning system would not be seen as an unnecessary detail to HCI staff.