本文是计算机专业的留学生作业范例，题目是“Software Engineering And HCI（软件工程与人机交互）”，在这篇文章中，我将讨论目前困扰HCI社区的关于它与软件工程的连接以及如何将它们合并的问题。我们鼓励HIC和软件工程都有一个更大的视角，我们建议系统工程作为实现这种合并的结构之一。
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.
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.
2.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.
3.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.
4.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.
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.
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. 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.
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.