Interplay between Human-Computer Interaction and Software Engineering

10
Interplay between Human-Computer Interaction and Software Engineering Abiodun Ogunyemi Institute of Informatics Tallinn University Narva MNT 25, Tallinn, 10120, Estonia [email protected] David Lamas Institute of Informatics Tallinn University Narva MNT 25, Tallinn, 10120, Estonia [email protected] AbstractThe challenge to transfer HCI suggested values, and practices to Software Engineering (SE) processes is not only persisting, but also systemic. Notable contributions from both fields have attempted to isolate and close the gaps between the HCI and SE, with the goal of making software products most usable. Using a scoping study approach, this article reviews notable contributions on the discourse and identifies the gaps, and shows areas that require more research attentions. Keywords- Human-computer interaction Practice; Software Engineering Process; Usability; Integration; Modeling Techniques; Software Development; HCI Design I. INTRODUCTION The human-computer interaction (HCI) as an approved field has been investigated successfully by academics for decades and various findings have been discussed in notable conferences such as CHI, NordiCHI, OzCHI, BCS-HCI, INTERACT, and the results published in their conference proceedings and in top journals such as ACM TOCHI and the International Journal of Human Computer Interaction. Although many HCI researches have been undertaken and results delivered to the software industry as evident in modern technology innovations such as swiping, speech recognition, eye authentication, touch screen, pattern recognition, zooming, embodied interaction, wearable devices etc, there seems to be a clear slow uptake of HCI values, and practices in the software development industry as most software products in use still fall short of considerations of these HCI values, and practices. There seems to some clear persisting and systemic challenges in terms of transferring human-computer interaction suggested practices to software engineering (SE) processes. The purpose of this article is to provide taxonomy of the challenges of transferring HCI suggested practices to software engineering processes. These challenges inhibit the development of usable software products. Transfer Figure 1. A visual overview of the transfer process Fig. 1 shows that the transition of suggested human- computer interaction practices to software engineering processes is not smooth as the flow link appears with broken connecting lines. The broken flow links symbolize gaps and the reasons why these gaps exist, serve as one of the purposes of this article. The first purpose of this article is particularly important to the new comers into the HCI and software engineering fields. The other purpose is to show areas that require more research efforts in terms of integrating HCI and software engineering. The rest of the article is organized as follows: the next Section presents a review of the literature, followed by the Section on methodology. Discussion of the results is thereafter presented, the article is concluded and the future work is shown. II. LITERATURE REVIEW The gaps between the human-computer interaction and software engineering disciplines have remained for over two decades and began to gain research attentions from the late 1990s. The major concern is that half of the systems in use today, are based on user interface and the role of the human- computer interaction field cannot be overemphasized [25]. In 2003, a software engineering workshop was held with the aim of understanding the gaps of communication between the HCI and SE fields, and with a basic goal of proposing ways to bridge those gaps [25]. The workshop proceedings were published by the “Institut d’Administration et de Gestion (IAG), Université catholique de Louvain (UCL), Belgium” and available in the INTERACT 2003 Proceedings. Few other workshops such as the ICSE 2004 and conferences such as the INTERACT 2001, ICSE 2003 [18], and EIS 2007 Joint Working Conferences [44] have discussed the problem of gaps between the HCI and SE disciplines. Despite these many contributions to bridge the gaps between the HCI and software engineering, many software companies continue to develop unusable software products [3]. This section discusses the gaps between the human-computer interaction and software engineering disciplines as obtained from the literature. HCI Practices Values and Practices SE Processes Software Development Lifecycle

Transcript of Interplay between Human-Computer Interaction and Software Engineering

Interplay between Human-Computer Interaction and Software Engineering

Abiodun Ogunyemi Institute of Informatics

Tallinn University Narva MNT 25, Tallinn, 10120, Estonia

[email protected]

David Lamas Institute of Informatics

Tallinn University Narva MNT 25, Tallinn, 10120, Estonia

[email protected]

Abstract— The challenge to transfer HCI suggested values, and practices to Software Engineering (SE) processes is not only persisting, but also systemic. Notable contributions from both fields have attempted to isolate and close the gaps between the HCI and SE, with the goal of making software products most usable. Using a scoping study approach, this article reviews notable contributions on the discourse and identifies the gaps, and shows areas that require more research attentions.

Keywords- Human-computer interaction Practice; Software Engineering Process; Usability; Integration; Modeling Techniques; Software Development; HCI Design

I. INTRODUCTION

The human-computer interaction (HCI) as an approved field has been investigated successfully by academics for decades and various findings have been discussed in notable conferences such as CHI, NordiCHI, OzCHI, BCS-HCI, INTERACT, and the results published in their conference proceedings and in top journals such as ACM TOCHI and the International Journal of Human Computer Interaction. Although many HCI researches have been undertaken and results delivered to the software industry as evident in modern technology innovations such as swiping, speech recognition, eye authentication, touch screen, pattern recognition, zooming, embodied interaction, wearable devices etc, there seems to be a clear slow uptake of HCI values, and practices in the software development industry as most software products in use still fall short of considerations of these HCI values, and practices. There seems to some clear persisting and systemic challenges in terms of transferring human-computer interaction suggested practices to software engineering (SE) processes. The purpose of this article is to provide taxonomy of the challenges of transferring HCI suggested practices to software engineering processes. These challenges inhibit the development of usable software products.

