The term hardware refers to all physical components of a computer system. This includes input devices (devices that gather data from the user and transport them to the central processing unit in a machine-readable form), the so-called central processing unit, which actually carries out computer operations, output devices (devices which display information in a human-readable form) and storage media for storing data and information.
Hardware components, especially input and output devices are essential components of the user interface.
The term user interface refers to that part of an interaction interface of a software product that is visible to the user. This includes all units, forms and technologies the user applies in order to communicate with the computer system. To a certain extent the user interface also depends on hardware and the system software used, but it definitely depends on the application software used.
The term user interface includes all those parts of a computer system that are visible for the user, which are of course first of all input and output devices as well as the corresponding software; thus the term refers to hardware and software likewise. It largely determines how (well) a user is able to work with the system. This is why its design has to be suited to the addressed audience, to their demands, their habits and their knowledge.
By many factors the user interface determines the interaction between user and computer system. The human-computer-interaction (HCI) is a mutual exchange of information between user and system. It is in the nature of things that this exchange is rule-bound and formalized, however in case of modern interactive systems normally the user is in control.
Human-computer-interaction can be described as a triangle relationship between the user, (his/her) tasks and the tools used, of course within the framework of the working environment given. Hereby the computer is the tool, which supportes and influences the cognitive abilities of its user.
The design of the user interface influences the kind and quality of tasks, the problem-solving behavior of the user as well as the acquisition of relevant skills and their use during task completion. This is why designing a user interface always means task and work design, too.