Rozhraní a technologie. Hlavní technologie pro implementaci rozhraní jsou: Dávkové

  • OOP
  • Minulé pondělí jsem měl to štěstí, že jsem dostal pohovor jako Senior .Net Developer v mezinárodní společnosti. Během rozhovoru jsem byl požádán, abych udělal test, kde se řada otázek týkala .Netu. Zejména v jedné z otázek bylo nutné vyhodnotit (pravda/nepravda) řadu tvrzení, mezi nimiž byly následující:

    V .Net každé pole prvků, jako je int, standardně implementuje IList, což umožňuje jeho použití jako kolekce v příkazu foreach.

    Rychle odpovědět na tuto otázku záporně a napsat samostatně na okraje. že foreach vyžaduje implementaci nikoli IList, ale IEnumerable, přešel jsem k další otázce. Cestou domů mě však trápila otázka: implementuje pole stále toto rozhraní nebo ne?

    O IList jsem si matně vzpomněl, že toto rozhraní mi poskytuje vlastnosti IEnumerable, indexer a Count obsahující počet prvků kolekce a také několik málo používaných vlastností, jako je IsFixedCollection(). Pole má pro svou velikost vlastnost Length a Count v IEnumerable je metoda rozšíření od LINQ, což by nebylo možné, kdyby byla metoda implementována ve třídě. Ukázalo se tedy, že pole nemůže implementovat rozhraní IList, ale pronásledoval mě nějaký neurčitý pocit. Večer po rozhovoru jsem se tedy rozhodl udělat průzkum.

    Třída System.Array

    Protože jsem neměl nainstalovaný Reflector.Net, napsal jsem jen krátký program v C#, abych zjistil, jaké rozhraní implementuje celočíselné pole.

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

    Zde je úplný seznam přijatých rozhraní z okna konzoly:

    ICloneable IList ICollection IEnumerable ISstructuralComparable ISstructuralEquatable IList`1 ICollection`1 IEnumerable`1 IReadOnlyList`1 IReadOnlyCollection`1

    Tím pádem, pole v .Net stále implementuje rozhraní IList a jeho zobecněnou verzi IList<> .

    Abych získal úplnější informace, sestavil jsem diagram třídy System.Array.

    Moje chyba mě okamžitě zaujala: Count nebyl vlastností IList, ale ICollection, předchozího rozhraní v řetězci dědičnosti. Pole samotné však již takovou vlastnost nemělo, stejně jako mnoho dalších vlastností rozhraní IList, ačkoliv byly implementovány další vlastnosti rozhraní, IsFixedSize a IsReadOnly. Jak je to vůbec možné?

    Všechno okamžitě zapadne, když si vzpomenete, že v C# můžete implementovat nejen rozhraní
    implicitně, ale i explicitně. O této možnosti jsem věděl z učebnic, které uváděly příklad takového provedení v případě. když základní třída již obsahuje metodu se stejným názvem jako metoda rozhraní. Tuto funkci jsem také viděl v ReSharper. Doposud jsem se však přímo nesetkal s potřebou explicitně implementovat rozhraní ve svých vlastních projektech.

    Porovnání explicitní a implicitní implementace rozhraní

    Porovnejme tyto dva typy implementací rozhraní:.
    Kritéria
    Implicitní implementace
    Explicitní implementace
    Základní syntaxe
    rozhraní ITest ( void DoTest(); ) veřejná třída ImplicitTest: ITest ( public void DoTest() ( ) )
    rozhraní ITest ( void DoTest(); ) veřejná třída ExplicitTest: ITest ( void ITest.DoTest() ( ) )
    Viditelnost
    Implicitní implementace byla vždy veřejná, takže k metodám a vlastnostem lze přistupovat přímo.
    var imp = new ImplicitTest(); imp.DoTest();
    Explicitní implementace je vždy soukromá.
    Abyste získali přístup k implementaci, musíte přetypovat instanci třídy do rozhraní (upcast to interface).
    var exp = new ExplicitTest(); ((ITest)exp).DoTest();
    Polymorfie
    Implicitní implementace rozhraní může být virtuální, což umožňuje tuto implementaci přepsat v podřízených třídách.
    Explicitní implementace je vždy statická. V podřízených třídách jej nelze přepsat (přepsat) ani zablokovat (nové). Poznámka 1
    Abstraktní třída a implementace
    Implicitní implementace může být abstraktní a implementovaná pouze v podřízené třídě.
    Explicitní implementace nemůže být abstraktní, ale samotná třída může mít jiné abstraktní metody a být sama abstraktní. Poznámka 2

    Poznámky:
    Poznámka 1 - Jak je správně uvedeno v komentářích, implementaci lze přepsat opakovanou explicitní implementací rozhraní v podřízené třídě (viz první komentář k článku).

    Poznámka 2 – Jeden z blogů uvádí, že třída sama o sobě nemůže být abstraktní. Možná to platilo pro některé předchozí verze kompilátoru, při svých experimentech jsem mohl bez problémů implementovat rozhraní explicitně v abstraktní třídě.

    Proč potřebujeme explicitní implementaci rozhraní?

    Explicitní implementace rozhraní je podle MSDN nezbytná, když více rozhraní implementovaných třídou má metodu se stejným podpisem. Tento problém je v anglicky mluvícím světě obecně znám pod mrazivým názvem „deadly diamond of death“, který se do ruštiny překládá jako „diamantový problém“. Zde je příklad takové situace:

    /* Výpis 1 */ interface IJogger ( void Run(); ) interface ISskier ( void Run(); ) public class Sportovec: ISlyžař, IJogger ( public void Run() ( Console.WriteLine("Jsem sportovec, lyžař nebo Jogger?");))

    Mimochodem, tento příklad je správný kód v C#, to znamená, že se zkompiluje a spustí (správně), zatímco metoda Run() je jak metodou samotné třídy, tak implementací až dvou rozhraní. Tímto způsobem můžeme mít jednu implementaci pro různá rozhraní a pro třídu samotnou. Můžete to zkontrolovat pomocí následujícího kódu:

    /* Výpis 2 */ var sp = new Athlete(); sp.Run(); (sp jako ISlyžař).Spustit(); (sp jako IJogger).Spustit();

    Výsledkem provedení tohoto kódu bude "Jsem sportovec, lyžař nebo běžec?", vytištěné na konzoli třikrát.

    Zde můžeme použít explicitní implementaci rozhraní k oddělení všech tří případů:

    /* Výpis 3 */ veřejná třída Sportovec ( public virtual void Run() ( Console.WriteLine("Jsem sportovec"); ) ) veřejná třída Sportovec: Sportsman, ISkier, IJogger ( public override void Run() ( Console. WriteLine("Jsem sportovec"); ) void ISskier.Run() ( Console.WriteLine("Jsem lyžař"); ) void IJogger.Run() ( Console.WriteLine("Jsem běžec"); ))

    V tomto případě při spouštění kódu z výpisu 2 uvidíme v konzole tři řádky, "Jsem sportovec", "Jsem lyžař" A "Jsem běžec".

    Klady a zápory různých implementací rozhraní

    Viditelnost implementace a selektivní implementace
    Jak již bylo ukázáno výše, implicitní implementace se syntakticky neliší od běžné metody třídy (a pokud tato metoda již byla definována ve třídě předka, pak v této syntaxi bude metoda skryta v potomkovi a kód bude zkompilováno bez problémů upozornění kompilátoru na skrytí metody.). Navíc je možné selektivně implementovat jednotlivé metody jednoho rozhraní, ať už explicitně nebo implicitně:

    /* Výpis 4 */ kód veřejné třídy ( public void Run() ( Console.WriteLine("Jsem metoda třídy"); ) ) rozhraní ICommand ( void Run(); void Execute(); ) veřejná třída CodeCommand: Kód , ICommand ( // implementace metody implicitního rozhraní // => veřejná implementace // skrytí metody implicitní základní třídy (zde varování) public void Run() ( base.Run(); ) // implementace metody explicitního rozhraní // => private implementace void ICommand.Execute() () )

    To umožňuje používat implementace jednotlivých metod rozhraní jako nativní metody třídy a jsou přístupné např. přes IntelliSense, na rozdíl od explicitní implementace metod, které jsou soukromé a viditelné až po přetypování na odpovídající rozhraní.

    Na druhou stranu možnost soukromě implementovat metody umožňuje skrýt řadu metod rozhraní a zároveň je plně implementovat. Vrátíme-li se k našemu úplně prvnímu příkladu s poli v .Net, můžete vidět, že pole skrývá například implementaci vlastnosti Count rozhraní ICollection a tuto vlastnost vystavuje pod názvem Length (pravděpodobně jde o pokus o zachování kompatibility s C++ STL a Java). Můžeme tak některé metody implementovaného rozhraní skrýt a jiné neskrýt (=zveřejnit).

    Problém zde však je, že v mnoha případech je zcela nemožné uhodnout, která rozhraní jsou implementována „implicitně“ třídou, protože metody ani vlastnosti těchto rozhraní nejsou v IntelliSense viditelné (příklad System.Array je zde také poučné). Jediný způsob, jak identifikovat takové implementace, je použít reflexi, například pomocí prohlížeče objektů v sadě Visual Studio.

    Refaktorování rozhraní
    Protože se implicitní (veřejná) implementace rozhraní neliší od implementace veřejné metody třídy, v případě refaktorizace rozhraní a odstranění jakékoli veřejné metody z něj (například při kombinaci Run() a Execute () metod z výše uvedeného rozhraní ICommand do jedné metody Run()) ve všech implicitních implementacích, metoda zůstane otevřeným přístupem, který bude velmi pravděpodobně muset být podporován i po refaktorizaci, protože tato veřejná metoda již může mít různé závislosti v jiných součástí systému. V důsledku toho bude porušen princip programování „proti rozhraním, nikoli implementacím“, protože závislosti již budou mezi konkrétními (a v různých třídách pravděpodobně odlišnými) implementacemi předchozí metody rozhraní.

    /* Výpis 5 */ rozhraní IFingers ( void Thumb(); void IndexFinger(); // zastaralá metoda rozhraní // void MiddleFinger(); ) public class HumanPalm: IFingers ( public void Thumb() () public void IndexFinger( ) () // zde je "visící" veřejná metoda public void MiddleFinger() () ) veřejná třída AnthropoidHand: IFingers ( void IFingers.Thumb() () void IFingers.IndexFinger() () // zde chyba kompilátoru void IFingers.MiddleFinger() () )

    V případě privátní implementace rozhraní se všechny třídy s explicitní implementací metody, která již neexistuje, jednoduše přestanou kompilovat, ale po odstranění implementace, která se stala nepotřebnou (nebo její refaktorizaci do nové metody), nebudeme mít „extra“ veřejná metoda, která není vázána na žádné rozhraní. Samozřejmě může být nutné refaktorovat závislosti na samotném rozhraní, ale alespoň zde nedojde k porušení principu „program k rozhraním, nikoli implementacím“.

    Pokud jde o vlastnosti, implicitně implementované vlastnosti (vlastnosti) rozhraní vám umožňují přistupovat k nim prostřednictvím přístupových metod (getter a setter) jak externě, tak přímo ze třídy samotné, což může vést ke zbytečným efektům (například zbytečné ověřování dat během inicializace vlastností) .

    /* Výpis 6 */ interface IProperty ( int Amount ( get; set; ) ) public class ClassWithProperty: IProperty ( // implicitní implementace, public public int Amount ( get; set; ) public ClassWithProperty() ( // interní vyvolání public setter Amount = 1000; ) ) public class ClassWithExplicitProperty: IProperty ( // explicitní implementace, private int IProperty.Amount ( get; set; ) public ClassWithExplicitProperty() ( // interní vyvolání není možné // chyba kompilátoru zde Amount = 1000 ;))

    Při explicitní implementaci vlastností rozhraní zůstávají tyto vlastnosti soukromé a pro přístup musíte jít „dlouhou“ cestou a deklarovat další soukromé pole, přes které probíhá inicializace. Výsledkem je čistší kód, kde se přístupové objekty vlastnosti používají pouze pro externí přístup.

    Použití explicitního typování lokálních proměnných a polí tříd
    V případě explicitní implementace rozhraní musíme výslovně uvést, že nepracujeme s instancí třídy, ale s instancí rozhraní. Tak například nebude možné použít odvození typu a deklarovat lokální proměnné v C# pomocí slova var service. Místo toho musíme použít explicitní deklaraci typu rozhraní při deklaraci lokálních proměnných, stejně jako v podpisu metody a v polích třídy.

    Zdá se tedy, že na jedné straně je kód poněkud méně flexibilní (například ReSharper ve výchozím nastavení vždy navrhuje použít deklaraci s var, pokud je to možné), ale vyhneme se potenciálním problémům spojeným s vazbou na konkrétní implementaci, jak systém roste. a jeho kód objemu. Tento bod se může mnohým zdát kontroverzní, ale v případě, kdy na projektu pracuje několik lidí a dokonce i v různých částech světa, může být použití explicitního psaní velmi užitečné, protože zvyšuje čitelnost kódu a snižuje náklady. jeho udržování.

    Jako každé technické zařízení si počítač vyměňuje informace s osobou prostřednictvím souboru určitých pravidel, která jsou povinná pro stroj i osobu. Tato pravidla se v počítačové literatuře nazývají rozhraní. Rozhraní může být srozumitelné nebo nesrozumitelné, přátelské nebo ne. Platí pro něj mnoho přídavných jmen. Ale jedna věc je stálá: existuje a nemůžete tomu uniknout.

    Rozhraní- jedná se o pravidla pro interakci mezi operačním systémem a uživateli a také sousedními úrovněmi v počítačové síti. Technologie komunikace člověk-počítač závisí na rozhraní.

    Rozhraní- Toto je především soubor pravidel. Jako všechna pravidla je lze zobecnit, shromáždit do „kódu“ a seskupit podle společné charakteristiky. Došli jsme tedy k pojmu „typ rozhraní“ jako kombinaci podobných způsobů interakce mezi lidmi a počítači. Můžeme navrhnout následující schematickou klasifikaci různých komunikačních rozhraní člověk-počítač (obr. 1.).

    Dávková technologie. Historicky se tento typ technologie objevil jako první. Existovala již na reléových strojích Sues a Zuse (Německo, 1937). Jeho myšlenka je jednoduchá: na vstup počítače je dodávána sekvence symbolů, ve které je podle určitých pravidel uvedena sekvence programů spuštěných k provedení. Po provedení dalšího programu se spustí další a tak dále. Stroj si podle určitých pravidel sám najde příkazy a data. Touto sekvencí může být např. děrná papírová páska, stoh děrných štítků nebo sekvence mačkání kláves elektrického psacího stroje (typ CONSUL). Zařízení také odesílá své zprávy na děrovač, alfanumerickou tiskovou jednotku (ADP) nebo pásku do psacího stroje.

    Takovým strojem je „černá skříňka“ (přesněji „bílá skříň“), do které jsou neustále dodávány informace a která také neustále „informuje“ svět o svém stavu. Člověk zde má malý vliv na chod stroje – může pouze pozastavit chod stroje, změnit program a znovu spustit počítač. Následně, když se stroje staly výkonnějšími a mohly sloužit několika uživatelům najednou, uživatelé čekali věčně jako: "Poslal jsem data do stroje. Čekám, až odpoví. A bude vůbec reagovat?" - začalo to být mírně řečeno nudné. Počítačová centra se navíc po novinách stala druhým hlavním „výrobcem“ sběrového papíru. S příchodem alfanumerických displejů proto začala éra skutečně uživatelsky přívětivé technologie – příkazové řádky.

    Příkazové rozhraní.

    Rozhraní příkazů se tak nazývá, protože v tomto typu rozhraní člověk dává „příkazy“ počítači a počítač je provádí a dává výsledek osobě. Příkazové rozhraní je implementováno ve formě dávkové technologie a technologie příkazového řádku.


    Pomocí této technologie je klávesnice jediným způsobem, jak zadávat informace od osoby do počítače, a počítač zobrazuje informace osobě pomocí alfanumerického displeje (monitoru). Této kombinaci (monitor + klávesnice) se začalo říkat terminál nebo konzole.

    Příkazy se zadávají na příkazovém řádku. Příkazový řádek je symbol výzvy a blikající obdélník - kurzor. Když stisknete klávesu, na místě kurzoru se objeví symboly a samotný kurzor se přesune doprava. Příkaz končí stisknutím klávesy Enter (nebo Return), která se poté přesune na začátek dalšího řádku. Právě z této pozice počítač zobrazuje výsledky své práce na monitoru. Poté se proces opakuje.

    Technologie příkazového řádku již fungovala na monochromatických alfanumerických displejích. Vzhledem k tomu, že bylo možné zadávat pouze písmena, čísla a interpunkční znaménka, technické vlastnosti displeje nebyly podstatné. Jako monitor by se dal použít televizní přijímač a dokonce i elektronka osciloskopu.

    Obě tyto technologie jsou implementovány ve formě příkazového rozhraní - příkazy jsou zadávány stroji jako vstup a ten na ně „odpovídá“.

    Textové soubory se staly převládajícím typem souborů při práci s příkazovým rozhraním - pouze je bylo možné vytvářet pomocí klávesnice. Doba, kdy bylo rozhraní příkazového řádku nejrozšířenější, byl vznik operačního systému UNIX a objevení se prvních osmibitových osobních počítačů s multiplatformním operačním systémem CP/M.

    rozhraní WIMP(Okno - okno, Obrázek - obrázek, Menu - menu, Ukazatel - ukazatel). Charakteristickým rysem tohoto typu rozhraní je, že dialog s uživatelem není veden pomocí příkazů, ale pomocí grafických obrázků - menu, oken a dalších prvků. Přestože jsou příkazy zadávány stroji v tomto rozhraní, děje se tak „nepřímo“, prostřednictvím grafických obrázků. Myšlenka grafického rozhraní začala v polovině 70. let, kdy byl koncept vizuálního rozhraní vyvinut ve výzkumném centru Xerox Palo Alto Research Center (PARC). Předpokladem pro grafické rozhraní bylo zkrácení reakční doby počítače na povel, zvýšení velikosti paměti RAM a také rozvoj technické základny počítačů. Hardwarovým základem konceptu byl samozřejmě vzhled alfanumerických displejů na počítačích a tyto displeje již měly takové efekty, jako je „blikání“ znaků, inverze barev (změna obrysu bílých znaků na černém pozadí na rub, atd.). tedy černé znaky na bílém pozadí ), podtržení znaků. Tyto efekty se nevztahovaly na celou obrazovku, ale pouze na jednu nebo více postav. Dalším krokem bylo vytvoření barevného displeje, který by umožňoval zobrazit spolu s těmito efekty znaky v 16 barvách na pozadí s paletou (tedy barevnou sadou) 8 barev. Po nástupu grafických displejů s možností zobrazit libovolné grafické obrázky v podobě mnoha bodů na obrazovce různých barev se fantazii při používání obrazovky meze nekladly! První systém s grafickým rozhraním, 8010 Star Information System skupiny PARC, se tak objevil čtyři měsíce před uvedením prvního počítače IBM v roce 1981. Zpočátku se vizuální rozhraní používalo pouze v programech. Postupně začal přecházet na operační systémy, používané nejprve na počítačích Atari a Apple Macintosh a poté na počítačích kompatibilních s IBM.

    Již dříve, a také ovlivněný těmito koncepty, existoval proces sjednocení používání klávesnice a myši aplikačními programy. Spojení těchto dvou trendů vedlo k vytvoření uživatelského rozhraní, se kterým můžete s minimálním časem a penězi vynaloženými na přeškolení personálu pracovat s jakýmkoli softwarovým produktem. Tato část je věnována popisu tohoto rozhraní, společného pro všechny aplikace a operační systémy.

    Grafické uživatelské rozhraní prošlo během svého vývoje dvěma fázemi a je implementováno na dvou úrovních technologie: jednoduché grafické rozhraní a „čisté“ rozhraní WIMP.

    V první fázi bylo GUI velmi podobné technologii příkazového řádku. Rozdíly od technologie příkazového řádku byly následující:

    Ú Při zobrazování znaků bylo povoleno zvýraznit některé znaky barvou, inverzním obrazem, podtržením a blikáním. Díky tomu se zvýšila výraznost obrazu.

    Ú V závislosti na konkrétní implementaci grafického rozhraní se kurzor může jevit nejen jako blikající obdélník, ale také jako oblast pokrývající několik znaků a dokonce i část obrazovky. Tato vybraná oblast se liší od ostatních, nevybraných částí (obvykle barvou).

    Ú Stisknutí klávesy Enter ne vždy provede příkaz a přesune se na další řádek. Reakce na stisk libovolné klávesy do značné míry závisí na tom, kde na obrazovce byl kurzor.

    Ú Kromě klávesy Enter se na klávesnici stále častěji používají „šedé“ klávesy pro ovládání kurzoru (viz část o klávesnici ve vydání 3 této série.)

    Ú Již v této edici grafického rozhraní se začaly používat manipulátory (jako myš, trackball atd. - viz obrázek A.4.) Umožňovaly rychle vybrat požadovanou část obrazovky a pohybovat kurzorem .

    Abychom to shrnuli, můžeme citovat následující charakteristické rysy tohoto rozhraní:

    Ú Výběr oblastí obrazovky.

    Ú Předefinujte klávesy klávesnice v závislosti na kontextu.

    Ú Použití manipulátorů a šedých kláves na klávesnici k ovládání kurzoru.

    Ú Široké použití barevných monitorů.

    Vzhled tohoto typu rozhraní se shoduje s rozšířeným používáním operačního systému MS-DOS. Právě ona představila toto rozhraní masám, díky čemuž se 80. léta nesla ve znamení vylepšování tohoto typu rozhraní, zlepšování vlastností zobrazení znaků a dalších parametrů monitoru.

    Typickým příkladem použití tohoto typu rozhraní je souborový shell Nortron Commander a textový editor Multi-Edit. A textové editory Lexicon, ChiWriter a textový procesor Microsoft Word for Dos jsou příklady toho, jak toto rozhraní překonalo samo sebe.

    Druhou fází vývoje grafického rozhraní bylo „čisté“ rozhraní WIMP.Tento podtyp rozhraní se vyznačuje následujícími vlastnostmi:

    Ú Veškerá práce s programy, soubory a dokumenty probíhá v oknech - určité části obrazovky ohraničené rámečkem.

    Ú Všechny programy, soubory, dokumenty, zařízení a další objekty jsou prezentovány ve formě ikon. Po otevření se ikony změní na okna.

    Ú Všechny akce s objekty se provádějí pomocí nabídky. I když se menu objevilo v první fázi vývoje grafického rozhraní, nemělo v něm dominantní roli, ale sloužilo pouze jako doplněk k příkazové řádce. V čistém rozhraní WIMP se menu stává hlavním ovládacím prvkem.

    Ú Rozsáhlé používání manipulátorů k ukazování předmětů. Polohovací zařízení přestává být jen hračkou – doplňkem klávesnice, ale stává se hlavním ovládacím prvkem. Pomocí manipulátoru ukážou na jakoukoli oblast obrazovky, okna nebo ikony, vyberou ji a teprve poté je ovládají prostřednictvím nabídky nebo pomocí jiných technologií.

    Je třeba poznamenat, že WIMP vyžaduje pro svou implementaci barevný rastrový displej s vysokým rozlišením a ukazovací zařízení. Také programy orientované na tento typ rozhraní kladou zvýšené nároky na výkon počítače, kapacitu jeho paměti, šířku pásma sběrnice atd. Tento typ rozhraní je však nejjednodušší na naučení a je intuitivní. Proto se nyní rozhraní WIMP stalo de facto standardem.

    Pozoruhodným příkladem programů s grafickým rozhraním je operační systém Microsoft Windows.

    HEDVÁBÍ- rozhraní (Řeč - řeč, Obraz - obraz, Jazyk - jazyk, Znalosti - znalosti). Tento typ rozhraní je nejblíže obvyklé lidské formě komunikace. V rámci tohoto rozhraní probíhá normální „rozhovor“ mezi osobou a počítačem. Počítač zároveň sám pro sebe nalézá příkazy tím, že analyzuje lidskou řeč a nachází v ní klíčové fráze. Převádí také výsledek provádění příkazu do podoby čitelné pro člověka. Tento typ rozhraní je nejnáročnější na hardwarové prostředky počítače, a proto je využíván především pro vojenské účely.

    Od poloviny 90. let, po nástupu levných zvukových karet a rozšířeném používání technologií rozpoznávání řeči, se objevilo rozhraní SILK, tzv. „technologie řeči“. S touto technologií jsou příkazy zadávány hlasem vyslovováním speciálních vyhrazených slov - příkazů.

    Slova musí být vyslovována jasně, stejným tempem. Mezi slovy je nutná pauza. Vzhledem k nedostatečně vyvinutému algoritmu rozpoznávání řeči vyžadují takové systémy individuální předladění pro každého konkrétního uživatele.

    Technologie „Speech“ je nejjednodušší implementací rozhraní SILK.

    Biometrická technologie („Mimic interface.“)

    Tato technologie se objevila na konci 90. let 20. století a v době psaní tohoto článku se stále vyvíjí. K ovládání počítače se používá výraz obličeje člověka, směr jeho pohledu, velikost zornice a další znaky. K identifikaci uživatele se používá vzor duhovky jeho očí, otisky prstů a další unikátní informace. Obrázky jsou načteny z digitální videokamery a poté jsou z tohoto obrázku extrahovány příkazy pomocí speciálních programů pro rozpoznávání vzorů. Tato technologie si pravděpodobně najde své místo v softwarových produktech a aplikacích, kde je důležité přesně identifikovat uživatele počítače.

    Typy rozhraní

    Rozhraní je především soubor pravidel. Jako všechna pravidla je lze zobecnit, shromáždit do „kódu“ a seskupit podle společné charakteristiky. Došli jsme tedy k pojmu „typ rozhraní“ jako kombinaci podobných způsobů interakce mezi lidmi a počítači. Stručně můžeme navrhnout následující schematickou klasifikaci různých komunikačních rozhraní člověk-počítač.

    Moderní typy rozhraní jsou:

    1) Příkazové rozhraní. Rozhraní příkazů se tak nazývá, protože v tomto typu rozhraní člověk dává „příkazy“ počítači a počítač je provádí a dává výsledek osobě. Příkazové rozhraní je implementováno ve formě dávkové technologie a technologie příkazového řádku.

    2) WIMP - rozhraní (Okno - okno, Obrázek - obrázek, Menu - menu, Ukazatel - ukazatel). Charakteristickým rysem tohoto typu rozhraní je, že dialog s uživatelem není veden pomocí příkazů, ale pomocí grafických obrázků - menu, oken a dalších prvků. Přestože jsou příkazy zadávány stroji v tomto rozhraní, děje se tak „nepřímo“, prostřednictvím grafických obrázků. Tento typ rozhraní je implementován na dvou úrovních technologie: jednoduché grafické rozhraní a „čisté“ rozhraní WIMP.

    3) SILK - rozhraní (Speech - řeč, Image - image, Language - language, Knowlege - knowledge). Tento typ rozhraní je nejblíže obvyklé lidské formě komunikace. V rámci tohoto rozhraní probíhá normální „rozhovor“ mezi osobou a počítačem. Počítač zároveň sám pro sebe nalézá příkazy tím, že analyzuje lidskou řeč a nachází v ní klíčové fráze. Převádí také výsledek provádění příkazu do podoby čitelné pro člověka. Tento typ rozhraní je nejnáročnější na hardwarové prostředky počítače, a proto je využíván především pro vojenské účely.

    Příkazové rozhraní

    Dávková technologie. Historicky se tento typ technologie objevil jako první. Existovala již na reléových strojích Sues a Zuse (Německo, 1937). Jeho myšlenka je jednoduchá: na vstup počítače je dodávána sekvence symbolů, ve které je podle určitých pravidel uvedena sekvence programů spuštěných k provedení. Po provedení dalšího programu se spustí další a tak dále. Stroj si podle určitých pravidel sám najde příkazy a data. Touto sekvencí může být např. děrná papírová páska, stoh děrných štítků nebo sekvence mačkání kláves elektrického psacího stroje (typ CONSUL). Zařízení také odesílá své zprávy na děrovač, alfanumerickou tiskovou jednotku (ADP) nebo pásku do psacího stroje. Takový stroj je „černá skříňka“ (přesněji „bílá skříň“), do které jsou neustále dodávány informace a která také neustále „informuje“ svět o svém stavu (viz obrázek 1). Člověk zde má malý vliv o provozu stroje - může stroj pouze pozastavit, změnit program a znovu spustit počítač. Následně, když se stroje staly výkonnějšími a mohly obsluhovat několik uživatelů najednou, věčné čekání uživatelů typu: "Poslal jsem data do stroje. Čekám, až odpoví. A bude vůbec reagovat?" - , mírně řečeno, nuda. Počítačová centra se navíc po novinách stala druhým hlavním „výrobcem“ sběrového papíru. S příchodem alfanumerických displejů proto začala éra skutečně uživatelsky přívětivé technologie – příkazové řádky.

    Obr.2. Pohled na sálový počítač řady EC

    Technologie příkazového řádku. Pomocí této technologie je klávesnice jediným způsobem, jak zadávat informace od osoby do počítače, a počítač zobrazuje informace osobě pomocí alfanumerického displeje (monitoru). Této kombinaci (monitor + klávesnice) se začalo říkat terminál nebo konzole. Příkazy se zadávají na příkazovém řádku. Příkazový řádek je symbol výzvy a blikající obdélník - kurzor. Když stisknete klávesu, na místě kurzoru se objeví symboly a samotný kurzor se přesune doprava. Je to velmi podobné psaní příkazu na psacím stroji. Na rozdíl od něj se však písmena zobrazují na displeji, nikoli na papíře, a špatně napsaný znak lze smazat. Příkaz se ukončí stisknutím klávesy Enter (nebo Return) a tím se přesune na začátek dalšího řádku. Právě z této pozice počítač zobrazuje výsledky své práce na monitoru. Poté se proces opakuje. Technologie příkazového řádku již fungovala na monochromatických alfanumerických displejích. Vzhledem k tomu, že bylo možné zadávat pouze písmena, čísla a interpunkční znaménka, technické vlastnosti displeje nebyly podstatné. Jako monitor by se dal použít televizní přijímač a dokonce i elektronka osciloskopu.

    Obě tyto technologie jsou implementovány ve formě příkazového rozhraní - příkazy jsou zadávány stroji jako vstup a ten na ně „odpovídá“.

    Textové soubory se staly převládajícím typem souborů při práci s příkazovým rozhraním - pouze je bylo možné vytvářet pomocí klávesnice. Doba, kdy bylo rozhraní příkazového řádku nejrozšířenější, byl nástup operačního systému UNIX a objevení se prvních osmibitových osobních počítačů s multiplatformním operačním systémem CP/M.

    GUI

    Jak a kdy se objevilo grafické rozhraní? Jeho myšlenka vznikla v polovině 70. let, kdy byl ve výzkumném centru Xerox Palo Alto Research Center (PARC) vyvinut koncept vizuálního rozhraní. Předpokladem pro grafické rozhraní bylo zkrácení reakční doby počítače na povel, zvýšení velikosti paměti RAM a také rozvoj technické základny počítačů. Hardwarovým základem konceptu byl samozřejmě vzhled alfanumerických displejů na počítačích a tyto displeje již měly takové efekty, jako je „blikání“ znaků, inverze barev (změna obrysu bílých znaků na černém pozadí na rub, atd.). tedy černé znaky na bílém pozadí ), podtržení znaků. Tyto efekty se nevztahovaly na celou obrazovku, ale pouze na jednu nebo více postav. Dalším krokem bylo vytvoření barevného displeje, který by umožňoval zobrazit spolu s těmito efekty znaky v 16 barvách na pozadí s paletou (tedy barevnou sadou) 8 barev. Po nástupu grafických displejů s možností zobrazit libovolné grafické obrázky v podobě mnoha bodů na obrazovce různých barev se fantazii při používání obrazovky meze nekladly! První systém s grafickým rozhraním, 8010 Star Information System skupiny PARC, se tak objevil čtyři měsíce před uvedením prvního počítače IBM v roce 1981. Zpočátku se vizuální rozhraní používalo pouze v programech. Postupně začal přecházet na operační systémy, používané nejprve na počítačích Atari a Apple Macintosh a poté na počítačích kompatibilních s IBM.

    Již dříve, a také ovlivněný těmito koncepty, existoval proces sjednocení používání klávesnice a myši aplikačními programy. Spojení těchto dvou trendů vedlo k vytvoření uživatelského rozhraní, se kterým můžete s minimálním časem a penězi vynaloženými na přeškolení personálu pracovat s jakýmkoli softwarovým produktem. Tato část je věnována popisu tohoto rozhraní, společného pro všechny aplikace a operační systémy.

    Jednoduché GUI

    V první fázi bylo GUI velmi podobné technologii příkazového řádku. Rozdíly od technologie příkazového řádku byly následující:

    1. Při zobrazování znaků bylo povoleno některé znaky zvýraznit barvou, inverzním obrázkem, podtržením a blikáním. Díky tomu se zvýšila výraznost obrazu.

    2. V závislosti na konkrétní implementaci grafického rozhraní se kurzor může jevit nejen jako blikající obdélník, ale také jako oblast pokrývající několik znaků a dokonce i část obrazovky. Tato vybraná oblast se liší od ostatních, nevybraných částí (obvykle barvou).

    3. Stisknutí klávesy Enter nemusí vždy provést příkaz a přesunout se na další řádek. Reakce na stisk libovolné klávesy do značné míry závisí na tom, kde na obrazovce byl kurzor.

    4. Kromě klávesy Enter se na klávesnici stále častěji používají „šedé“ klávesy pro ovládání kurzoru.

    5. Již v této edici grafického rozhraní se začaly používat manipulátory (jako myš, trackball atd. - viz obr. 3.) Umožňovaly rychle vybrat požadovanou část obrazovky a pohybovat kurzorem .

    Obr.3. Manipulátory

    Abychom to shrnuli, můžeme uvést následující charakteristické rysy tohoto rozhraní.

    1) Výběr oblastí obrazovky.

    2) Předefinování kláves klávesnice v závislosti na kontextu.

    3) Použití manipulátorů a šedých kláves na klávesnici k ovládání kurzoru.

    4) Široké použití barevných monitorů.

    Vzhled tohoto typu rozhraní se shoduje s rozšířeným používáním operačního systému MS-DOS. Právě ona představila toto rozhraní masám, díky čemuž se 80. léta nesla ve znamení vylepšování tohoto typu rozhraní, zlepšování vlastností zobrazení znaků a dalších parametrů monitoru.

    Typickým příkladem použití tohoto typu rozhraní je souborový shell Nortron Commander (viz shelly souborů níže) a textový editor Multi-Edit. A textové editory Lexicon, ChiWriter a textový procesor Microsoft Word for Dos jsou příklady toho, jak toto rozhraní překonalo samo sebe.

    rozhraní WIMP

    Druhou fází vývoje grafického rozhraní bylo „čisté“ rozhraní WIMP, tento podtyp rozhraní se vyznačuje následujícími vlastnostmi.

    1. Veškerá práce s programy, soubory a dokumenty probíhá v oknech – určité části obrazovky ohraničené rámečkem.

    2. Všechny programy, soubory, dokumenty, zařízení a další objekty jsou prezentovány ve formě ikon. Po otevření se ikony změní na okna.

    3. Všechny akce s objekty se provádějí pomocí nabídky. I když se menu objevilo v první fázi vývoje grafického rozhraní, nemělo v něm dominantní roli, ale sloužilo pouze jako doplněk k příkazové řádce. V čistém rozhraní WIMP se menu stává hlavním ovládacím prvkem.

    4. Rozsáhlé používání manipulativních prostředků k ukazování na předměty. Polohovací zařízení přestává být jen hračkou – doplňkem klávesnice, ale stává se hlavním ovládacím prvkem. Pomocí manipulátoru zamíří na jakoukoli oblast obrazovky, okna nebo ikony, VYBEROU ji a teprve poté je ovládají prostřednictvím nabídky nebo pomocí jiných technologií.

    Je třeba poznamenat, že WIMP vyžaduje pro svou implementaci barevný rastrový displej s vysokým rozlišením a ukazovací zařízení. Také programy orientované na tento typ rozhraní kladou zvýšené nároky na výkon počítače, kapacitu jeho paměti, šířku pásma sběrnice atd. Tento typ rozhraní je však nejjednodušší na naučení a je intuitivní. Proto se nyní rozhraní WIMP stalo de facto standardem.

    Pozoruhodným příkladem programů s grafickým rozhraním je operační systém Microsoft Windows.

    Technologie řeči

    Od poloviny 90. let, po nástupu levných zvukových karet a rozšířeném používání technologií rozpoznávání řeči, se objevilo rozhraní SILK, tzv. „technologie řeči“. S touto technologií jsou příkazy zadávány hlasem vyslovováním speciálních vyhrazených slov - příkazů. Hlavní takové týmy (podle pravidel systému Gorynych) jsou:

    "Relax" - vypne hlasové rozhraní.

    "Otevřít" - přepne do režimu volání konkrétního programu. Název programu je volán v dalším slově.

    „Budu diktovat“ - přepne z příkazového režimu do režimu hlasového zadávání.

    "Příkazový režim" - návrat do režimu hlasových příkazů.

    A některé další.

    Slova musí být vyslovována jasně, stejným tempem. Mezi slovy je nutná pauza. Vzhledem k nedostatečně vyvinutému algoritmu rozpoznávání řeči vyžadují takové systémy individuální předladění pro každého konkrétního uživatele.

    Technologie „Speech“ je nejjednodušší implementací rozhraní SILK.

    1. Informace systémy v ekonomii (30)

      Abstrakt >> Ekonomika

      ... informace 6 1.3. Klasifikace informace technologie 9 1.5. Etapy vývoje informace systémy... totalita Hardware fondy... informační technologií. Příkladem takového kritéria by bylo Zvyk rozhraní ... 3.5. Software zařízení...

    2. Informace technologie v managementu (5)

      Abstrakt >> Stát a právo

      11 2.1 Software ustanovení 15... informace technologií. koncept" informační technologie“ lze definovat jako soubor softwaru Hardware prostředky a systémy... tvorba a podpora Zvyk rozhraní pro různé kategorie...

    3. Informaceřídicí technologie (10)

      Přednáška >> Informatika

      Typ Zvyk rozhraní Automatizovaný informační technologie se sdílejí... kanceláře se organizují specializované programově-Hardware komplex -... Systém videokonference, e-mail atd.); ke globalizaci informace technika...

    PŘEDNÁŠKA 23-24

    Téma 3.2 Vývoj uživatelských rozhraní

    1. Typy uživatelských rozhraní a fáze jejich vývoje.

    2. Psychofyzické charakteristiky člověka spojené s vnímáním, zapamatováním a zpracováním informací.

    3. Modely uživatelského a softwarového rozhraní.

    4. Klasifikace dialogů a obecné principy jejich vývoje.

    5. Základní komponenty grafických uživatelských rozhraní.

    6. Implementace dialogů v grafickém uživatelském rozhraní.

    7. Přímá manipulační uživatelská rozhraní a jejich návrh.

    8. Inteligentní prvky uživatelských rozhraní.

    V raných fázích vývoje výpočetní techniky bylo uživatelské rozhraní považováno za prostředek komunikace mezi osobou a operačním systémem a bylo dosti primitivní.

    S příchodem interaktivního softwaru se začala používat speciální uživatelská rozhraní. V současné době je hlavním problémem vývoj interaktivních rozhraní pro komplexní softwarové produkty určené pro použití neprofesionálními uživateli.

    1. Typy uživatelských rozhraní a fáze jejich vývoje

    Uživatelské rozhraní– soubor softwaru a hardwaru, který zajišťuje interakci uživatele s počítačem. Základ interakce– dialogy.

    Dialog– regulovaná výměna informací mezi osobou a počítačem, prováděná v reálném čase a zaměřená na společné řešení konkrétního problému: výměna informací a koordinace akcí. Každá konverzace se skládá ze samostatných vstupních/výstupních procesů, které fyzicky zajišťují komunikaci mezi uživatelem a počítačem.

    Výměna informací se provádí přenosem zpráv a řídicích signálů.

    Zpráva– informace účastnící se výměny dialogu.

    Typy zpráv:

    Vstupní zprávy, které jsou generovány osobou pomocí vstupních prostředků: klávesnice, manipulátory (myš atd.);

    Výstupní zprávy, které jsou generovány počítačem ve formě textů, zvuků a/nebo obrázků a zobrazují se uživateli na obrazovce monitoru nebo jiných zařízeních pro výstup informací.

    Uživatel generuje zprávy jako:

    Žádost o informace,

    Žádost o pomoc,

    Vyžádejte si operaci nebo funkci,

    Zadávání nebo změna informací

    Výběr rámečku.

    Přijímá jako odpověď:

    Rady nebo pomoc,

    Slovní forma– část textu mezi dvěma sousedními mezerami nebo interpunkčními znaménky.

    Morfologická analýza - zpracování slovních tvarů bez souvislosti s kontextem.

    Procedurální – zahrnuje identifikaci kmene v aktuálním slovním tvaru, který je následně identifikován.

    Po rozpoznání slovních tvarů se provede syntaktický rozbor sdělení, na základě jehož výsledků se určí jeho syntaktická struktura, tedy věta.

    Rozhraní, které implementuje frázovou formu dialogu, musí: převádět zprávy z formy přirozeného jazyka do formy interní reprezentace a zpět, provádět analýzu a syntézu uživatelských a systémových zpráv, sledovat a pamatovat si dokončenou část dialogu.

    Nedostatky frázová forma:

    Vysoké náklady na zdroje;

    Žádná záruka jednoznačného výkladu znění;

    Nutnost zadávat dlouhé, gramaticky správné fráze.

    Důstojnost frázová forma – volná komunikace se systémem.

    Formulář směrnice - použití příkazů (směrnic) speciálně navržený formální jazyk.

    tým– věta v tomto jazyce popisující kombinovaná data, která zahrnuje identifikátor zahajovaného procesu a volitelně data pro něj.

    Příkaz lze zadat:

    Jako řádek textu ve speciálně navrženém formátu (příkazy MS DOS na příkazovém řádku);

    Stisknutím určité kombinace kláves (kombinace „rychlého přístupu“ pro aplikace Windows);

    Manipulací myši („tažením“ ikon);

    Kombinace druhého a třetího způsobu.

    Výhody formulář směrnice:

    Malé množství vstupních informací;

    Flexibilita – možnost výběru operace je omezena sadou platných příkazů;

    Zaměřte se na dialog řízený uživatelem;

    Používáte minimální plochu obrazovky nebo ji nepoužíváte vůbec;

    Možnost kombinace s jinými formami.

    Nedostatky formulář směrnice:

    Virtuální absence výzev na obrazovce, která vyžaduje zapamatování zadaných příkazů a jejich syntaxe;

    Téměř úplná absence zpětné vazby o stavu zahájených procesů;

    Potřeba dovedností při zadávání textových informací nebo manipulaci s myší;

    Nedostatek uživatelského přizpůsobení.

    Direktivní forma je vhodná pro profesionálního uživatele, který si obvykle rychle pamatuje syntaxi často používaných příkazů nebo kombinací kláves. Výhody formy (flexibilita a dobré dočasné vlastnosti) jsou v tomto případě zvláště patrné.

    Tabulková forma – uživatel vybere odpověď z těch navržených programem. Dialogový jazyk má nejjednodušší syntaxi a jednoznačnou sémantiku, kterou lze poměrně snadno implementovat. Formulář je uživatelsky přívětivý, protože výběr je vždy jednodušší, což je pro neprofesionálního uživatele nezbytné. Tento formulář lze použít, pokud je množina možných odpovědí na konkrétní otázku konečná. Pokud je počet možných odpovědí velký (více než 20), pak použití tabulkové formy nemusí být vhodné.

    Výhody a v tabulkové podobě:

    Dostupnost nápovědy;

    Snížení počtu vstupních chyb: uživatel nezadává informace, ale ukazuje na ně;

    Snížená doba školení uživatelů;

    Možnost kombinace s jinými formami;

    V některých případech uživatelsky konfigurovatelné.

    Nedostatky tabulková forma:

    Požadovány dovednosti navigace na obrazovce;

    Použití relativně velké plochy obrazovky k zobrazení vizuálních komponent;

    Intenzivní využívání počítačových zdrojů spojené s nutností neustále aktualizovat informace na obrazovce.

    Typy a formy dialogu se volí nezávisle na sobě: pro oba typy dialogů platí jakákoli forma.

    Synchronní- dialogy, které se vyskytují při běžném provozu softwaru.

    Asynchronní– dialogy, které vznikají z iniciativy systému nebo uživatele, když je narušen normální procesní scénář. Používají se k vydávání nouzových zpráv ze systému nebo uživatele.

    Rozvoj dialogů. Fáze návrhu a realizace dialogů:

    Definování množiny požadovaných dialogů, jejich hlavních sdělení a možných scénářů - design abstraktní dialogy;

    Určení typu a formy každého dialogu, stejně jako syntaxe a sémantiky použitých jazyků - design konkrétní dialogy;

    Výběr primárních a sekundárních zařízení a návrh vstupních/výstupních procesů pro každý dialog, stejně jako objasnění přenášených zpráv - návrh technické dialogy.

    Základem abstraktních dialogů je ideologie technologického procesu, pro který má softwarový produkt automatizovat.

    Kromě skriptů, které používají stavové diagramy rozhraní nebo dialogové grafy.

    Dialogový graf– orientovaný vážený graf, jehož každý vrchol je spojen s konkrétním obrázkem na obrazovce ( rám) nebo určitý stav dialogu, charakterizovaný souborem akcí dostupných uživateli. Oblouky vycházející z vrcholů ukazují možné změny stavu, když uživatel provádí zadané akce. Oblouky vycházející z vrcholů ukazují možné změny stavu, když uživatel provádí zadané akce. Obloukové váhy udávají podmínky přechodů ze stavu do stavu a operace prováděné během přechodu.

    Každá trasa v grafu odpovídá možné volbě dialogu.


    Obrázek 3 – Abstraktní dialogové grafy:

    a – dialog řízený systémem; b – dialog řízený uživatelem

    5. Základní součásti grafického uživatelského rozhraní

    Grafická uživatelská rozhraní jsou podporována operačními systémy Windows, Apple Macintosh, OS/2 atd. Pro taková rozhraní byly pro každý operační systém vyvinuty sady standardních komponent uživatelské interakce.

    Rozhraní jsou vytvořena pomocí technologie WIMP: W – Windows (windows), I – Icons (ikony), M – Mouse (myš), P – Pop-up (rozbalovací nebo rozevírací nabídky). Hlavní prvky grafických rozhraní: okna, ikony, vstupně/výstupní komponenty a myš, která se používá jako ukazovací zařízení a zařízení pro přímou manipulaci s objekty na obrazovce.

    Okno.Okno - obdélníková ohraničená oblast fyzické obrazovky. Okno může změnit velikost a umístění na obrazovce.

    Hlavní okna (okna aplikací);

    Podřízená nebo podřízená okna;

    Dialogová okna;

    Informační okna;

    Okna menu.

    Okno aplikace Okna obsahují: rámeček, který ohraničuje pracovní oblast okna, záhlaví s tlačítkem systémové nabídky a tlačítky pro zobrazení a ukončení okna, pruh nabídek, nabídku ikon (panel nástrojů), vodorovné a svislé posuvníky a stavový řádek.

    Dětské okno Windows se používá ve vícedokumentových programovacích rozhraních (MDI). Toto okno neobsahuje nabídku. V řádku nadpisu je speciální název, který identifikuje dokument nebo soubor s ním spojený. Ikony všech podřízených oken jsou stejné.

    Dialogové okno Windows slouží k zobrazení a nastavení různých provozních režimů, požadovaných parametrů nebo dalších informací.

    Záhlaví s tlačítkem systémové nabídky;

    Komponenty, které umožňují uživateli zadat nebo vybrat odpověď;

    Doplňkové komponenty, které poskytují nápovědu (okénko zobrazení nebo tlačítko nápovědy).

    Velikost okna nelze měnit, ale lze ji po obrazovce přesouvat.

    Informační okna dva typy:

    Okna zpráv;

    Okna nápovědy.

    Okna zpráv obsahují: nadpis s tlačítkem systémové nabídky, text zprávy, jedno nebo více tlačítek reakce uživatele (Ano, Ne, Zrušit).

    Okno nápovědy obsahuje: menu, posuvníky, informační oblast, podobná oknu aplikace, ale má vysoce specializovaný účel.

    Okna menu Windows se používají jako otevírací hierarchické panely nabídek nebo jako kontextové nabídky.

    Každý řádek okna nabídky může odpovídat:

    Tým;

    Nabídka další úrovně, kterou poskytuje šipka;

    Dialogové okno, které je označeno třemi tečkami.

    Přidána indikace klávesových zkratek.

    Piktogramy. Ikona je malé okno s grafickým obrázkem odrážejícím obsah vyrovnávací paměti, se kterou je spojena.

    Typy piktogramů:

    Software související s příslušným programem;

    Ikony podřízených oken poskytujících přístup k různým dokumentům;

    Ikony panelu nástrojů duplikují přístup k odpovídajícím funkcím prostřednictvím nabídky a poskytují rychlý přístup;

    Ikony objektů pro přímou manipulaci s objekty.

    Přímá manipulace s obrázky. Přímá manipulace s obrázky - to je schopnost nahradit příkaz k ovlivnění objektu fyzickou akcí v rozhraní, prováděnou pomocí myši. V tomto případě je jakákoli oblast obrazovky považována za cíl, který lze aktivovat pohybem kurzoru a stisknutím tlačítka myši.

    V závislosti na reakci na dopad se rozlišují typy příjemců:

    Indikace a výběr (rozbalení ikon, určení aktivního okna);

    Tlačítka na obrazovce a „posuvné“ bariéry (provádění cyklicky opakovaných akcí (provádění určitých operací nebo kreslení, implikované při aktivaci určité oblasti obrazovky - tlačítko)).

    Dynamický vizuální signál - změna obrázku na obrazovce (kurzor myši při provádění konkrétních operací, změna obrázku tlačítka).

    I/O komponenty. Rozhraní zahrnuje několik nabídek: hlavní nebo „rozbalovací“ hierarchické menu, obrázkové nabídky (panely nástrojů) a kontextové nabídky pro různé situace. Kterákoli z uvedených nabídek je vstupně-výstupní komponenta, která implementuje dialog s uživatelem pomocí tabulkového formuláře.

    Hierarchické menu slouží k uspořádání operací prováděných softwarem, pokud jejich počet překračuje počet doporučených IBM), a poskytuje uživateli o nich přehled. Panely nástrojů a kontextové nabídky se používají k poskytování rychlého přístupu k často používaným příkazům, což uživateli umožňuje relativně volnou navigaci.

    Jiné formy I/O:

    Fráze,

    Tabelární,

    Smíšený.

    6. Implementace dialogů v grafickém uživatelském rozhraní

    Dialogy obou typů:

    Ovládání uživatelem

    Řízený systémem.

    Implementace uživatelsky řízených dialogů. Pro implementaci se používají různé typy menu:

    Hlavní,

    panely nástrojů,

    Kontextové a tlačítkové.

    Jako alternativu k menu je vhodné použít direktivní formu dialogu, přiřazení určitých kombinací kláves k hlavním příkazům. Je vhodné poskytnout možnost ovládat menu pomocí klávesnice, pokud uživatel tráví většinu času prací se systémem zadáváním textu nebo dat, tedy interakcí s klávesnicí.

    Jídelní lístek. Menu je navrženo na základě dialogových grafů vyvíjeného softwaru. Pokud počet operací nepřesahuje 5, pak se obvykle používají tlačítka. Pokud počet operací není větší než 9-10, pak se jedná o jednoúrovňové menu. Pokud je počet operací větší než 10, použije se „rozbalovací“ dvouúrovňové hierarchické menu.

    Rozbalovací nabídka. První úroveň hierarchického menu by měla obsahovat názvy hlavních skupin operací.

    Tradičně (obvykle v textových a grafických editorech):

    1. položka Soubor,

    2. položka Upravit,

    3. položka Zobrazit,

    Poslední položkou je Nápověda.

    Počet úrovní hierarchického menu by neměl překročit 2-3 (obtížné vyhledávání). Počet operací v okně by neměl překročit 7-8 operací.

    Pokud počet operací přesáhne 70-80. Vývojáři Microsoft Word navrhli adaptivní hierarchické menu, kde se obsah okna druhé úrovně menu neustále mění a zobrazuje pouze ty operace, které uživatel používá. Pokud uživatel nenajde požadovanou operaci, po několika sekundách nebo po stisknutí speciálního tlačítka Word zobrazí celé okno nabídky.

    7 Přímá manipulační uživatelská rozhraní a jejich návrh

    Schopnost přímé manipulace poskytovaná rozhraními WIMP umožňuje vývoj objektově orientovaných rozhraní přímé manipulace pro aplikace.

    Rozhraní používají direktivní formu dialogu: příkaz se zadává, když jsou určité akce prováděny s ikonou objektu pomocí myši. Hlavními prvky těchto rozhraní jsou: metafory, objekty, reprezentace objektů a technologie Drag and Drop.

    Metafory. Metafory- mentální přenos vlastností nebo charakteristik jednoho předmětu na druhý, poněkud podobný prvnímu. Použití metafor v rozhraních zahrnuje aktivaci stávající zkušenosti uživatele.

    Přímé manipulační rozhraní by mělo uživateli poskytnout prostředí obsahující známé prvky, se kterými se uživatel nejednou setkal v profesionální činnosti nebo v běžném životě, a poskytnout mu možnost manipulace s jednotlivými předměty. (Metafora „Vyhazování odpadků“ - pro mazání souborů).

    Podobné prvky by se měly chovat podobně, prvky zvýrazněné stejnou barvou by měly být ve vzájemném vztahu.

    Je vhodné nedělat obrázky příliš realistické, aby nedošlo ke klamání očekávání uživatele.

    Metafory a animace. Při implementaci metafor stále větší roli hrají multimédia, především animace. Pomocí animace můžete uživatele nejen pobavit, ale také ho „připravit“ na změnu snímků, čímž zkrátíte čas potřebný k přizpůsobení se změněné situaci.

    https://pandia.ru/text/78/247/images/image005_68.gif">Program, který implementuje animovaná rozhraní, není nikdy nečinný, protože během čekání na zadání příkazu uživatelem nadále zobrazuje odpovídající snímky. Takové programy jsou založeny na časové programování. Na rozdíl od programování událostí, které umožňuje spojit obraz na obrazovce s vnějšími a vnitřními událostmi v systému, časové programování umožňuje změnit promítaný sekvence snímků v závislosti na stavu simulovaných procesů a akcích uživatele.

    Objekty rozhraní přímé manipulace a jejich reprezentace.

    Tři hlavní typy objektů rozhraní pro přímou manipulaci jsou:

    Datové objekty

    Kontejnerové předměty,

    Objekty zařízení.

    Datové objekty poskytnout uživateli informace (texty, obrázky, tabulky, hudba, videa). V rámci operačního systému takové objekty odpovídají aplikacím, které se spouštějí při otevření objektu.

    Objekty kontejneru mohou manipulovat se svými vnitřními objekty, včetně jiných kontejnerů (kopírovat je nebo třídit v libovolném pořadí). Mezi typické nádoby patří složky a koše. Po otevření kontejneru se zobrazí komponenty, které jsou v něm uloženy, a lze s nimi manipulovat. Komponenty mohou být označeny piktogramy nebo prezentovány ve formě tabulky.

    Objekty zařízení představují zařízení, která existují v reálném světě: telefony, faxy, tiskárny atd. používají se k označení těchto zařízení v abstraktním světě rozhraní. Když takový objekt rozbalíte, uvidíte jeho nastavení.

    Každý objekt odpovídá jednomu oknu. Ve výchozím stavu je toto okno reprezentováno ikonou, ale v případě potřeby jej můžete otevřít a provést požadované operace, například nastavení objektu. Když se otevře okno objektu, může obsahovat nabídky a panely nástrojů. Ikona musí odpovídat kontextové nabídce obsahující seznam operací s objektem.

    Název ikony se pro každý typ objektu tvoří jinak. Ikonám datových objektů jsou přiřazena jména odpovídající názvům uložených dat a datový typ je zakódován samotnou ikonou. Název ikony kontejneru nebo ikony zařízení identifikuje samotný objekt, a je tedy nezávislý na obsahu.

    Rozdíl mezi typy objektů je podmíněný, protože stejný objekt se v různých situacích může chovat jako datový objekt, jako objekt zařízení, jako kontejnerový objekt (tiskárna je objekt zařízení, může mít vlastnosti kontejnerový objekt může obsahovat datové objekty v tisková fronta, zobrazení ve formě ikony, okno tiskové fronty, okno nastavení, je vhodné uvést název zobrazení v nadpisu okna objektu).

    TechnikaTáhnoutaPokles. Základní principy přímé manipulace, jak je popsáno v IBM User Interface Design Guide:

    Výsledek pohybu předmětu musí splňovat očekávání uživatele;

    Uživatelé by neměli neočekávaně ztratit informace;

    Uživatel by měl mít možnost nesprávnou akci vrátit zpět.

    Počáteční zvýraznění – slouží jako zpětná vazba pro uživatele, která ho informuje o zachycení objektu, ve Windows se k tomuto účelu používá zvýraznění;

    Vizualizace pohybu – slouží k identifikaci prováděné akce;

    Výběr cíle – používá se k identifikaci cíle, čímž se ukazuje, kam objekt „spadne“, pokud je v aktuálním okamžiku uvolněn;

    Vizualizace akcí – slouží k indikaci doby čekání na dokončení operace, obvykle se k tomuto účelu používá animace nebo změna tvaru kurzoru na „přesýpací hodiny“.

    Existují dva typy cílů: jeden přijímá objekt a druhý jeho kopii (Uživatel „vyhodí“ dokument do „koše“ – samotný dokument je zničen, a pokud je odeslán do tiskárny, kopie dokumentu je přenesena).

    Navrhování rozhraní pro přímou manipulaci. Návrh se provádí na základě dialogových grafů vyvinutých pro konkrétní software a zahrnuje následující postupy:

    Formace sada doménových objektů, které by měly být prezentovány na obrazovce a v tomto případě se jako základ nepoužívají případy užití, ale koncepční model předmětné oblasti;

    Analýza objektů, definovat je typy A podání a také seznam operací s těmito objekty;

    Vyjasnění objektové interakce a maticová konstrukce přímou manipulaci;

    Definice vizuální reprezentace předměty;

    Rozvoj nabídka okna objektu A kontextové nabídky;

    Stvoření prototyp rozhraní;

    Testování pro Snadnost použití.

    8 Prvky inteligentního uživatelského rozhraní

    Prvky uživatelského rozhraní: Master, Advisor, Agent. Bylo učiněno mnoho pokusů vytvořit socializované uživatelské rozhraní. Základem takového rozhraní je myšlenka vytvoření personalizovaného, ​​tedy „osobitního“ rozhraní. Zábavní programy jako Cats and Dogs, které implementují komplexní chování mazlíčků v různých situacích, ukazují, že technicky jde o zcela řešitelný problém.

    poradci. Jsou formou nápovědy. Lze k nim přistupovat z nabídky nápovědy, příkazového řádku okna nebo z rozbalovací nabídky. Poradci pomáhají uživatelům provádět konkrétní úkoly.

    Mistři. Program průvodce se používá k provádění běžných úloh, které jednotlivý uživatel provádí jen zřídka (instalace programů nebo hardwaru). Provádění takových akcí vyžaduje, aby uživatel činil složitá vzájemně související rozhodnutí, jejichž pořadí je diktováno programem průvodce. Inteligentní průvodci jsou schopni na každém kroku v prohlížecím okně demonstrovat výsledky odpovědí uživatele na předchozí otázky, čímž mu pomáhají orientovat se v situaci.

    Průvodce implementuje sekvenční nebo stromový dialogový scénář. Je vhodné jej používat k řešení dobře strukturovaných, sekvenčních problémů.

    V tomto případě je nutné:

    Poskytnout uživateli možnost vrátit se k předchozímu kroku;

    Zajistit možnost zrušení magisterského díla;

    Kroky očíslujte a informujte uživatele o počtu hlavních kroků, zejména pokud existují více než tři takové kroky;

    Vysvětlete uživateli každý krok;

    Pokud je to možné, předveďte v každém kroku výsledky již dokončených operací.

    Softwaroví agenti. Používá se k provádění běžných prací. Hlavní funkce asistentů jsou: pozorování, vyhledávání, řízení. Existují:

    programy agentů nakonfigurované k provádění specifikovaných úkolů;

    programy agentů, které se mohou učit (zaznamenáváním akcí uživatele (jako magnetofon)).

    ^

    Klasifikace rozhraní


    To znamená, že rozhraní je soubor pravidel. Jako všechna pravidla je lze zobecnit, shromáždit do „kódu“ a seskupit podle společné charakteristiky. Tak jsme se dostali ke konceptu " typ rozhraní“ jako kombinace podobných způsobů interakce mezi lidmi a počítači. Můžeme navrhnout následující schematickou klasifikaci různých komunikačních rozhraní člověk-počítač.

    ^ Moderní typy rozhraní jsou:

    1) Příkazové rozhraní. Rozhraní příkazů se tak nazývá, protože v tomto typu rozhraní člověk dává „příkazy“ počítači a počítač je provádí a dává výsledek osobě. Příkazové rozhraní je implementováno ve formě dávkové technologie a technologie příkazového řádku.

    2) ^ WIMP - rozhraní(Okno - okno, Obrázek - obrázek, Menu - menu, Ukazatel - ukazatel). Charakteristickým rysem tohoto typu rozhraní je, že dialog s uživatelem není veden pomocí příkazů, ale pomocí grafických obrázků - menu, oken a dalších prvků. Přestože jsou příkazy zadávány stroji v tomto rozhraní, děje se tak „nepřímo“, prostřednictvím grafických obrázků. Tento typ rozhraní je implementován na dvou úrovních technologie: jednoduché grafické rozhraní a „čisté“ rozhraní WIMP.

    3) ^ SILK - rozhraní(Řeč - řeč, Obraz - obraz, Jazyk - jazyk, Vědomosti - znalosti). Tento typ rozhraní je nejblíže obvyklé lidské formě komunikace. V rámci tohoto rozhraní probíhá normální „rozhovor“ mezi osobou a počítačem. Počítač zároveň sám pro sebe nalézá příkazy tím, že analyzuje lidskou řeč a nachází v ní klíčové fráze. Převádí také výsledek provádění příkazu do podoby čitelné pro člověka. Tento typ rozhraní je nejnáročnější na hardwarové prostředky počítače, a proto je využíván především pro vojenské účely.

    ^ 1. Veřejné rozhraní - založené na sémantických sítích.

    V následujících kapitolách se dozvíte více o těchto typech rozhraní.
    ^

    Dávková technologie


    Historicky se tento typ technologie objevil jako první. Existovala již na reléových strojích Sues a Zuse (Německo, 1937).

    Myšlenka je jednoduchá : na vstup počítače je dodávána sekvence symbolů, ve které je podle určitých pravidel indikována sekvence programů spuštěných k provedení. Po provedení dalšího programu se spustí další a tak dále. Stroj si podle určitých pravidel sám najde příkazy a data. Touto sekvencí může být např. děrná papírová páska, stoh děrných štítků nebo sekvence mačkání kláves elektrického psacího stroje (typ CONSUL). Zařízení také odesílá své zprávy na děrovač, alfanumerickou tiskovou jednotku (ADP) nebo pásku do psacího stroje.

    S příchodem alfanumerických displejů začala éra skutečně uživatelsky přívětivé technologie – příkazového řádku.
    ^

    Technologie příkazového řádku.


    Pomocí této technologie je klávesnice jediným způsobem, jak zadávat informace od osoby do počítače, a počítač zobrazuje informace osobě pomocí alfanumerického displeje (monitoru). Této kombinaci (monitor + klávesnice) se začalo říkat terminál nebo konzole.

    Příkazy se zadávají na příkazovém řádku. Příkazový řádek je symbol výzvy a blikající obdélník - Když stisknete klávesu, symboly se objeví na místě kurzoru a kurzor se sám přesune doprava. Je to velmi podobné psaní příkazu na psacím stroji. Na rozdíl od něj se však písmena zobrazují na displeji, nikoli na papíře, a špatně napsaný znak lze smazat. Příkaz končí stisknutím klávesy Enter (nebo Return), která se poté přesune na začátek dalšího řádku. Právě z této pozice počítač zobrazuje výsledky své práce na monitoru. Poté se proces opakuje.

    Technologie příkazového řádku již fungovala na monochromatických alfanumerických displejích. Vzhledem k tomu, že bylo možné zadávat pouze písmena, čísla a interpunkční znaménka, technické vlastnosti displeje nebyly podstatné. Jako monitor by se dal použít televizní přijímač a dokonce i elektronka osciloskopu.

    Textové soubory se staly převládajícím typem souborů při práci s příkazovým rozhraním - pouze je bylo možné vytvářet pomocí klávesnice.
    ^

    GUI


    Jak a kdy se objevilo grafické rozhraní?

    Jeho myšlenka vznikla v polovině 70. let, kdy byl ve výzkumném centru Xerox Palo Alto Research Center (PARC) vyvinut koncept vizuálního rozhraní. Předpokladem pro grafické rozhraní bylo zkrácení reakční doby počítače na povel, zvýšení velikosti paměti RAM a také rozvoj technické základny počítačů. Hardwarovým základem konceptu byl samozřejmě vzhled alfanumerických displejů na počítačích a tyto displeje již měly takové efekty, jako je „blikání“ znaků, inverze barev (změna obrysu bílých znaků na černém pozadí na rub, atd.). tedy černé znaky na bílém pozadí ), podtržení znaků. Tyto efekty se nevztahovaly na celou obrazovku, ale pouze na jednu nebo více postav.

    Dalším krokem bylo vytvoření barevného displeje, který by umožňoval zobrazit spolu s těmito efekty znaky v 16 barvách na pozadí s paletou (tedy barevnou sadou) 8 barev. Po nástupu grafických displejů s možností zobrazit libovolné grafické obrázky v podobě mnoha bodů na obrazovce různých barev se fantazii při používání obrazovky meze nekladly! První systém s grafickým rozhraním, 8010 Star Information System skupiny PARC, se tak objevil čtyři měsíce před uvedením prvního počítače IBM v roce 1981. Zpočátku se vizuální rozhraní používalo pouze v programech. Postupně začal přecházet na operační systémy používané nejprve na počítačích Atari a Apple Macintosh a poté na počítačích kompatibilních s IBM.

    Již dříve, a také ovlivněný těmito koncepty, existoval proces sjednocení používání klávesnice a myši aplikačními programy. Spojení těchto dvou trendů vedlo k vytvoření uživatelského rozhraní, se kterým můžete s minimálním časem a penězi vynaloženými na přeškolení personálu pracovat s jakýmkoli softwarovým produktem. Tato část je věnována popisu tohoto rozhraní, společného pro všechny aplikace a operační systémy.

    Grafické uživatelské rozhraní prošlo během svého vývoje dvěma fázemi. Vývoj grafického rozhraní od roku 1974 do současnosti bude diskutován níže.
    ^

    Jednoduché grafické rozhraní.


    V první fázi bylo GUI velmi podobné technologii příkazového řádku. Rozdíly od technologie příkazového řádku byly následující.

    A) Při zobrazování znaků bylo možné některé znaky zvýraznit barvou, inverzním obrázkem, podtržením a blikáním. Díky tomu se zvýšila výraznost obrazu.

    B) V závislosti na konkrétní implementaci grafického rozhraní může být kurzor reprezentován nejen blikajícím obdélníkem, ale také nějakou oblastí pokrývající několik znaků a dokonce i část obrazovky. Tato vybraná oblast se liší od ostatních, nevybraných částí (obvykle barvou).

    C) Stisknutí klávesy Enter ne vždy provede příkaz a přesune se na další řádek. Reakce na stisk libovolné klávesy do značné míry závisí na tom, kde na obrazovce byl kurzor.

    D) Kromě klávesy Enter jsou na klávesnici stále běžnější šedé kurzorové klávesy (viz část klávesnice ve 3. vydání této série.)

    E) Již v této edici grafického rozhraní se začaly používat manipulátory (jako myš, trackball atd. - viz obrázek A.4.) Umožňovaly rychle vybrat požadovanou část obrazovky a přesunout kurzor.

    Rýže. A.4. Manipulátory

    Abychom to shrnuli, můžeme uvést následující charakteristické rysy tohoto rozhraní.

    1) Výběr oblastí obrazovky.

    2) Předefinování kláves klávesnice v závislosti na kontextu.

    3) Použití manipulátorů a šedých kláves na klávesnici k ovládání kurzoru.

    4) Široké použití barevných monitorů.

    Vzhled tohoto typu rozhraní se shoduje s rozšířeným používáním operačního systému MS-DOS. Právě ona představila toto rozhraní masám, díky čemuž se 80. léta nesla ve znamení vylepšování tohoto typu rozhraní, zlepšování vlastností zobrazení znaků a dalších parametrů monitoru.

    Typickým příkladem použití tohoto typu rozhraní je souborový shell Nortron Commander (viz shelly souborů níže) a textový editor Multi-Edit. A textové editory Lexicon, ChiWriter a textový procesor Microsoft Word for Dos jsou příklady toho, jak toto rozhraní překonalo samo sebe.