user interface for the boundary between computer systems see interface computing for other uses see interface example of a tangible user interface the user interface ui in the industrial design field of humancomputer interaction is the space where interactions between humans and machines occur the goal of this interaction is to allow effective operation and control of the machine from the human end whilst the machine simultaneously feeds back information that aids the operators decisionmaking process examples of this broad concept of user interfaces include the interactive aspects of computer operating systems hand tools heavy machinery operator controls and process controls the design considerations applicable when creating user interfaces are related to or involve such disciplines as ergonomics and psychology generally the goal of user interface design is to produce a user interface which makes it easy efficient and enjoyable userfriendly to operate a machine in the way which produces the desired result this generally means that the operator needs to provide minimal input to achieve the desired output and also that the machine minimizes undesired outputs to the human user interfaces are composed of one or more layers including a humanmachine interface hmi interfaces machines with physical input hardware such a keyboards mice game pads and output hardware such as computer monitors speakers and printers a device that implements a hmi is called a human interface device hid other terms for humanmachine interfaces are manmachine interface mmi and when the machine in question is a computer humancomputer interface additional ui layers may interact with one or more human sense including tactile ui touch visual ui sight auditory ui sound olfactory ui smell equilibrial ui balance and gustatory ui taste composite user interfaces cui are uis that interact with two or more senses the most common cui is a graphical user interface gui which is composed of a tactile ui and a visual ui capable of displaying graphics when sound is added to a gui it becomes a multimedia user interface mui there are three broad categories of cui standard virtual and augmented standard composite user interfaces use standard human interface devices like keyboards mice and computer monitors when the cui blocks out the real world to create a virtual reality the cui is virtual and uses a virtual reality interface when the cui does not block out the real world and creates augmented reality the cui is augmented and uses an augmented reality interface when a ui interacts with all human senses it is called a qualia interface named after the theory of qualia cui may also be classified by how many senses they interact with as either an xsense virtual reality interface or xsense augmented reality interface where x is the number of senses interfaced with for example a smellovision is a 3sense 3s standard cui with visual display sound and smells when virtual reality interfaces interface with smells and touch it is said to be a 4sense 4s virtual reality interface and when augmented reality interfaces interface with smells and touch it is said to be a 4sense 4s augmented reality interface overview a graphical user interface following the desktop metaphor the user interface or humanmachine interface is the part of the machine that handles the humanmachine interaction membrane switches rubber keypads and touchscreens are examples of the physical part of the human machine interface which we can see and touch in complex systems the humanmachine interface is typically computerized the term humancomputer interface refers to this kind of system in the context of computing the term typically extends as well to the software dedicated to control the physical elements used for humancomputer interaction the engineering of the humanmachine interfaces is enhanced by considering ergonomics human factors the corresponding disciplines are human factors engineering hfe and usability engineering ue which is part of systems engineering tools used for incorporating human factors in the interface design are developed based on knowledge of computer science such as computer graphics operating systems programming languages nowadays we use the expression graphical user interface for humanmachine interface on computers as nearly all of them are now using graphics terminology a humanmachine interface usually involves peripheral hardware for the input and for the output often there is an additional component implemented in software like eg a graphical user interface there is a difference between a user interface and an operator interface or a humanmachine interface hmi the term user interface is often used in the context of personal computer systems and electronic devices where a network of equipment or computers are interlinked through an mes manufacturing execution systemor host to display information a humanmachine interface hmi is typically local to one machine or piece of equipment and is the interface method between the human and the equipmentmachine an operator interface is the interface method by which multiple equipment that are linked by a host control system is accessed or controlled the system may expose several user interfaces to serve different kinds of users for example a computerized library database might provide two user interfaces one for library patrons limited set of functions optimized for ease of use and the other for library personnel wide set of functions optimized for efficiency the user interface of a mechanical system a vehicle or an industrial installation is sometimes referred to as the humanmachine interface hmi without a clean and usable interface humans would not be able to interact with information systems in science fiction hmi is sometimes used to refer to what is better described as direct neural interface however this latter usage is seeing increasing application in the reallife use of medical prosthesesthe artificial extension that replaces a missing body part eg cochlear implants in some circumstances computers might observe the user and react according to their actions without specific commands a means of tracking parts of the body is required and sensors noting the position of the head direction of gaze and so on have been used experimentally this is particularly relevant to immersive interfaces history the history of user interfaces can be divided into the following phases according to the dominant type of user interface 19451968 batch interface ibm 029 in the batch era computing power was extremely scarce and expensive user interfaces were rudimentary users had to accommodate computers rather than the other way around user interfaces were considered overhead and software was designed to keep the processor at maximum utilization with as little overhead as possible the input side of the user interfaces for batch machines was mainly punched cards or equivalent media like paper tape the output side added line printers to these media with the limited exception of the system operators console human beings did not interact with batch machines in real time at all submitting a job to a batch machine involved first preparing a deck of punched cards describing a program and a dataset punching the program cards wasnt done on the computer itself but on keypunches specialized typewriterlike machines that were notoriously bulky unforgiving and prone to mechanical failure the software interface was similarly unforgiving with very strict syntaxes meant to be parsed by the smallest possible compilers and interpreters holes are punched in the card according to a prearranged code transferring the facts from the census questionnaire into statistics once the cards were punched one would drop them in a job queue and wait eventually operators would feed the deck to the computer perhaps mounting magnetic tapes to supply another dataset or helper software the job would generate a printout containing final results or all too often an abort notice with an attached error log successful runs might also write a result on magnetic tape or generate some data cards to be used in a later computation the turnaround time for a single job often spanned entire days if one were very lucky it might be hours there was no realtime response but there were worse fates than the card queue some computers required an even more tedious and errorprone process of toggling in programs in binary code using console switches the very earliest machines had to be partly rewired to incorporate program logic into themselves using devices known as plugboards early batch systems gave the currently running job the entire computer program decks and tapes had to include what we would now think of as operating system code to talk to io devices and do whatever other housekeeping was needed midway through the batch period after 1957 various groups began to experiment with socalled loadandgo systems these used a monitor program which was always resident on the computer programs could call the monitor for services another function of the monitor was to do better error checking on submitted jobs catching errors earlier and more intelligently and generating more useful feedback to the users thus monitors represented the first step towards both operating systems and explicitly designed user interfaces 1969present commandline user interface commandline interface teletype model 33 asr commandline interfaces clis evolved from batch monitors connected to the system console their interaction model was a series of requestresponse transactions with requests expressed as textual commands in a specialized vocabulary latency was far lower than for batch systems dropping from days or hours to seconds accordingly commandline systems allowed the user to change his or her mind about later stages of the transaction in response to realtime or nearrealtime feedback on earlier results software could be exploratory and interactive in ways not possible before but these interfaces still placed a relatively heavy mnemonic load on the user requiring a serious investment of effort and learning time to master the earliest commandline systems combined teleprinters with computers adapting a mature technology that had proven effective for mediating the transfer of information over wires between human beings teleprinters had originally been invented as devices for automatic telegraph transmission and reception they had a history going back to 1902 and had already become wellestablished in newsrooms and elsewhere by 1920 in reusing them economy was certainly a consideration but psychology and the rule of least surprise mattered as well teleprinters provided a point of interface with the system that was familiar to many engineers and users dec vt100 terminal the widespread adoption of videodisplay terminals vdts in the mid1970s ushered in the second phase of commandline systems these cut latency further because characters could be thrown on the phosphor dots of a screen more quickly than a printer head or carriage can move they helped quell conservative resistance to interactive programming by cutting ink and paper consumables out of the cost picture and were to the first tv generation of the late 1950s and 60s even more iconic and comfortable than teleprinters had been to the computer pioneers of the 1940s just as importantly the existence of an accessible screen a twodimensional display of text that could be rapidly and reversibly modified made it economical for software designers to deploy interfaces that could be described as visual rather than textual the pioneering applications of this kind were computer games and text editors close descendants of some of the earliest specimens such as rogue6 and vi1 are still a live part of unix tradition 1985 saa user interface or textbased user interface in 1985 with the beginning of microsoft windows and other graphical user interfaces ibm created what is called the systems application architecture saa standard which include the common user access cua derivative cua successfully created what we know and use today in windows and most of the more recent dos or windows console applications will use that standard as well this defined that a pulldown menu system should be at the top of the screen status bar at the bottom shortcut keys should stay the same for all common functionality f2 to open for example would work in all applications that followed the saa standard this greatly helped the speed at which users could learn an application so it caught on quick and became an industry standard 1968present graphical user interface amx desk made a basic wimp gui linotype wysiwyg 2000 1989 1968 douglas engelbart demonstrated nls a system which uses a mouse pointers hypertext and multiple windows 1970 researchers at xerox palo alto research center many from sri develop wimp paradigm windows icons menus pointers 1973 xerox alto commercial failure due to expense poor user interface and lack of programs 1979 steve jobs and other apple engineers visit xerox pirates of silicon valley dramatizes the events but apple had already been working on the gui before the visit 1981 xerox star focus on wysiwyg commercial failure 25k sold due to cost 16k each performance minutes to save a file couple of hours to recover from crash and poor marketing 1984 apple macintosh popularizes the gui super bowl commercial shown once most expensive ever made at that time 1984 mits x window system hardwareindependent platform and networking protocol for developing guis on unixlike systems 1985 windows 10 provided gui interface to msdos no overlapping windows tiled instead 1985 microsoft and ibm start work on os2 meant to eventually replace msdos and windows 1986 apple threatens to sue digital research because their gui desktop looked too much like apples mac 1987 windows 20 overlapping and resizable windows keyboard and mouse enhancements 1987 macintosh ii first fullcolor mac 1988 os2 110 standard edition se has gui written by microsoft looks a lot like windows 2 interface design user interface design primary methods used in the interface design include prototyping and simulation typical humanmachine interface design consists of the following stages interaction specification interface software specification and prototyping common practices for interaction specification include usercentered design persona activityoriented design scenariobased 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 quality all great interfaces share eight qualities or characteristics clarity the interface avoids ambiguity by making everything clear through language flow hierarchy and metaphors for visual elements concision its easy to make the interface clear by overclarifying and labeling everything but this leads to interface bloat where there is just too much stuff on the screen at the same time if too many things are on the screen finding what youre looking for is difficult and so the interface becomes tedious to use the real challenge in making a great interface is to make it concise and clear at the same time familiarity even if someone uses an interface for the first time certain elements can still be familiar reallife metaphors can be used to communicate meaning responsiveness a good interface should not feel sluggish this means that the interface should provide good feedback to the user about whats happening and whether the users input is being successfully processed consistency keeping your interface consistent across your application is important because it allows users to recognize usage patterns aesthetics while you dont need to make an interface attractive for it to do its job making something look good will make the time your users spend using your application more enjoyable and happier users can only be a good thing efficiency time is money and a great interface should make the user more productive through shortcuts and good design forgiveness a good interface should not punish users for their mistakes but should instead provide the means to remedy them principle of least astonishment the principle of least astonishment pola is a general principle in the design of all kinds of interfaces it is based on the idea that human beings can only pay full attention to one thing at one time leading to the conclusion that novelty should be minimized habit formation if an interface is used persistently the user will unavoidably develop habits for using the interface the designers role can thus be characterized as ensuring the user forms good habits if the designer is experienced with other interfaces they will similarly develop habits and often make unconscious assumptions regarding how the user will interact with the interface types hp series 100 hp150 touchscreen attentive user interfaces manage the user attention deciding when to interrupt the user the kind of warnings and the level of detail of the messages presented to the user batch interfaces are noninteractive user interfaces where the user specifies all the details of the batch job in advance to batch processing and receives the output when all the processing is done the computer does not prompt for further input after the processing has started command line interfaces clis prompt the user to provide input by typing a command string with the computer keyboard and respond by outputting text to the computer monitor used by programmers and system administrators in engineering and scientific environments and by technically advanced personal computer users conversational interfaces enable users to command the computer with plain text english eg via text messages or chatbots or voice commands instead of graphic elements these interfaces often emulate humantohuman conversations conversational interface agents attempt to personify the computer interface in the form of an animated person robot or other character such as microsofts clippy the paperclip and present interactions in a conversational form crossingbased interfaces are graphical user interfaces in which the primary task consists in crossing boundaries instead of pointing direct manipulation interface is the name of a general class of user interfaces that allow users to manipulate objects presented to them using actions that correspond at least loosely to the physical world gesture interfaces are graphical user interfaces which accept input in a form of hand gestures or mouse gestures sketched with a computer mouse or a stylus graphical user interfaces gui accept input via devices such as a computer keyboard and mouse and provide articulated graphical output on the computer monitor there are at least two different principles widely used in gui design objectoriented user interfaces oouis and applicationoriented interfaces hardware interfaces are the physical spatial interfaces found on products in the real world from toasters to car dashboards to airplane cockpits they are generally a mixture of knobs buttons sliders switches and touchscreens holographic user interfaces provide input to electronic or electromechanical devices by passing a finger through reproduced holographic images of what would otherwise be tactile controls of those devices floating freely in the air detected by a wave source and without tactile interaction intelligent user interfaces are humanmachine interfaces that aim to improve the efficiency effectiveness and naturalness of humanmachine interaction by representing reasoning and acting on models of the user domain task discourse and media eg graphics natural language gesture motion tracking interfaces monitor the users body motions and translate them into commands currently being developed by apple multiscreen interfaces employ multiple displays to provide a more flexible interaction this is often employed in computer game interaction in both the commercial arcades and more recently the handheld markets naturallanguage interfaces used for search engines and on webpages user types in a question and waits for a response noncommand user interfaces which observe the user to infer hisher needs and intentions without requiring that heshe formulate explicit commands objectoriented user interfaces ooui are based on objectoriented programming metaphors allowing users to manipulate simulated objects and their properties reflexive user interfaces where the users control and redefine the entire system via the user interface alone for instance to change its command verbs typically this is only possible with very rich graphic user interfaces search interface is how the search box of a site is displayed as well as the visual representation of the search results tangible user interfaces which place a greater emphasis on touch and physical environment or its element taskfocused interfaces are user interfaces which address the information overload problem of the desktop metaphor by making tasks not files the primary unit of interaction textbased user interfaces tuis are user interfaces which interact via text tuis include commandline interfaces and textbased wimp environments touchscreens are displays that accept input by touch of fingers or a stylus used in a growing amount of mobile devices and many types of point of sale industrial processes and machines selfservice machines etc touch user interface are graphical user interfaces using a touchpad or touchscreen display as a combined input and output device they supplement or replace other forms of output with haptic feedback methods used in computerized simulators etc voice user interfaces which accept input and provide output by generating voice prompts the user input is made by pressing keys or buttons or responding verbally to the interface webbased user interfaces or web user interfaces wui that accept input and provide output by generating web pages viewed by the user using a web browser program newer implementations utilize php java javascript ajax apache flex net framework or similar technologies to provide realtime control in a separate program eliminating the need to refresh a traditional htmlbased web browser administrative web interfaces for webservers servers and networked computers are often called control panels zeroinput interfaces get inputs from a set of sensors instead of querying the user with input dialogs zooming user interfaces are graphical user interfaces in which information objects are represented at different levels of scale and detail and where the user can change the scale of the viewed area in order to show more detail gallery historic hmi in the drivers cabin of a german steam locomotive modern hmi in the drivers cabin of a german intercityexpress highspeed train the hmi of a toilette in japan voice user interface of a wearable computer here google glass hmi for audio mixing hmi for video production hmi of a machine for the sugar industry with pushbuttons hmi for a computer numerical control cnc slightly newer hmi for a cncmachine emergency switchpanic switch adaptive user interfaces braincomputer interface computer user satisfaction direct voice input distinguishable interfaces ergonomics and human factors the study of designing objects to be better adapted to the shape of the human body flat design framebuffer history of the gui icon design information architecture organizing naming and labelling information structures information visualization the use of sensory representations of abstract data to reinforce cognition interaction design interaction technique interface computer science kinetic user interface knowledge visualization the use of visual representations to transfer knowledge natural user interfaces ncurses a semigraphical user interface organic user interface postwimp tangible user interface unified code for units of measure usability links user assistance user experience user experience design user interface design useware virtual artifact virtual user interface look up user interface in wiktionary the free dictionary wikimedia commons has media related to user interfaces hci and interaction design conferences covers a wide area of user interface publications chapter 2 history a brief history of user interfaces vteoperating systemsgeneral advocacy comparison forensic engineering history hobbyist development list timeline usage share kernelarchitectures exokernel hybrid microkernel monolithic rump kernel unikernel components device driver loadable kernel module microkernel user space process managementconcepts context switch interrupt ipc process process control block realtime thread timesharing schedulingalgorithms computer multitasking fixedpriority preemptive multilevel feedback queue preemptive roundrobin shortest job next memory management andresource protection bus error general protection fault memory protection paging protection ring segmentation fault virtual memory storage access andfile systems boot loader defragmentation device file file attribute inode journal partition virtual file system virtual tape library list amigaos android beos bsd chrome os cpm dos genode gnu haiku illumos includeos ios linux macintosh classic mac os macos minix morphos musicsp nemesis nextstep nos openvms orvyl os2 osv pick qnx reactos risc os rstse rsx11 rt11 solaris tops10tops20 tpf unix visi on vmcms vs9 webos windows xinu zos miscellaneous concepts api computer network hal live cd live usb os shell cli gui nui tui vui zui pxe vtemajor fields of computer sciencenote this template roughly follows the 2012 acm computing classification systemhardware printed circuit board peripheral integrated circuit very large scale integration systems on chip socs energy consumption green computing electronic design automation hardware acceleration computer systemsorganization computer architecture embedded system realtime computing dependability networks network architecture network protocol network components network scheduler network performance evaluation network service software organization interpreter middleware virtual machine operating system software quality software notationsand tools programming paradigm programming language compiler domainspecific language modeling language software framework integrated development environment software configuration management software library software repository software development software development process requirements analysis software design software construction software deployment software maintenance programming team opensource model theory of computation model of computation formal language automata theory computational complexity theory logic semantics algorithms algorithm design analysis of algorithms algorithmic efficiency randomized algorithm computational geometry mathematicsof computing discrete mathematics probability statistics mathematical software information theory mathematical analysis numerical analysis informationsystems database management system information storage systems enterprise information system social information systems geographic information system decision support system process control system multimedia information system data mining digital library computing platform digital marketing world wide web information retrieval security cryptography formal methods security services intrusion detection system hardware security network security information security application security humancomputerinteraction interaction design social computing ubiquitous computing visualization accessibility concurrency concurrent computing parallel computing distributed computing multithreading multiprocessing artificialintelligence natural language processing knowledge representation and reasoning computer vision automated planning and scheduling search methodology control method philosophy of artificial intelligence distributed artificial intelligence machine learning supervised learning unsupervised learning reinforcement learning multitask learning crossvalidation graphics animation rendering image manipulation graphics processing unit mixed reality virtual reality image compression solid modeling appliedcomputing ecommerce enterprise software computational mathematics computational physics computational chemistry computational biology computational social science computational engineering computational healthcare digital art electronic publishing cyberwarfare electronic voting video games word processing operations research educational technology document management book category portal wikiproject commons vtesocial networking serviceswebsitespersonal 23snaps amikumu anobii asianave askfm badoo bebo cloob cyworld diaspora draugiemlv ello facebook foursquare gab google hello hi5 highlight houseparty idka instagram igtv ircgalleria keek livejournal lifeknot lockerdome marco polo mastodon meetme meetup miaopai microblog mixbit mixi myspace my world naszaklasapl nextdoor okru path peach periscope pinterest pixnet plurk qzone readgeek renren sina weibo slidely snapchat snow spaces springme streetlife studivz swarm tagged taringa tea party community tiktok tinder tout tuenti tv time tumblr twitter untappd vero vk whisper xanga yo professional academiaedu brainly branchout edmodo ibm connections linkedin moodle researchgate sciencescape meta solaborate viadeo xing ideaplane yammer defunct appnet avatars united bolt capazoo econozco emojli fitfinder formspring friendfeed friends reunited friendster grononet google buzz heello hyves itunes ping iwiw jaiku lunarstorm me2day meerkat mobli mugshot musically natter social network netlog orkut pheed piczo planetall posterous pownce qaiku sixdegreescom socl surfbook tbh tribenet ts tvtag vine windows live spaces wretch yahoo 360 yahoo kickstart yahoo mash yahoo meme yik yak whitelabel services ning wallfm tools social network analysis software diaspora software web 20 suicide machine general comparison of software online identity user profile virtual community 1 million users 100 million users applications social network advertising social network hosting service online dating service comparison mobile user interface activity stream brand page like button hashtag groups reblogging polling internet petitions implications privacy issues user gender difference use in investigations related concepts smallworld experiment smallworld network social network cybersectarianism panopticon protocols micropub webmention defunct distributed social networking protocol opensocial 