In this essay I will talk about the issue which currently annoying the HCI community about its connection with software engineering and how to merge them. We encourage both HIC and software engineering to take a larger view, and we suggest system engineering as one of the structure for achieving such merging.
Users sometimes face complex tasks within the progression of interactive software. There is no adequately support in general software development. MEMFIS one of the methods laid out for evolvement of software with the interaction of non-trivial human-computer. MEMFIS focused user interface into the object-oriented methodology. It has three phases the first one is the examination of problem field and its conceptual user interface; communication design for modeling of user interface tool in preoccupation of software concepts. Software design is used for mapping problem domain model and the concept of software.
We can address this issue from the interaction of users with the software development. New interaction techniques are required to end tasks analysis and modeling techniques also to allow tasks that are performed by software developers to be finished by users. Those tasks which performed by professional software developers are to be studied deeply so that they can provide users with adequate tools. Users need to be particularly supported to achieve their tasks. It is the greatest goal to define the range of end-user participation in software development in general and on the other hand end-user directed software development methods and to support them with new tools.
A lot of technological changes depend on User Interface Design to glorify heir technical intricacy to use it again. Technology may not win user acceptance. To know how the user experiences the end product is the important thing to accept this product and that is where User Interface Design enters the design process. As product engineers looking forward to technology, usability specialists focus on the user interface. To make users more efficiency and also cost effectiveness, so this relationship should be kept from the start of the project.
While people often think of Interface Design in the concept of computers, it also refers to many products where the user interacts with controls or displays. There are few products that widely apply User Interface Design.
Other products such as Military aircraft, vehicles and audio equipment have a good effect on its User. Interface Design requires good planning appeal to the design process. It is necessary to ensure maximum performance through Usability Test. This empirical testing allows innocent users to provide data about what does work as expected. A product can be supposed to have a user optimized interface after the resulting repairs are made.
User Interface Design can determine the difference between product acceptance and rejection. If users feel that it is not easy to use or learn about anew software program this product could fail. Good User Interface Design helps to make a product easy to understand and use.
User Interface Design Expert Services
Usernomics has a great role which can help your company to make your products easy to learn and use. Some experts design both hardware and software products. Their skills cover a wide extend of products such as web-based and application software.
Experts of User Interface Design experts apply a systematic technique to evaluate websites for highest effectiveness, easy navigation, and enhanced user experience.
The integration issue
No doubt that the Interaction with human beings is increasingly identified. It is considered as an important aspect of software systems and products. Many professionals in the field of computing industry call for integrating human-computer interaction engineering with software engineering. In the Annual Meeting of the Human Factors and Ergonomics Society they explored some ideas on integration. They had suggested some proposed solutions which would integrate HCI engineering into software engineering.
So what is the relationship between HCI and software? And how do they interact as fields of endeavor? And that this is the major issue for the HCI community. The user is an ingredient of the system and notice that the software engineering process must include usability engineering.
Another point of view said that HCI should be moved from the field of computer science to design, saying that software engineers have a constructor's-eye view that helps to consider this issue. Recently at least three new books have addressed this issue in order to find new ways to solve it.
Agreement continues to avoid the HCI community. In this paper we can say that this opposes and competition are unnecessary and unproductive.
HCI and software engineering need to be better merged. Integration between HCI and software engineering is very necessary to the cost-effective development of highly usable software systems and products. However, that it is appropriate to blend either of these processes into the other. Our hypothesis is that the fields of HCI and software must interact and work together under a larger perspective that surrounds both and each of them must develop a larger vision.
Building a larger vision
The outlook of such disciplines as system engineering, product engineering, industrial engineering, and industrial design can provide this larger vision. We can use system engineering as a model for this outlook because this term is used in the environment of development of large systems under contract to specific clients. It should be clear when we say system engineering we mean many aspects such as system engineering, product engineering, industrial engineering, or maybe even industrial design which is suit for an organization.
So that it is necessary to make it clear with the concept of engineering. It means specification, design, and technical omission of the execution process. Some people argue that the word engineering means taking a design and building the inclusion of design within engineering appears in most therapy of software engineering throughout its history. According to Newman engineering like design is about creativity and changes.
Integrating HCI engineering and software engineering requires both disciplines to do a model shift to create a larger outlook. Discipline, system engineering has considerable experience in integrating specific engineering disciplines such as software, hardware, firmware, and data base engineering in a matched system development process. Within this model shift,
We can start the integration effort as following:
- First thing to do is to determine the disciplines distinct and what do HCI and software engineering do?
- To know the responsibilities do each has in its system
- Which of HCI and software engineering is in charge of what?
- To put plans of how should they cooperate?
- Determine the way of interaction interact and communicate with each other?
- List of needs does each one have, and sort the information about each produce?
- How does the work of each affect the other?
- to determine the roles of system engineering
- How does the system engineering process merge and coordinate the technical donation of the separate engineering disciplines?
Through the answers of these questions you can notice the importance of the integration of HCI and software engineering. The answers to these questions depend on the specific organization, the development environment, and the system or product being developed. We can consider the above questions and provide a few answers from our information of system engineering in our environment.
The basic difference between HCI engineering and software engineering is that they have disconnected problem domains. HCI engineering depends on the tasks of people using the system or product and interactions that the users need to perform their tasks on the environment in which they work. On the other hand Software engineering depends on the software ability which needed for the system to perform its tasks, achieve its objectives, and meet its requirements. Some of the software skills are also needed to support the users in achieving their tasks and interacting with the system. Their unlike problem domains give these disciplines separate roles and responsibilities in the process of specifying, designing, and developing the system or product.
The following figure shows the roles and responsibilities of both HCI and software engineering:
HCI Engineering (user view)
- User task analysis
- Interaction design
- Usability specification
- Interface design
- Software support
- Usability evaluation
Software engineering (Technology view)
- Software requirement
- Software design
- Software validation
- Interaction support software
- Application program coding
- Interface software coding
Calling for integration often place HCI within software design or software engineering. Many of the activities involved in the development of interactive systems are often assert by both software engineers and HCI engineers: The software industry be inclined to see HCI development as a software engineering activity which can improve software engineering and its practice and the HCI community tends to see some fields of software development as part of HCI engineering Current tools tend to unclear the difference and worsen the problem Many application development tools include HCI layout skills, and many interface design tools can automatically create interface code. However, these two engineering skills must be kept clear, so that each may maintain its own focus and Preference.
There are some activities which differ from the Curtis and Hefley list in two ways. They assigned to HCI engineering the activity of allocating functions to humans and software; other people designate it as a system engineering responsibility because it requires a larger view than that of either HCI or software. They allocated to HCI engineering the activity of coding the HCI software. We assign it to software engineering because coding as we know belongs to the software engineering problem domain.
HCI and software engineering must cooperate and communicate, but they are as processes distinct and have some difficult and sometimes conflicting issues and concerns. It takes a larger view, such as provided by system engineering, to think about the issues.
The HCI and software engineering processes closely cooperate during the design and execution of interactive systems and products. As we can notice Figure 2 demonstrate the interactions and information exchanges between the processes as they relate to HCI and its development?
The following diagram indicates that HCI engineering and software engineering are detached but interact very closely. Not only do they exchange information, but each reviews and validates the other's products to ensure both usability and probability.
As we can see The HCI engineering process receives input from the definition of the users needs with regard to the system skills. This includes a description of user's environment, a definition of human-performed and other activities and information from other related sources such as marketing. The HCI process has some tasks such as identifies the HCI and usability requirements, designs the interaction, and legalize requirements and design by means of initial usability evaluation using main idea. The HCI engineering product that is of interest to software engineering is software needs such as the software skills and characteristics needed to carry out the HCI design.
The software engineering process blend the HCI related software requirements with the requirements connected to the other parts of the software product, such as computational and information restoration skills, and develops the software to meet the blended requirements. This development may in turn create additional HCI requirements, which HCI engineering then combine into the HCI design such as the software development process recognize needs for further interactions with the user, such as specific software which related online help and error messages. Software engineering also requires restriction on the HCI design and often related to technological limitations and probability but also due to delivery schedules and total budget.
Sometimes Separation and collaboration may fail due to the use of human interface tools that do automatic code generation may give the HCI engineer the impression of performing a software engineering role; in the other side, the use of application program tools that generate forms and windows such as Visual Basic may give the software engineer the impression of performing an HCI engineering role. Also, the interaction between the disciplines may create issues and conflicts.
In my point of view the strong interaction between these disciplines and the need to resolve their conflicts are major reasons why each discipline tries to take in the other. We assert that such attempts are neither necessary nor advantageous; because neither discipline has a large enough view to accomplish the other's objectives. It is system engineering's role and responsibility to optimize the other system design and thus to recognize acceptable in its market and try to resolve the issues.
The framework of system engineering
According to the Systems Engineering Capability state Model (SE-CMM) which developed by the SEI, system engineering aims to merge the efforts of all engineering disciplines and specialties into the total engineering effort Some organizations define a system engineering process that clearly provides for the separate processes of HCI and software engineering like the Computer Sciences Corporation in 1990.
System engineering can be considered as the keeper of the system view, it always working to make sure that the system or product meets its overall requirements and aims. System engineering has responsibility for many primary activities such as following:
- Definition of system and operation concepts
- Specification of detailed system requirements
- Requirements allocation and definition of system architecture and design
- Technical oversight of all engineering donation to product execution.
- Technical oversight of testing and confirmation at the system level
- Technical tradeoff decision making
These system engineering responsibilities and its aims provide the framework for the effective integration of HCI and software engineering. The specific integration appropriate for an organization and development environment will depend on a definition of when and how the interactions between HCI engineering and software engineering occur and how to solve the issues and other conflicts. This definition should include some aspects:
- Clear border around HCI and software engineering processes such as responsibilities, inputs, outputs
- Sources of inputs and destinations of outputs to all participants in design and development
- Specification of the information exchange between activities of the engineering processes
- Process for setting decision standard for example tradeoff analyses, usability aim.
One of the major donations of HCI and software engineering to system engineering involves providing their own out look to the allocation of system skills to humans and software HCI participates in the discovery of user needs and tasks, also in the decisions about whether or not to allocate a function to a person. Software usually shares in the evaluation of the feasibility of proposed automation of human activities and in the decisions about whether or not to set functions to software. System engineering uses these analyses to develop a system design from tradeoffs of schedule, cost, and the overall benefits that the system will provide to its users and to the organization.
Improving the integration framework
We can notice that system engineering is not perfect. The specific processes that system engineering tends to mandate for the HCI often may fail to support effective collaboration with software engineering, and they may not provide the most efficient means of achieving usability in interactive systems and products. System engineers need to acquire as deep an understanding of HCI engineering as they tend to have about the other engineering disciplines whose contributions they coordinate. Developing such an understanding will require the collaboration of specialists in system engineering, HCI engineering, and software engineering.
HCI belongs to the study of interaction between users and computers. It is considered as the intersection of computer science, behavioral sciences, and several other aspects of study. This Interaction between users and computers occurs at the user interface which includes both software and hardware. There is connection between human-computer interaction and a machine. It depends on supporting knowledge on both the machine and the human side. It is very important for poorly designed to have human-machine interaction because human-machine interfaces can lead to other unexpected problems. So HCI and software engineering must have more cooperation to put more solutions to this issue.
- Alan Dix, Janet Finlay, Gregory Abowd, and Russell Beale (2003): Human-Computer Interaction. 3rd Edition. Prentice Hall, 2003. http://hcibook.com/e3/ ISBN 0-13046-109-1
- Helen Sharp, Yvonne Rogers & Jenny Preece: Interaction Design: Beyond Human-Computer Interaction, 2nd ed. John Wiley & Sons Ltd., 2007 ISBN 0-470-01866-6
- Matt Jones (interaction designer) and Gary Marsden (2006). Mobile Interaction Design, John Wiley and Sons Ltd.
- ACM Transactions on Computer-Human Interaction
- Behaviors & Information Technology
- International Journal of Human-Computer Interaction
- Human-Computer Interaction .