Transfer

Figure 1. A visual overview of the transfer process

Fig. 1 shows that the transition of suggested human-computer interaction practices to software engineering processes is not smooth as the flow link appears with broken connecting lines. The broken flow links symbolize gaps and the reasons why these gaps exist, serve as one of the purposes of this article. The first purpose of this article is particularly important to the new comers into the HCI and software engineering fields. The other purpose is to show areas that require more research efforts in terms of integrating HCI and software engineering. The rest of the article is organized as follows: the next Section presents a review of the literature, followed by the Section on methodology. Discussion of the results is thereafter presented, the article is concluded and the future work is shown.

II. LITERATURE REVIEW

The gaps between the human-computer interaction and software engineering disciplines have remained for over two decades and began to gain research attentions from the late 1990s. The major concern is that half of the systems in use today, are based on user interface and the role of the human-computer interaction field cannot be overemphasized [25]. In 2003, a software engineering workshop was held with the aim of understanding the gaps of communication between the HCI and SE fields, and with a basic goal of proposing ways to bridge those gaps [25]. The workshop proceedings were published by the “Institut d’Administration et de Gestion (IAG), Université catholique de Louvain (UCL), Belgium” and available in the INTERACT 2003 Proceedings. Few other workshops such as the ICSE 2004 and conferences such as the INTERACT 2001, ICSE 2003 [18], and EIS 2007 Joint Working Conferences [44] have discussed the problem of gaps between the HCI and SE disciplines. Despite these many contributions to bridge the gaps between the HCI and software engineering, many software companies continue to develop unusable software products [3]. This section discusses the gaps between the human-computer interaction and software engineering disciplines as obtained from the literature. HCI Practices

Values and Practices

SE Processes Software

Development Lifecycle

A. Brief Historical Overview of HCI and SE

The human-computer interaction field is “concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them” [26]. From another perspective, the human-computer interaction discipline is a blend of psychology, social sciences, computer science, and information technology disciplines [16]. Overall, the HCI discipline uses the knowledge derived from computer science, psychology, and related disciplines to design interactive computing systems for human use. The field of the human-computer interaction is thus multidisciplinary in its approach [24, 38]. The human-computer interaction community began to gain prominence from the 1980s [38]; over a decade that the software engineering field had existed [20].

The software engineering field originated from the computer science discipline and is defined as a field which is concerned with “the systematic design and development of software products and the management of the software process” [40]. The software engineering discipline is considered as a well-established field [46], whose activities began with the NATO conference in 1968. The focus of the software engineering field still remains to support the Department of Defense (DoD) type system which is overly large [20]. There is however no clear definition of the

relationship between HCI values, and practices and SE processes [10], and their integration remains a long standing matter [43].

B. Transfer Challenges

The broad goal of the human-computer interaction community is to ensure that safe and usable software products are developed by the software development industry [12, 16, 24, 30]. On the other hand, the software engineering field strives to develop functional software that can help the users to accomplish their tasks effectively [12, 23]. Bearing these goals in mind, it is safe to assert that the two fields strive to achieve a common goal, which is to ensure user satisfaction with software products. However, their approaches differ significantly [38]. There are usually two major components in software interaction process: the user, and the software. The user is a dynamic component and the “software product is a cultural matrix of applications, users, laws, and machine vehicles. These all change continually, and their changes inexorably force change upon the software product” [9]. The communication gaps which have featured prominently in the literature and have inhibited the transfer of HCI values, and practices to software engineering processes are identified and discussed in the following subsections. Fig. 2 shows a concept map of the gaps which were identified in the literature.

Figure 2. Concept mapping of HCI-SE Gaps

1) Disciplinary Backgrounds

Both the human-computer interaction and software engineering disciplines speak different languages and have different orientations to design. HCI is more informal in its techniques and also user-oriented, while SE is formal, functional and system-oriented [49]. The human-computer interaction field is multidisciplinary, and uses a mix of psychology, ergonomics, computer science and other related

disciplines in its approach to designing software for human use [38, 41]. On the other hand, the software engineering discipline is an off-shoot of computer science discipline, and uses little or no knowledge of human factors in software design [41, 47]. Thus the perspective to, and understanding of human design, differ by each field. Usually the System Analyst collects requirements from the customer, and the Interaction Designer designs the system as explained by the System Analyst. The output is entirely different based on the mindset of the Software Engineer. In all, the user

expectation is not achieved due to these misinterpretations by the experts, which also are motivated by their differing disciplinary backgrounds, and approaches to design [38].

2) Educational Curriculum

