Rodzaje interfejsów użytkownika. Rozwój technologii informatycznych

Współpraca operatora z komputerem jest ważną częścią procesu obliczeniowego w rozwiązywaniu różnych problemów aplikacyjnych, zarówno naukowych, jak i przemysłowych. Tworzenie programów z zakresu organizowania relacji rynkowych przy tworzeniu serwisów informacyjnych dla różnych organizacji i przedsiębiorstw, przy tworzeniu programów do zarządzania procesami produkcyjnymi, rozliczania produktów i ich sprzedaży, zarządzania jakością, a nawet przy takim zadaniu jak sortowanie e-maili według sekretarza, wymagane jest opracowanie przyjaznej dla użytkownika interakcji z komputerem.

Projekt- iteracyjny proces, w którym wymagania dotyczące PS są przekładane na inżynierskie reprezentacje PS. Zazwyczaj w projekcie występują dwa etapy: projekt wstępny i projekt wykonawczy. Projekt wstępny tworzy abstrakcje na poziomie architektonicznym, projekt szczegółowy uszlachetnia te abstrakcje. Dodatkowo w wielu przypadkach wyróżnia się projektowanie interfejsu, którego celem jest stworzenie graficznego interfejsu użytkownika (GUI). Schemat powiązań informacyjnych procesu projektowania pokazano na ryc.

Definicja interfejsu.

W sumie, interfejs (interfejs) – jest to zbiór logicznych i fizycznych zasad interakcji pomiędzy komponentami środków technicznych systemu komputerowego (CS), tj. zbiór reguł algorytmów i tymczasowych umów wymiany danych pomiędzy komponentami CS (logiczne interfejs), a także zestaw cech fizycznych, mechanicznych i funkcjonalnych środków połączeniowych realizujących taką interakcję (interfejs fizyczny).

Interfejs często określane jako narzędzia techniczne i programowe, które implementują interfejs między urządzeniami a węzłami statku powietrznego.

Interfejs rozciąga się na wszystkie logiczne i fizyczne środki interakcji systemu komputerowego ze środowiskiem zewnętrznym, na przykład z systemem operacyjnym, operatorem itp.

Typy interfejsów

Interfejsy wyróżniają takie cechy jak struktura połączeń, sposób łączenia i przesyłania danych, zasady sterowania i synchronizacji.

    Interfejs w maszynie - system komunikacji i środki sprzęgania węzłów i bloków komputera ze sobą. Interfejs w maszynie to zestaw elektrycznych linii komunikacyjnych (przewodów), obwodów interfejsu z komponentami komputerowymi, protokołów (algorytmów) do transmisji i konwersji sygnałów.

Istnieją dwie opcje organizowania w interfejsie maszyny:

Interfejs wielozłączowy, w którym każda jednostka PC jest połączona z innymi jednostkami za pomocą lokalnych przewodów;

Pojedynczy interfejs łącza, w którym wszystkie jednostki PC są połączone ze sobą za pomocą wspólnej lub systemowej magistrali.

2. Interfejs zewnętrzny - system komunikacji jednostki systemowej z urządzeniami peryferyjnymi komputera lub z innymi komputerami,

Tutaj można również wyróżnić kilka typów interfejsu zewnętrznego:

Interfejs urządzeń peryferyjnych podłączonych przez magistrale I/O (ISA, EISA, VLB, PCI, AGP, USB IEEE 1384 SCSI itp.);

Interfejs sieciowy, taki jak sieć peer-to-peer lub klient-serwer o topologii gwiazdy, pierścienia lub magistrali.

3. Interfejs człowiek-maszyna lub interfejs człowiek-komputer lub interfejs użytkownika - w ten sposób wykonujesz zadanie za pomocą dowolnych środków (dowolnego programu), a mianowicie czynności, które wykonujesz i co otrzymujesz w zamian.

Interfejs jest zorientowany na człowieka, jeśli spełnia jego potrzeby i uwzględnia jego słabości.

Interfejs maszyny - część interfejsu zaimplementowanego w maszynie (jej część sprzętowa i programowa) wykorzystująca możliwości technologii komputerowej.

Ludzka część interfejsu - jest to część interfejsu wdrażana przez osobę, uwzględniająca jej możliwości, słabości, nawyki, zdolność uczenia się i inne czynniki.

Najpopularniejsze interfejsy są zdefiniowane przez normy krajowe i międzynarodowe.

W dalszej części rozważany będzie tylko interfejs użytkownika.

Klasyfikacja interfejsów użytkownika

Jak wspomniano powyżej, interfejs to przede wszystkim zestaw reguł, które można łączyć zgodnie z podobieństwem sposobów interakcji osoby z komputerem.

Istnieją trzy rodzaje interfejsów użytkownika: polecenia, WIMP i SILK - interfejsy.

Interakcja wymienionych interfejsów z systemami operacyjnymi i technologiami jest pokazana na rysunku 1:

Ryż. 1. Interakcja interfejsów użytkownika ich technologii i systemów operacyjnych.

1. Interfejs poleceń, w którym interakcja osoby z komputerem odbywa się poprzez wydawanie poleceń komputerowi, które wykonuje i podaje wynik użytkownikowi. Interfejs poleceń można zaimplementować jako technologię wsadową i technologię wiersza poleceń. Obecnie technologia wsadowa praktycznie nie jest używana, a technologię wiersza poleceń można znaleźć jako zapasowy sposób komunikacji między osobą a komputerem.

Technologia pakietowa.

Historycznie ten rodzaj technologii pojawił się najpierw na komputerach elektromechanicznych K. Zuse, G. Aikina, a następnie na komputerach elektronicznych Eckerta i Mouchli, na komputerach domowych Lebiediewa, Brusentsowa, na komputerze IBM-360, na Komputer EC i tak dalej. Jego idea jest prosta i polega na tym, że wejście komputera to sekwencja programów wypchanych np. na kartach perforowanych oraz sekwencja symboli określających kolejność wykonywania tych programów. Człowiek tutaj ma niewielki wpływ na działanie maszyny. Może jedynie zawiesić działanie maszyny, zmienić program i ponownie uruchomić komputer.

technologia wiersza poleceń.

Dzięki tej technologii klawiatura jest wykorzystywana jako metoda wprowadzania informacji przez operatora do komputera, a komputer wyświetla informacje osobie za pomocą wyświetlacza alfanumerycznego (monitora). Kombinacja monitor-klawiatura stała się znana jako terminal lub konsola. Polecenia wpisywane są w wierszu poleceń, który jest symbolem zaproszenia i migającym kursorem, a wpisywane znaki można usuwać i edytować. Po naciśnięciu klawisza Enter komputer akceptuje polecenie i rozpoczyna jego wykonywanie. Po przejściu na początek kolejnej linii komputer wyświetla na monitorze wyniki swojej pracy. Najpopularniejszym interfejsem poleceń był system operacyjny MS DOS.

2. OOMU (okno, obraz, menu, wskaźnik)MIĘCZAK (okno, obraz, menu, wskaźnik) - interfejs. Charakterystyczną cechą tego interfejsu jest to, że dialog użytkownika z komputerem prowadzony jest nie za pomocą wiersza poleceń, ale za pomocą okien, ikon menu, kursora i innych elementów. Chociaż w tym interfejsie są podawane do maszyny polecenia, odbywa się to za pomocą obrazów graficznych.

Pomysł interfejsu graficznego zrodził się w połowie lat 70. w Xerox Palo Alto Research Center (PARC). Założeniem interfejsu graficznego było skrócenie czasu reakcji komputera na polecenie, zwiększenie ilości pamięci RAM, a także rozbudowa bazy elementów, charakterystyk technicznych komputerów, a w szczególności monitorów. Wraz z pojawieniem się wyświetlaczy graficznych z możliwością wyświetlania dowolnych obrazów graficznych w różnych kolorach, interfejs graficzny stał się integralną częścią wszystkich komputerów. Stopniowo następował proces ujednolicenia korzystania z klawiatury i myszy przez programy użytkowe. Zbieg tych dwóch trendów doprowadził do stworzenia takiego interfejsu użytkownika, za pomocą którego, przy minimalnym czasie i kosztach przekwalifikowania personelu, można pracować z dowolną aplikacją.

Ten typ interfejsu jest realizowany na dwóch poziomach:

Prosty interfejs graficzny;

Pełny WINP - interfejs.

Prosty interfejs użytkownika , który w pierwszym etapie był bardzo podobny do technologii wiersza poleceń z następującymi różnicami:

Podczas wyświetlania znaków w celu zwiększenia wyrazistości obrazu dopuszczono podświetlenie niektórych znaków kolorem, odwróceniem obrazu, podkreśleniem i migotaniem;

