Vmesniki in tehnologije. Glavne tehnologije za implementacijo vmesnikov so: Batch

  • OOP
  • Prejšnji ponedeljek sem imel srečo, da sem dobil intervju kot starejši .Net razvijalec v mednarodnem podjetju. Med razgovorom so me prosili, naj opravim test, kjer je bilo veliko vprašanj povezanih z .Net. Zlasti pri enem od vprašanj je bilo treba oceniti (drži/ne drži) več trditev, med katerimi je bila tudi naslednja:

    V .Netu vsaka matrika elementov, kot je int, privzeto izvaja IList, kar omogoča uporabo kot zbirko v stavku foreach.

    Hitro nikalni odgovor na to vprašanje in ločeno pisanje ob robu. da foreach ne zahteva implementacije IList, ampak IEnumerable, sem prešel na naslednje vprašanje. Vendar me je na poti domov mučilo vprašanje: ali matrika še vedno izvaja ta vmesnik ali ne?

    Glede IList sem se nejasno spomnil, da mi ta vmesnik daje IEnumerable, indekser in lastnost Count, ki vsebuje število elementov zbirke, pa tudi nekaj redko uporabljenih lastnosti, kot je IsFixedCollection(). Matrika ima lastnost Length za svojo velikost, Count v IEnumerable pa je razširitvena metoda iz LINQ, kar ne bi bilo mogoče, če bi bila metoda implementirana v razredu. Tako se je izkazalo, da matrika ne more implementirati vmesnika IList, vendar me je preganjal nek nejasen občutek. Tako sem se večer po intervjuju odločil, da naredim nekaj raziskav.

    Razred System.Array

    Ker nisem imel nameščenega Reflector.Net, sem samo napisal kratek program v C#, da bi ugotovil, kakšne vmesnike implementira niz celih števil.

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

    Tu je celoten seznam prejetih vmesnikov iz okna konzole:

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

    torej polje v .Netu še vedno izvaja vmesnik IList in njegovo posplošeno različico IList<> .

    Za popolnejše informacije sem zgradil diagram razreda System.Array.

    Moja napaka mi je takoj padla v oči: Count ni bila lastnost IList, ampak ICollection, prejšnjega vmesnika v verigi dedovanja. Vendar matrika sama ni imela več takšne lastnosti, niti številne druge lastnosti vmesnika IList, čeprav sta bili implementirani drugi lastnosti vmesnika, IsFixedSize in IsReadOnly. Kako je to sploh mogoče?

    Vse takoj pade na svoje mesto, ko se spomnite, da lahko v C# implementirate ne samo vmesnike
    implicitno, ampak tudi eksplicitno. Za to možnost sem vedel iz učbenikov, ki so navajali primer takšne izvedbe na primeru. ko osnovni razred že vsebuje metodo z enakim imenom kot metoda vmesnika. To funkcijo sem videl tudi v ReSharperju. Vendar do zdaj še nisem neposredno naletel na potrebo po eksplicitni implementaciji vmesnikov v lastne projekte.

    Primerjava eksplicitne in implicitne implementacije vmesnikov

    Primerjajmo ti dve vrsti implementacij vmesnikov:.
    Merila
    Implicitna izvedba
    Eksplicitna izvedba
    Osnovna sintaksa
    vmesnik ITest ( void DoTest(); ) javni razred ImplicitTest: ITest ( public void DoTest() ( ) )
    vmesnik ITest ( void DoTest(); ) javni razred ExplicitTest: ITest ( void ITest.DoTest() ( ) )
    Vidnost
    Implicitna implementacija je bila vedno javna, zato je do metod in lastnosti mogoče dostopati neposredno.
    var imp = new ImplicitTest(); imp.DoTest();
    Eksplicitna izvedba je vedno zasebna.
    Če želite pridobiti dostop do izvedbe, morate prenesti primerek razreda v vmesnik (upcast to interface).
    var exp = new ExplicitTest(); ((ITest)exp).DoTest();
    Polimorfija
    Implicitna implementacija vmesnika je lahko navidezna, kar omogoča, da se ta implementacija prepiše v razrede potomce.
    Eksplicitna implementacija je vedno statična. Ni ga mogoče preglasiti (preglasiti) ali blokirati (novo) v podrejenih razredih. Opomba 1
    Abstraktni razred in izvedba
    Implicitna izvedba je lahko abstraktna in implementirana samo v razredu potomcu.
    Eksplicitna izvedba ne more biti abstraktna, lahko pa ima sam razred druge abstraktne metode in je sam abstrakten. Opomba 2

    Opombe:
    Opomba 1 - Kot je pravilno navedeno v komentarjih, je mogoče izvedbo preglasiti s ponavljajočo se eksplicitno implementacijo vmesnika v razredu potomcu (glejte prvi komentar k članku).

    Opomba 2 - Eden od blogov navaja, da razred sam po sebi ne more biti abstrakten. Morda je to veljalo za nekatere prejšnje različice prevajalnika; v svojih poskusih sem lahko brez težav implementiral vmesnik eksplicitno v abstraktnem razredu.

    Zakaj potrebujemo eksplicitno implementacijo vmesnikov?

    Eksplicitna implementacija vmesnika je v skladu z MSDN potrebna, kadar ima več vmesnikov, ki jih izvaja razred, metodo z enakim podpisom. Ta problem je v angleško govorečem svetu splošno znan pod srhljivim imenom “deadly diamond of death”, kar se v ruščino prevede kot “problem z diamanti”. Tukaj je primer takšne situacije:

    /* Izpis 1 */ vmesnik IJogger ( void Run(); ) vmesnik ISkier ( void Run(); ) javni razred Športnik: ISkier, IJogger ( javni void Run() ( Console.WriteLine("Ali sem športnik, smučar ali Tekač?"); ))

    Mimogrede, ta primer je pravilna koda v C#, torej se prevaja in izvaja (pravilno), medtem ko je metoda Run() hkrati metoda samega razreda in implementacija kar dveh vmesnikov. Tako imamo lahko eno izvedbo za različne vmesnike in za sam razred. To lahko preverite z naslednjo kodo:

    /* Izpis 2 */ var sp = new Athlete(); sp.Zaženi(); (sp kot ISkier).Run(); (sp kot IJogger).Run();

    Rezultat izvajanja te kode bo "Ali sem športnik, smučar ali tekač?", ki se trikrat natisne na konzolo.

    Tukaj lahko uporabimo eksplicitno implementacijo vmesnika, da ločimo vse tri primere:

    /* Seznam 3 */ javni razred Športnik ( javni virtualni void Run() ( Console.WriteLine("I am a Sportsman"); ) ) javni razred Športnik: Športnik, ISkier, IJogger ( javna preglasitev void Run() ( Konzola. WriteLine("Sem športnik"); ) void ISkier.Run() ( Console.WriteLine("Sem smučar"); ) void IJogger.Run() ( Console.WriteLine("Sem tekač"); ) )

    V tem primeru bomo pri izvajanju kode iz seznama 2 v konzoli videli tri vrstice, "Sem športnik", "Sem smučar" in "Jaz sem tekač".

    Prednosti in slabosti različnih izvedb vmesnikov

    Vidnost izvedbe in selektivna implementacija
    Kot je bilo že prikazano zgoraj, se implicitna izvedba sintaktično ne razlikuje od običajne metode razreda (in če je bila ta metoda že definirana v razredu prednika, potem bo v tej sintaksi metoda skrita v potomcu in koda bo prevedel brez težav opozorilo prevajalnika o skrivanju metode.). Poleg tega je možno selektivno implementirati posamezne metode enega vmesnika, eksplicitno ali implicitno:

    /* Izpis 4 */ javni razred Code ( public void Run() ( Console.WriteLine("I am a class method"); ) ) vmesnik ICommand ( void Run(); void Execute(); ) javni razred CodeCommand: Koda , ICommand ( // implicitna implementacija metode vmesnika // => javna implementacija // implicitno skrivanje metode osnovnega razreda (tukaj opozorilo) public void Run() ( base.Run(); ) // eksplicitna implementacija metode vmesnika // => zasebno implementacija void ICommand.Execute() () )

    To omogoča, da se implementacije posameznih metod vmesnika uporabljajo kot izvorne metode razreda in so dostopne, na primer, prek IntelliSense, v nasprotju z eksplicitno implementacijo metod, ki so zasebne in vidne šele po ulivanju v ustrezen vmesnik.

    Po drugi strani pa vam možnost zasebne implementacije metod omogoča, da skrijete številne metode vmesnika, medtem ko jih v celoti implementirate. Če se vrnemo k našemu prvemu primeru z nizi v .Net, lahko vidite, da niz skriva na primer implementacijo lastnosti Count vmesnika ICollection, ki to lastnost razkriva pod imenom Length (verjetno je to poskus ohranitve združljivosti s C++ STL in Javo). Tako lahko nekatere metode implementiranega vmesnika skrijemo, drugih pa ne skrijemo (= objavimo).

    Težava pa je v tem, da je v mnogih primerih popolnoma nemogoče uganiti, kateri vmesniki so »implicitno« implementirani v razredu, saj v IntelliSense niso vidne niti metode niti lastnosti teh vmesnikov (primer System.Array je tudi tukaj poučno). Edini način za prepoznavanje takšnih implementacij je uporaba refleksije, na primer z uporabo brskalnika predmetov v Visual Studio.

    Preoblikovanje vmesnika
    Ker se implicitna (javna) implementacija vmesnika ne razlikuje od implementacije javne metode razreda, v primeru preoblikovanja vmesnika in odstranitve katere koli javne metode iz njega (na primer pri kombinaciji Run() in Execute () metod iz zgornjega vmesnika ICommand v eno metodo Run( )) bo v vseh implicitnih implementacijah metoda ostala odprtega dostopa, ki bo zelo verjetno moral biti podprt tudi po preoblikovanju, saj ima lahko ta javna metoda že različne odvisnosti v drugih komponente sistema. Posledično bo kršeno načelo programiranja "proti vmesnikom, ne implementacijam", saj bodo odvisnosti že med specifičnimi (in v različnih razredih verjetno različnimi) implementacijami prejšnje metode vmesnika.

    /* Izpis 5 */ vmesnik IFingers ( void Thumb(); void IndexFinger(); // zastarela metoda vmesnika // void MiddleFinger(); ) javni razred HumanPalm: IFingers ( javni void Thumb() () javni void IndexFinger( ) () // tukaj je "viseča" javna metoda public void MiddleFinger() () ) javni razred AnthropoidHand: IFingers ( void IFingers.Thumb() () void IFingers.IndexFinger() () // tukaj napaka prevajalnika void IFingers.MiddleFinger() () )

    V primeru zasebne implementacije vmesnikov bodo vsi razredi z eksplicitno implementacijo metode, ki ne obstaja več, preprosto nehali prevajati, vendar po odstranitvi implementacije, ki je postala nepotrebna (ali jo preoblikujemo v novo metodo), ne bomo imeli »ekstra« javna metoda, ki ni vezana na noben vmesnik. Seveda bo morda treba spremeniti odvisnosti od samega vmesnika, vendar vsaj tukaj ne bo prišlo do kršitve načela "program do vmesnikov, ne implementacij".

    Kar zadeva lastnosti, vam implicitno implementirane lastnosti vmesnika (lastnosti) omogočajo dostop do njih prek metod dostopa (getter in setter) tako zunaj kot neposredno iz samega razreda, kar lahko povzroči nepotrebne učinke (na primer nepotrebno preverjanje veljavnosti podatkov med inicializacijskimi lastnostmi) .

    /* Izpis 6 */ vmesnik IProperty ( int Amount ( get; set; ) ) javni razred ClassWithProperty: IProperty ( // implicitna izvedba, javni javni int Amount ( get; set; ) public ClassWithProperty() ( // notranji poziv public setter Amount = 1000; ) ) public class ClassWithExplicitProperty: IProperty ( // eksplicitna implementacija, private int IProperty.Amount ( get; set; ) public ClassWithExplicitProperty() ( // notranji poziv ni mogoč // napaka prevajalnika tukaj Amount = 1000;)))

    Ko eksplicitno implementirate lastnosti vmesnika, te lastnosti ostanejo zasebne in za dostop morate iti po »dolgi« poti in deklarirati dodatno zasebno polje, prek katerega poteka inicializacija. Posledica tega je čistejša koda, kjer se dostopniki lastnosti uporabljajo samo za zunanji dostop.

    Uporaba eksplicitnega tipkanja lokalnih spremenljivk in polj razreda
    V primeru eksplicitne implementacije vmesnikov moramo eksplicitno označiti, da ne delamo z instanco razreda, temveč z instanco vmesnika. Tako na primer postane nemogoče uporabiti sklepanje tipa in deklarirati lokalne spremenljivke v C# z uporabo storitvene besede var. Namesto tega moramo pri deklaraciji lokalnih spremenljivk, pa tudi v podpisu metode in v poljih razreda uporabiti eksplicitno deklaracijo tipa vmesnika.

    Tako se po eni strani zdi, da naredimo kodo nekoliko manj prilagodljivo (na primer, ReSharper privzeto vedno predlaga uporabo deklaracije z var, če je to mogoče), vendar se izognemo morebitnim težavam, povezanim z vezavo na določeno izvedbo, ko sistem raste in njegovo nosilno kodo. Ta točka se morda mnogim zdi sporna, toda v primeru, ko na projektu dela več ljudi in celo na različnih koncih sveta, je uporaba eksplicitnega tipkanja lahko zelo koristna, saj poveča berljivost kode in zmanjša stroške njegovega vzdrževanja.

    Kot vsaka tehnična naprava tudi računalnik izmenjuje informacije z osebo prek niza določenih pravil, ki so obvezna tako za stroj kot za osebo. Ta pravila se v računalniški literaturi imenujejo vmesnik. Vmesnik je lahko razumljiv ali nerazumljiv, prijazen ali ne. Številni pridevniki se nanašajo nanj. Toda ena stvar je stalna: obstaja in ne morete ji ubežati.

    Vmesnik- to so pravila za interakcijo med operacijskim sistemom in uporabniki ter sosednjimi ravnmi v računalniškem omrežju. Tehnologija komunikacije med človekom in računalnikom je odvisna od vmesnika.

    Vmesnik- To je najprej niz pravil. Kot vsa pravila jih je mogoče posplošiti, zbrati v »kodo« in združiti glede na skupno značilnost. Tako smo prišli do pojma »vrsta vmesnika« kot kombinacije podobnih načinov interakcije med človekom in računalnikom. Predlagamo lahko naslednjo shematično klasifikacijo različnih komunikacijskih vmesnikov človek-računalnik (slika 1.).

    Serijska tehnologija. Zgodovinsko gledano se je tovrstna tehnologija pojavila prva. Obstajal je že na relejnih strojih Suesa in Zuseja (Nemčija, 1937). Njegova ideja je preprosta: na vhod računalnika se vnese zaporedje simbolov, v katerem je v skladu z določenimi pravili označeno zaporedje programov, zagnanih za izvajanje. Po izvedbi naslednjega programa se zažene naslednji in tako naprej. Stroj po določenih pravilih zase najde ukaze in podatke. To zaporedje je lahko na primer luknjan papirni trak, sveženj luknjanih kartic ali zaporedje pritiskanja na tipke električnega pisalnega stroja (tip CONSUL). Stroj svoja sporočila oddaja tudi na luknjač, ​​alfanumerično tiskalno enoto (ADP) ali trak pisalnega stroja.

    Tak stroj je »črna skrinjica« (natančneje »bela omara«), v katero se nenehno dovajajo informacije in ki tudi ves čas »obvešča« svet o svojem stanju. Človek tukaj malo vpliva na delovanje stroja - lahko le začasno ustavi delovanje stroja, spremeni program in znova zažene računalnik. Kasneje, ko so stroji postali zmogljivejši in so lahko služili več uporabnikom hkrati, so uporabniki večno čakali kot: "Poslal sem podatke stroju. Čakam, da se odzove. In ali se bo sploh odzval?" - postalo je, milo rečeno, dolgočasno. Poleg tega so računalniški centri za časopisi postali drugi večji »proizvajalec« starega papirja. Zato se je s pojavom alfanumeričnih zaslonov začela doba zares uporabniku prijazne tehnologije – ukazne vrstice.

    Ukazni vmesnik.

    Ukazni vmesnik se tako imenuje, ker v tej vrsti vmesnika oseba daje "ukaze" računalniku, ta pa jih izvrši in rezultat posreduje osebi. Ukazni vmesnik je implementiran v obliki paketne tehnologije in tehnologije ukazne vrstice.


    Pri tej tehnologiji je tipkovnica edini način za vnos informacij od osebe do računalnika, računalnik pa osebi prikaže informacije z uporabo alfanumeričnega zaslona (monitorja). To kombinacijo (monitor + tipkovnica) so poimenovali terminal ali konzola.

    Ukaze vnašamo v ukazno vrstico. Ukazna vrstica je simbol poziva in utripajoč pravokotnik - kazalec. Ko pritisnete tipko, se na mestu kazalca prikažejo simboli, sam kazalec pa se premakne v desno. Ukaz se konča s pritiskom na tipko Enter (ali Return), ki se nato premakne na začetek naslednje vrstice. Iz tega položaja računalnik prikazuje rezultate svojega dela na monitorju. Nato se postopek ponovi.

    Tehnologija ukazne vrstice je že delovala na enobarvnih alfanumeričnih zaslonih. Ker je bilo mogoče vnašati samo črke, številke in ločila, tehnične lastnosti zaslona niso bile pomembne. Kot monitor bi lahko uporabili televizijski sprejemnik in celo osciloskopsko cev.

    Obe tehnologiji sta implementirani v obliki ukaznega vmesnika - ukazi so dani stroju kot vhod in ta se tako rekoč "odziva" nanje.

    Besedilne datoteke so postale prevladujoča vrsta datotek pri delu z ukaznim vmesnikom - te in samo njih je bilo mogoče ustvariti s tipkovnico. Čas največje uporabe vmesnika ukazne vrstice je bil pojav operacijskega sistema UNIX in pojav prvih osembitnih osebnih računalnikov z večplatformskim operacijskim sistemom CP/M.

    vmesnik WIMP(Window - okno, Image - slika, Menu - meni, Pointer - kazalec). Značilnost te vrste vmesnika je, da se dialog z uporabnikom ne izvaja z uporabo ukazov, temveč z uporabo grafičnih slik - menijev, oken in drugih elementov. Čeprav so ukazi dani stroju v tem vmesniku, se to izvaja "posredno", prek grafičnih slik. Zamisel o grafičnem vmesniku se je začela sredi 70-ih, ko je bil v raziskovalnem centru Xerox Palo Alto (PARC) razvit koncept vizualnega vmesnika. Predpogoj za grafični vmesnik je bilo zmanjšanje odzivnega časa računalnika na ukaz, povečanje količine RAM-a in razvoj tehnične baze računalnikov. Strojna osnova koncepta je seveda bil pojav alfanumeričnih zaslonov na računalnikih, ti zasloni pa so že imeli učinke, kot so "utripanje" znakov, barvna inverzija (sprememba obrisa belih znakov na črnem ozadju v obratno, črni znaki na belem ozadju), podčrtani znaki. Ti učinki se niso razširili na celoten zaslon, ampak samo na enega ali več znakov. Naslednji korak je bil ustvariti barvni zaslon, ki bi poleg teh učinkov omogočal prikaz znakov v 16 barvah na ozadju s paleto (tj. barvnim naborom) 8 barv. Po pojavu grafičnih zaslonov, z možnostjo prikaza poljubnih grafičnih podob v obliki številnih pik na zaslonu različnih barv, domišljiji pri uporabi zaslona ni bilo nobenih meja! Prvi sistem z grafičnim vmesnikom, 8010 Star Information System skupine PARC, se je torej pojavil štiri mesece pred izidom prvega IBM-ovega računalnika leta 1981. Sprva je bil vizualni vmesnik uporabljen le v programih. Postopoma je začel prehajati na operacijske sisteme, ki so se najprej uporabljali na računalnikih Atari in Apple Macintosh, nato pa še na IBM kompatibilnih računalnikih.

    Že od nekdaj in pod vplivom teh konceptov je obstajal proces poenotenja uporabe tipkovnice in miške v aplikacijskih programih. Zlitje teh dveh trendov je pripeljalo do ustvarjanja uporabniškega vmesnika, s katerim lahko z minimalnim časom in denarjem, porabljenim za preusposabljanje osebja, delate s katerim koli programskim izdelkom. Ta del je namenjen opisu tega vmesnika, skupnega vsem aplikacijam in operacijskim sistemom.

    Grafični uporabniški vmesnik je v svojem razvoju šel skozi dve stopnji in je implementiran na dveh tehnoloških nivojih: preprost grafični vmesnik in »čisti« WIMP vmesnik.

    V prvi fazi je bil GUI zelo podoben tehnologiji ukazne vrstice. Razlike od tehnologije ukazne vrstice so bile naslednje:

    Ú Pri prikazu znakov je bilo dovoljeno poudariti nekatere znake z barvo, inverzno sliko, podčrtajem in utripanjem. Zahvaljujoč temu se je povečala izraznost slike.

    Ú Odvisno od specifične izvedbe grafičnega vmesnika se lahko kazalec prikaže ne le kot utripajoč pravokotnik, ampak tudi kot območje, ki pokriva več znakov in celo del zaslona. To izbrano območje se razlikuje od drugih, neizbranih delov (običajno po barvi).

    Ú Če pritisnete tipko Enter, se ukaz ne izvede vedno in se premaknete v naslednjo vrstico. Reakcija na pritisk katere koli tipke je v veliki meri odvisna od tega, kje na zaslonu je bil kazalec.

    Ú Poleg tipke Enter se na tipkovnici vse pogosteje uporabljajo "sive" tipke za upravljanje kazalca (glejte razdelek o tipkovnici v 3. izdaji te serije.)

    Ú Že v tej izdaji grafičnega vmesnika so se začeli uporabljati manipulatorji (kot so miška, sledilna kroglica itd. – glej sliko A.4.) Omogočali so hitro izbiro želenega dela zaslona in premikanje kazalca. .

    Če povzamemo, lahko navedemo naslednje značilnosti tega vmesnika:

    Ú Izbira področij zaslona.

    Ú Ponovno določite tipke na tipkovnici glede na kontekst.

    Ú Uporaba manipulatorjev in sivih tipk na tipkovnici za nadzor kazalca.

    Ú Široka uporaba barvnih monitorjev.

    Pojav te vrste vmesnika sovpada s široko uporabo operacijskega sistema MS-DOS. Ona je bila tista, ki je ta vmesnik predstavila množicam, zaradi česar so 80. leta zaznamovala izboljšava te vrste vmesnika, izboljšanje značilnosti prikaza znakov in drugih parametrov monitorja.

    Tipičen primer uporabe tovrstnega vmesnika sta datotečna lupina Nortron Commander in urejevalnik besedil Multi-Edit. In urejevalniki besedil Lexicon, ChiWriter in urejevalnik besedil Microsoft Word for Dos so primeri, kako je ta vmesnik presegel samega sebe.

    Druga faza v razvoju grafičnega vmesnika je bil »čisti« vmesnik WIMP, za katerega so značilne naslednje lastnosti:

    Ú Vse delo s programi, datotekami in dokumenti poteka v oknih – določeni deli zaslona so obrobljeni z okvirjem.

    Ú Vsi programi, datoteke, dokumenti, naprave in drugi objekti so predstavljeni v obliki ikon. Ko se odprejo, se ikone spremenijo v okna.

    Ú Vsa dejanja s predmeti se izvajajo z uporabo menija. Čeprav se je meni pojavil na prvi stopnji razvoja grafičnega vmesnika, v njem ni imel prevladujoče vloge, temveč je služil le kot dodatek k ukazni vrstici. V čistem vmesniku WIMP postane meni glavni nadzorni element.

    Ú Obsežna uporaba manipulatorjev za kazanje na predmete. Kazalna naprava preneha biti le igrača - dodatek k tipkovnici, ampak postane glavni krmilni element. Z manipulatorjem pokažejo na katero koli področje zaslona, ​​okna ali ikone, ga izberejo in šele nato upravljajo prek menija ali z uporabo drugih tehnologij.

    Opozoriti je treba, da WIMP za svojo izvedbo zahteva barvni rastrski zaslon visoke ločljivosti in kazalno napravo. Poleg tega programi, ki so usmerjeni v to vrsto vmesnika, postavljajo večje zahteve glede zmogljivosti računalnika, njegove pomnilniške zmogljivosti, pasovne širine vodila itd. Vendar je ta vrsta vmesnika najlažja za učenje in intuitivna. Zato je zdaj vmesnik WIMP postal de facto standard.

    Osupljiv primer programov z grafičnim vmesnikom je operacijski sistem Microsoft Windows.

    SVILA- vmesnik (Govor - govor, Slika - slika, Jezik - jezik, Znanje - znanje). Ta vrsta vmesnika je najbližja običajni, človeški obliki komunikacije. V okviru tega vmesnika poteka običajen "pogovor" med osebo in računalnikom. Hkrati pa računalnik sam poišče ukaze tako, da analizira človeški govor in v njem poišče ključne fraze. Prav tako pretvori rezultat izvajanja ukaza v človeku berljivo obliko. Ta vrsta vmesnika je najbolj zahtevna glede sredstev računalniške strojne opreme, zato se uporablja predvsem v vojaške namene.

    Od sredine 90-ih, po pojavu poceni zvočnih kartic in široki uporabi tehnologij za prepoznavanje govora, se je pojavil tako imenovani vmesnik SILK za "govorno tehnologijo". S to tehnologijo se ukazi dajejo z glasom z izgovarjanjem posebnih rezerviranih besed – ukazov.

    Besede je treba izgovarjati jasno, v istem tempu. Med besedami je potreben premor. Zaradi nerazvitosti algoritma za prepoznavanje govora taki sistemi zahtevajo individualno predhodno nastavitev za vsakega posameznega uporabnika.

    Tehnologija »Speech« je najenostavnejša izvedba vmesnika SILK.

    Biometrična tehnologija (»Mimic vmesnik.«)

    Ta tehnologija se je pojavila v poznih 90. letih 20. stoletja in se v času pisanja še vedno razvija. Za nadzor računalnika se uporablja obrazna mimika osebe, smer njegovega pogleda, velikost zenice in drugi znaki. Za identifikacijo uporabnika se uporablja vzorec šarenice njegovih oči, prstni odtisi in druge edinstvene informacije. Slike se preberejo iz digitalne video kamere, nato pa se iz te slike s pomočjo posebnih programov za prepoznavanje vzorcev izvlečejo ukazi. Ta tehnologija bo verjetno našla svoje mesto v programskih izdelkih in aplikacijah, kjer je pomembna natančna identifikacija uporabnika računalnika.

    Vrste vmesnikov

    Vmesnik je najprej skupek pravil. Kot vsa pravila jih je mogoče posplošiti, zbrati v »kodo« in združiti glede na skupno značilnost. Tako smo prišli do pojma »vrsta vmesnika« kot kombinacije podobnih načinov interakcije med človekom in računalnikom. Na kratko lahko predlagamo naslednjo shematično klasifikacijo različnih komunikacijskih vmesnikov človek-računalnik.

    Sodobne vrste vmesnikov so:

    1) Ukazni vmesnik. Ukazni vmesnik se tako imenuje, ker v tej vrsti vmesnika oseba daje "ukaze" računalniku, ta pa jih izvrši in rezultat posreduje osebi. Ukazni vmesnik je implementiran v obliki paketne tehnologije in tehnologije ukazne vrstice.

    2) WIMP - vmesnik (Window - okno, Image - slika, Menu - meni, Pointer - kazalec). Značilnost te vrste vmesnika je, da se dialog z uporabnikom ne izvaja z uporabo ukazov, temveč z uporabo grafičnih slik - menijev, oken in drugih elementov. Čeprav so ukazi dani stroju v tem vmesniku, se to izvaja "posredno", prek grafičnih slik. Ta vrsta vmesnika je implementirana na dveh tehnoloških ravneh: preprost grafični vmesnik in "čisti" vmesnik WIMP.

    3) SILK - vmesnik (Speech - govor, Image - slika, Language - jezik, Knowlege - znanje). Ta vrsta vmesnika je najbližja običajni, človeški obliki komunikacije. V okviru tega vmesnika poteka običajen "pogovor" med osebo in računalnikom. Hkrati pa računalnik sam poišče ukaze tako, da analizira človeški govor in v njem poišče ključne fraze. Prav tako pretvori rezultat izvajanja ukaza v človeku berljivo obliko. Ta vrsta vmesnika je najbolj zahtevna glede sredstev računalniške strojne opreme, zato se uporablja predvsem v vojaške namene.

    Ukazni vmesnik

    Serijska tehnologija. Zgodovinsko gledano se je tovrstna tehnologija pojavila prva. Obstajal je že na relejnih strojih Suesa in Zuseja (Nemčija, 1937). Njegova ideja je preprosta: na vhod računalnika se vnese zaporedje simbolov, v katerem je v skladu z določenimi pravili označeno zaporedje programov, zagnanih za izvajanje. Po izvedbi naslednjega programa se zažene naslednji in tako naprej. Stroj po določenih pravilih zase najde ukaze in podatke. To zaporedje je lahko na primer luknjan papirni trak, sveženj luknjanih kartic ali zaporedje pritiskanja na tipke električnega pisalnega stroja (tip CONSUL). Stroj svoja sporočila oddaja tudi na luknjač, ​​alfanumerično tiskalno enoto (ADP) ali trak pisalnega stroja. Tak stroj je »črna skrinjica« (natančneje »bela omara«), v katero se nenehno dovajajo informacije in ki tudi ves čas »obvešča« svet o svojem stanju (glej sliko 1). Človek ima tu malo vpliva. na delovanje stroja - stroj lahko le začasno ustavi, spremeni program in znova zažene računalnik. Kasneje, ko so stroji postali zmogljivejši in so lahko služili več uporabnikom hkrati, je postalo večno čakanje uporabnikov, kot je: "Poslal sem podatke stroju. Čakam, da se odzove. In ali se bo sploh odzval?" , milo rečeno, dolgočasno. Poleg tega so računalniški centri za časopisi postali drugi večji »proizvajalec« starega papirja. Zato se je s pojavom alfanumeričnih zaslonov začela doba zares uporabniku prijazne tehnologije – ukazne vrstice.

    Slika 2. Pogled na glavni računalnik serije EC

    Tehnologija ukazne vrstice. Pri tej tehnologiji je tipkovnica edini način za vnos informacij od osebe do računalnika, računalnik pa osebi prikaže informacije z uporabo alfanumeričnega zaslona (monitorja). To kombinacijo (monitor + tipkovnica) so poimenovali terminal ali konzola. Ukaze vnašamo v ukazno vrstico. Ukazna vrstica je simbol poziva in utripajoč pravokotnik - kazalec. Ko pritisnete tipko, se na mestu kazalca prikažejo simboli, sam kazalec pa se premakne v desno. To je zelo podobno tipkanju ukaza na pisalnem stroju. Toda za razliko od njega so črke prikazane na zaslonu, ne na papirju, nepravilno vtipkan znak pa je mogoče izbrisati. Ukaz se konča s pritiskom na tipko Enter (ali Return), ki se pomakne na začetek naslednje vrstice. Iz tega položaja računalnik prikazuje rezultate svojega dela na monitorju. Nato se postopek ponovi. Tehnologija ukazne vrstice je že delovala na enobarvnih alfanumeričnih zaslonih. Ker je bilo mogoče vnašati samo črke, številke in ločila, tehnične lastnosti zaslona niso bile pomembne. Kot monitor bi lahko uporabili televizijski sprejemnik in celo osciloskopsko cev.

    Obe tehnologiji sta implementirani v obliki ukaznega vmesnika - ukazi so dani stroju kot vhod in ta se tako rekoč "odziva" nanje.

    Besedilne datoteke so postale prevladujoča vrsta datotek pri delu z ukaznim vmesnikom - te in samo njih je bilo mogoče ustvariti s tipkovnico. Čas največje uporabe vmesnika ukazne vrstice je bil pojav operacijskega sistema UNIX in pojav prvih osembitnih osebnih računalnikov z večplatformskim operacijskim sistemom CP/M.

    GUI

    Kako in kdaj se je pojavil grafični vmesnik? Njegova ideja je nastala sredi 70. let prejšnjega stoletja, ko so v raziskovalnem centru Xerox Palo Alto (PARC) razvili koncept vizualnega vmesnika. Predpogoj za grafični vmesnik je bilo zmanjšanje odzivnega časa računalnika na ukaz, povečanje količine RAM-a in razvoj tehnične baze računalnikov. Strojna osnova koncepta je seveda bil pojav alfanumeričnih zaslonov na računalnikih, ti zasloni pa so že imeli učinke, kot so "utripanje" znakov, barvna inverzija (sprememba obrisa belih znakov na črnem ozadju v obratno, črni znaki na belem ozadju), podčrtani znaki. Ti učinki se niso razširili na celoten zaslon, ampak samo na enega ali več znakov. Naslednji korak je bil ustvariti barvni zaslon, ki bi poleg teh učinkov omogočal prikaz znakov v 16 barvah na ozadju s paleto (tj. barvnim naborom) 8 barv. Po pojavu grafičnih zaslonov, z možnostjo prikaza poljubnih grafičnih podob v obliki številnih pik na zaslonu različnih barv, domišljiji pri uporabi zaslona ni bilo nobenih meja! Prvi sistem z grafičnim vmesnikom, 8010 Star Information System skupine PARC, se je torej pojavil štiri mesece pred izidom prvega IBM-ovega računalnika leta 1981. Sprva je bil vizualni vmesnik uporabljen le v programih. Postopoma je začel prehajati na operacijske sisteme, ki so se najprej uporabljali na računalnikih Atari in Apple Macintosh, nato pa še na IBM-kompatibilnih računalnikih.

    Že od nekdaj in pod vplivom teh konceptov je obstajal proces poenotenja uporabe tipkovnice in miške v aplikacijskih programih. Zlitje teh dveh trendov je pripeljalo do ustvarjanja uporabniškega vmesnika, s katerim lahko z minimalnim časom in denarjem, porabljenim za preusposabljanje osebja, delate s katerim koli programskim izdelkom. Ta del je namenjen opisu tega vmesnika, skupnega vsem aplikacijam in operacijskim sistemom.

    Preprost GUI

    V prvi fazi je bil GUI zelo podoben tehnologiji ukazne vrstice. Razlike od tehnologije ukazne vrstice so bile naslednje:

    1. Pri prikazovanju znakov je bilo dovoljeno poudariti nekatere znake z barvo, inverzno sliko, podčrtajem in utripanjem. Zahvaljujoč temu se je povečala izraznost slike.

    2. Odvisno od specifične izvedbe grafičnega vmesnika se lahko kazalec prikaže ne le kot utripajoč pravokotnik, temveč tudi kot območje, ki pokriva več znakov in celo del zaslona. To izbrano območje se razlikuje od drugih, neizbranih delov (običajno po barvi).

    3. Če pritisnete tipko Enter, se ukaz ne izvede vedno in se premaknete v naslednjo vrstico. Reakcija na pritisk katere koli tipke je v veliki meri odvisna od tega, kje na zaslonu je bil kazalec.

    4. Poleg tipke Enter se na tipkovnici vedno pogosteje uporabljajo "sive" tipke za upravljanje kazalcev.

    5. Že v tej izdaji grafičnega vmesnika so se začeli uporabljati manipulatorji (kot so miška, sledilna kroglica itd. - glej sliko 3), ki so omogočali hitro izbiro želenega dela zaslona in premikanje kazalca. .

    Slika 3. Manipulatorji

    Če povzamemo, lahko navedemo naslednje značilnosti tega vmesnika.

    1) Izbira področij zaslona.

    2) Redefiniranje tipk na tipkovnici glede na kontekst.

    3) Uporaba manipulatorjev in sivih tipk na tipkovnici za nadzor kazalca.

    4) Široka uporaba barvnih monitorjev.

    Pojav te vrste vmesnika sovpada s široko uporabo operacijskega sistema MS-DOS. Ona je bila tista, ki je ta vmesnik predstavila množicam, zaradi česar so 80. leta zaznamovala izboljšava te vrste vmesnika, izboljšanje značilnosti prikaza znakov in drugih parametrov monitorja.

    Tipičen primer uporabe te vrste vmesnika je lupina datotek Nortron Commander (glejte lupine datotek spodaj) in urejevalnik besedila Multi-Edit. In urejevalniki besedil Lexicon, ChiWriter in urejevalnik besedil Microsoft Word for Dos so primeri, kako je ta vmesnik presegel samega sebe.

    vmesnik WIMP

    Druga stopnja v razvoju grafičnega vmesnika je bil »čisti« vmesnik WIMP, za katerega so značilne naslednje lastnosti.

    1. Vse delo s programi, datotekami in dokumenti poteka v oknih - določeni deli zaslona so obrobljeni z okvirjem.

    2. Vsi programi, datoteke, dokumenti, naprave in drugi objekti so predstavljeni v obliki ikon. Ko se odprejo, se ikone spremenijo v okna.

    3. Vsa dejanja s predmeti se izvajajo z uporabo menija. Čeprav se je meni pojavil na prvi stopnji razvoja grafičnega vmesnika, v njem ni imel prevladujoče vloge, temveč je služil le kot dodatek k ukazni vrstici. V čistem vmesniku WIMP postane meni glavni nadzorni element.

    4. Obsežna uporaba manipulativov za kazanje na predmete. Kazalna naprava preneha biti le igrača - dodatek k tipkovnici, ampak postane glavni krmilni element. Z manipulatorjem POKAŽEJO na poljubno področje zaslona, ​​okna ali ikone, ga IZBERE in šele nato upravljajo prek menija ali z uporabo drugih tehnologij.

    Opozoriti je treba, da WIMP za svojo izvedbo zahteva barvni rastrski zaslon visoke ločljivosti in kazalno napravo. Poleg tega programi, ki so usmerjeni v to vrsto vmesnika, postavljajo večje zahteve glede zmogljivosti računalnika, njegove pomnilniške zmogljivosti, pasovne širine vodila itd. Vendar je ta vrsta vmesnika najlažja za učenje in intuitivna. Zato je zdaj vmesnik WIMP postal de facto standard.

    Osupljiv primer programov z grafičnim vmesnikom je operacijski sistem Microsoft Windows.

    Govorna tehnologija

    Od sredine 90-ih, po pojavu poceni zvočnih kartic in široki uporabi tehnologij za prepoznavanje govora, se je pojavil tako imenovani vmesnik SILK za "govorno tehnologijo". S to tehnologijo se ukazi dajejo z glasom z izgovarjanjem posebnih rezerviranih besed – ukazov. Glavne takšne ekipe (po pravilih sistema Gorynych) so:

    "Sprosti se" - izklopi govorni vmesnik.

    "Odpri" - preklopi v način klicanja določenega programa. Ime programa se prikliče v naslednji besedi.

    »Narekoval bom« - preklopi iz ukaznega načina v način glasovnega tipkanja.

    "Ukazni način" - vrnitev v način glasovnega ukaza.

    In nekateri drugi.

    Besede je treba izgovarjati jasno, v istem tempu. Med besedami je potreben premor. Zaradi nerazvitosti algoritma za prepoznavanje govora taki sistemi zahtevajo individualno predhodno nastavitev za vsakega posameznega uporabnika.

    Tehnologija »Speech« je najenostavnejša izvedba vmesnika SILK.

    1. Informacije sistemi v ekonomiji (30)

      Povzetek >> Ekonomija

      ... informacije 6 1.3. Razvrstitev informacije tehnologije 9 1.5. Faze razvoja informacije sistemi... celota strojna oprema sredstva... informativni tehnologije. Primer takega merila bi bil po meri vmesnik ... 3.5. Programska oprema objekti...

    2. Informacije tehnologije v managementu (5)

      Povzetek >> Država in pravo

      11 2.1 Programska oprema določba 15... informacije tehnologije. Koncept " informativni tehnologijo« lahko definiramo kot niz programske opreme, strojna oprema sredstva in sistemi... ustvarjanje in podpora po meri vmesniki za različne kategorije...

    3. Informacije krmilne tehnologije (10)

      Predavanje >> Računalništvo

      Vrsta po meri vmesnik avtomatizirano informativni tehnologije se delijo ... pisarne organizirajo specializirane programsko-strojna oprema kompleks – ... sistem videokonference, e-pošta itd.); proti globalizaciji informacije tehnologija...

    PREDAVANJE 23-24

    Tema 3.2 Razvoj uporabniških vmesnikov

    1. Vrste uporabniških vmesnikov in stopnje njihovega razvoja.

    2. Psihofizične lastnosti osebe, povezane z zaznavanjem, pomnjenjem in procesiranjem informacij.

    3. Modeli uporabniškega in programskega vmesnika.

    4. Razvrstitve dialogov in splošna načela njihovega razvoja.

    5. Osnovne komponente grafičnih uporabniških vmesnikov.

    6. Implementacija pogovornih oken v grafičnem uporabniškem vmesniku.

    7. Uporabniški vmesniki neposredne manipulacije in njihova zasnova.

    8. Inteligentni elementi uporabniških vmesnikov.

    V zgodnjih fazah razvoja računalniške tehnologije je bil uporabniški vmesnik obravnavan kot sredstvo komunikacije med človekom in operacijskim sistemom in je bil precej primitiven.

    S pojavom interaktivne programske opreme so se začeli uporabljati posebni uporabniški vmesniki. Trenutno je glavna težava razvoj interaktivnih vmesnikov za kompleksne programske izdelke, namenjene uporabi neprofesionalnih uporabnikov.

    1. Vrste uporabniških vmesnikov in stopnje njihovega razvoja

    Uporabniški vmesnik– nabor programske in strojne opreme, ki zagotavlja interakcijo uporabnika z računalnikom. Osnova interakcije– dialogi.

    Dialog– regulirana izmenjava informacij med osebo in računalnikom, ki se izvaja v realnem času in je namenjena skupnemu reševanju določenega problema: izmenjava informacij in usklajevanje dejanj. Vsak pogovor je sestavljen iz ločenih vhodno/izhodnih procesov, ki fizično zagotavljajo komunikacijo med uporabnikom in računalnikom.

    Izmenjava informacij se izvaja s prenosom sporočil in krmilnih signalov.

    Sporočilo– podatek, ki sodeluje v dialogu.

    Vrste sporočil:

    Vhodna sporočila, ki jih generira oseba z vnosnimi sredstvi: tipkovnico, manipulatorji (miška ipd.);

    Izhodna sporočila, ki jih ustvari računalnik v obliki besedil, zvokov in/ali slik in se uporabniku prikažejo na zaslonu monitorja ali drugih napravah za izhod informacij.

    Uporabnik ustvari sporočila, kot so:

    Prošnja za informacije,

    Prošnja za pomoč,

    Zahtevajte operacijo ali funkcijo,

    Vnos ali spreminjanje podatkov

    Izbira okvirnega polja.

    V odgovor prejme:

    Namigi ali pomoč,

    Besedna oblika– del besedila med dvema sosednjima presledkoma ali ločili.

    Morfološka analiza - obdelava besednih oblik brez povezave s kontekstom.

    Proceduralno – vključuje prepoznavanje debla v trenutni besedni obliki, ki se nato identificira.

    Po prepoznavanju besednih oblik se izvede sintaktična analiza sporočila, na podlagi rezultatov katere se določi njegova skladenjska zgradba, to je, da se stavek razčleni.

    Vmesnik, ki izvaja frazno obliko dialoga, mora: pretvoriti sporočila iz naravne jezikovne oblike v interno predstavno obliko in nazaj, izvesti analizo in sintezo uporabniških in sistemskih sporočil, slediti in si zapomniti zaključen del dialoga.

    Napake frazna oblika:

    Visoki stroški virov;

    Brez jamstva za nedvoumno razlago besedila;

    Potreba po vnašanju dolgih, slovnično pravilnih fraz.

    Dostojanstvo frazna oblika – prosta komunikacija s sistemom.

    Obrazec direktive - uporaba ukazov (direktiv) posebej oblikovan formalni jezik.

    Ekipa– stavek v tem jeziku, ki opisuje kombinirane podatke, ki vključujejo identifikator procesa, ki se sproži, in neobvezno podatke zanj.

    Ukaz lahko vnesete:

    Kot vrstica besedila v posebej oblikovani obliki (ukazi MS DOS v ukazni vrstici);

    S pritiskom na določeno kombinacijo tipk (kombinacije "hitrega dostopa" za aplikacije Windows);

    Z manipulacijo miške (»vlečenje« ikon);

    Kombinacija druge in tretje metode.

    Prednosti obrazec direktive:

    Majhna količina vhodnih informacij;

    Prilagodljivost – možnost izbire operacije je omejena z naborom veljavnih ukazov;

    Osredotočite se na dialog, ki ga vodi uporabnik;

    Uporaba minimalne površine zaslona ali je sploh ne uporabljate;

    Možnost kombinacije z drugimi oblikami.

    Napake obrazec direktive:

    Navidezna odsotnost pozivov na zaslonu, kar zahteva pomnjenje vnesenih ukazov in njihove sintakse;

    Skoraj popolna odsotnost povratnih informacij o stanju začetih procesov;

    Potreba po veščinah vnašanja besedilnih informacij ali upravljanja z miško;

    Pomanjkanje prilagajanja uporabnika.

    Obrazec direktive je primeren za profesionalnega uporabnika, ki si običajno hitro zapomni sintakso pogosto uporabljenih ukazov ali kombinacij tipk. Prednosti oblike (fleksibilnost in dobre začasne lastnosti) so v tem primeru še posebej izrazite.

    Tabelarna oblika – uporabnik izbere odgovor izmed tistih, ki jih predlaga program. Dialoški jezik ima najpreprostejšo sintakso in nedvoumno semantiko, ki jo je zelo enostavno implementirati. Obrazec je uporabniku prijazen, saj je izbira vedno lažja, kar je za neprofesionalnega uporabnika nujno. Ta obrazec se lahko uporabi, če je nabor možnih odgovorov na določeno vprašanje končen. Če je število možnih odgovorov veliko (več kot 20), potem uporaba tabelarnega obrazca morda ni primerna.

    Prednosti in v obliki tabele:

    Razpoložljivost namiga;

    Zmanjšanje števila napak pri vnosu: uporabnik ne vnaša informacij, ampak pokaže nanje;

    Zmanjšan čas usposabljanja uporabnikov;

    Možnost kombiniranja z drugimi oblikami;

    V nekaterih primerih nastavljiv uporabnik.

    Napake tabelarična oblika:

    Zahtevane veščine navigacije po zaslonu;

    Uporaba relativno velike površine zaslona za prikaz vizualnih komponent;

    Intenzivna uporaba računalniških virov, povezana s potrebo po nenehnem posodabljanju informacij na zaslonu.

    Vrste in oblike dialoga so izbrane neodvisno drug od drugega: katera koli oblika je uporabna za obe vrsti dialogov.

    Sinhrono- dialogi, ki se pojavijo med običajnim delovanjem programske opreme.

    Asinhrono– dialogi, ki nastanejo na pobudo sistema ali uporabnika, ko je kršen običajni procesni scenarij. Uporabljajo se za izdajanje nujnih sporočil sistema ali uporabnika.

    Razvoj dialogov. Faze oblikovanja in izvedbe dialogov:

    Opredelitev nabora zahtevanih dialogov, njihovih glavnih sporočil in možnih scenarijev – oblikovanje abstraktni dialogi;

    Določitev vrste in oblike vsakega dialoga ter sintakse in semantike uporabljenih jezikov - oblikovanje specifični dialogi;

    Izbira primarnih in sekundarnih naprav ter oblikovanje vhodno/izhodnih procesov za vsak dialog, kot tudi razjasnitev prenesenih sporočil - oblikovanje tehnični dialogi.

    Osnova abstraktnih dialogov je ideologija tehnološkega procesa, za katerega je programski izdelek namenjen avtomatizaciji.

    Poleg skript, ki jih uporabljajo diagrami stanja vmesnika oz dialoški grafi.

    Dialoški graf– usmerjen utežen graf, katerega vsako vozlišče je povezano z določeno sliko na zaslonu ( okvir) ali določeno stanje dialoga, za katerega je značilen niz dejanj, ki so na voljo uporabniku. Loki, ki izvirajo iz oglišč, prikazujejo morebitne spremembe stanja, ko uporabnik izvede določena dejanja. Loki, ki izvirajo iz oglišč, prikazujejo morebitne spremembe stanja, ko uporabnik izvede določena dejanja. Uteži lokov označujejo pogoje prehodov iz stanja v stanje in operacije, izvedene med prehodom.

    Vsaka pot v grafu ustreza možni možnosti dialoga.


    Slika 3 – Grafi abstraktnega dialoga:

    a – dialog, ki ga nadzoruje sistem; b – dialog, ki ga nadzira uporabnik

    5. Osnovne komponente grafičnih uporabniških vmesnikov

    Grafične uporabniške vmesnike podpirajo operacijski sistemi Windows, Apple Macintosh, OS/2 itd. Za takšne vmesnike so za vsak operacijski sistem razviti nabori standardnih komponent za interakcijo uporabnika.

    Vmesniki so zgrajeni s tehnologijo WIMP: W – Windows (okna), I – Icons (ikone), M – Mouse (miška), P – Pop-up (pojavni ali spustni meniji). Glavni elementi grafičnih vmesnikov: okna, ikone, vhodno/izhodne komponente in miška, ki se uporablja kot kazalna naprava in naprava za neposredno manipulacijo objektov na zaslonu.

    Okno.okno - pravokotno, obrobljeno območje fizičnega zaslona. Okno lahko spremeni velikost in lokacijo na zaslonu.

    Glavna okna (okna aplikacij);

    Otroška ali podrejena okna;

    Pogovorna okna;

    Informacijska okna;

    Menijska okna.

    Okno aplikacije Windows vsebuje: okvir, ki omejuje delovno področje okna, naslovno vrstico z gumbom sistemskega menija in gumbi za pogled in izhod okna, menijsko vrstico, meni z ikonami (orodno vrstico), vodoravni in navpični drsni trak ter statusno vrstico.

    Otroško okno Windows se uporablja v večdokumentnih programskih vmesnikih (MDI). To okno ne vsebuje menija. V naslovni vrstici je posebno ime, ki identificira dokument ali datoteko, povezano z njim. Ikone vseh podrejenih oken so enake.

    Pogovorno okno Windows se uporablja za ogled in nastavitev različnih načinov delovanja, zahtevanih parametrov ali drugih informacij.

    Naslovna vrstica z gumbom sistemskega menija;

    Komponente, ki uporabniku omogočajo vnos ali izbiro odgovora;

    Pomožne komponente, ki nudijo namig (okence za ogled ali gumb za pomoč).

    Velikosti okna ni mogoče spreminjati, lahko pa ga premikate po zaslonu.

    Informacijska okna dve vrsti:

    okna za sporočila;

    Okna pomoči.

    Okna s sporočili vsebujejo: naslov z gumbom sistemskega menija, besedilo sporočila, enega ali več odzivnih gumbov uporabnika (Da, Ne, Prekliči).

    Okno pomoči vsebuje: meni, drsne trakove, informacijsko področje, podobno oknu aplikacije, vendar ima visoko specializiran namen.

    Menijska okna Windows se uporablja kot odpiranje plošč hierarhičnih menijev ali kot kontekstni meniji.

    Vsaka vrstica okna menija lahko ustreza:

    ekipa;

    Meni naslednje stopnje, ki ga prikaže puščica;

    Pogovorno okno, ki je označeno s tremi pikami.

    Dodan prikaz tipk za bližnjice.

    Piktogrami. Ikona je majhno okno z grafično sliko, ki odraža vsebino medpomnilnika, s katerim je povezana.

    Vrste piktogramov:

    Programska oprema, povezana z ustreznim programom;

    Ikone podrejenih oken, ki omogočajo dostop do različnih dokumentov;

    Ikone orodne vrstice podvajajo dostop do ustreznih funkcij prek menija, kar omogoča hiter dostop;

    Ikone predmetov za neposredno manipulacijo predmetov.

    Neposredna manipulacija slike. Neposredna manipulacija slike – to je zmožnost zamenjave ukaza za vplivanje na objekt s fizičnim dejanjem v vmesniku, izvedenim z miško. V tem primeru se katero koli področje zaslona obravnava kot cilj, ki ga lahko aktivirate s premikanjem kazalca in pritiskom na gumb miške.

    Glede na reakcijo na vpliv ločimo vrste prejemnikov:

    Indikacija in izbira (razširitev ikon, določitev aktivnega okna);

    Gumbi na zaslonu in "drsne" ovire (izvajanje ciklično ponavljajočih se dejanj (izvajanje določenih operacij ali risanje, implicirano pri aktiviranju določenega območja zaslona - gumb)).

    Dinamični vizualni signal - spreminjanje slike na zaslonu (kurzor miške pri izvajanju določenih operacij, spreminjanje slike gumba).

    I/O komponente. Vmesniki vključujejo več menijev: glavni ali "spustni" hierarhični meni, slikovne menije (orodne vrstice) in kontekstne menije za različne situacije. Vsak od navedenih menijev je vhodno-izhodna komponenta, ki izvaja dialog z uporabnikom v obliki tabele.

    Hierarhični meni se uporablja za organizacijo operacij, ki jih izvaja programska oprema, če njihovo število presega število, ki jih priporoča IBM), in uporabniku omogoča pregled nad njimi. Orodne vrstice in kontekstni meniji se uporabljajo za hiter dostop do pogosto uporabljenih ukazov, kar uporabniku omogoča razmeroma svobodno navigacijo.

    Druge oblike V/I:

    besedna zveza,

    Tabelarno,

    Mešano.

    6. Implementacija pogovornih oken v grafičnem uporabniškem vmesniku

    Dialogi obeh vrst:

    Uporabniški nadzor

    Sistem nadzorovan.

    Implementacija pogovornih oken, ki jih nadzoruje uporabnik. Za izvedbo se uporabljajo različne vrste menijev:

    glavno,

    orodne vrstice,

    Kontekstualno in na podlagi gumbov.

    Kot alternativo meniju je priporočljivo uporabiti direktivno obliko dialoga, pri čemer glavnim ukazom dodelite določene kombinacije tipk. Priporočljivo je zagotoviti možnost upravljanja menija s tipkovnico, če uporabnik večino časa dela s sistemom vnaša besedilo ali podatke, tj. komunicira s tipkovnico.

    meni. Meni je zasnovan na podlagi pogovornih grafov programske opreme, ki se razvija. Če število operacij ne presega 5, se običajno uporabljajo gumbi. Če število operacij ni večje od 9-10, potem je meni enonivojski. Če je število operacij več kot 10, se uporabi "spustni" dvonivojski hierarhični meni.

    Spustni meni. Prva raven hierarhičnega menija naj vsebuje imena glavnih skupin operacij.

    Tradicionalno (običajno v besedilnih in grafičnih urejevalnikih):

    1. predmet Datoteka,

    2. postavka Uredi,

    3. predmet Pogled,

    Zadnji element je Pomoč.

    Število ravni hierarhičnega menija ne sme presegati 2-3 (težko za iskanje). Število operacij v oknu ne sme presegati 7-8 operacij.

    Če število operacij preseže 70-80. Predlagani razvijalci programa Microsoft Word prilagodljivo hierarhični meni, kjer se vsebina drugonivojskega menijskega okna nenehno spreminja in prikazuje le tiste operacije, ki jih uporablja uporabnik. Če uporabnik ne najde želene operacije, potem po nekaj sekundah ali ob pritisku na poseben gumb Word prikaže celotno okno menija.

    7 Uporabniški vmesniki za neposredno manipulacijo in njihova zasnova

    Zmožnost neposredne manipulacije, ki jo zagotavljajo vmesniki WIMP, omogoča razvoj objektno usmerjenih vmesnikov za neposredno manipulacijo za aplikacije.

    Vmesniki uporabljajo direktivno obliko dialoga: ukaz se vnese, ko se z ikono predmeta z miško izvedejo določena dejanja. Glavni elementi teh vmesnikov so: metafore, objekti, predstavitve objektov in tehnologije povleci in spusti.

    Metafore. Metafore- miselni prenos lastnosti ali značilnosti enega predmeta na drugega, ki je nekoliko podoben prvemu. Uporaba metafor v vmesnikih vključuje aktiviranje uporabnikove obstoječe izkušnje.

    Vmesnik za neposredno manipulacijo naj bi uporabniku zagotavljal okolje, ki vsebuje znane elemente, s katerimi se je uporabnik že večkrat srečal v poklicnih dejavnostih ali vsakdanjem življenju, in mu omogočal manipuliranje s posameznimi objekti. (Metafora "Odmetavanje smeti" - za brisanje datotek).

    Podobni elementi se morajo obnašati na podoben način, elementi, označeni z isto barvo, morajo biti med seboj v določenem razmerju.

    Priporočljivo je, da slike niso preveč realistične, da ne zavedejo uporabnikovih pričakovanj.

    Metafore in animacija. Pri uveljavljanju metafor vse večjo vlogo dobiva multimedija, predvsem animacija. Z animacijo ne morete samo zabavati uporabnika, temveč ga tudi "pripraviti" na spremembo okvirjev, kar skrajša čas, potreben za prilagajanje spremenjeni situaciji.

    https://pandia.ru/text/78/247/images/image005_68.gif">Program, ki implementira animirane vmesnike, nikoli ne miruje, saj med čakanjem, da uporabnik vnese ukaz, še naprej prikazuje ustrezne okvirje. Takšni programi temeljijo na časovno programiranje. Za razliko od programiranja dogodkov, ki vam omogoča, da sliko na zaslonu povežete z zunanjimi in notranjimi dogodki v sistemu, vam časovno programiranje omogoča spreminjanje projiciranih zaporedje okvirjev odvisno od stanja simuliranih procesov in uporabniških dejanj.

    Vmesniški objekti neposredne manipulacije in njihove predstavitve.

    Tri glavne vrste objektov vmesnika neposredne manipulacije so:

    Podatkovni objekti

    Kontejnerski predmeti,

    Objekti naprave.

    Podatkovni objekti uporabniku posredovati informacije (besedila, slike, preglednice, glasba, videi). Znotraj operacijskega sistema takšni objekti ustrezajo aplikacijam, ki se zaženejo, ko se objekt odpre.

    Objekti vsebnika lahko manipulirajo s svojimi notranjimi objekti, vključno z drugimi vsebniki (jih kopirajo ali razvrstijo v poljubnem vrstnem redu). Tipični zabojniki vključujejo mape in košare. Ko je posoda odprta, so prikazane komponente, ki jih hrani, in jih je mogoče manipulirati. Komponente so lahko označene s piktogrami ali predstavljene v obliki tabele.

    Objekti naprave predstavljajo naprave, ki obstajajo v resničnem svetu: telefone, fakse, tiskalnike itd. uporabljajo se za sklicevanje na te naprave v abstraktnem svetu vmesnika. Ko razširite tak predmet, lahko vidite njegove nastavitve.

    Vsak predmet ustreza enemu oknu. V začetnem stanju je to okno predstavljeno z ikono, po potrebi pa ga lahko odprete in izvedete zahtevane operacije, na primer nastavitve predmeta. Ko se odpre okno predmeta, lahko vsebuje menije in orodne vrstice. Ikona mora ustrezati kontekstnemu meniju, ki vsebuje seznam operacij na objektu.

    Ime ikone se oblikuje drugače za vsako vrsto predmeta. Ikone podatkovnih objektov dobijo imena, ki ustrezajo imenom shranjenih podatkov, tip podatkov pa kodira sama ikona. Ime ikone vsebnika ali ikone naprave identificira sam predmet in je zato neodvisno od vsebine.

    Razlikovanje med vrstami objektov je pogojno, saj se lahko isti objekt v različnih situacijah obnaša kot podatkovni objekt, kot objekt naprave, kot objekt vsebnika (tiskalnik je objekt naprave, lahko ima lastnosti, objekt vsebnika lahko vsebuje podatkovne objekte v čakalna vrsta za tiskanje; prikaz v obliki ikone, okno čakalne vrste za tiskanje, okno z nastavitvami; ime prikaza je priporočljivo navesti v naslovu okna objekta).

    tehnologijapovleciteinSpustite. Osnovna načela neposredne manipulacije, kot je opisano v Vodiču za načrtovanje uporabniškega vmesnika IBM:

    Rezultat premikanja predmeta mora ustrezati uporabnikovim pričakovanjem;

    Uporabniki ne bi smeli nepričakovano izgubiti informacij;

    Uporabnik mora imeti možnost razveljaviti nepravilno dejanje.

    Začetno označevanje - uporablja se kot povratna informacija uporabniku, da ga obvesti, da je predmet zajet; v sistemu Windows se označevanje uporablja v ta namen;

    Vizualizacija gibanja - uporablja se za identifikacijo dejanja, ki se izvaja;

    Izbira tarče - uporablja se za identifikacijo cilja in tako pokaže, kam bo predmet "padel", če se sprosti v trenutnem trenutku;

    Vizualizacija dejanja - uporablja se za prikaz čakalne dobe za dokončanje operacije; običajno se v ta namen uporablja animacija ali sprememba oblike kazalca v "peščeno uro".

    Obstajata dve vrsti ciljev: eden sprejme predmet, drugi pa njegovo kopijo (uporabnik "vrže" dokument v "smetnjak" - sam dokument je uničen, in če je poslan v tiskalnik, potem kopija dokumenta se prenese).

    Oblikovanje vmesnikov za neposredno manipulacijo. Načrtovanje poteka na podlagi dialoških grafov, razvitih za specifično programsko opremo, in vključuje naslednje postopke:

    Nastanek niz predmetov domene, ki naj bo predstavljen na zaslonu, pri čemer se v tem primeru kot osnova ne uporabljajo primeri uporabe, temveč konceptualni model predmetnega področja;

    Analiza predmetov, ki jih definira vrste in predložitve, kot tudi seznam operacij s temi predmeti;

    Pojasnilo interakcije objektov in matrična konstrukcija neposredno manipulacijo;

    Opredelitev vizualne predstavitve predmeti;

    Razvoj meni okna predmeta in kontekstni meniji;

    Ustvarjanje prototip vmesnik;

    Testiranje za Enostavnost uporabe.

    8 Inteligentni elementi uporabniškega vmesnika

    Elementi uporabniškega vmesnika: Master, Advisor, Agent. Veliko poskusov je bilo ustvariti socializiran uporabniški vmesnik. Osnova takšnega vmesnika je zamisel o ustvarjanju personaliziranega, t.j. »imeti osebnost« vmesnika. Razvedrilni programi, kot je Cats and Dogs, ki izvajajo zapleteno vedenje hišnih ljubljenčkov v različnih situacijah, kažejo, da je to tehnično povsem rešljiv problem.

    Svetovalci. So oblika namiga. Do njih lahko dostopate iz menija za pomoč, ukazne vrstice okna ali iz pojavnega menija. Svetovalci pomagajo uporabnikom pri izvajanju določenih nalog.

    Mojstri. Program čarovnik se uporablja za izvajanje pogostih opravil, ki jih posamezni uporabnik redko izvaja (nameščanje programov ali strojne opreme). Izvajanje takšnih dejanj od uporabnika zahteva sprejemanje zapletenih medsebojno povezanih odločitev, katerih zaporedje narekuje čarovniški program. Inteligentni čarovniki lahko na vsakem koraku v oknu za ogled pokažejo rezultate uporabnikovih odgovorov na prejšnja vprašanja in mu tako pomagajo pri navigaciji v situaciji.

    Čarovnik izvaja scenarij zaporednega ali drevesnega dialoga. Priporočljivo je, da ga uporabite za reševanje dobro strukturiranih zaporednih problemov.

    V tem primeru je potrebno:

    Uporabniku omogočiti vrnitev na prejšnji korak;

    Predvideti možnost odpovedi magistrskega dela;

    Oštevilčite korake in uporabniku sporočite število glavnih korakov, še posebej, če je takšnih več kot trije;

    Uporabniku razložite vsak korak;

    Če je mogoče, na vsakem koraku pokažite rezultate že opravljenih operacij.

    Programski agenti. Uporablja se za opravljanje rutinskega dela. Glavne funkcije pomožnih agentov so: opazovanje, iskanje, upravljanje. Obstajajo:

    agentski programi, konfigurirani za izvajanje določenih nalog;

    agentski programi, ki se lahko učijo (s snemanjem uporabniških dejanj (kot magnetofon)).

    ^

    Klasifikacija vmesnikov


    To pomeni, da je vmesnik niz pravil. Kot vsa pravila jih je mogoče posplošiti, zbrati v »kodo« in združiti glede na skupno značilnost. Tako smo prišli do pojma " tip vmesnika« kot kombinacijo podobnih načinov interakcije med človekom in računalnikom. Predlagamo lahko naslednjo shematično klasifikacijo različnih komunikacijskih vmesnikov človek-računalnik.

    ^ Sodobne vrste vmesnikov so:

    1) Ukazni vmesnik. Ukazni vmesnik se tako imenuje, ker v tej vrsti vmesnika oseba daje "ukaze" računalniku, ta pa jih izvrši in rezultat posreduje osebi. Ukazni vmesnik je implementiran v obliki paketne tehnologije in tehnologije ukazne vrstice.

    2) ^ WIMP - vmesnik(Window - okno, Image - slika, Menu - meni, Pointer - kazalec). Značilnost te vrste vmesnika je, da se dialog z uporabnikom ne izvaja z uporabo ukazov, temveč z uporabo grafičnih slik - menijev, oken in drugih elementov. Čeprav so ukazi dani stroju v tem vmesniku, se to izvaja "posredno", prek grafičnih slik. Ta vrsta vmesnika je implementirana na dveh tehnoloških ravneh: preprost grafični vmesnik in "čisti" vmesnik WIMP.

    3) ^ SILK - vmesnik(Govor - govor, Slika - slika, Jezik - jezik, Znanje - znanje). Ta vrsta vmesnika je najbližja običajni, človeški obliki komunikacije. V okviru tega vmesnika poteka običajen "pogovor" med osebo in računalnikom. Hkrati pa računalnik sam poišče ukaze tako, da analizira človeški govor in v njem poišče ključne fraze. Prav tako pretvori rezultat izvajanja ukaza v človeku berljivo obliko. Ta vrsta vmesnika je najbolj zahtevna glede sredstev računalniške strojne opreme, zato se uporablja predvsem v vojaške namene.

    ^ 1. Javni vmesnik - na podlagi semantičnih mrež.

    V naslednjih poglavjih boste izvedeli več o teh vrstah vmesnikov.
    ^

    Serijska tehnologija


    Zgodovinsko gledano se je tovrstna tehnologija pojavila prva. Obstajal je že na relejnih strojih Suesa in Zuseja (Nemčija, 1937).

    Ideja je preprosta : na vhod računalnika se posreduje zaporedje simbolov, v katerem je po določenih pravilih navedeno zaporedje programov, ki se zaženejo za izvajanje. Po izvedbi naslednjega programa se zažene naslednji in tako naprej. Stroj po določenih pravilih zase najde ukaze in podatke. To zaporedje je lahko na primer luknjan papirni trak, sveženj luknjanih kartic ali zaporedje pritiskanja na tipke električnega pisalnega stroja (tip CONSUL). Stroj svoja sporočila oddaja tudi na luknjač, ​​alfanumerično tiskalno enoto (ADP) ali trak pisalnega stroja.

    S pojavom alfanumeričnih zaslonov se je začela doba resnično uporabniku prijazne tehnologije – ukazne vrstice.
    ^

    Tehnologija ukazne vrstice.


    Pri tej tehnologiji je tipkovnica edini način za vnos informacij od osebe do računalnika, računalnik pa osebi prikaže informacije z uporabo alfanumeričnega zaslona (monitorja). To kombinacijo (monitor + tipkovnica) so poimenovali terminal ali konzola.

    Ukaze vnašamo v ukazno vrstico. Ukazna vrstica je simbol poziva in utripajoči pravokotnik - Ko pritisnete tipko, se na mestu kazalca prikažejo simboli, sam kazalec pa se premakne v desno. To je zelo podobno tipkanju ukaza na pisalnem stroju. Toda za razliko od njega so črke prikazane na zaslonu, ne na papirju, nepravilno vtipkan znak pa je mogoče izbrisati. Ukaz se konča s pritiskom na tipko Enter (ali Return), ki se nato premakne na začetek naslednje vrstice. Iz tega položaja računalnik prikazuje rezultate svojega dela na monitorju. Nato se postopek ponovi.

    Tehnologija ukazne vrstice je že delovala na enobarvnih alfanumeričnih zaslonih. Ker je bilo mogoče vnašati samo črke, številke in ločila, tehnične lastnosti zaslona niso bile pomembne. Kot monitor bi lahko uporabili televizijski sprejemnik in celo osciloskopsko cev.

    Besedilne datoteke so postale prevladujoča vrsta datotek pri delu z ukaznim vmesnikom - te in samo njih je bilo mogoče ustvariti s tipkovnico.
    ^

    GUI


    Kako in kdaj se je pojavil grafični vmesnik?

    Njegova ideja je nastala sredi 70. let prejšnjega stoletja, ko so v raziskovalnem centru Xerox Palo Alto (PARC) razvili koncept vizualnega vmesnika. Predpogoj za grafični vmesnik je bilo zmanjšanje odzivnega časa računalnika na ukaz, povečanje količine RAM-a in razvoj tehnične baze računalnikov. Strojna osnova koncepta je seveda bil pojav alfanumeričnih zaslonov na računalnikih, ti zasloni pa so že imeli učinke, kot so "utripanje" znakov, barvna inverzija (sprememba obrisa belih znakov na črnem ozadju v obratno, črni znaki na belem ozadju), podčrtani znaki. Ti učinki se niso razširili na celoten zaslon, ampak samo na enega ali več znakov.

    Naslednji korak je bil ustvariti barvni zaslon, ki bi poleg teh učinkov omogočal prikaz znakov v 16 barvah na ozadju s paleto (tj. barvnim naborom) 8 barv. Po pojavu grafičnih zaslonov, z možnostjo prikaza poljubnih grafičnih podob v obliki številnih pik na zaslonu različnih barv, domišljiji pri uporabi zaslona ni bilo nobenih meja! Prvi sistem z grafičnim vmesnikom, 8010 Star Information System skupine PARC, se je torej pojavil štiri mesece pred izidom prvega IBM-ovega računalnika leta 1981. Sprva je bil vizualni vmesnik uporabljen le v programih. Postopoma je začel prehajati na operacijske sisteme, ki so se najprej uporabljali na računalnikih Atari in Apple Macintosh, nato pa še na IBM-kompatibilnih računalnikih.

    Že od nekdaj in pod vplivom teh konceptov je obstajal proces poenotenja uporabe tipkovnice in miške v aplikacijskih programih. Zlitje teh dveh trendov je pripeljalo do ustvarjanja uporabniškega vmesnika, s katerim lahko z minimalnim časom in denarjem, porabljenim za preusposabljanje osebja, delate s katerim koli programskim izdelkom. Ta del je namenjen opisu tega vmesnika, skupnega vsem aplikacijam in operacijskim sistemom.

    Grafični uporabniški vmesnik je v svojem razvoju šel skozi dve stopnji. Spodaj bo obravnavan razvoj grafičnega vmesnika od leta 1974 do danes.
    ^

    Preprost grafični vmesnik.


    V prvi fazi je bil GUI zelo podoben tehnologiji ukazne vrstice. Razlike od tehnologije ukazne vrstice so bile naslednje.

    A) Pri prikazu znakov je bilo mogoče nekatere znake poudariti z barvo, inverzno sliko, podčrtajem in utripanjem. Zahvaljujoč temu se je povečala izraznost slike.

    B) Odvisno od specifične izvedbe grafičnega vmesnika je kazalec lahko predstavljen ne le z utripajočim pravokotnikom, temveč tudi z območjem, ki pokriva več znakov in celo del zaslona. To izbrano območje se razlikuje od drugih, neizbranih delov (običajno po barvi).

    C) Če pritisnete tipko Enter, se ukaz ne izvede vedno in se premaknete v naslednjo vrstico. Reakcija na pritisk katere koli tipke je v veliki meri odvisna od tega, kje na zaslonu je bil kazalec.

    D) Poleg tipke Enter so sive smerne tipke postale vse pogostejše na tipkovnici (glejte razdelek o tipkovnici v 3. številki te serije.)

    E) Že v tej izdaji grafičnega vmesnika so se začeli uporabljati manipulatorji (kot so miška, sledilna kroglica itd. – glej sliko A.4.) Omogočali so hitro izbiro želenega dela zaslona in premikanje kazalec.

    riž. A.4. Manipulatorji

    Če povzamemo, lahko navedemo naslednje značilnosti tega vmesnika.

    1) Izbira področij zaslona.

    2) Redefiniranje tipk na tipkovnici glede na kontekst.

    3) Uporaba manipulatorjev in sivih tipk na tipkovnici za nadzor kazalca.

    4) Široka uporaba barvnih monitorjev.

    Pojav te vrste vmesnika sovpada s široko uporabo operacijskega sistema MS-DOS. Ona je bila tista, ki je ta vmesnik predstavila množicam, zaradi česar so 80. leta zaznamovala izboljšava te vrste vmesnika, izboljšanje značilnosti prikaza znakov in drugih parametrov monitorja.

    Tipičen primer uporabe te vrste vmesnika je lupina datotek Nortron Commander (glejte lupine datotek spodaj) in urejevalnik besedila Multi-Edit. In urejevalniki besedil Lexicon, ChiWriter in urejevalnik besedil Microsoft Word for Dos so primeri, kako je ta vmesnik presegel samega sebe.