The gap between the human-computer interaction and software engineering disciplines is also traceable to the non inclusion of courses of one field in the other’s educational curriculum at the undergraduate level, thereby making one field foreign in the other’s domain. A challenge as noted by [53] is that undergraduate students are overly obsessed with coding and compilation of programs when being taught software engineering. This set of students often assumes that a system works, once its program compiled successfully [38, 41]. The user interface is just perceived as menu, text-based or graphical. The commonalities which have been identified between the HCI and SE disciplines are presented in Table 1. Based on shared tools, Table 1 suggests that usability could form the basis of requirement and simple tools such as scenarios and use cases could be used for paper prototyping (a low fidelity prototyping) in usability testing, before the developers build functional prototypes [46, 53]. Thus, undergraduate computer science students could be taught the fundamentals of HCI, and HCI undergraduates could also learn fundamental software development processes [46, 53]. TABLE 1. HCI-SE COMMONALITIES (SOURCE: [53])

SE in HCI HCI in SE

Requirement for usability

Usability included in requirements

Use cases-task analysis Use cases from the users

Detailed scenarios for system tasks

User-focused detailed scenarios

Role of prototypes in system development

Prototypes of user interface

Usability testing Usability testing

Software process models and work

products

User-centred development

In order to produce software engineering graduates who appreciate and could develop usable software, and interaction designers who have the mindset of software engineering approaches, [36] and [20] proposed the inclusion of HCI and SE-based projects in undergraduate

curricula of the two disciplines. For example, [20] observed that since the goal of software engineering is channeled to the “development of large-scale systems, there is an education gap in many computer science programs that don’t include a design and implementation course for small to medium size systems that emphasize user interaction”. Of more importance is the fact that these computer science graduates would be involved with small-scale interactive software developments later on [20, 36]. The recent undergraduate curricula of both disciplines have however effected the necessary adjustments [2].

3) Terminologies

There are clear distinctions between suggested practices and how software products are actually developed by software organisations, and one of the challenges has to do with the differing understanding of HCI and SE’s concepts and terminologies [22, 30]. These distinctions in terminologies and their understandings affect the overall approach to software development [30]. In order to overcome the problem between the HCI and SE in terms of their terminology differences, it has been suggested that undergraduate students of computer science and HCI should be motivated to explore the terminologies of both fields and determine their point of convergence and commonalities [22, 39].

4) HCI Techniques

Complexity of some of the techniques used in HCI such as the Hix and Hartson's Star Lifecycle [27] is another challenge in transferring HCI values, and practices to software practitioners [49]. It is observed that “HCI techniques are not described in the frame of a software process as it is understood in SE (Software Engineering)” [30] thereby limiting their ability to manage software development lifecycle [3, 43]. For example, Star Lifecycle model is highly iterative and it is challenging to determine when a particular iteration has completed [49]. Another challenge with HCI techniques is that of the difficulty often experienced when selecting them for a task domain. To select the appropriate techniques for a specified project is usually problematic.

5) Human Factors

Human beings have certain differences in terms of their cognitive and affective domains. These human dimensions play significant roles in user-system interactions, and lack the ability to be predicted in advance [30]. These complexities are difficult to handle in a single software product. Therefore, software development complexity, conformity, changeability, and invisibility are further complicated [9].

6) Organisational Culture

A lack of consideration for organisational culture and standard practice is another problem of transferring HCI values, and practices to SE processes. It is a herculean task to change the well-established organisational development processes into human-centred processes in a single software development project [37, 49]. The Mayhew's usability engineering lifecycle places much emphasis on redesigning the overall development process around usability issues. However, the achievement of this goal “often poses a problem to the organizational culture of software engineering organizations” [49]. The well-established development processes of an organization cannot easily be turned into human-centered processes during a single project. This is a major drawback with the usability engineering lifecycle. The Constantine and Lockwood's [19] usage-centred designs have similar drawbacks on organisational culture. [49]. In as much as fitting a wide range of processes into single “perfect” software solution could culminate in a perceived harmonious and working integration of HCI usability techniques and SE processes, it is overly difficult to achieve this goal due to some SE organisational culture. Some software companies are not willingly to trade-off their existing software process to embrace unification with HCI methods/techniques. For example, it is a daunting task to change the waterfall lifecycle to a user-centred approach [30]. The user-centred design (UCD) and participatory design (PD) techniques similarly overlook the dimension of organizational view of HCI and SE integration in the software development lifecycle [37].

7) HCI Results Repository

The lack of common repository for HCI results and suggested practices is another aspect of difficulty in transferring HCI practices to SE processes. It is surprising to note from previous surveys of software developers that most software engineers are either unaware of HCI practices or do not know where to locate these results [32]. Some software developers in other instances have had to read lots of HCI books in order to digest recommended techniques such as usability evaluation when undertaking usability integration tasks [30]. The HCI books are often disparate between authors and methods and this makes the selection of suitable techniques to organisational software projects needs, very difficult [30].

8) Focus

One of the gaps between the HCI and SE is that of what each field focuses on, based on their problem domains. The human-computer interaction field is concerned with system context, with focus on the users, while software engineering is system-centred with focus on functionality [8, 46]. Furthermore, HCI focuses on tasks and how users use

software product or system to accomplish their tasks in their working environment, while SE focuses on the capabilities of software to achieve its underlying functions, purpose, and requirements [12]. Moreover, these distinctions lead to the assignment of individual roles and responsibilities in software development lifecycle, which do not always go well with software development practice [12, 38].

9) Standards