Kursor mógłby być reprezentowany przez jakiś obszar wyróżniony kolorem i obejmujący kilka znaków, a nawet część ekranu;

Reakcja na naciśnięcie dowolnego klawisza w dużej mierze zależy od tego, w której części znajduje się kursor.

Oprócz często używanych klawiszy kursora zaczęto używać manipulatorów, takich jak mysz, trackball itp., które umożliwiały szybkie wybieranie żądanego obszaru ekranu i przesuwanie kursora;

Powszechne stosowanie kolorowych monitorów.

Pojawienie się prostego interfejsu graficznego zbiega się z powszechnym wykorzystaniem systemu operacyjnego MS DOS. Typowym przykładem jego zastosowania jest powłoka plików Norton Commander i edytory tekstu MaltiEdit, ChiWriter, Microsoft Word for DOS, Lexicon itp.

Pełny MIĘCZAK -interfejs , był drugim etapem rozwoju interfejsu graficznego, który charakteryzuje się następującymi cechami:

Cała praca z programami, plikami i dokumentami odbywa się w systemie Windows;

Programy, pliki, dokumenty, urządzenia i inne obiekty są reprezentowane jako ikony (ikony), które po otwarciu zamieniają się w okna;

Wszystkie akcje z obiektami są wykonywane za pomocą menu, które staje się głównym elementem kontrolnym;

Manipulator działa jako główny środek kontroli.

Należy zauważyć, że interfejs WIMP wymaga do jego wdrożenia zwiększonych wymagań dotyczących wydajności komputera, ilości jego pamięci, wysokiej jakości rastrowego wyświetlania kolorów oprogramowania zorientowanego na ten typ interfejsu. Obecnie interfejs WIMP stał się de facto standardem, a jego wybitnym przedstawicielem stał się system operacyjny Microsoft Windows.

3. ROYAZ (mowa, obraz, język, wiedza)JEDWAB (przemówienie, obraz, język, wiedza) - interfejs. Ten interfejs jest najbliższy zwykłej ludzkiej formie komunikacji. W tym interfejsie odbywa się normalna rozmowa między osobą a komputerem. Jednocześnie komputer sam odnajduje polecenia, analizując ludzką mowę i znajdując w niej kluczowe frazy. Konwertuje również wyniki wykonania polecenia do postaci czytelnej dla człowieka. Ten typ interfejsu wymaga dużych kosztów sprzętowych, dlatego jest rozwijany i ulepszany i obecnie jest używany wyłącznie do celów wojskowych.

Interfejs SILK do komunikacji człowiek-maszyna wykorzystuje:

technologia mowy;

Technologia biometryczna (interfejs mimiczny);

Interfejs semantyczny (publiczny).

Technologia mowy pojawił się w połowie lat 90. po wprowadzeniu niedrogich kart dźwiękowych i powszechnym wykorzystaniu technologii rozpoznawania mowy. Dzięki tej technologii komendy są wydawane głosowo poprzez wymawianie specjalnych standardowych słów (polecenia), które muszą być wymawiane wyraźnie, w tym samym tempie z obowiązkowymi pauzami między słowami. Biorąc pod uwagę, że algorytmy rozpoznawania mowy nie są wystarczająco rozwinięte, wymagana jest indywidualna wstępna konfiguracja systemu komputerowego dla konkretnego użytkownika. To najprostsza implementacja interfejsu SILK.

Technologia biometryczna („Interfejs naśladujący”) powstała pod koniec lat 90. i jest obecnie w fazie rozwoju. Do sterowania komputerem wykorzystuje się wyraz twarzy, kierunek patrzenia, wielkość źrenicy i inne oznaki osoby. Do identyfikacji użytkownika wykorzystuje się wzór tęczówki jego oczu, odciski palców i inne unikalne informacje odczytywane z aparatu cyfrowego, a następnie z tego obrazu wyodrębniane są polecenia za pomocą programu do rozpoznawania wzorów.

Interfejs semantyczny (publiczny) pojawił się pod koniec lat 70. XX wieku wraz z rozwojem sztucznej inteligencji. Trudno go nazwać niezależnym typem interfejsu, ponieważ zawiera interfejs wiersza poleceń oraz interfejsy graficzne, mowy i mimiczne. Jego główną cechą jest brak poleceń podczas komunikacji z komputerem. Prośba jest sporządzona w języku naturalnym, w postaci powiązanego tekstu i obrazów. W rzeczywistości jest to symulacja interakcji człowieka z komputerem. Obecnie używany do celów wojskowych. Taki interfejs jest niezbędny w środowisku walki powietrznej.

„Mechanizm transmisji” - Wynik lekcji. Technologia 3 klasa. Szkolenie z projektowania różnych modeli technicznych z napędem mechanicznym. Bieg krzyżowy - gdy koła kręcą się w różnych kierunkach. Rodzaje kół zębatych: 1 - pasek; 2 - łańcuch; 3 - bieg. Produkty z przekładnią: przenośnik, dźwig, młyn. Główną częścią konstrukcji młyna jest mechanizm przekładni.

„Interfejsy komputerowe” - Interfejs użytkownika. Oprogramowanie. Programy serwisowe. Komputer osobisty jako system. dostarczane przez system operacyjny komputera. Określ wejścia i wyjścia. interfejs sprzętowy. Interfejs sprzętowo-programowy. System operacyjny. Pliki tekstowe. Programy systemowe. Interfejs sprzętowo-programowy - interakcja sprzętu komputerowego i oprogramowania.

„Technologie w klasie” - Formy organizacji mogą być różne: lekcja, grupa, osoba, para. Metody aktywne i interaktywne są używane przeze mnie od klas 5 do 11. Rodzaje technologii: Technologia uczenia się skoncentrowanego na uczniu. Rozwojowa technologia uczenia się. Technologia uczenia się skoncentrowanego na uczniu Technologia projektowo-badawcza.

"Technologie edukacyjne w szkole" - Laboratorium nierozwiązanych problemów. Wsparcie metodyczne kreatywnych projektów placówek oświatowych i nauczycieli. Technologie gier. Wzrost wskaźnika wykorzystania ICT w procesie edukacyjnym. Upowszechnianie zaawansowanych doświadczeń pedagogicznych. Zmniejszenie liczby przemienników. Wzrost umiejętności nauczycieli, wpływ na jakość lekcji.

"Technologia 6 - 7 - 8 klasa" - Jak mierzy się energię elektryczną? Jaki pomiar determinuje rozmiar produktu na ramię? Co według popularnych poglądów oznaczało początek wszelkiego życia? Która część napędza wszystkie części robocze maszyny do szycia? Surowiec do wykonania powozu dla Kopciuszka. Jaka jest funkcja rowków na ostrzu igły?

