Human-machine interface is the part of the machine that handles the Human-machine interaction. Membrane Switches, Rubber Keypads and Touchscreens are examples of that part of the Human Machine Interface which we can see and touch.
In complex systems, the human-machine interface is typically computerized. The term Human-computer interface refers to this kind of systems.
The engineering of the human-machine interfaces is by considering ergonomics (Human Factors). The corresponding disciplines are Human Factors Engineering (HFE) and Usability Engineering (UE), which is part of Systems Engineering.
Primary methods used in the interface design include prototyping and simulation.
Interface design 
Typical human-machine interface design consists of the following stages: interaction specification, interface software specification and prototyping:
- Common practices for interaction specification include user-centered design, persona, activity-oriented design, scenario-based design, resiliency design.
- Common practices for interface software specification include use cases, constrain enforcement by interaction protocols (intended to avoid use errors).
- Common practices for prototyping are based on interactive design based on libraries of interface elements (controls, decoration, etc.).