The challenge of transferring HCI values, and practices to SE processes has also been attributed to the lack of establishing standards of practice between the two fields. This makes adherence to standard practice difficult for new members to each community. Both the HCI and SE speak different languages due to lack of uniform concepts and terminologies [43]. It is perceived that persistent breakup of disciplines may be due to “a mesh of political, social and economic issues” [34]. This may give insights into “why although some software developers have some theoretical knowledge of user interface design guidelines or usability standards, they seldom use them in practice, simply because they do not know which, when and how to apply them in their context” [34]. However, as vital tool for collaborative task, standards should be more understandable and consistent [34, 49].

10) Context of Application

One of the major challenges the SE has with HCI is that of the context of application of HCI techniques, such as usability patterns. In order to mitigate this challenge, bridging patterns which extend patterns in interactive design and useful for architectural analysis, were proposed. Bridging patterns are meant “to provide detailed implementation issues and solutions, and to provide an instrument to facilitate communication across the HCI and SE boundaries” [22]. These bridging patterns such as Multi-level Undo, Multi-channel Access, Wizard and Single Sign-on (SSO) however, have restricted areas of application. For instance the patterns are domain-specific and could not be applied in a wide range of application domains. Pattern and use-cases have been identified as useful artifacts for HCI-SE user design [49]. The utility of guidelines to professionals remains questionable as a mean of transferring HCI values, and practices to SE processes, although guidelines are an important tool to teach user interface design [49]. Other contextual issues with HCI methods include application domains, organisational factors and project constraints [52].

11) Perception

The human-computer interaction discipline suffers a perception challenge from its software engineering contemporary. Perception is a major reason why HCI is not well-integrated with software development lifecycle tools because HCI is considered a fragment of the overall system

design, even though users view the interface as the actual system [46]. Some software engineering textbooks share this perception, and view HCI as ‘add on’ in interface design [46]. Similarly, HCI is not considered a central topic in software engineering and is defined as a ‘related discipline’ and ‘software ergonomics’ in the IEEE Software Engineering Body of Knowledge (SWEBOK) guidelines [49].

12) Design Process, Usability, and User Experience

The non-involvement of the actual users by software developers, in software products design process, is also a demonstration of the transfer problems between the HCI and SE. In most cases, software engineers consider user involvement in the design process as unimportant [6, 13, 46]. In exceptional cases, there is reluctance on the part of the client organisations to allow their users participate in the design process [46]. These client organisations usually perceive user participation in the design process as too time consuming. The non-involvement of the actual users in the software development lifecycle often impacts software product quality and arouse user dissatisfaction [13, 37]. Some studies also show that most software development companies do not take usability issues such as usability testing and user experience (UX) as important [3, 14, 33]. For example, in a study conducted by [3], it was discovered that most software companies ignore usability and UX because usability and UX requirements are not always mentioned in the Call for Tenders for ICT products generally. Although there were efforts to convince public organisations on the importance of including usability and UX requirements in Tenders, how to conduct objective verifications of usability and UX requirements in public tender calls is now a major concern for public organisations. Another challenge reported by the study is that usability researchers do not describe the usability evaluation methods in the manner that makes sense to practitioners.

It is however suggested that a process rethinking through education is laudable [46]. It should be mandatory that design teams have access to the end users throughout the development lifecycle. The same goes for student projects. Finally, usability researchers should make their suggestions more explicit and attractive to the software development organizations [3].

13) Development Team

One of the setbacks experienced when transferring HCI suggested values, and practices to SE processes is that posed by the software development team. There is an intrinsically communication challenge among software development team members [47, 51]. Due to the effect of their disciplinary background, the software engineers often have so much influence, to the extent of influencing software project decisions [21, 41]. Most often too, software

engineers think for end-users and are mainly concerned with getting algorithms successfully complied [41]. Software engineers hardly relate with interaction designers [41]. In most teams, software engineers are team lead. Another challenge with software engineers is that they often possess little or no usability techniques knowledge [38, 41]. It has therefore been suggested that software development teams should comprise HCI experts, end users, graphical designers, and software engineers and each member should be aware of others’ skills, and when to request for such skills [46]. The student software development project teams should also imitate this approach as much as possible [46]. Considerations should be made of functionality, usability, and visual aesthetics when developing interactive software solutions, and this is achievable only through a team approach, where all the key experts are involved [46].

14) HCI Usability Techniques and Usability Evaluations

Usability techniques such as the Rosson and Carroll’s [48] scenario-based design have been found quite useful especially for elucidating usability requirements and for motivating iterative design process [49]. Scenarios are used for task analysis and they are used as instances of use-cases in software engineering [49]. Scenarios are written in natural languages and could be understood by the users and the designers. However, a major weakness of scenarios is that they lack the ability to communicate effectively between the development team and the stakeholders, as an integration artifact [49]. This is motivated by the diversities in the experts’ backgrounds. Scenarios in natural languages are ambiguous, imprecise and lack formality [49]. Similarly, the Beyer and Holtzblatt’s [7] contextual design only provides “very generic recommendations for adapting and tailoring the overall approach to different project configurations” [49]. Overall, HCI usability techniques when applied in the software development process are decoupled from the process [30].

