Types of user interfaces. Development of information technologies

The interaction of an operator with a computer is an important part of the computational process in solving various applied problems, both scientific and industrial. Creation of programs in the field of organizing market relations when creating information sites for various organizations and enterprises, when creating programs for managing production processes, accounting for products and their sale, quality management, and even with such a task as sorting e-mail by a secretary, it is required to develop user-friendly interaction with a computer.

Design- an iterative process by which the requirements for the PS are translated into engineering representations of the PS. Usually, there are two stages in the design: preliminary design and detailed design. Preliminary design forms architectural level abstractions, detailed design refines these abstractions. In addition, in many cases, interface design is distinguished, the purpose of which is to form a graphical user interface (GUI). The scheme of information links of the design process is shown in fig.

Interface definition.

All in all, interface (interface) – it is a set of logical and physical principles of interaction between the components of the technical means of a computer system (CS), i.e., a set of rules for algorithms and temporary agreements for the exchange of data between the components of the CS (logical interface), as well as a set of physical, mechanical and functional characteristics of the connection means that implement such interaction (physical interface).

Interface often referred to as technical and software tools that implement the interface between devices and aircraft nodes.

The interface extends to all logical and physical means of interaction of the computing system with the external environment, for example, with the operating system, with the operator, etc.

Interface types

Interfaces are distinguished by such characteristics as the structure of connections, the method of connecting and transmitting data, the principles of control and synchronization.

    In-machine interface - a system of communication and means of interfacing nodes and blocks of a computer with each other. The in-machine interface is a set of electrical communication lines (wires), interface circuits with computer components, protocols (algorithms) for signal transmission and conversion.

There are two options for organizing within the machine interface:

Multi-connection interface, in which each PC unit is connected to other units by its local wires;

A single link interface whereby all PC units are connected to each other via a common or system bus.

2. External interface - communication system of the system unit with peripheral devices of the computer or with other computers

Here you can also distinguish several types of external interface:

Interface of peripheral devices connected via I/O buses (ISA, EISA, VLB, PCI, AGP, USB IEEE 1384 SCSI, etc.);

A network interface, such as a peer-to-peer or client-server network with star, ring, or bus topologies.

3. Human-machine interface or human-computer interface or user interface - this is the way in which you perform a task with the help of any means (any program), namely the actions you perform and what you get in return.

An interface is human-oriented if it meets the needs of the person and takes into account their weaknesses.

Machine interface - part of the interface implemented in the machine (its hardware and software part) using the capabilities of computer technology.

The human part of the interface - this is a part of the interface implemented by a person, taking into account his capabilities, weaknesses, habits, learning ability and other factors.

The most common interfaces are defined by national and international standards.

In the following, only the user interface will be considered.

Classification of user interfaces

As mentioned above, an interface is, first of all, a set of rules that can be combined according to the similarity of the ways a person interacts with a computer.

There are three types of user interfaces: command, WIMP and SILK - interfaces.

The interaction of the listed interfaces with operating systems and technologies is shown in Figure 1:

Rice. 1. Interaction of user interfaces of their technologies and operating systems.

1. Command interface, in which the interaction of a person with a computer is carried out by giving commands to the computer that it executes and gives the result to the user. The command interface can be implemented as batch technology and command line technology. Currently, batch technology is practically not used, and command line technology can be found as a backup way of communicating between a person and a computer.

Packet technology.

Historically, this type of technology appeared first on the electromechanical computers of K. Zuse, G. Aikin, and then on the electronic computers of Eckert and Mouchli, on the domestic computers of Lebedev, Brusentsov, on the IBM-360 computer, on the EC computer, and so on. Its idea is simple and consists in the fact that the input of the computer is a sequence of programs stuffed, for example, on punched cards, and a sequence of symbols that determine the order in which these programs are executed. The man here has little influence on the operation of the machine. He can only suspend the operation of the machine, change the program and start the computer again.

command line technology.

With this technology, the operator uses the keyboard as a way to enter information into the computer, and the computer displays information to the person using an alphanumeric display (monitor). The monitor-keyboard combination became known as a terminal or console. Commands are typed in the command line, which is an invitation symbol and a blinking cursor, while the typed characters can be erased and edited. By pressing the Enter key, the computer accepts the command and starts executing it. After moving to the beginning of the next line, the computer displays the results of its work on the monitor. The most common command interface was in the MS DOS operating system.

2. OOMU (window, image, menu, pointer)WIMP (window, image, menu, pointer) - interface. A characteristic feature of this interface is that the user's dialogue with the computer is conducted not using the command line, but using windows, menu icons, cursor and other elements. Although commands are given to the machine in this interface, this is done through graphic images.

The idea of ​​a graphical interface originated in the mid-1970s at the Xerox Palo Alto Research Center (PARC). The prerequisite for the graphical interface was a decrease in the computer's response time to a command, an increase in the amount of RAM, as well as the development of the element base, technical characteristics of computers and, in particular, monitors. With the advent of graphic displays with the ability to display any graphic images of various colors, the graphical interface has become an integral part of all computers. Gradually, the process of unification in the use of the keyboard and mouse by application programs took place. The confluence of these two trends has led to the creation of such a user interface, with the help of which, with minimal time and cost for retraining personnel, you can work with any software application.

This type of interface is implemented as two levels:

Simple graphical interface;

Full WINP - interface.

Simple GUI , which at the first stage was very similar to command line technology with the following differences:

When displaying characters in order to increase the expressiveness of the image, it was allowed to highlight some of the characters with color, inverse image, underline and flicker;

The cursor could be represented by some area highlighted in color and covering several characters and even part of the screen;

The reaction to pressing any key has largely become dependent on which part the cursor is in.