"Sekcje techniki" - A mamy z genialnych koralików - Niezwykłe piękno. Temat - Technologia. Patchwork od dawna jest znany wielu narodom. Święta i obrzędy narodowe, stroje narodowe. Opowiadają o tradycjach różnych ludów, świętach narodowych i obrzędach. Po upieczeniu pączków lekko ostudzić, natrzeć zmiażdżonym czosnkiem.

  • OOP
  • W zeszły poniedziałek miałem szczęście dostać rozmowę kwalifikacyjną dla Senior .Net Developer w międzynarodowej firmie. Podczas wywiadu zaproponowano mi wykonanie testu, w którym kilka pytań dotyczyło .Net. W szczególności w jednym z pytań należało ocenić (prawda/fałsz) szereg stwierdzeń, wśród których znalazły się następujące:

    W .Net dowolna tablica elementów, taka jak int, domyślnie implementuje IList, co pozwala na użycie jej jako kolekcji w instrukcji foreach.

    Szybko odpowiadając na to pytanie przecząco i osobno dodając marginesy. że foreach wymaga implementacji nie IList, ale IEnumerable, przeszedłem do następnego pytania. Jednak w drodze do domu dręczyło mnie pytanie: czy tablica nadal implementuje ten interfejs, czy nie?

    Jeśli chodzi o IList, niejasno pamiętałem, że ten interfejs daje mi IEnumerable, indeksator i właściwość Count zawierającą liczbę elementów w kolekcji, a także kilka rzadko używanych właściwości, takich jak IsFixedCollection (). Tablica ma właściwość Length dla jej rozmiaru, a Count IEnumerable jest metodą rozszerzenia z LINQ, co nie byłoby możliwe, gdyby ta metoda została zaimplementowana w klasie. Tak więc okazało się, że tablica nie może zaimplementować interfejsu IList, ale prześladowało mnie jakieś niejasne uczucie. Dlatego wieczorem po rozmowie postanowiłem zrobić małe rozeznanie.

    Klasa System.Array

    Ponieważ nie miałem zainstalowanego Reflector.Net, napisałem po prostu krótki program w C#, aby dowiedzieć się, jakie interfejsy są zaimplementowane przez tablicę liczb całkowitych.

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

    Oto pełna lista interfejsów odebranych z okna konsoli:

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

    W ten sposób, tablica w .Net nadal implementuje interfejs IList i jego ogólną wersję IList<> .

    Aby uzyskać pełniejsze informacje, zbudowałem diagram klasy System.Array.

    Mój błąd natychmiast przykuł moją uwagę: Count nie była własnością IList, ale ICollection, poprzedniego interfejsu w łańcuchu dziedziczenia. Jednak sama tablica nie miała już takiej właściwości, podobnie jak wiele innych właściwości interfejsu IList, chociaż inne właściwości tego interfejsu, IsFixedSize i IsReadOnly, zostały zaimplementowane. Jak to jest w ogóle możliwe?

    Wszystko od razu się układa, gdy przypomnisz sobie, że w C# możesz implementować interfejsy nie tylko
    niejawnie (niejawnie), ale także jawnie (jawnie). O takiej możliwości wiedziałem z podręczników, gdzie podano przykład takiej realizacji w sprawie. gdy klasa bazowa zawiera już metodę o tej samej nazwie co metoda interfejsu. Widziałem tę możliwość również w ReSharper. Jednak do tej pory nie spotkałem się bezpośrednio z koniecznością jawnego implementowania interfejsów we własnych projektach.

    Porównanie jawnej i niejawnej implementacji interfejsów

    Porównajmy te dwa typy implementacji interfejsu:
    Kryteria
    Implementacja niejawna
    Jawna implementacja
    Podstawowa składnia
    interface ITest ( void DoTest(); ) public class ImplicitTest: ITest ( public void DoTest() ( ) )
    interface ITest ( void DoTest(); ) public class ExplicitTest: ITest ( void ITest.DoTest() ( ) )
    Widoczność
    Implementacja niejawna zawsze była publiczna, więc metody i właściwości są dostępne bezpośrednio.
    var imp = new ImplicitTest(); imp.DoTest();
    Jawna implementacja jest zawsze prywatna.
    Aby uzyskać dostęp do implementacji, musisz rzutować instancję klasy na interfejs (upcast to interface).
    varexp = new ExplicitTest(); ((ITTest)exp).DoTest();
    Polimorfia
    Niejawna implementacja interfejsu może być wirtualna (wirtualna), co pozwala na przepisanie tej implementacji w klasach podrzędnych.
    Jawna implementacja jest zawsze statyczna. Nie można go przesłonić ani przesłonić (nowy) w klasach potomnych. Notatka. jeden
    Klasa abstrakcyjna i implementacja
    Niejawna implementacja może być abstrakcyjna i zaimplementowana tylko w klasie podrzędnej.
    Jawna implementacja nie może być abstrakcyjna, ale sama klasa może mieć inne abstrakcyjne metody i sama być abstrakcyjna. Notatka. 2

    Uwagi:
    Notatka. 1 - Jak słusznie zauważono w komentarzach, implementację można przesłonić ponownie jawną implementacją interfejsu w klasie podrzędnej (patrz pierwszy komentarz do artykułu).

    Notatka. 2 - Jeden z blogów stwierdza, że ​​klasa sama w sobie nie może być abstrakcyjna. Być może dotyczyło to niektórych poprzednich wersji kompilatora, w moich eksperymentach mogłem bez problemu zaimplementować interfejs jawnie w klasie abstrakcyjnej.

    Dlaczego jawna implementacja interfejsów jest konieczna

    Jawna implementacja interfejsu, zgodnie z MSDN, jest wymagana, gdy wiele interfejsów zaimplementowanych przez klasę ma metodę o tej samej sygnaturze. Problem ten jest powszechnie znany w anglojęzycznym świecie pod mrożącą skojarzeniem nazwą „zabójczy diament śmierci”, co tłumaczy się na rosyjski jako „problem z diamentami”. Oto przykład takiej sytuacji:

    /* Listing 1 */ interface IJogger ( void Run(); ) interface ISkier ( void Run(); ) public class Zawodnik: ISkier, IJogger ( public void Run() ( Console.WriteLine("Czy jestem sportowcem, narciarzem lub Biegacz?"); ) )

    Swoją drogą, ten przykład to poprawny kod w C#, czyli (poprawnie) kompiluje się i uruchamia, natomiast metoda Run() jest zarówno metodą samej klasy, jak i implementacją aż dwóch interfejsów. W ten sposób możemy mieć jedną implementację dla różnych interfejsów i dla samej klasy. Możesz to sprawdzić za pomocą następującego kodu:

    /* Listing 2 */ var sp = nowy zawodnik(); sp.Uruchom(); (sp jako ISkier).Run(); (sp jako IJogger).Run();

    Wynikiem wykonania tego kodu będzie „Czy jestem sportowcem, narciarzem czy biegaczem?”, wydrukowany w konsoli trzy razy.

    W tym miejscu możemy użyć jawnej implementacji interfejsu, aby oddzielić wszystkie trzy przypadki:

    /* Listing 3 */ public class Sportsman ( public virtual void Run() ( Console.WriteLine("Jestem sportowcem"); ) ) public class Sportowiec: Sportsman, ISkier, IJogger ( public override void Run() ( Console. WriteLine("Jestem sportowcem"); ) void ISkier.Run() ( Console.WriteLine("Jestem narciarzem"); ) void IJogger.Run() ( Console.WriteLine("Jestem biegaczem"); ) )

    W tym przypadku, wykonując kod z Listingu 2, zobaczymy w konsoli trzy linijki, „Jestem sportowcem”, „Jestem narciarzem” oraz „Jestem biegaczem”.

    Plusy i minusy różnych implementacji interfejsu

    Widoczność implementacji i implementacja selektywna
    Jak już pokazano powyżej, niejawna implementacja nie różni się składniowo od zwykłej metody klasy (co więcej, jeśli ta metoda została już zdefiniowana w klasie przodka, to w tej składni metoda zostanie ukryta w dziecku i zostanie skompilowany kod bez problemów kompilator c ostrzega o ukrywaniu metod.). Ponadto możliwe jest selektywne zaimplementowanie poszczególnych metod jednego interfejsu zarówno jawnie, jak i niejawnie:

    /* Listing 4 */ public class Code ( public void Run() ( Console.WriteLine("Jestem metodą klasy"); ) ) interface ICommand ( void Run(); void Execute(); ) public class CodeCommand: Code , ICommand ( // implementacja niejawnej metody interfejsu // => implementacja publiczna // ukrywanie metody niejawnej klasy bazowej (tutaj ostrzeżenie) public void Run() ( base.Run(); ) // jawna implementacja metody interfejsu // => private implementacja nieważna ICommand.Execute() () )

    Pozwala to na wykorzystanie implementacji poszczególnych metod interfejsu jako metod natywnych klasy i są one dostępne np. poprzez IntelliSense, w przeciwieństwie do jawnej implementacji metod, które są prywatne i widoczne dopiero po rzutowaniu na odpowiedni interfejs.

    Z drugiej strony możliwość prywatnej implementacji metod pozwala ukryć szereg metod interfejsu, jednocześnie je w pełni realizując. Wracając do naszego pierwszego przykładu z tablicami w .Net, widać, że tablica ukrywa na przykład implementację właściwości Count interfejsu ICollection, eksponując tę ​​właściwość pod nazwą Length (prawdopodobnie próba zachowania zgodności z C++ STL i Java). W ten sposób możemy ukryć poszczególne metody zaimplementowanego interfejsu i nie ukrywać (=upubliczniać) innych.

    Tutaj jednak pojawia się taki problem, że w wielu przypadkach zupełnie nie można odgadnąć, które interfejsy są domyślnie implementowane przez klasę, ponieważ ani metody, ani właściwości tych interfejsów nie są widoczne w IntelliSense (przykład z System.Array jest również orientacyjne tutaj). Jedynym sposobem identyfikacji takich implementacji jest użycie odbicia, na przykład w przeglądarce obiektów w programie Visual Studio.

    Refaktoryzacja interfejsu
    Ponieważ niejawna (publiczna) implementacja interfejsu nie różni się od implementacji publicznej metody klasy, w przypadku refaktoryzacji interfejsu i usunięcia z niego jakiejkolwiek metody publicznej (na przykład przy połączeniu Run() i Execute () metody z powyższego interfejsu ICommand w jeden Run()) we wszystkich niejawnych implementacjach będzie metoda z publicznym dostępem, która najprawdopodobniej będzie musiała być obsługiwana nawet po refaktoryzacji, ponieważ ta publiczna metoda może już mieć inne zależności w innych komponentach systemu. W efekcie naruszona zostanie zasada programowania „wbrew interfejsom, a nie implementacjom”, ponieważ zależności będą już istniały między konkretnymi (i na pewno różnymi klasami) implementacjami poprzedniej metody interfejsowej.

    /* Listing 5 */ interface IFingers ( void Thumb(); void IndexFinger(); // przestarzała metoda interfejsu // void MiddleFinger(); ) public class HumanPalm: IFingers ( public void Thumb() () public void IndexFinger( ) () // tutaj jest "wisząca" metoda publiczna public void MiddleFinger() () ) public class AntropoidHand: IFingers ( void IFingers.Thumb() () void IFingers.IndexFinger() () // tutaj błąd kompilatora void IFpalce.ŚrodkowyPalec() () )

    W przypadku prywatnej implementacji interfejsów wszystkie klasy z jawną implementacją metody, która już nie istnieje, po prostu przestaną się kompilować, jednak po usunięciu implementacji, która stała się niepotrzebna (lub refaktoryzacji jej w nową metodę) nie mieć „dodatkowej” metody publicznej, która nie jest powiązana z żadnym interfejsem. Oczywiście może być wymagana refaktoryzacja zależności na samym interfejsie, ale przynajmniej w tym przypadku nie dojdzie do naruszenia zasady „program do interfejsów, a nie implementacje”.

    Jeśli chodzi o właściwości, to niejawnie zaimplementowane właściwości interfejsu (właściwości) umożliwiają dostęp do nich za pomocą metod akcesorów (getter i setter) zarówno z zewnątrz, jak i bezpośrednio z samej klasy, co może prowadzić do niepotrzebnych efektów (na przykład do niepotrzebnej walidacji danych podczas właściwości inicjalizacji).

    /* Listing 6 */ interface IProperty ( int Kwota ( get; set; ) ) public class ClassWithProperty: IProperty ( // implementacja niejawna, public public int Kwota ( get; set; ) public ClassWithProperty() ( // wewnętrzne wywołanie public setter Kwota = 1000; ) ) public class ClassWithExplicitProperty: IProperty ( // jawna implementacja, private int IProperty.Amount ( get; set; ) public ClassWithExplicitProperty() ( // wewnętrzne wywołanie nie jest możliwe // błąd kompilatora tutaj Kwota = 1000;) )

    Przy jawnej implementacji właściwości interfejsu, właściwości te pozostają prywatne, a aby uzyskać dostęp, musisz przejść „długą” drogę i zadeklarować dodatkowe pole prywatne, przez które następuje inicjalizacja. Powoduje to czystszy kod, gdy akcesory właściwości są używane tylko do dostępu zewnętrznego.

    Używanie jawnego typowania zmiennych lokalnych i pól klas
    W przypadku jawnej implementacji interfejsów musimy wyraźnie wskazać, że pracujemy nie z instancją klasy, ale z instancją interfejsu. W ten sposób na przykład niemożliwe staje się użycie wnioskowania o typie i deklarowanie zmiennych lokalnych w C# za pomocą słowa kluczowego var. Zamiast tego musimy użyć jawnej deklaracji typu interfejsu podczas deklarowania zmiennych lokalnych, a także w sygnaturach metod i polach klas.

    W ten sposób z jednej strony czynimy kod nieco mniej elastycznym (na przykład ReSharper domyślnie zawsze sugeruje użycie deklaracji z var, jeśli to możliwe), ale unikamy potencjalnych problemów związanych z powiązaniem z konkretną implementacją w miarę rozwoju systemu i jego kod woluminu. Ten punkt może wydawać się kontrowersyjny dla wielu, ale w przypadku, gdy nad projektem pracuje kilka osób, a nawet w różnych częściach świata, stosowanie jawnego typowania może być bardzo przydatne, ponieważ zwiększa czytelność kodu i zmniejsza koszty jego wsparcie.

    WYKŁAD 23-24

    Temat 3.2 Projektowanie interfejsów użytkownika

    1. Rodzaje interfejsów użytkownika i etapy ich rozwoju.

    2. Cechy psychofizyczne osoby związane z percepcją, zapamiętywaniem i przetwarzaniem informacji.

    3. Modele interfejsu użytkownika i oprogramowania.

    4. Klasyfikacje dialogów i ogólne zasady ich opracowywania.

    5. Główne elementy graficznych interfejsów użytkownika.

    6. Implementacja okien dialogowych w graficznym interfejsie użytkownika.

    7. Interfejsy użytkownika do bezpośredniej manipulacji i ich projektowanie.

    8. Inteligentne elementy interfejsów użytkownika.

    We wczesnych stadiach rozwoju technologii komputerowej interfejs użytkownika był uważany za środek komunikacji człowieka z systemem operacyjnym i był dość prymitywny.

    Wraz z pojawieniem się oprogramowania interaktywnego zaczęto stosować specjalne interfejsy użytkownika. Obecnie głównym problemem jest rozwój interaktywnych interfejsów dla złożonych produktów oprogramowania przeznaczonych do użytku przez użytkowników nieprofesjonalnych.

    1. Rodzaje interfejsów użytkownika i etapy ich rozwoju

    Interfejs użytkownika- zestaw oprogramowania i sprzętu, który zapewnia interakcję użytkownika z komputerem. Podstawa interakcji- dialogi.

    Dialog- regulowana wymiana informacji między człowiekiem a komputerem, realizowana w czasie rzeczywistym i mająca na celu wspólne rozwiązanie konkretnego problemu: wymiana informacji i koordynacja działań. Każde okno dialogowe składa się z oddzielnych procesów wejścia-wyjścia, które fizycznie zapewniają komunikację między użytkownikiem a komputerem.

    Wymiana informacji odbywa się poprzez transmisję komunikatów i sygnałów sterujących.

    Wiadomość– informacja zaangażowana w wymianę dialogową.

    Rodzaje wiadomości:

    Komunikaty wejściowe generowane przez osobę za pomocą środków wejściowych: klawiatura, manipulatory (mysz itp.);

    Komunikaty wyjściowe, które są generowane przez komputer w postaci tekstów, sygnałów dźwiękowych i/lub obrazów i są wyświetlane użytkownikowi na ekranie monitora lub innych urządzeniach wyjściowych informacji.

    Użytkownik generuje komunikaty takie jak:

    Żądanie informacji,

    prośba o pomoc,

    Żądanie operacji lub funkcji,

    Wprowadzanie lub zmiana informacji,

    Wybór pola ramki.

    W odpowiedzi otrzymuje:

    Wskazówki lub pomoc

    forma słowna- fragment tekstu między dwoma sąsiednimi spacjami lub znakami interpunkcyjnymi.

    Analiza morfologiczna - przetwarzanie form wyrazowych poza kontekstem.

    Proceduralna — polega na podświetleniu rdzenia w bieżącej formie wyrazu, która jest następnie identyfikowana.

    Po rozpoznaniu form wyrazowych przeprowadzana jest analiza składniowa komunikatu, której wyniki określają jego strukturę syntaktyczną, czyli zdanie jest parsowane.

    Interfejs realizujący frazową formę dialogu musi: konwertować komunikaty z formy języka naturalnego na reprezentację wewnętrzną i odwrotnie, analizować i syntetyzować komunikaty użytkownika i systemu, śledzić i zapamiętywać przekazaną część dialogu.

    Wady forma frazowa:

    Duże koszty zasobów;

    Brak gwarancji jednoznacznej interpretacji sformułowań;

    Konieczność wpisywania długich, poprawnych gramatycznie fraz.

    Godność forma frazowa - swobodna komunikacja z systemem.

    formularz dyrektywy - korzystanie z poleceń (dyrektyw) specjalnie zaprojektowany język formalny.

    Zespół to zdanie w tym języku opisujące połączone dane, które zawiera identyfikator inicjowanego procesu oraz, jeśli to konieczne, dane do niego.

    Polecenie można wprowadzić:

    Jako ciąg tekstu, specjalnie zaprojektowany format (polecenia MS DOS w wierszu poleceń);

    Naciskając kombinację klawiszy (kombinacje „szybkiego dostępu” aplikacji Windows);

    Manipulując myszą („przeciągnij i upuść” ikon);

    Połączenie drugiej i trzeciej metody.

    Zalety formularz dyrektywy:

    Mała ilość informacji wejściowych;

    Elastyczność - możliwość wyboru operacji jest ograniczona zestawem ważnych poleceń;

    Orientacja na dialog zorientowany na użytkownika;

    Korzystanie z minimalnej powierzchni ekranu lub nieużywanie jej w ogóle;

    Możliwość łączenia z innymi formami.

    Wady formularz dyrektywy:

    Wirtualny brak podpowiedzi na ekranie, co wymaga zapamiętania wprowadzanych poleceń i ich składni;

    Prawie całkowity brak informacji zwrotnej na temat stanu rozpoczętych procesów;

    Potrzeba umiejętności wprowadzania informacji tekstowych lub manipulowania myszą;

    Brak dostosowania użytkownika.

    Forma dyrektywy jest wygodna dla profesjonalnego użytkownika, który zwykle szybko zapamiętuje składnię często używanych poleceń lub kombinacji klawiszy. Zalety formy (elastyczność i dobre właściwości czasowe) są w tym przypadku szczególnie wyraźne.

    formie tabelarycznej - użytkownik wybiera odpowiedź spośród oferowanych przez program. Język dialogowy ma najprostszą składnię i jednoznaczną semantykę, co jest dość łatwe do zaimplementowania. Formularz jest przyjazny dla użytkownika, ponieważ zawsze łatwiej go wybrać, co jest niezbędne dla nieprofesjonalnego użytkownika. Ta forma może być użyta, jeśli zbiór możliwych odpowiedzi na dane pytanie jest skończony. Jeśli liczba możliwych odpowiedzi jest duża (ponad 20), użycie formy tabelarycznej może nie być właściwe.

    Cnoty oraz w formie tabelarycznej:

    Obecność podpowiedzi;

    Zmniejszenie liczby błędów wprowadzania: użytkownik nie wprowadza informacji, ale wskazuje na nią;

    Skrócony czas szkolenia użytkowników;

    Możliwość łączenia z innymi formami;

    W niektórych przypadkach możliwość dostosowania użytkownika.

    Wady formie tabelarycznej:

    Potrzeba umiejętności nawigacji na ekranie;

    Używanie stosunkowo dużego obszaru ekranu do wyświetlania elementów wizualnych;

    Intensywne wykorzystanie zasobów komputera wiąże się z koniecznością ciągłej aktualizacji informacji na ekranie.

    Rodzaje i formy dialogu wybierane są niezależnie od siebie: dowolna forma ma zastosowanie do obu rodzajów dialogów.

    Synchroniczny- okna dialogowe pojawiające się podczas normalnej pracy oprogramowania.

    Asynchroniczny- okna dialogowe pojawiające się z inicjatywy systemu lub użytkownika w przypadku naruszenia scenariusza normalnego procesu. Służą do wysyłania komunikatów alarmowych z systemu lub użytkownika.

    Rozwój dialogów. Etapy projektowania i realizacji dialogów:

    Ustalenie zestawu wymaganych okien dialogowych, ich głównych komunikatów i możliwych scenariuszy - projektowanie abstrakcyjne dialogi;

    Ustalenie rodzaju i formy każdego dialogu, a także składni i semantyki używanych języków – projektowanie konkretne dialogi;

    Dobór urządzeń głównych i dodatkowych oraz zaprojektowanie procesów wejścia-wyjścia dla każdego dialogu, a także wyjaśnienie przesyłanych komunikatów - projekt dialogi techniczne.

    Podstawą abstrakcyjnych okien dialogowych jest ideologia procesu technologicznego, do automatyzacji którego przeznaczony jest produkt programowy.

    Oprócz skryptów użyj diagramy stanu interfejsu lub wykresy dialogowe.

    Wykres okna dialogowego to skierowany wykres ważony, którego każdy wierzchołek jest powiązany z określonym obrazem na ekranie ( rama) lub pewien stan okna dialogowego, charakteryzujący się zestawem akcji dostępnych dla użytkownika. Łuki wychodzące z wierzchołków pokazują możliwe zmiany stanu, gdy użytkownik wykonuje określone czynności. Łuki wychodzące z wierzchołków pokazują możliwe zmiany stanu, gdy użytkownik wykonuje określone czynności. Wagi łuków wskazują warunki przejścia ze stanu do stanu oraz operacje wykonywane podczas przejścia.

    Każda droga na wykresie odpowiada możliwej opcji dialogowej.


    Rysunek 3 - Wykresy abstrakcyjnego dialogu:

    a - dialog kontrolowany przez system; b - okno dialogowe kontrolowane przez użytkownika

    5. Podstawowe elementy graficznych interfejsów użytkownika

    Graficzne interfejsy użytkownika są obsługiwane przez Windows, Apple Macintosh, OS/2 itd. Dla takich interfejsów opracowano zestawy standardowych komponentów interfejsu użytkownika dla każdego systemu operacyjnego.

    Interfejsy zbudowane są w technologii WIMP: W - Windows (okna), I - Ikony (ikony), M - Mysz (mysz), P - Pop-up (menu podręczne lub rozwijane). Głównymi elementami interfejsów graficznych są okna, ikony, komponenty wejścia-wyjścia oraz mysz, która służy jako urządzenie wskazujące i urządzenie do bezpośredniej manipulacji obiektami na ekranie.

    Okno.Okno - prostokątny obszar w ramce fizycznego ekranu. Okno może zmieniać rozmiar i położenie na ekranie.

    Okna główne (okna aplikacji);

    Okna dziecięce lub podrzędne;

    Okna dialogowe;

    Okna informacyjne;

    Okna menu.

    Okno aplikacji Windows zawiera: ramkę ograniczającą obszar roboczy okna, pasek tytułu z przyciskiem menu systemowego i przyciskami do wyboru widoku i wyjścia okna, pasek menu, menu ikon (pasek narzędzi), paski przewijania poziomego i pionowego i pasek stanu.

    okno potomne Windows jest używany w wielu interfejsach programowania dokumentów (MDI). To okno nie zawiera menu. Na pasku tytułu specjalna nazwa identyfikująca skojarzony dokument lub plik. Ikony wszystkich okien podrzędnych są takie same.

    Okno dialogowe System Windows służy do przeglądania i ustawiania różnych trybów działania, wymaganych ustawień lub innych informacji.

    Pasek tytułowy z przyciskiem menu systemowego;

    Komponenty, które pozwalają użytkownikowi wprowadzić lub wybrać odpowiedź;

    Komponenty pomocnicze, które zapewniają podpowiedź (pole podglądu lub przycisk pomocy).

    Rozmiaru okna nie można zmieniać, ale można je przesuwać po ekranie.

    Okna informacyjne dwa typy:

    Okna wiadomości;

    Pomoc okna.

    Okna komunikatów zawierają: tytuł z przyciskiem menu systemowego, tekst komunikatu, jeden lub więcej przycisków reakcji użytkownika (Tak, Nie, Anuluj).

    Okno pomocy zawiera: menu, paski przewijania, obszar informacyjny, podobny do okna aplikacji, ale ma wysoce wyspecjalizowane przeznaczenie.

    Okna menu Okna są używane jako otwierające hierarchiczne panele menu lub jako menu kontekstowe.

    Każdy wiersz okna menu może odpowiadać:

    Zespół;

    Menu następnego poziomu, które wskazuje strzałka;

    Okno dialogowe oznaczone trzema kropkami.

    Dodano wskazanie klawiszy skrótów.

    Piktogramy. Ikona to małe okno z grafiką wyświetlającą zawartość bufora, z którym jest powiązana.

    Rodzaje piktogramów:

    Oprogramowanie powiązane z odpowiednim programem;

    Ikony okien potomnych zapewniające dostęp do różnych dokumentów;

    Ikony paska narzędzi duplikują dostęp do odpowiednich funkcji poprzez menu, zapewniając ich szybki dostęp;

    Ikony obiektów do bezpośredniej manipulacji obiektami.

    Bezpośrednia manipulacja obrazem. Bezpośrednia manipulacja obrazem - jest to możliwość zastąpienia polecenia działania na jakimś obiekcie fizyczną akcją w interfejsie, realizowaną za pomocą myszy. W tym przypadku za adresata uważany jest dowolny obszar ekranu, który można aktywować przesuwając kursor i naciskając przycisk myszy.

    W zależności od reakcji na oddziaływanie rozróżnia się rodzaje adresatów:

    Wskazanie i wybór (rozmieszczenie ikon, definicja aktywnego okna);

    Przyciski ekranowe i „przesuwne” bariery (wykonywanie lub cyklicznie powtarzane czynności (wykonywanie określonych operacji lub rysowanie, dorozumiane, gdy aktywowany jest określony obszar ekranu - przyciski)).

    Dynamiczny sygnał wizualny - zmiana obrazu na ekranie (kursor myszy podczas wykonywania określonych operacji, zmiana obrazu przycisku).

    Komponenty we/wy. Interfejsy obejmują kilka menu: główne lub „rozwijane” menu hierarchiczne, menu ikon (paski narzędzi) oraz menu kontekstowe dla różnych sytuacji. Każde ze wskazanych menu jest komponentem wejścia-wyjścia, który realizuje dialog z użytkownikiem za pomocą formy tabelarycznej.

    Hierarchiczne menu służy do organizowania operacji wykonywanych przez oprogramowanie (jeśli jest ich więcej niż rekomendacji IBM) i zapewnia użytkownikowi ich przegląd. Paski narzędzi i menu kontekstowe zapewniają szybki dostęp do często używanych poleceń, umożliwiając użytkownikowi stosunkowo swobodne poruszanie się.

    Inne formy I/O:

    frazowy,

    tabelaryczny,

    Mieszany.

    6. Implementacja okien dialogowych w graficznym interfejsie użytkownika

    Dialogi obu typów:

    kontrolowane przez użytkownika,

    Kontrolowany przez system.

    Implementacja okien dialogowych sterowanych przez użytkownika. Do realizacji wykorzystywane jest menu różnego typu:

    Podstawowy,

    paski narzędzi,

    Kontekstowe i przyciskowe.

    Jako alternatywę dla menu wskazane jest użycie dyrektywnej formy dialogu, dopasowującej główne polecenia do określonych kombinacji klawiszy. Wskazane jest zapewnienie możliwości sterowania menu za pomocą klawiatury, jeśli przez większość czasu użytkownik wprowadza do systemu tekst lub dane, tj. wchodzi w interakcję z klawiaturą.

    Menu. Menu są projektowane na podstawie wykresów dialogowych tworzonego oprogramowania. Jeśli liczba operacji nie przekracza 5, zwykle używane są przyciski. Jeżeli liczba operacji nie przekracza 9-10, to jest to menu jednopoziomowe. Jeśli liczba operacji jest większa niż 10, używane jest rozwijane dwupoziomowe menu hierarchiczne.

    Rozwijane menu. Pierwszy poziom menu hierarchicznego powinien zawierać nazwy głównych grup operacji.

    Tradycyjnie (zwykle w edytorach tekstowych i graficznych):

    1. pozycja Plik,

    2. pozycja Edytuj,

    3. Widok przedmiotu,

    ostatni akapit Pomoc.

    Liczba poziomów hierarchicznego menu nie powinna przekraczać 2-3 (trudno znaleźć). Liczba operacji w oknie nie powinna przekraczać 7-8 operacji.

    Jeśli liczba operacji przekracza 70-80. Twórcy Microsoft Word zasugerowali adaptacyjny menu hierarchiczne, w którym zawartość okna menu drugiego poziomu ulega ciągłym zmianom, wyświetlając tylko te operacje, z których korzysta użytkownik. Jeśli użytkownik nie znajdzie żądanej operacji, po kilku sekundach lub po naciśnięciu specjalnego przycisku Word wyświetla okno menu w całości.

    7 Interfejsy użytkownika do bezpośredniej manipulacji i ich konstrukcja

    Możliwość bezpośredniej manipulacji zapewniana przez interfejsy WIMP umożliwia tworzenie zorientowanych obiektowo interfejsów bezpośredniej manipulacji dla aplikacji.

    Interfejsy wykorzystują formę dyrektywy okna dialogowego: polecenie jest wprowadzane, gdy określone akcje są wykonywane za pomocą ikony obiektu za pomocą myszy. Głównymi elementami tych interfejsów są: metafory, obiekty, reprezentacje obiektów oraz technologie Drag and Drop („przeciągnij i upuść”).

    Metafory. Metafory- mentalne przeniesienie właściwości lub cech jednego przedmiotu na drugi, coś podobnego do pierwszego. Użycie metafor w interfejsach wiąże się z aktywacją doświadczenia użytkownika.

    Interfejs bezpośredniej manipulacji powinien zapewniać użytkownikowi środowisko zawierające znajome elementy, z którymi użytkownik zetknął się więcej niż raz w czynnościach zawodowych lub w życiu codziennym oraz zapewniać mu możliwość manipulowania poszczególnymi przedmiotami. (Metafora „Wyrzucanie śmieci” służy do usuwania plików).

    Podobne elementy powinny zachowywać się w podobny sposób, elementy wyróżnione tym samym kolorem powinny pozostawać ze sobą w określonej relacji.

    Wskazane jest, aby obrazy nie były zbyt realistyczne, aby nie oszukać oczekiwań użytkownika.

    Metafory i animacja. W realizacji metafor coraz większą rolę odgrywają multimedia, głównie animacja. Wykorzystując animację można nie tylko bawić użytkownika, ale także „przygotować” go na zmianę kadrów, skracając czas potrzebny na dostosowanie się do zmienionej sytuacji.

    https://pandia.ru/text/78/247/images/image005_68.gif">Program implementujący interfejsy animacji nigdy nie jest bezczynny, ponieważ czekając na polecenie użytkownika, nadal wyświetla odpowiednie ramki. Takie programy są oparte na programowanie tymczasowe. W przeciwieństwie do programowania zdarzeń, które pozwala powiązać obraz na ekranie ze zdarzeniami zewnętrznymi i wewnętrznymi w systemie, programowanie czasowe zapewnia zmianę przewidywanego sekwencje ramek w zależności od stanu symulowanych procesów i działań użytkownika.

    Obiekty interfejsu bezpośredniej manipulacji i ich reprezentacje.

    Trzy główne typy obiektów interfejsu bezpośredniej manipulacji to:

    obiekty danych,

    obiekty kontenerowe,

    Obiekty urządzeń.

    Obiekty danych dostarczać użytkownikowi informacji (teksty, obrazy, arkusze kalkulacyjne, muzyka, filmy). W systemie operacyjnym takie obiekty odpowiadają aplikacjom uruchamianym po rozwinięciu obiektu.

    Obiekty kontenerów mogą manipulować swoimi obiektami wewnętrznymi, w tym innymi kontenerami (kopiować je lub sortować w dowolnej kolejności). Typowe pojemniki to foldery, kosze. Po otwarciu kontenera wyświetlane są zapisane w nim komponenty i można nimi manipulować. Komponenty mogą być identyfikowane za pomocą ikon lub prezentowane w tabeli.

    Obiekty urządzeń reprezentują urządzenia istniejące w świecie rzeczywistym: telefony, faksy, drukarki itp. są one używane w odniesieniu do tych urządzeń w abstrakcyjnym świecie interfejsu. Po rozwinięciu takiego obiektu możesz zobaczyć jego ustawienia.

    Każdy obiekt odpowiada jednemu oknu. W stanie początkowym to okno jest reprezentowane przez ikonę, ale w razie potrzeby możesz je otworzyć i wykonać wymagane operacje, takie jak ustawienia obiektów. Okno obiektu w stanie rozwiniętym może zawierać menu i paski narzędzi. Ikona musi odpowiadać menu kontekstowemu zawierającemu listę operacji na obiekcie.

    Nazwa ikony jest tworzona inaczej dla każdego typu obiektu. Ikonom obiektów danych nadawane są nazwy odpowiadające nazwom przechowywanych danych, a typ danych jest kodowany przez samą ikonę. Nazwa ikony kontenera lub ikony urządzenia odnosi się do samego obiektu i dlatego jest niezależna od zawartości.

    Różnica między typami obiektów jest warunkowa, ponieważ ten sam obiekt w różnych sytuacjach może zachowywać się jako obiekt danych, obiekt urządzenia lub obiekt kontenera (drukarka jest obiektem urządzenia, może mieć właściwości obiekt kontenera , może zawierać obiekty danych w kolejce wydruku; reprezentacja w postaci ikony, okno kolejki wydruku, okno ustawień; wskazane jest wskazanie nazwy reprezentacji w tytule okna obiektu).

    TechnologiaCiągnąćorazUpuszczać. Podstawowe zasady bezpośredniej manipulacji opisane w podręczniku IBM User Interface Design Guide:

    Wynik przesunięcia obiektu musi spełniać oczekiwania użytkownika;

    Użytkownicy nie powinni nagle tracić informacji;

    Użytkownik powinien mieć możliwość cofnięcia niewłaściwej akcji.

    Wstępna selekcja - służy jako informacja zwrotna dla użytkownika, aby poinformować go, że obiekt został przechwycony, w systemie Windows służy do tego podświetlenie;

    Wizualizacja ruchu – służy do identyfikacji wykonywanej akcji;

    Wybór celu - służy do identyfikacji miejsca docelowego, pokazując w ten sposób, gdzie obiekt „spadnie”, jeśli zostanie zwolniony w bieżącym czasie;

    Wizualizacja akcji - służąca do wskazania czasu oczekiwania na zakończenie operacji, zazwyczaj służy do tego animacja lub zmiana kształtu kursora na „klepsydrę”.

    Istnieją dwa rodzaje miejsc docelowych: jedno przyjmuje obiekt, a drugie jego kopię (Użytkownik „wyrzuca” dokument do „kosza” – sam dokument ulega zniszczeniu, a jeśli zostanie wysłany do drukarki, to przesyłana jest kopia dokumentu).

    Projektowanie interfejsów bezpośredniej manipulacji. Projekt oparty jest na wykresach dialogowych opracowanych dla konkretnego oprogramowania i obejmuje następujące procedury:

    Tworzenie zestawy obiektów domeny, który powinien być przedstawiony na ekranie, a w tym przypadku jako podstawę stosuje się nie przypadki użycia, ale konceptualny model obszaru tematycznego;

    Analiza przedmioty, definiując je typy oraz reprezentacje, a także listę operacji z tymi obiektami;

    Wyjaśnienie interakcje z obiektami i budowanie matrycy bezpośrednia manipulacja;

    Definicja reprezentacje wizualne przedmioty;

    Rozwój menu okna obiektów oraz menu kontekstowe;

    kreacja prototyp interfejs;

    Testowanie na Łatwość użycia.

    8 inteligentnych elementów interfejsu użytkownika

    Elementy interfejsów użytkownika: Master, Advisor, Agent. Podjęto wiele prób stworzenia uspołecznionego interfejsu użytkownika. Taki interfejs opiera się na idei stworzenia spersonalizowanego, czyli „posiadającego osobowość” interfejsu. Programy rozrywkowe, takie jak Koty (koty) i Psy (psy), które implementują złożone zachowania zwierząt w różnych sytuacjach, pokazują, że jest to technicznie zadanie całkowicie do rozwiązania.

    doradcy. Mają formę podpowiedzi. Dostęp do nich można uzyskać za pomocą menu pomocy, wiersza poleceń okna lub z menu podręcznego. Doradcy prowadzą użytkowników przez konkretne zadania.

    Mistrzowie. Program kreator służy do wykonywania typowych, ale rzadko wykonywanych zadań przez pojedynczego użytkownika (instalacja programów lub sprzętu). Wykonywanie takich działań wymaga od użytkownika podejmowania złożonych, powiązanych ze sobą decyzji, których kolejność jest dyktowana przez program kreatora. Inteligentni kreatorzy są w stanie pokazać wyniki odpowiedzi użytkownika na poprzednie pytania w oknie przeglądarki na każdym kroku, pomagając temu ostatniemu w nawigacji w sytuacji.

    Kreator implementuje sekwencyjny lub podobny do drzewa skrypt okna dialogowego. Wskazane jest, aby używać go do rozwiązywania dobrze ustrukturyzowanych, sekwencyjnych zadań.

    W takim przypadku konieczne jest:

    Zapewnij użytkownikowi możliwość powrotu do poprzedniego kroku;

    Zapewnić możliwość anulowania pracy Kreatora;

    Ponumeruj kroki i podaj użytkownikowi liczbę kroków w Master, zwłaszcza jeśli jest więcej niż trzy takie kroki;

    Wyjaśnij użytkownikowi każdy krok;

    Jeśli to możliwe, zademonstruj wynik operacji już wykonanych na każdym kroku.

    Agenci oprogramowania. Używany do rutynowej pracy. Główne funkcje Agentów-Pomocników to: obserwacja, wyszukiwanie, kontrola. Wyróżnić:

    programy agentowe skonfigurowane do wykonywania określonych zadań;

    programy agentowe zdolne do uczenia się (naprawiania działań użytkownika (jak magnetofon)).

    Jak każde urządzenie techniczne, komputer wymienia informacje z osobą za pomocą zestawu pewnych reguł, które są obowiązkowe zarówno dla maszyny, jak i osoby. Reguły te w literaturze komputerowej nazywane są interfejsami. Interfejs powinien być jasny i niezrozumiały, przyjazny i nie. Z tym wiąże się wiele przymiotników. Ale w jednym jest stały: jest i nigdzie nie możesz od niego uciec.

    Interfejs- są to zasady interakcji systemu operacyjnego z użytkownikami, a także z sąsiednimi poziomami w sieci komputerowej. Technologia komunikacji między człowiekiem a komputerem zależy od interfejsu.

    Interfejs To przede wszystkim zbiór zasad. Jak wszystkie reguły, można je uogólniać, zebrać w „kod”, pogrupować według wspólnej cechy. Τᴀᴋᴎᴍ , doszliśmy do koncepcji „typu interfejsu” jako kombinacji podobieństwa sposobów interakcji między ludźmi i komputerami. Możemy zaproponować następującą schematyczną klasyfikację różnych interfejsów komunikacji między człowiekiem a komputerem (rys. 1.).

    Technologia pakietowa. Historycznie ten rodzaj technologii pojawił się jako pierwszy. Istniał już na maszynach przekaźnikowych Sues i Zuse (Niemcy, 1937). Jego idea jest prosta: wejście komputera to ciąg znaków, w którym, zgodnie z pewnymi zasadami, wskazana jest sekwencja programów uruchomionych do wykonania. Po wykonaniu następnego programu uruchamiany jest następny i tak dalej. Maszyna, zgodnie z pewnymi regułami, sama odnajduje polecenia i dane. Sekwencją tą może być np. taśma dziurkowana, stos kart dziurkowanych, sekwencja naciśnięć klawiszy elektrycznej maszyny do pisania (np. CONSUL). Maszyna wysyła również swoje wiadomości na perforator, drukarkę alfanumeryczną (ATsPU), taśmę do pisania.

    Taka maszyna to „czarna skrzynka” (dokładniej „biała szafka”), do której nieustannie podawane są informacje i która również nieustannie „informuje” świat o swoim stanie. Osoba tutaj ma niewielki wpływ na działanie maszyny - może jedynie zawiesić pracę maszyny, zmienić program i ponownie uruchomić komputer. Następnie, gdy maszyny stały się potężniejsze i mogły obsługiwać kilku użytkowników jednocześnie, wieczne oczekiwanie użytkownika w stylu: „Wysłałem dane do maszyny. Czekam na odpowiedź. I czy w ogóle odpowie?” - stało się, delikatnie mówiąc, konieczne do jedzenia. Ponadto centra komputerowe, po gazetach, stały się drugim co do wielkości „producentem” makulatury. Z tego powodu, wraz z pojawieniem się wyświetlaczy alfanumerycznych, rozpoczęła się era prawdziwie przyjaznej dla użytkownika technologii, wiersza poleceń.

    interfejs poleceń.

    Interfejs poleceń jest zwykle tak nazywany, ponieważ w tym typie interfejsu osoba wydaje „polecenia” komputerowi, a komputer je wykonuje i przekazuje wynik osobie. Interfejs poleceń jest zaimplementowany jako technologia wsadowa i technologia wiersza poleceń.

    Dzięki tej technologii klawiatura służy jako jedyny sposób wprowadzania informacji od osoby do komputera, a komputer wysyła informacje do osoby za pomocą wyświetlacza alfanumerycznego (monitora). Ta kombinacja (monitor + klawiatura) stała się znana jako terminal lub konsola.

    Polecenia wpisywane są w wierszu poleceń. Linia poleceń to znak zachęty, a migający prostokąt - kursor.
    Hostowane na ref.rf
    Po naciśnięciu klawisza w miejscu kursora pojawiają się znaki, a sam kursor przesuwa się w prawo. Komenda kończy się poprzez naciśnięcie klawisza Enter (lub Return.), po czym następuje przejście na początek następnej linii. To właśnie z tej pozycji komputer wyświetla na monitorze wyniki swojej pracy. Następnie proces się powtarza.

    Technologia wiersza poleceń działała już na monochromatycznych wyświetlaczach alfanumerycznych. Ponieważ można było wpisywać tylko litery, cyfry i znaki interpunkcyjne, parametry techniczne wyświetlacza nie były istotne. Jako monitor można użyć odbiornika telewizyjnego, a nawet lampy oscyloskopowej.

    Obie te technologie są zaimplementowane w postaci interfejsu poleceń - maszyny są wprowadzane na wejście polecenia i niejako na nie „odpowiada”.

    Pliki tekstowe stały się dominującym typem plików podczas pracy z interfejsem poleceń - one i tylko one mogły być tworzone za pomocą klawiatury. Najbardziej rozpowszechnionym zastosowaniem interfejsu wiersza poleceń jest pojawienie się systemu operacyjnego UNIX i pojawienie się pierwszych ośmiobitowych komputerów osobistych z wieloplatformowym systemem operacyjnym CP/M.

    Interfejs WIMP(Okno - okno, Obraz - obraz, Menu - menu, Wskaźnik - wskaźnik). Cechą charakterystyczną tego typu interfejsu jest to, że dialog z użytkownikiem prowadzony jest nie za pomocą poleceń, ale za pomocą obrazów graficznych - menu, okien i innych elementów. Chociaż polecenia maszynowe są podawane w tym interfejsie, odbywa się to „pośrednio”, za pomocą obrazów graficznych. Idea interfejsu graficznego zrodziła się w połowie lat 70., kiedy w Xerox Palo Alto Research Center (PARC) opracowano koncepcję interfejsu wizualnego. Założeniem interfejsu graficznego było skrócenie czasu reakcji komputera na polecenie, zwiększenie ilości pamięci RAM, a także rozbudowa bazy technicznej komputerów. Sprzętową podstawą koncepcji było oczywiście pojawienie się wyświetlaczy alfanumerycznych na komputerach, a te wyświetlacze już miały takie efekty jak „migotanie” znaków, inwersja kolorów (odwrócenie stylu białych znaków na czarnym tle, czyli czarne znaki na białym tle), znaki podkreślenia. Efekty te nie rozciągały się na cały ekran, a jedynie na jedną lub więcej postaci. Kolejnym krokiem było stworzenie wyświetlacza kolorowego, który umożliwia wraz z tymi efektami symbole w 16 kolorach na tle z paletą (czyli zestawem kolorów) 8 kolorów. Po pojawieniu się wyświetlaczy graficznych, z możliwością wyświetlania dowolnych obrazów graficznych w postaci wielu kropek na ekranie o różnych kolorach, wyobraźnia w korzystaniu z ekranu nie ma granic! Pierwszy system GUI PARC, 8010 Star Information System, pojawił się cztery miesiące przed wydaniem pierwszego komputera IBM w 1981 roku. Początkowo interfejs wizualny był używany tylko w programach. Stopniowo zaczął przenosić się na systemy operacyjne używane najpierw na komputerach Atari i Apple Macintosh, a następnie na komputerach kompatybilnych z IBM.

    Od dawna, również pod wpływem tych koncepcji, nastąpił proces ujednolicenia używania klawiatury i myszy przez programy użytkowe. Połączenie tych dwóch trendów doprowadziło do stworzenia interfejsu użytkownika, za pomocą którego przy minimalnym czasie i pieniądzach poświęconych na przekwalifikowanie personelu można pracować z dowolnym oprogramowaniem. Opis tego interfejsu, wspólnego dla wszystkich aplikacji i systemów operacyjnych, jest przedmiotem tej części.

    Graficzny interfejs użytkownika podczas swojego rozwoju przeszedł dwa etapy i jest realizowany na dwóch poziomach technologii: prosty interfejs graficzny i „czysty” interfejs WIMP.

    W pierwszym etapie interfejs graficzny był bardzo podobny do technologii wiersza poleceń. Różnice w stosunku do technologii wiersza poleceń były następujące:

    Ú Podczas wyświetlania symboli dopuszczono podświetlenie niektórych symboli kolorem, odwróconym obrazem, podkreśleniem i miganiem. Dzięki temu wzrosła wyrazistość obrazu.

    Ú Biorąc pod uwagę zależność od konkretnej implementacji interfejsu graficznego, kursor może być reprezentowany nie tylko przez migoczący prostokąt, ale także przez pewien obszar obejmujący kilka znaków, a nawet część ekranu. Ten zaznaczony obszar różni się od innych niewybranych części (zwykle kolorem).

    Ú Naciśnięcie klawisza Enter nie zawsze powoduje wykonanie polecenia i przejście do następnego wiersza. Reakcja na naciśnięcie dowolnego klawisza zależy w dużej mierze od tego, w której części ekranu znajdował się kursor.

    Ú Oprócz klawisza Enter na klawiaturze coraz częściej używane są szare klawisze kursora (patrz sekcja dotycząca klawiatury w numerze 3 tej serii).

    Ú Już w tej edycji interfejsu graficznego zaczęto używać manipulatorów (takich jak mysz, trackball itp. – patrz Rysunek A.4.) Οʜᴎ pozwalały szybko wybrać żądaną część ekranu i przesunąć kursor.

    Podsumowując, możemy podać następujące charakterystyczne cechy tego interfejsu:

    Ú Zaznacz obszary ekranu.

    Ú Zmiana definicji klawiszy klawiatury na podstawie kontekstu.

    Ú Używanie manipulatorów i szarych klawiszy klawiatury do sterowania kursorem.

    Ú Szerokie wykorzystanie kolorowych monitorów.

    Pojawienie się tego typu interfejsu zbiega się z powszechnym wykorzystaniem systemu operacyjnego MS-DOS. To ona wprowadziła ten interfejs do mas, dzięki czemu lata 80-te charakteryzowały się udoskonaleniem tego typu interfejsu, poprawą charakterystyki wyświetlania znaków i innych parametrów monitora.

    Typowym przykładem użycia tego rodzaju interfejsu jest powłoka plików Nortron Commander i edytor tekstu Multi-Edit. A edytory tekstu Lexicon, ChiWriter i edytor tekstu Microsoft Word for Dos są przykładem tego, jak ten interfejs prześcignął samego siebie.

    Drugim etapem rozwoju interfejsu graficznego był „czysty” interfejs WIMP.Ten podgatunek interfejsu charakteryzuje się następującymi cechami:

    Ú Cała praca z programami, plikami i dokumentami odbywa się w oknach - określonych częściach ekranu obramowanych ramką.

    Ú Wszystkie programy, pliki, dokumenty, urządzenia i inne obiekty są reprezentowane jako ikony - ikony. Po otwarciu ikony zamieniają się w okna.

    Ú Wszystkie akcje z obiektami są realizowane za pomocą menu. Choć menu pojawiło się na pierwszym etapie tworzenia interfejsu graficznego, nie miało w nim dominującego znaczenia, a służyło jedynie jako dodatek do wiersza poleceń. W czystym interfejsie WIMP menu staje się głównym elementem sterowania.

    Ú Szerokie użycie manipulatorów do wskazywania obiektów. Manipulator przestaje być tylko zabawką - dodatkiem do klawiatury, ale staje się głównym elementem sterującym. Za pomocą manipulatora wskazują dowolny obszar ekranu, okna lub ikony, wybierają go, a dopiero potem, poprzez menu lub za pomocą innych technologii, sterują nimi.

    Należy zauważyć, że WIMP wymaga do jego implementacji kolorowego wyświetlacza rastrowego o wysokiej rozdzielczości i manipulatora.
    Hostowane na ref.rf
    Ponadto programy skoncentrowane na tego typu interfejsie nakładają zwiększone wymagania na wydajność komputera, rozmiar pamięci, przepustowość magistrali itp. Jednocześnie tego typu interfejs jest najłatwiejszy do nauczenia i intuicyjny. Z tego powodu interfejs WIMP stał się obecnie de facto standardem.

    Uderzającym przykładem programów z interfejsem graficznym jest system operacyjny Microsoft Windows.

    JEDWAB- interfejs (Mowa - mowa, Obraz - obraz, Język - język, Wiedza - wiedza). Ten rodzaj interfejsu jest najbliższy zwykłej, ludzkiej formie komunikacji. W ramach tego interfejsu odbywa się normalna „rozmowa” między osobą a komputerem. Jednocześnie komputer sam odnajduje polecenia, analizując ludzką mowę i znajdując w niej kluczowe frazy. Konwertuje również wynik wykonania polecenia do postaci czytelnej dla człowieka. Ten typ interfejsu jest najbardziej wymagający pod względem zasobów sprzętowych komputera i pod tym względem jest używany głównie do celów wojskowych.

    Od połowy lat 90., po pojawieniu się niedrogich kart dźwiękowych i powszechnym stosowaniu technologii rozpoznawania mowy, pojawiła się tak zwana „technologia mowy” interfejsu SILK. Dzięki tej technologii polecenia są wydawane głosem poprzez wymawianie specjalnych słów zastrzeżonych - poleceń.

    Słowa powinny być wymawiane wyraźnie, w tym samym tempie. Między słowami jest przerwa. Ze względu na niedorozwój algorytmu rozpoznawania mowy, takie systemy wymagają indywidualnej wstępnej konfiguracji dla każdego konkretnego użytkownika.

    Technologia „mowy” to najprostsza implementacja interfejsu SILK.

    Technologia biometryczna („Interfejs naśladujący”).

    Ta technologia powstała pod koniec lat 90. i jest wciąż rozwijana w momencie pisania tego tekstu. Do sterowania komputerem używa się wyrazu twarzy osoby, kierunku jego spojrzenia, wielkości źrenicy i innych znaków. Do identyfikacji użytkownika wykorzystywany jest wzór tęczówki jego oczu, odciski palców i inne unikalne informacje. Obrazy są odczytywane z cyfrowej kamery wideo, a następnie z tego obrazu wyodrębniane są polecenia za pomocą specjalnych programów do rozpoznawania obrazów. Ta technologia prawdopodobnie zajmie swoje miejsce w oprogramowaniu i aplikacjach, w których ważna jest dokładna identyfikacja użytkownika komputera.

    mob_info