The economic benefits of usability evaluation include sales increase, enhanced user productivity, reduced costs of training, and reduced needs for user support [6]. Although these economic benefits appear enticing, the obstacles that still confront usability evaluation are those based on the lack of understanding of usability evaluation in itself, developers’ mindset, and resource demands [3, 4, 6, 8]. Most software developers, based on their mindset, confuse usability evaluation with functionality test, and therefore prioritize functionality in software development process [6]. In order to mitigate the situation with developers’ mindset, studies conducted by [11, 35] show that training software developers on usability evaluation is a worthwhile approach. However, small-sized software development organisations still lack the ability to cope with resource demands in terms of experience and expertise, to successfully incorporate usability evaluation into agile development practices [8].

15) Software Engineering Modeling Techniques

The field of software engineering has predefined modeling techniques. Prominent among these techniques is the Unified Modeling Language (UML). The UML has a wide acceptance in both the academia, and software industry, and has become an indigenous technique for software development [43, 45]. However, UML lacks consistency with user-centred designs and HCI best practices [17, 38]. For instance UML “does not provide designers with modeling languages and associated tools to explore the relevant HCI aspects of interactive software” [45]. Several UML-based languages such as Abrams, and Phanouriou's UIML [1], Carter, Liu, Schneider, and Fourney's PUF [17] were developed in order to mitigate UML’s limitations, but these extensions were incapable of removing the formal nature of UML and failed to enhance understanding for the business people [38]. Similarly, the Unified Process (UP) technique has no filters for internal functionality of software and the user interface [43]. The Unified Process also lacks support for multiple platforms and often leads to conceptual architectural complexities [43]. The Extreme Programming (XP) technique depends on well-established HCI vertical prototypes to uncover possible architectural problems in software development [15, 43]. For example XP uses scenarios (user stories) and use cases [46] which are “not only inconsistent with agile development, but also misleading as an effective way to model user requirements” [43]. Scenarios are much useful in HCI as they provide focus, but are “usually disastrous when applied indiscriminately as a general requirements discovery technique” [43]. The major problem with XP is therefore its lack of artifact that shows the link between its conceptual architecture and the user-stories [10, 43].

In order to mitigate the shortcomings provided by UML, UP and XP, some experts in the field of human-computer interaction developed useful techniques such as the Usability Goal Achievement Metric (UGAM) and the Index of Interaction (IoI) [29], the Modeling Language for Interaction as Conversation (MoLIC) [45], the Cross-discipline User Interface and Software Engineering lifecycle (CRUISER) [38], and The Evolved Integration Model of HCI and SE (TEIM) [31]. The UGAM is a “product metric that measures the extent to which the design of a product achieves its user-experience goals” and the IoI is “a process metric that measures the extent of integration of the HCI activities in the SE process” [29]. Both UGAM and IoI take consideration of organization and are useful to undertake a wide range of software products and projects [29, 31]. The MoLIC was built on semiotic engineering principles, and conveys interaction as threads from user’s interaction with the system. MoLIC performs consistency checks with other design notations in UML [45]. The CRUISER is a robust tool which applies scenarios and prototypes and other agile HCI and SE techniques to provide a platform for agile human software development [38]. The goal of CRUISER is

to achieve an interdisciplinary environment where HCI and SE converge on common approach to agile software lifecycle development, using shared principles and techniques, thereby speaking the same development language [38]. A recent HCI field’s effort to bridge the HCI-SE gap, is the development of the Human Centred Software Engineering (HCSE) framework. The HCSE framework seeks the commonalities between HCI and SE disciplines and is developed based on the CRUISER dimensions [13]. The CRUISER technique is presently perceived to be the best possible and practical prototyping compromise between HCI and SE [13]. TEIM is a tool that has been evaluated based on the dimensions of UGAM and IoI [31]. TEIM is a modification of a software application called Personal Secretary (PS) – a tool that adapts the UGAM and IoI models and uses empathy map [29, 31]. These tools are not outright replacements of UML UP, and XP, but complementary tools, some of which have been accepted and used in software development and projects. However, most of the tools still require some empirical validations and use in production environments.

III. METHODOLOGY

In order to approach this review, fifty three articles were selected using the keywords presented in Fig. 3. Word cloud applications such as ‘HTML5 word cloud ’, ‘abcya.com’ and ‘Wordle’ were used to form a cloud of the keywords used in the articles reviewed. Keywords such as ‘Human-computer interaction and Software Engineering Integration’ were used in search engines to retrieve the selected articles from their databases. Furthermore, each article’s reference lists were searched for relevant papers in order to gain deeper insights into the discourse.

Figure 3. A Word-Cloud of HCI-SE Gaps Keywords

Fig. 4 shows the distribution of the selected articles by their year of publications. Finally, the scoping study technique was adopted to review the selected articles [5]. Generally, the scoping study approach, according to [5] is relevant in order to:

Examine the extent, range and nature of research activity;

Determine the value of undertaking a full systematic review;

Summarise and disseminate research findings; and

Identify research gaps in the existing literature.

Figure 4. Distribution of HCI-SE Paper Publications by

Year