In addition to the frequently used cursor keys, manipulators such as a mouse, trackball, etc. began to be used, which made it possible to quickly select the desired area of ​​the screen and move the cursor;

Widespread use of color monitors.

The appearance of a simple graphical interface coincides with the widespread use of the MS DOS operating system. A typical example of its use is the Norton Commander file shell and text editors MaltiEdit, ChiWriter, Microsoft Word for DOS, Lexicon, etc.

Full WIMP -interface , was the second stage in the development of the graphical interface, which is characterized by the following features:

All work with programs, files and documents takes place in windows;

Programs, files, documents, devices and other objects are represented as icons (icons), which turn into windows when opened;

All actions with objects are carried out using the menu, which becomes the main control element;

The manipulator acts as the main means of control.

It should be noted that the WIMP interface requires for its implementation an increased requirement for computer performance, the amount of its memory, a high-quality raster color display of software oriented to this type of interface. Currently, the WIMP interface has become the de facto standard, and the Microsoft Windows operating system has become a prominent representative of it.

3. ROYAZ (speech, image, language, knowledge)SILK (speech, image, language, knowledge) - interface. This interface is closest to the usual human form of communication. Within this interface, there is a normal conversation between a person and a computer. At the same time, the computer finds commands for itself by analyzing human speech and finding key phrases in it. It also converts the results of command execution into a human-readable form. This type of interface requires large hardware costs, therefore, it is under development and improvement and is currently used only for military purposes.

SILK-interface for human-machine communication uses:

speech technology;

Biometric technology (mimic interface);

Semantic (public) interface.

Speech technology appeared in the mid-90s after the introduction of inexpensive sound cards and the widespread use of speech recognition technologies. With this technology, commands are given by voice by pronouncing special standard words (commands), which must be pronounced clearly, at the same pace with obligatory pauses between words. Considering that speech recognition algorithms are not sufficiently developed, an individual pre-configuration of the computer system for a specific user is required. This is the simplest implementation of the SILK interface.

Biometric technology ("Mimic Interface") originated in the late 1990s and is currently under development. To control the computer, facial expression, direction of gaze, pupil size and other signs of a person are used. To identify the user, the pattern of the iris of his eyes, fingerprints and other unique information that is read from a digital camera is used, and then commands are extracted from this image using a pattern recognition program.

Semantic (public) interface emerged in the late 70s of the twentieth century, with the development of artificial intelligence. It can hardly be called an independent type of interface, since it includes a command line interface, and graphic, speech, and mimic interfaces. Its main feature is the absence of commands when communicating with a computer. The request is formed in natural language, in the form of associated text and images. In fact, this is a simulation of human interaction with a computer. Currently used for military purposes. Such an interface is essential in an air combat environment.

"Transmission mechanism" - The result of the lesson. Technology 3 class. Training in the design of various technical models with a mechanism drive. Cross gear - when the wheels are spinning in different directions. Types of gears: 1 - belt; 2 - chain; 3 - gear. Products with gear: conveyor, crane, mill. The main part of the mill design is the transmission mechanism.

"Computer interfaces" - User interface. Software. Service programs. Personal computer as a system. provided by the operating system of the computer. Specify inputs and outputs. hardware interface. Hardware-software interface. Operating system. Text files. System programs. Hardware-software interface - the interaction of computer hardware and software.

"Technologies in the classroom" - Forms of organization can be different: lesson, group, individual, pair. Active and interactive methods are used by me from grades 5 to 11. Types of technologies: Technology of student-centered learning. Developmental learning technology. Technology of student-centered learning Project-research technology.

"Educational technologies at school" - Laboratory of unsolved problems. Methodological support for creative projects of educational institutions and teachers. Game technologies. Growth in the indicator of ICT use in the educational process. Dissemination of advanced pedagogical experience. Reducing the number of repeaters. The growth of the skills of teachers, the impact on the quality of the lesson.

"Technology 6 - 7 - 8 class" - How is electrical energy measured? What measurement determines the size of the shoulder product? What, according to popular ideas, meant the beginning of all life? Which part drives all the working parts of the sewing machine? Raw material for making a carriage for Cinderella. What is the function of the grooves on the needle blade?

