Uživatelská rozhraní Eduard Sojka, Roman Szturc, Martin Němec, Jan Plaček Léto 2003/4 VŠB – Technická univerzita Ostrava
2 O čem předmět bude? (1) O rozhraní („interfejsu“) mezi počítačovým programem a jeho obsluhou. O jeho vzhledu (jak by mělo vypadat) O jeho realizaci (jak jej naprogramovat) O jeho testování (jak zjistit, zda vyhovuje uživateli)
3 O čem předmět bude? (2) Hlavně o designu a konstrukci grafického rozhraní programů = GUI
4 O čem předmět bude? (3) Také ale trochu o designu www stránek
5 Co ponecháme více či méně stranou? (1) Dnes již poněkud historická rozhraní
6 Co ponecháme stranou? (2) Pro nás zatím poněkud speciální rozhraní
7 Co ponecháme úplně stranou? (3) Zatím poněkud futuristická rozhraní
8 Co ještě ponecháme stranou? (4) Další speciální rozhraní Komunikace mluvenou řečí Komunikace gesty A jiná …
9 HCI: Historie (1) ENIAC (1943), IBM
10 HCI: Historie (2) Mark I (1944), Harvard University
11 HCI: Historie (3) Stretch (1961), IBM
12 Dnešní situace při konstrukci GUI? (1) Dnes pro konstrukci GUI máme: Velmi slušné vzory (programy) s nimiž denně pracujeme Důsledek: Nejhrubší chyby by se dnes už vyskytovat neměly. Přesto ale… (Předpokládá se samozřejmě, že v implementaci chyby nejsou.) Velmi slušné knihovny prvků GUI (rozumně předvolené hodnoty, nativní vzhled, …)
13 Bývá GUI vždy v pořádku? (0) Komentář k následujícím ukázkám: Největší problémy vznikají tehdy, jestliže produkt neodpovídá stylu práce uživatele (např. často používané příkazy jsou schovány hluboko ve víceúrovňových menu, nelogická struktura menu, nelogická struktura dotazů, …). To ale nebylo možné zachytit na snímky…
14 Bývá GUI vždy v pořádku? (1)
15 Bývá GUI vždy v pořádku? (2)
16 Bývá GUI vždy v pořádku? (3)
17 Bývá GUI vždy v pořádku? (4) MS Word
18 Bývá GUI vždy v pořádku? (5) ZN N S+S
19 Bývá GUI vždy v pořádku? (6) MS Win 95
20 Bývá GUI vždy v pořádku? (7) KatIs VŠB MS Visual Basic 5.0
21 Bývá GUI vždy v pořádku? (8) Pondělní cvičení
22 Bývá GUI vždy v pořádku? (9) Python, 1998
23 Bývá GUI vždy v pořádku? (10) Google (minulý týden)
24 Bývá GUI vždy v pořádku? (11) Barborka, 2004
25 Bývá GUI vždy v pořádku – shrnutí (1) Typický problém konstrukce UI / GUI: Naprogramováno bývá bezchybně… (samozřejmé, ale jen to nestačí) Přesto se ale uživateli vůbec nemusí líbit. Nutí ho pracovat nepohodlně, pro něj nezvykle, nelogicky … (Naštěstí si při tom uživatel dnes ještě často myslí, že chyba je na jeho straně)
26 Bývá GUI vždy v pořádku – shrnutí (2) Vývoj GUI vyhovujícího uživateli je obtížný. (Sledujte, jak se GUI postupem času měnilo u některých význačných produktů.) Neredukujte tvorbu GUI na „žonglování“ s programátorskými pojmy (jazyky, knihovny, objekty, …)! Ty tvoří UI pro vás. Budoucího uživatele nic takového nejspíš vůbec nezajímá.
27 Bývá GUI vždy v pořádku – shrnutí (3) Bezchybná realizace je samozřejmá. Důležité je ale vědět, co se má realizovat. Tato znalost také má i větší životnost. „Geniální knoflíky a kartotéka“
28 Bývá GUI vždy v pořádku – shrnutí (4) Zdá se vám návrh GUI jednoduchý? Když ano, není to jen na místech, kde máte vzory? Tam už návrh za vás udělali jiní. Dokázali byste navrhnout komunikaci tak, aby se váš návrh stal vzorem vzorem pro jiné?
29 K obsahu předmětu (1) Motivace ke „studiu“: Dobré uživatelské rozhraní má pro program zásadní význam! Jeho návrh a realizace však nejsou obvykle jednoduché. Cíl předmětu: Různé pohledy na návrh a realizaci GUI, a to teoreticky (přednášky) i prakticky (cvičení). (Na rozdíl od přístupu redukujícího problém na zvládnutí nějaké jediné knihovny prvků GUI.)
30 K obsahu předmětu (2) Úvod – encyklopedický průvodce návrhem a tvorbou GUI. Témata přednášek: Tvorba GUI s využitím vyšších jazyků (skriptovacích) jazyků (Tcl, Python), prototypy. O návrhu vzhledu a chování GUI. Tvorba GUI s využitím systémových programovacích jazyků (Java, C) a knihoven prvků GUI (Swing, wxWindows).
31 K obsahu předmětu (3) Témata cvičení: Tvorba GUI s využitím vyšších jazyků (skriptovacích) jazyků (Tcl, Python). Návrh vzhledu GUI. Tvorba GUI s využitím systémových programovacích jazyků (Java, C) a knihoven prvků GUI (Swing, wxWindows, …).
32 K obsahu předmětu (4) Projekt: Zvolit zadání (nikoli složité, řešíme jen GUI). Realizovat v „nižším jazyce“ {Java | C} s využitím knihoven prvků GUI { Swing | Awt | wxWindows | Qt | MFC | … }. Provést návrh vzhledu rozhraní. Realizovat ve „vyšším jazyce“ {Python | Tcl}.
33 K obsahu předmětu (4) Materiály Poznámky k přednáškám (tyto „slajdy“) Návody do jednotlivých cvičení (kuchařky typu „jak na to“) Doplňková nepovinná literatura (manuály, knihy, články) Různé instalační soubory G:\VYUKA\456\URO (postupně)