The scoping study technique used has five stages of methodological framework. The first stage is to identify the research question, and the simple question we ask is: why is it difficult to transfer HCI suggested values, and practices to software engineering processes? The second and third stages are to identify, and select relevant studies, and as mentioned earlier we used certain keywords to select the articles reviewed for this study. The fourth stage is to create charts from the data, and we have shown our chart in Fig. 4. The final stage is to collate, summarize, and report the results. The discussions in Section II of the paper are the taxonomy of our findings.

IV. DISCUSSIONS

The findings from this review show that efforts to transfer HCI values, and practices to software engineering processes have been age-long, spanning over three decades. The results in Fig. 4 show that the issue of HCI-Software Engineering integration was largely addressed in 2003. This could be as a result of the dedication of prominent conferences such as the International Conference on Software Engineering and workshops such as INTERACT to the goal of achieving the integration of human-computer interaction values, and practices into software engineering processes. These conferences and workshops were held in 2003. Areas such as educational curriculum, modeling techniques, and usability formed the major topics of these meetings. It is however observed that topics such as organisational culture, context, human-centred design, usability evaluation, and software engineering modeling techniques continue to appear in the literature till date. These topics have underlying human factors that seem to make their resolution somewhat arduous. There appears to be the challenge of representing the informal world of users in a formal solution set of software products. For example,

the Engineering Interactive Computing Systems (the ACM SIGCHI Symposium on Engineering Interactive Computing Systems) conferences have been committed to achieving successful user interface engineering and have featured topics such as ‘Formal methods for HCI’ in their meetings since 2011. This could have been motivated by the need to overcome the complexities often associated with human-centred design.

TABLE 2. GAP AREAS IDENTIFIED OVER TIME

Gaps Identified

Period Gaps were Reported

1980 - 1985

1986 - 1991

1992 - 1997

1998 - 2003

2004 - 2009

2010 - Date

Differing Disciplinary Backgrounds

41,43 38,49

Educational Curriculum

12 36,41,46,53

20,38

Differing Terminologies

39 22,30

Complexities of HCI Techniques

43 30,49 3

Complexities of Human Factors

9 30

SE Organisational Culture

19 30,49 37

Lack of Common Repository for HCI Results

32 30

Different Focus on Problem Domains

12 38,46 8

Lack of Standards of Practice

34,43 49

Context of Application of HCI Methods and Techniques

22,49 52

Perception 46 49

Lack of User Involvement in Design Process, Usability and UX

46 6,14,33

3,13,37

Lack of Communication among the Development Team

38,41,46,47,51

2

Lack of Suitable HCI Usability Evaluation Techniques

8 7 6,30,49

3,4,11,35

Inconsistency of SE Modeling Techniques

10,38,43,45

17 13,15,29,31

Table 2 shows the various HCI-SE transfer gaps that featured in the literature to date. The table suggests that issues such as organisational culture, context of application of HCI techniques, user involvement, usability evaluation techniques, and software engineering modeling techniques have yet to be holistically resolved and these areas call for more research efforts.

V. CONCLUSIONS

The fields of human-computer interaction and software engineering were examined with a view to identifying the gaps between the two disciplines. Numerous gaps, ranging from differing disciplinary backgrounds through to software engineering modeling techniques have been found. The efforts of integrating HCI and software engineering, with a view to enhancing usability of software products keep growing. There have been several organized workshops and conferences to this effect. However, the achievement of usable software production by the software development industry has been problematic partly because of the complexities of using some HCI techniques and methods, and partly because most software development companies are intransigent to suggested practices on usability, and human-centred design. We have also determined that issues such as organisational culture, context of application, user involvement, software engineering modeling techniques, and incorporation of usability evaluation into agile software development practice for small-sized software organisations, still require more research efforts. This article is part of a current effort of the authors to identify the obstacles of integrating HCI values, and practices with software engineering processes, and achieve a successful incorporation of human-centred design framework into agile software developments. As the challenges of integrating HCI with software engineering persist, this article is particularly beneficial to the new comer into the HCI and software engineering fields.

VI. FUTURE WORK

Although, the activity-centred design was proposed as offering a better approach to the design of technologies for human use [42], we believe that the human-centred approach to software engineering is still laudable to bridging the HCI-SE gaps. The ISO 9241-210 [28] describes a six-step approach to human-centred design for interactive systems. These steps are listed:

The design is based upon an explicit understanding of users, tasks and environments;

Users are involved throughout the design and development;

The design is driven and refined by user-centred evaluation;

The process is iterative;

The design addresses the whole user experience;

The design team includes multidisciplinary skills and perspectives.

Although, for the scope of this paper we could not provide insights on the human-centred design, we however, critically consider the ISO 9241-210 framework as showing promises to bridging the HCI-SE gaps, especially when it is successfully incorporated into agile software development methodologies [3, 50]. For example, both the ISO 9241-210 framework and agile methodologies share certain commonalties, especially their focus on users (human-centredness), ability to handle complex software development projects, and iterative process. A frame work we consider as showing this possibility is the one proposed by [50] (extensively discussed by the authors). In our further research, we plan to use both the ISO 9241-210 and the framework of [50] to explore the possibility of achieving agile human-centred software development. This, we hope could address pressing areas such as context of application, usability evaluation, organisational culture and user involvement, which have been identified in this article as critical gaps, and complement recent efforts on integrating HCI and SE successfully.

REFERENCES