"Sections of technology" - And we have from brilliant beads - Unusual beauty. Subject - Technology. Patchwork has long been known to many nations. National holidays and rituals, national clothes. They talk about the traditions of different peoples, national holidays and rituals. After baking donuts, cool slightly, rub with crushed garlic.

  • OOP
  • Last Monday, I was lucky enough to get an interview for a Senior .Net Developer in an international company. During the interview, I was offered to take a test, where a number of questions were related to .Net. In particular, in one of the questions it was necessary to evaluate (true / false) a number of statements, among which was the following:

    In .Net, any array of elements, such as int, implements IList by default, which allows it to be used as a collection in a foreach statement.

    Quickly answering this question in the negative and separately adding in the margins. that foreach requires an implementation not of IList but of IEnumerable, I moved on to the next question. However, on the way home, I was tormented by the question: does the array still implement this interface or not?

    About IList, I vaguely remembered that this interface gives me an IEnumerable, an indexer and a Count property containing the number of elements in the collection, as well as a couple of rarely used properties, such as IsFixedCollection (). An array has a Length property for its size, and IEnumerable's Count is an extension method from LINQ, which would not be possible if this method were implemented in the class. Thus, it turned out that the array could not implement the IList interface, but some vague feeling haunted me. Therefore, in the evening after the interview, I decided to do a little research.

    System.Array class

    Since I didn't have Reflector.Net installed, I just wrote a short C# program to find out what interfaces are implemented by an integer array.

    Var v = new int ( 1, 2, 3 ); var t = v.GetType(); var i = t.GetInterfaces(); foreach(var tp in i) Console.WriteLine(tp.Name);

    Here is the complete list of received interfaces from the console window:

    ICloneable IList ICollection IEnumerable IStructuralComparable IStructuralEquatable IList`1 ICollection`1 IEnumerable`1 IReadOnlyList`1 IReadOnlyCollection`1

    In this way, an array in .Net still implements the IList interface and its generic version IList<> .

    To get more complete information, I built a diagram of the System.Array class.

    My mistake immediately caught my eye: Count was not a property of IList, but of ICollection, the previous interface in the inheritance chain. However, the array itself no longer had such a property, nor did many of the other properties of the IList interface, although the other properties of that interface, IsFixedSize and IsReadOnly, were implemented. How is that even possible?

    Everything immediately falls into place when you remember that in C # you can implement interfaces not only
    implicitly (implicit), but also explicitly (explicit). I knew about this possibility from textbooks, where an example of such an implementation in a case was given. when the base class already contains a method with the same name as the interface method. I also saw this possibility in ReSharper. However, until now, I have not directly encountered the need to explicitly implement interfaces in my own projects.

    Comparison of explicit and implicit implementation of interfaces

    Let's compare these two types of interface implementations:
    Criteria
    Implicit Implementation
    Explicit Implementation
    Basic Syntax
    interface ITest ( void DoTest(); ) public class ImplicitTest: ITest ( public void DoTest() ( ) )
    interface ITest ( void DoTest(); ) public class ExplicitTest: ITest ( void ITest.DoTest() ( ) )
    Visibility
    Implicit implementation has always been public, so methods and properties can be accessed directly.
    var imp = new ImplicitTest(); imp.DoTest();
    Explicit implementation is always private.
    To access the implementation, you must cast the class instance to the interface (upcast to interface).
    varexp = new ExplicitTest(); ((ITest)exp).DoTest();
    Polymorphy
    An implicit interface implementation can be virtual (virtual), which allows you to rewrite this implementation in descendant classes.
    An explicit implementation is always static. It cannot be overridden or overridden (new) in descendant classes. Note. one
    Abstract class and implementation
    An implicit implementation can be abstract and implemented only in a descendant class.
    An explicit implementation cannot be abstract, but the class itself can have other abstract methods and be abstract itself. Note. 2

    Notes:
    Note. 1 - As rightly noted in the comments, the implementation can be overridden when the interface is re-implemented explicitly in the descendant class (see the first comment to the article).

    Note. 2 - One of the blogs states that a class itself cannot be abstract. Perhaps this was true for some of the previous versions of the compiler; in my experiments, I could implement the interface explicitly in an abstract class without any problems.

    Why Explicit Implementation of Interfaces is Necessary

    Explicit implementation of an interface, according to MSDN, is required when multiple interfaces implemented by a class have a method with the same signature. This problem is generally known in the English-speaking world under the chilling name "deadly diamond of death", which is translated into Russian as "the diamond problem". Here is an example of such a situation:

    /* Listing 1 */ interface IJogger ( void Run(); ) interface ISkier ( void Run(); ) public class Athlete: ISkier, IJogger ( public void Run() ( Console.WriteLine("Am I an Athlete, Skier or Jogger?"); ) )

    By the way, this example is correct code in C#, that is, it (correctly) compiles and runs, while the Run() method is both a method of the class itself and an implementation of as many as two interfaces. Thus, we can have one implementation for different interfaces and for the class itself. You can check this with the following code:

    /* Listing 2 */ var sp = new Athlete(); sp.Run(); (sp as ISkier).Run(); (sp as IJogger).Run();

    The result of executing this code will be "Am I an Athlete, Skier or Jogger?", printed to the console three times.

    This is where we can use an explicit interface implementation to separate all three cases:

    /* Listing 3 */ public class Sportsman ( public virtual void Run() ( Console.WriteLine("I am a Sportsman"); ) ) public class Athlete: Sportsman, ISkier, IJogger ( public override void Run() ( Console. WriteLine("I am an Athlete"); ) void ISkier.Run() ( Console.WriteLine("I am a Skier"); ) void IJogger.Run() ( Console.WriteLine("I am a Jogger"); ) )

    In this case, when executing the code from Listing 2, we will see three lines in the console, "I am an Athlete", "I am a Skier" and "I am a Jogger".

    Pros and cons of different interface implementations

    Implementation visibility and selective implementation
    As already shown above, the implicit implementation does not differ syntactically from a regular class method (moreover, if this method has already been defined in the ancestor class, then in this syntax the method will be hidden in the child and the code will be compiled without problems c compiler warning about method hiding.). Moreover, it is possible to selectively implement individual methods of one interface both explicitly and implicitly:

    /* Listing 4 */ public class Code ( public void Run() ( Console.WriteLine("I am a class method"); ) ) interface ICommand ( void Run(); void Execute(); ) public class CodeCommand: Code , ICommand ( // implicit interface method implementation // => public implementation // implicit base class method hiding (warning here) public void Run() ( base.Run(); ) // explicit interface method implementation // => private implementation void ICommand.Execute() () )

    This allows you to use the implementations of individual interface methods as native methods of the class and they are available, for example, through IntelliSense, in contrast to the explicit implementation of methods that are private and visible only after casting to the corresponding interface.

    On the other hand, the possibility of private implementation of methods allows you to hide a number of interface methods, while fully implementing it. Going back to our very first example with arrays in .Net, you can see that an array hides, for example, the implementation of the Count property of the ICollection interface by exposing this property under the name Length (probably an attempt to maintain compatibility with C++ STL and Java). Thus, we can hide individual methods of the implemented interface and not hide (=make public) others.

    Here, however, there is such a problem that in many cases it is completely impossible to guess which interfaces are implicitly implemented by the class, since neither the methods nor the properties of these interfaces are visible in IntelliSense (the example with System.Array is also indicative here). The only way to identify such implementations is to use reflection, such as with the Object Browser in Visual Studio.

    Interface refactoring
    Since the implicit (public) implementation of the interface does not differ from the implementation of the public method of the class, in the case of refactoring the interface and removing any public method from it (for example, when combining the Run() and Execute() methods from the above ICommand interface into one Run( )) in all implicit implementations, there will be a method with public access, which, very likely, will have to be supported even after refactoring, since this public method may already have different dependencies in other components of the system. As a result, the principle of programming “against interfaces, not implementations” will be violated, since the dependencies will already be between specific (and in different classes, for sure, different) implementations of the former interface method.

    /* Listing 5 */ interface IFingers ( void Thumb(); void IndexFinger(); // an obsolete interface method // void MiddleFinger(); ) public class HumanPalm: IFingers ( public void Thumb() () public void IndexFinger( ) () // here is a "dangling" public method public void MiddleFinger() () ) public class AntropoidHand: IFingers ( void IFingers.Thumb() () void IFingers.IndexFinger() () // here the compiler error void IFingers.MiddleFinger() () )

    In the case of a private implementation of interfaces, all classes with an explicit implementation of a method that no longer exists will simply stop compiling, however, after removing the implementation that has become unnecessary (or refactoring it into a new method), we will not have an “extra” public method that is not bound to any interface. Of course, refactoring of dependencies on the interface itself may be required, but here, at least, there will be no violation of the “program to interfaces, not implementations” principle.

    As for properties, the implicitly implemented interface properties (properties) allow you to access them through accessor methods (getter and setter) both from outside and directly from the class itself, which can lead to unnecessary effects (for example, to unnecessary data validation during initialization properties).

    /* Listing 6 */ interface IProperty ( int Amount ( get; set; ) ) public class ClassWithProperty: IProperty ( // implicit implementation, public public int Amount ( get; set; ) public ClassWithProperty() ( // internal invocation of the public setter Amount = 1000; ) ) public class ClassWithExplicitProperty: IProperty ( // explicit implementation, private int IProperty.Amount ( get; set; ) public ClassWithExplicitProperty() ( // internal invocation isn"t possible // compiler error here Amount = 1000;) )

    With explicit implementation of interface properties, these properties remain private, and for access, you have to go the “long” way and declare an additional private field through which initialization occurs. This results in cleaner code when property accessors are only used for external access.

    Using Explicit Typing of Local Variables and Class Fields
    In the case of explicit implementation of interfaces, we have to explicitly indicate that we are working not with an instance of a class, but with an instance of an interface. Thus, for example, it becomes impossible to use type inference and declare local variables in C# using the var keyword. Instead, we have to use an explicit interface type declaration when declaring local variables, as well as in method signatures and class fields.

    Thus, on the one hand, we kind of make the code somewhat less flexible (for example, ReSharper by default always suggests using a declaration with var if possible), but we avoid potential problems associated with binding to a specific implementation as the system grows and its volume code. This point may seem controversial to many, but in the case when several people work on a project, and even in different parts of the world, using explicit typing can be very useful, as it increases the readability of the code and reduces the cost of its support.

    LECTURE 23-24

    Topic 3.2 Designing user interfaces

    1. Types of user interfaces and stages of their development.

    2. Psychophysical characteristics of a person associated with the perception, memorization and processing of information.

    3. User and software interface models.

    4. Classifications of dialogues and general principles for their development.

    5. Main components of graphical user interfaces.

    6. Implementation of dialogs in a graphical user interface.

    7. User interfaces for direct manipulation and their design.

    8. Intelligent elements of user interfaces.

    In the early stages of the development of computer technology, the user interface was considered as a means of human communication with the operating system and was quite primitive.

    With the advent of interactive software, special user interfaces began to be used. At present, the main problem is the development of interactive interfaces for complex software products designed for use by non-professional users.

    1. Types of user interfaces and stages of their development

    User interface- a set of software and hardware that provides user interaction with a computer. Basis of interaction- dialogues.

    Dialog- regulated exchange of information between a person and a computer, carried out in real time and aimed at jointly solving a specific problem: information exchange and coordination of actions. Each dialog consists of separate input-output processes that physically provide communication between the user and the computer.

    The exchange of information is carried out by the transmission of messages and control signals.

    Message– a piece of information involved in the dialogue exchange.

    Types of messages:

    Input messages that are generated by a person using input means: keyboard, manipulators (mouse, etc.);

    Output messages that are generated by a computer in the form of texts, audio signals and / or images and displayed to the user on a monitor screen or other information output devices.

    The user generates messages like:

    Information request,

    help request,

    Operation or feature request,

    Entering or changing information,

    Frame field selection.

    Receives in response:

    Tips or Help

    word form- a piece of text between two adjacent spaces or punctuation marks.

    Morphological analysis - processing word forms out of context.

    Procedural - involves highlighting the stem in the current word form, which is then identified.

    After the recognition of word forms, the syntactic analysis of the message is carried out, the results of which determine its syntactic structure, i.e., the sentence is parsed.

    An interface that implements the phrasal form of a dialogue must: convert messages from a natural language form to an internal representation and vice versa, analyze and synthesize user and system messages, track and remember the passed part of the dialogue.

    Flaws phrasal form:

    Large resource costs;

    No guarantee of unambiguous interpretation of the wording;

    The need to enter long grammatically correct phrases.

    Dignity phrasal form - free communication with the system.

    directive form - use of commands (directives) specially designed formal language.

    Team is a sentence of this language describing the combined data, which includes the process ID of the initiated process and, optionally, data for it.

    The command can be entered:

    As a string of text, specially designed format (MS DOS commands on the command line);

    By pressing some combination of keys (combinations of "quick access" of Windows applications);

    By manipulating the mouse (“drag and drop” of icons);

    A combination of the second and third methods.

    Advantages directive form:

    Small amount of input information;

    Flexibility - the ability to select an operation is limited by the set of valid commands;

    Orientation to a user-driven dialogue;

    Using the minimum screen area or not using it at all;

    Ability to combine with other forms.

    Flaws directive form:

    The virtual absence of prompts on the screen, which requires memorizing the entered commands and their syntax;

    Almost complete lack of feedback on the status of initiated processes;

    The need for skills in entering text information or manipulating the mouse;

    Lack of user customization.

    The directive form is convenient for the professional user, who usually remembers the syntax of frequently used commands or key combinations quickly. The advantages of the form (flexibility and good temporal characteristics) are especially pronounced in this case.

    tabular form - the user selects an answer from the ones offered by the program. The dialog language has the simplest syntax and unambiguous semantics, which is quite easy to implement. The form is user-friendly, as it is always easier to choose, which is essential for a non-professional user. This form can be used if the set of possible answers to a particular question is finite. If the number of possible answers is large (more than 20), then the use of a tabular form may not be appropriate.

    Virtues and in tabular form:

    The presence of a hint;

    Reducing the number of input errors: the user does not enter information, but points to it;

    Reduced user training time;

    Ability to combine with other forms;

    In some cases, the ability to customize the user.

    Flaws tabular form:

    The need for screen navigation skills;

    Using a relatively large screen area to display visual components;

    Intensive use of computer resources associated with the need to constantly update information on the screen.

    Types and forms of dialogue are chosen independently of each other: any form is applicable for both types of dialogues.

    Synchronous- dialogs that occur during the normal operation of the software.

    asynchronous- dialogs that appear on the initiative of the system or the user when the scenario of the normal process is violated. They are used to issue emergency messages from the system or user.

    Development of dialogues. Stages of designing and implementing dialogues:

    Determining the set of required dialogs, their main messages and possible scenarios - design abstract dialogues;

    Determining the type and form of each dialogue, as well as the syntax and semantics of the languages ​​used - design specific dialogues;

    Selection of main and additional devices and design of input-output processes for each dialogue, as well as clarification of transmitted messages - design technical dialogues.

    The basis of abstract dialogs is the ideology of the technological process, for the automation of which the software product is intended.

    In addition to scripts, use interface state diagrams or dialogue graphs.

    Dialog graph is a directed weighted graph, each vertex of which is associated with a specific picture on the screen ( frame) or a certain state of the dialog, characterized by a set of actions available to the user. The arcs emanating from the vertices show the possible state changes when the user performs the specified actions. The arcs emanating from the vertices show the possible state changes when the user performs the specified actions. The weights of the arcs indicate the conditions for transitions from state to state and the operations performed during the transition.

    Each route on the graph corresponds to a possible dialogue option.


    Figure 3 - Abstract Dialog Graphs:

    a - a dialogue controlled by the system; b - user-controlled dialog

    5. Basic components of graphical user interfaces

    Graphical user interfaces are supported by Windows, Apple Macintosh, OS/2, etc. For such interfaces, sets of standard user interface components have been developed for each operating system.

    Interfaces are built using WIMP technology: W - Windows (windows), I - Icons (icons), M - Mouse (mouse), P - Pop-up (pop-up or drop-down menus). The main elements of graphical interfaces are windows, icons, input-output components, and the mouse, which is used as a pointing device and a device for directly manipulating objects on the screen.

    Window.Window - a rectangular boxed area of ​​the physical screen. The window can change size and position within the screen.

    Main windows (application windows);

    Child or sub windows;

    Dialog windows;

    Information windows;

    Menu windows.

    Application window Windows contains: a frame that limits the working area of ​​the window, a title bar with a system menu button and buttons for selecting the window view and exit, a menu bar, an icon menu (toolbar), horizontal and vertical scroll bars, and a status bar.

    child window Windows is used in multiple document programming interfaces (MDI). This window does not contain a menu. In the title bar, a special name that identifies the associated document or file. The icons of all child windows are the same.

    Dialog window Windows is used to view and set various modes of operation, required settings, or other information.

    Title bar with system menu button;

    Components that allow the user to enter or select an answer;

    Auxiliary components that provide a tooltip (viewbox or help button).

    The window is not resizable, but it can be moved around the screen.

    Information windows two types:

    Message windows;

    Help windows.

    Message windows contain: a title with a system menu button, a message text, one or more user reaction buttons (Yes, No, Cancel).

    Help window contains: menu, scroll bars, information area, similar to the application window, but has a highly specialized purpose.

    Menu windows Windows is used as opening hierarchical menu panels or as context menus.

    Each line of the menu window can correspond to:

    Team;

    Menu of the next level, which is provided by the arrow;

    A dialog box, indicated by three dots.

    Added indication of shortcut keys.

    Pictograms. An icon is a small window with a graphic displaying the contents of the buffer with which it is associated.

    Types of pictograms:

    Software associated with the respective program;

    Icons of child windows providing access to various documents;

    Toolbar icons duplicate access to the corresponding functions through the menu, providing their quick access;

    Object icons, for direct manipulation of objects.

    Direct Image Manipulation. Direct Image Manipulation - this is the ability to replace the command to act on some object with a physical action in the interface, carried out with the help of the mouse. In this case, any area of ​​the screen is considered as the addressee, which can be activated by moving the cursor and pressing the mouse button.

    According to the reaction to the impact, the types of addressees are distinguished:

    Indication and selection (deployment of icons, definition of the active window);

    On-screen buttons and "sliding" barriers (performing or cyclically repeated actions (performing certain operations or drawing, implied when a certain area of ​​the screen is activated - buttons)).

    Dynamic visual signal - changing the image on the screen (mouse cursor when performing specific operations, changing the button image).

    I/O Components. Interfaces include several menus: the main or "drop-down" hierarchical menu, icon menus (toolbars) and context menus for different situations. Any of the indicated menus is an input-output component that implements a dialogue with the user using a tabular form.

    A hierarchical menu is used to organize the operations performed by the software (if there are more than IBM recommendations) and provide the user with an overview of them. Toolbars and context menus are used to provide quick access to frequently used commands, allowing the user to navigate relatively freely.

    Other forms of I/O:

    phrasal,

    tabular,

    Mixed.

    6. Implementing Dialogs in a Graphical User Interface

    Dialogues of both types:

    user controlled,

    System controlled.

    Implementation of user-driven dialogs. For implementation, a menu of various types is used:

    Basic,

    toolbars,

    Contextual and button.

    As an alternative to the menu, it is advisable to use the directive form of the dialogue, matching the main commands with certain key combinations. It is advisable to provide the ability to control the menu with the keyboard if the user enters text or data most of the time with the system, i.e. interacts with the keyboard.

    Menu. Menus are designed based on the dialog graphs of the software being developed. If the number of operations does not exceed 5, then buttons are usually used. If the number of operations is not more than 9-10, then it is a single-level menu. If the number of operations is more than 10, then a drop-down two-level hierarchical menu is used.

    Dropdown menu. The first level of the hierarchical menu should contain the names of the main groups of operations.

    Traditionally (usually in text and image editors):

    1. item File,

    2. item Edit,

    3. Item Kind,

    last paragraph Help.

    The number of levels of the hierarchical menu should not exceed 2-3 (hard to find). The number of operations in the window should not exceed 7-8 operations.

    If the number of operations exceeds 70-80. The developers of Microsoft Word suggested adaptive hierarchical menu, where the content of the second-level menu window is constantly changing, displaying only those operations that the user uses. If the user does not find the desired operation, then after a few seconds or by pressing a special button, Word displays the menu window in full.

    7 Direct manipulation user interfaces and their design

    The direct manipulation capability provided by the WIMP interfaces allows the development of object-oriented direct manipulation interfaces for applications.

    The interfaces use the directive form of the dialog: the command is entered when certain actions are performed with the object's icon with the mouse. The main elements of these interfaces are: metaphors, objects, representations of objects and Drag and Drop technologies (“drag and drop”).

    Metaphors. Metaphors- a mental transfer of the properties or features of one object to another, something similar to the first. The use of metaphors in interfaces involves the activation of the user's experience.

    The direct manipulation interface should provide the user with an environment that contains familiar elements that the user has encountered more than once in professional activities or in everyday life, and provide him with the ability to manipulate individual objects. (Metaphor “Garbage Throwing” is for deleting files).

    Similar elements should behave in a similar way, elements highlighted in the same color should be in a certain relationship with each other.

    It is advisable not to make the images too realistic, so as not to deceive the user's expectations.

    Metaphors and animation. In the implementation of metaphors, an increasing role is given to multimedia, mainly animation. Using animation, you can not only entertain the user, but also “prepare” him for the change of frames, reducing the time needed to adapt to the changed situation.

    https://pandia.ru/text/78/247/images/image005_68.gif">A program that implements animation interfaces is never idle, because while waiting for the user's command input, it continues to display the corresponding frames. Such programs are based on temporary programming. Unlike event programming, which allows you to associate the image on the screen with external and internal events in the system, temporal programming provides a change in the projected frame sequences depending on the state of the simulated processes and user actions.

    Direct manipulation interface objects and their representations.

    The three main types of direct manipulation interface objects are:

    data objects,

    container objects,

    Device objects.

    Data Objects provide the user with information (texts, images, spreadsheets, music, videos). Within the operating system, such objects correspond to applications that run when the object is expanded.

    Container objects can manipulate their internal objects, including other containers (copy them or sort them in any order). Typical containers include folders, baskets. When a container is opened, the components it saves are shown, and it becomes possible to manipulate them. Components can be identified with icons or presented in a table.

    Device objects represent devices that exist in the real world: telephones, fax machines, printers, etc. they are used to refer to these devices in the abstract world of the interface. When you expand such an object, you can see its settings.

    Each object corresponds to one window. In the initial state, this window is represented by an icon, but if necessary, you can open it and perform the required operations, such as object settings. The object window in the expanded state can contain menus and toolbars. The icon must correspond to the context menu containing the list of operations on the object.

    The name of the icon is formed differently for each type of object. Icons of data objects are given names corresponding to the names of the stored data, and the data type is encoded by the icon itself. The name of a container icon or device icon refers to the object itself and is therefore independent of the content.

    The difference between the types of objects is conditional, since the same object in different situations can behave either as a data object, or as a device object, or as a container object (a printer is a device object, it may have properties container object, may contain data objects in the print queue; representation as an icon, print queue window, settings window; it is advisable to indicate the name of the representation in the title of the object window).

    TechnologyDragandDrop. The basic principles of direct manipulation, as described in the IBM User Interface Design Guide:

    The result of moving an object must meet the user's expectations;

    Users should not suddenly lose information;

    The user should be able to undo the wrong action.

    Initial selection - used as feedback to the user to inform him that the object is captured, in Windows, highlighting is used for this purpose;

    Movement visualization - used to identify the action being performed;

    Target selection - used to identify the destination, thus showing where the object will "fall" if it is released at the current time;

    Action visualization - used to indicate the waiting time for the completion of the operation, usually for this purpose animation or changing the shape of the cursor to an "hourglass" is used.

    There are two types of destinations: one accepts an object, and the other a copy of it (the User "throws" the document into the "recycle bin" - the document itself is destroyed, and if it is sent to the printer, then a copy of the document is transmitted).

    Design of direct manipulation interfaces. The design is based on dialog graphs developed for specific software and includes the following procedures:

    Formation sets of domain objects, which should be presented on the screen, and in this case, not use cases, but a conceptual model of the subject area are used as the basis;

    Analysis objects, defining them types and representations, as well as a list of operations with these objects;

    Clarification object interactions and building a matrix direct manipulation;

    Definition visual representations objects;

    Development object window menu and context menus;

    Creation prototype interface;

    Testing for Ease of use.

    8 Intelligent user interface elements

    Elements of user interfaces: Master, Advisor, Agent. Many attempts have been made to create a socialized user interface. Such an interface is based on the idea of ​​creating a personalized, i.e. "having personality" interface. Entertainment programs such as Cats (cats) and Dogs (dogs) that implement the complex behavior of pets in different situations show that this is technically a completely solvable task.

    advisers. They are in the form of hints. They can be accessed using the help menu, the window's command line, or from the pop-up menu. Advisors guide users through specific tasks.

    Masters. The wizard program is used to perform common but rarely performed tasks by an individual user (installing programs or hardware). Performing such actions requires the user to make complex interrelated decisions, the sequence of which is dictated by the wizard program. Intelligent Wizards are able to display the results of the user's answers to previous questions in the viewer window at each step, helping the latter to navigate the situation.

    The wizard implements a sequential or tree-like dialog script. It is advisable to use it for solving well-structured, sequential tasks.

    In this case, it is necessary:

    Provide the user with the ability to return to the previous step;

    Provide for the possibility of canceling the work of the Wizard;

    Number the steps and tell the user the number of steps in the Wizard, especially if there are more than three such steps;

    Explain to the user each step;

    If possible, demonstrate the result of operations already performed at each step.

    Software agents. Used for routine work. The main functions of Agents-Helpers are: observation, search, control. Distinguish:

    agent programs configured to perform specified tasks;

    agent programs capable of learning (fixing the user's actions (like a tape recorder)).

    Like any technical device, a computer exchanges information with a person through a set of certain rules that are mandatory for both the machine and the person. These rules are called interfaces in computer literature. The interface should be clear and incomprehensible, friendly and not. Many adjectives go with it. But in one he is constant: he is, and you can’t get away from him anywhere.

    Interface- these are the rules for the interaction of the operating system with users, as well as neighboring levels in the computer network. The technology of communication between a person and a computer depends on the interface.

    Interface It is, first of all, a set of rules. Like any rules, they can be generalized, collected into a "code", grouped according to a common feature. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, we came to the concept of "interface type" as a combination of the similarity of the ways in which humans and computers interact. We can propose the following schematic classification of various interfaces for communication between a person and a computer (Fig. 1.).

    Packet technology. Historically, this type of technology appeared first. It already existed on the relay machines of Sues and Zuse (Germany, 1937). Its idea is simple: the input of the computer is a sequence of characters in which, according to certain rules, the sequence of programs launched for execution is indicated. After the execution of the next program, the next one is launched, and so on. The machine, according to certain rules, finds commands and data for itself. This sequence can be, for example, a punched tape, a stack of punched cards, a sequence of pressing the keys of an electric typewriter (such as CONSUL). The machine also issues its messages on a perforator, an alphanumeric printer (ATsPU), a typewriter tape.

    Such a machine is a "black box" (more precisely, a "white cabinet"), into which information is constantly fed and which also constantly "informs" the world about its state. A person here has little influence on the operation of the machine - he can only suspend the operation of the machine, change the program and start the computer again. Subsequently, when the machines became more powerful and could serve several users at once, the eternal waiting of the user like: "I sent data to the machine. I'm waiting for it to answer. And will it answer at all?" - it became, to put it mildly, necessary to eat. In addition, computer centers, following newspapers, have become the second largest "producer" of waste paper. For this reason, with the advent of alphanumeric displays, the era of a truly user-friendly technology, the command line, began.

    command interface.

    The command interface is usually called so because in this type of interface a person gives "commands" to the computer, and the computer executes them and gives the result to the person. The command interface is implemented as batch technology and command line technology.

    With this technology, the keyboard serves as the only way to enter information from a person to a computer, and the computer outputs information to a person using an alphanumeric display (monitor). This combination (monitor + keyboard) became known as a terminal, or console.

    Commands are typed on the command line. The command line is a prompt symbol and a blinking rectangle - the cursor.
    Hosted on ref.rf
    When a key is pressed, characters appear at the cursor position, and the cursor itself moves to the right. The command is ended by pressing the Enter (or Return.) key. After that, the transition to the beginning of the next line is performed. It is from this position that the computer displays the results of its work on the monitor. Then the process is repeated.

    Command line technology already worked on monochrome alphanumeric displays. Since only letters, numbers and punctuation marks were allowed to be entered, the technical characteristics of the display were not significant. A television receiver and even an oscilloscope tube could be used as a monitor.

    Both of these technologies are implemented in the form of a command interface - machines are fed into the input of the command, and it, as it were, "responds" to them.

    Text files became the predominant type of files when working with the command interface - they and only they could be created using the keyboard. The most widespread use of the command line interface is the emergence of the UNIX operating system and the appearance of the first eight-bit personal computers with the multiplatform operating system CP/M.

    WIMP interface(Window - window, Image - image, Menu - menu, Pointer - pointer). A characteristic feature of this type of interface is that the dialogue with the user is conducted not with the help of commands, but with the help of graphic images - menus, windows, and other elements. Although machine commands are given in this interface, this is done "indirectly", through graphic images. The idea of ​​a graphical interface originated in the mid-1970s, when the concept of a visual interface was developed at the Xerox Palo Alto Research Center (PARC). The prerequisite for the graphical interface was a decrease in the computer's response time to a command, an increase in the amount of RAM, as well as the development of the technical base of computers. The hardware basis of the concept, of course, was the appearance of alphanumeric displays on computers, and these displays already had such effects as "flickering" of characters, color inversion (reversing the style of white characters on a black background, that is, black characters on a white background ), underlining characters. These effects did not extend to the entire screen, but only to one or more characters. The next step was the creation of a color display that allows, along with these effects, symbols in 16 colors on a background with a palette (that is, a color set) of 8 colors. After the advent of graphic displays, with the ability to display any graphic images in the form of many dots on a screen of various colors, there are no limits to the imagination in using the screen! PARC's first GUI system, the 8010 Star Information System, thus appeared four months before the first IBM computer was released in 1981. Initially, the visual interface was used only in programs. Gradually, he began to move to the operating systems used first on Atari and Apple Macintosh computers, and then on IBM compatible computers.

    From an earlier time, and influenced also by these concepts, there has been a process of unification in the use of the keyboard and mouse by application programs. The merger of these two trends has led to the creation of the user interface, with the help of which, with minimal time and money spent on retraining staff, you can work with any software product. The description of this interface, common to all applications and operating systems, is the subject of this part.

    The graphical user interface during its development has gone through two stages and is implemented at two levels of technology: a simple graphical interface and a "pure" WIMP interface.

    At the first stage, the graphical interface was very similar to command line technology. The differences from the command line technology were as follows:

    Ú When displaying symbols, it was allowed to highlight some of the symbols with color, inverted image, underline and blinking. Thanks to this, the expressiveness of the image has increased.

    Ú Given the dependence on a specific implementation of the graphical interface, the cursor can be represented not only by a flickering rectangle, but also by some area covering several characters and even part of the screen. This selected area is different from other unselected parts (usually by color).

    Ú Pressing the Enter key does not always execute the command and move to the next line. The response to pressing any key depends largely on which part of the screen the cursor was on.

    Ú In addition to the Enter key, the gray cursor keys are increasingly used on the keyboard (see the keyboard section in issue 3 of this series.)

    Ú Already in this edition of the graphical interface, manipulators (such as a mouse, trackball, etc. - see Figure A.4.) began to be used Οʜᴎ allowed you to quickly select the desired part of the screen and move the cursor.

    Summing up, we can give the following distinctive features of this interface:

    Ú Highlight areas of the screen.

    Ú Redefining keyboard keys based on context.

    Ú Using manipulators and gray keyboard keys to control the cursor.

    Ú Extensive use of color monitors.

    The appearance of this type of interface coincides with the widespread use of the MS-DOS operating system. It was she who introduced this interface to the masses, thanks to which the 80s were marked by the improvement of this type of interface, the improvement of character display characteristics and other monitor parameters.

    A typical example of using this kind of interface is the Nortron Commander file shell and the Multi-Edit text editor. And text editors Lexicon, ChiWriter and word processor Microsoft Word for Dos are an example of how this interface has outdone itself.

    The second stage in the development of the graphical interface was the "pure" WIMP interface. This subspecies of the interface is characterized by the following features:

    Ú All work with programs, files and documents takes place in windows - certain parts of the screen outlined by a frame.

    Ú All programs, files, documents, devices and other objects are represented as icons - icons. When opened, the icons turn into windows.

    Ú All actions with objects are implemented using the menu. Although the menu appeared at the first stage of the development of the graphical interface, it did not have a dominant meaning in it, but served only as an addition to the command line. In a pure WIMP interface, the menu becomes the main control element.

    Ú Extensive use of manipulators to point to objects. The manipulator ceases to be just a toy - an addition to the keyboard, but becomes the main control element. With the help of the manipulator, they point to any area of ​​the screen, windows or icons, select it, and only then, through the menu or using other technologies, they control them.

    It should be noted that WIMP requires a high-resolution color raster display and a manipulator for its implementation.
    Hosted on ref.rf
    Also, programs focused on this type of interface impose increased requirements on computer performance, memory size, bus bandwidth, etc. At the same time, this type of interface is the easiest to learn and intuitive. For this reason, the WIMP interface has now become the de facto standard.

    A striking example of programs with a graphical interface is the Microsoft Windows operating system.

    SILK- interface (Speech - speech, Image - image, Language - language, Knowlege - knowledge). This type of interface is closest to the usual, human form of communication. Within the framework of this interface, there is a normal "conversation" between a person and a computer. At the same time, the computer finds commands for itself by analyzing human speech and finding key phrases in it. It also converts the result of command execution into a human-readable form. This type of interface is the most demanding on the hardware resources of a computer, and in this regard, it is used mainly for military purposes.

    Since the mid-90s, after the appearance of inexpensive sound cards and the widespread use of speech recognition technologies, the so-called "speech technology" of the SILK interface has appeared. With this technology, commands are given by voice by pronouncing special reserved words - commands.

    Words should be pronounced clearly, at the same pace. There is a pause between words. Due to the underdevelopment of the speech recognition algorithm, such systems require individual pre-configuration for each specific user.

    The "speech" technology is the simplest implementation of the SILK interface.

    Biometric technology ("Mimic Interface".)

    This technology originated in the late 1990s and is still being developed at the time of this writing. To control the computer, a person's facial expression, the direction of his gaze, the size of the pupil, and other signs are used. To identify the user, the pattern of the iris of his eyes, fingerprints and other unique information is used. Images are read from a digital video camera, and then commands are extracted from this image using special image recognition programs. This technology is likely to take its place in software products and applications where it is important to accurately identify a computer user.

    mob_info