1. Abrams, M., Phanouriou, C.: UIML : An XML language for building device-independent user interfaces. Proceedings of the XML 1999, Philadelphia,. pp. 1–15 , Philadephia (1999).

2. ACM, IEEE Computer Society: Computer science curricula 2013: curriculum guidelines for undergraduate degree programs in computer science. ACM and IEEE (2013).

3. Ardito, C. et al.: Investigating and promoting UX practice in industry: an experimental study. Int. J. Hum. Comput. Stud. 1–10 (2013).

4. Ardito, C. et al.: Usability evaluation - a survey of software development organizations. Proceedings of the 33rd International Conference on Software Engineering & Knowledge Engineering. pp. 282–287 (2011).

5. Arksey, H., O’Malley, L.: Scoping studies: towards a methodological framework. Int. J. Soc. Res. Methodol. 8, 1, 19–32 (2005).

6. Bak, J.O. et al.: Obstacles to usability evaluation in practice - a survey of software development organizations. Proceedings of the NordiCHI 2008 Conference. pp. 23–32 ACM Press, Lund (2008).

7. Beyer, H., Holtzblatt, K.: Contextual design: defining customer-centered systems. Morgan Kaufmann,, San Francisco (1998).

8. Bornoe, N., Stage, J.: Supporting usability engineering in small software development organizations. Proceedings of the The 36th Information Systems Research Conference in Scandinavia (IRIS 36). pp. 1–12 , Gran, Norway (2013).

9. Brooks, F.P.: No siver bullet: essence and accidents of software engineering. Computer (Long. Beach. Calif). 20, 4, 10–19 (1987).

10. Brown, J., Marshall, S.: Sharing human-computer interaction and software engineering design artifacts. Proceedings of the 1998 Australasian Computer Human Interaction Conference. OzCHI’98 (Cat. No.98EX234). pp. 53–60 IEEE Comput. Soc (1998).

11. Bruun, A., Stage, J.: Overcoming the developer mindset barrier towards usability evaluations. Proceedings of the Information System Research Seminar in Scandinavia. pp. 1–13 (2012).

12. Buie, E.A., Vallone, A.: Integrating HCI engineering and software engineering : a call to a larger vision. Proceedings of the Seventh International Conference on Human-Computer Interaction), Volume 2. Amsterdam. pp. 525–530. Elsevier Science Publishers, Amsterdam, the Netherlands (1997).

13. Butt, S.M. et al.: An overview of software models with regard to the users involvement. IJCSI Int. J. Comput. Sci. Issues. 9, 3, 107–112 (2012).

14. Bygstad, B. et al.: Software development methods and usability: Perspectives from a survey in the software industry in Norway. Interact. Comput. 20, 3, 375–385 (2008).

15. Calvary, J., Gaëlle, C. and: HCI and Software Engineering for User Interface Plasticity. In: Julie A. Jacko (ed.) Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies, and Emerging Applications,. pp. 1195–1220 (2012).

16. Carroll, J.M.: Human-computer interaction: psychology as a science of design. Annu. Rev. Psychol. 48, 61–83 (1997).

17. Carter, J.A. et al.: Transforming usability engineering requirements into software: from PUF to UML. Human-centered software engineering: Integrating usability in the development process. pp. 147–169 Springer, Dordrecht, Netherlands. (2005).

18. Constantine, L. et al.: Usage-centred design and software engineering: models for integration. Proceedings of the 2003 International Conference on Software Engineering, Portland, Oregon. pp. 106–113 , Portland, Oregon (2003).

19. Constantine, L., Lockwood, L.: Software for use: a practical guide to the models and methods of usage-centered design. Reading, Massachusetts, Addison-Wesley (1999).

20. Fernandez, J.D.: Human computer interaction closes the software engineering gap. Proceedings of the 2004 American society for Engineering Education Annual Conference & Exposition. pp. 1–6 American Society for Engineering Education (2004).

21. Ferre, X., Moreno, A.M.: Improving software engineering practice with HCI aspects development process. Softw. Eng. Res. Appl. 3026, 349–363 (2004).

22. Folmer, E. et al.: Bridging patterns: an approach to bridge gaps between SE and HCI. Inf. Softw. Technol. 48, 2, 69–89 (2006).

23. Folmer, E., Bosch, J.: Cost effective development of usable systems : gaps between HCI and SE. Proceedings of the ICSE 2004. pp. 1–6 (2004).

24. Grudin, J.: A moving target — the evolution of human-computer interaction. In: Jacko, J. (ed.) Human-Computer Interaction Handbook (3rd Edition),. pp. 1–40 Taylor & Francis (2012).

25. Harning, M.B., Vanderdonckt, J.: Closing the gaps: software engineering and human-computer interaction. , Louvain-la-Neuve, Belgium (2003).

26. Hewett et al.: Human-computer interaction. ACM SIGCHI Curricula for Human-Computer Interaction. pp. 5–27 ACM Press (1996).

27. Hix, D., Hartson, H.R.: Developing user interfaces: ensuring usability through product and process. Wiley Professional Computing, New York (1993).

28. ISO: Ergonomics of human-system interaction -- Part 210: Human-centred design for interactive systems. ISO 9241-210:2010. pp. 1–32 ISO (2010).

29. Joshi, A. et al.: Measuring effectiveness of HCI integration in software development processes. J. Syst. Softw. 83, 11, 2045–2058 (2010).

30. Juristo, N., Ferre, X.: How to integrate usability into the software development process. Proceeding of the 28th international conference on Software engineering - ICSE ’06. p. 1079 ACM Press, New York, New York, USA (2006).

31. Kulkarni, R., Padmanabham, P.: Validating utility of TEIM : a comparative analysis. Int. J. Adv. Comput. Sci. Appl. 4, 1, 80–83 (2013).

32. Kuutti, K.: Activity Theory as a Potential Framework for Human- Computer Interaction Research. In: Nardi, I. (ed.) Context and consciousness. pp. 17–44 MIT Press,Cambridge, MA (1996).

33. Larusdottir, M.K. et al.: User involvement in Icelandic software industry. Proceedings of the INTERACT 2009. pp. 1–2 ACM Press, Uppsala (2009).

34. Law, E.L.: Bridging the HCI-SE Gap: historical and epistemological perspectives. Proceedings of INTERACT 2003 (CLOSING THE GAPS: Software Engineering and Human-Computer Interaction) Workshop. pp. 47–54 Université catholique de Louvain, Institut d’Administration et de Gestion (IAG) (2003).

35. Lizano, F., Stage, J.: Usability evaluations for everybody , everywhere : a field study on remote synchronous testing in realistic development contexts. Proceedings of the 8th International Conference on Digital Society. pp. 74–79 (2014).

36. Ludi, S.: Undergraduate software engineering curriculum enhancement via human- computer interaction. Proceedings of the 2003 International Conference on Software Engineering, Portland, Oregon. pp. 72–75 , Portland, Oregon (2003).

37. Majid, R.A. et al.: Strengthening the HCI approaches in the software development process. World Acad. Sci. Eng. Technol. 64, 373–377 (2012).

38. Memmel, T. et al.: Agile human-centered software engineering. In: Linden J. Ball, M. Angela Sasse, Corina Sas, Thomas C. Ormerod, A. and Dix, Peter Bagnall, and T.M. (eds.) Proceedings of HCI 2007 People and Computers XXI – HCI. pp. 1–9 British Computer Society (2007).

39. Milewski, A.E.: Software engineering overlaps with human-computer interaction: a natural evolution. Proceedings of the 2003 International Conference on Software Engineering, Portland, Oregon. pp. 69–71 (2003).

40. Mills, H..: The management of software engineering Part 1: Principles of software engineering. IBM Syst. J. 19, 413-477, (1980).

41. Müller-Prove, M.: Mind the gap! software engineers and interaction architects. Proceedings of the INTERACT 2003 Conference. pp. 100–101 Université catholique de Louvain, Institut d’Administration et de Gestion (IAG) (2003).

42. Norman, D. a.: Human-centered design considered harmful. Interactions. 12, 4, 14–19 (2005).

43. Nunes, N.J.: What drives software development : issues integrating software engineering and human-computer interaction. Proceedings of INTERACT 2003, Zurich. pp. 89–95 ACM Press, Zurich (2003).

44. Palanque, P. et al.: Engineering interactive systems. Proceedings of the Engineering Interactive Systems 2007 Joint Working Conferences, Salamanca, Spain. pp. 1–649 Springer, Salamanca, Spain (2007).

45. Paula, M.G. De et al.: Relating human-computer interaction and software engineering concerns : towards extending UML through an interaction modeling language. Interact 2003: Proceedings of the Ninth IFIP TC13 International Conference on Human-Computer Interaction. pp. 40–46 IOS Press (2003).

46. Phillips, C., Kemp, E.: The integration of HCI and software engineering. Proceedings. 1998 International Conference

Software Engineering: Education and Practice (Cat. No.98EX220). pp. 399–401 IEEE Comput. Soc (1998).

47. Pyla, P.S. et al.: Towards a model-based framework for integrating usability and software engineering life cycles. Proceedings of the IFIP INTERACT 2003 workshop on Bridging the gap between software engineering and human-computer interaction. (Portland, Oregon, 2003). pp. 1–8 (2003).

48. Rosson, M.B., Carroll, J.M.: Usability engineering: scenario-based development of human-computer interactions. Morgan Kaufmann, San Francisco, USA (2002).

49. Seffah, A.; Desmarais, M.; Metzker, E.: HCI and software engineering integration: an overview. (2005).

50. Silva da Silva, T. et al.: User-Centered Design and Agile Methods: A Systematic Review. Proceedings of the 2011 Agile Conference. pp. 77–86 Ieee (2011).

51. Sousa, K.S., Furtado, E.: RUPi – a unified process that integrates human-computer interaction and software engineering. Proceedings of the International Conference on Software Engineering – ICSE’2003,. pp. 41–48. (2003).

52. Vermeeren, A., Cockton, G.: Facilitating the take-up of new HCI practices : a diffusion of innovations ’ perspective. (2013).

53. Willshire, M.J.: Where SE and HCI meet: a position paper. Proceedings of the 2003 ICSE. pp. 57–60 , Portland, Oregon (2003).