Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI BI-TUR 2. Začlenění HCI do životního cyklu software Metody softwarového inženýrství a jejich vztah k uživatelům Začlenění HCI do každého kroku návrhu
Jak to jde dohromady Softwarové inženýrství je metoda, jak porozumět životnímu cyklu aplikace Pracuje se vstupními požadavky (requirements) Vyhodnocuje jejich splnění HCI je metoda, jak porozumět cílům uživatelů a jejich chování Zjišťuje a popisuje požadavky na věci Vyhodnocuje použití věcí Požadavky a vyhodnocení jsou přirozenými styčnými body Každý krok softwarového inženýrství má mít své vyhodnocení
Reprezentace uživatele Tradiční metody softwarového inženýrství (Structured Analysis aand Design Method aj.): uživatel jako objekt zkoumání ( přírodopis ) zastoupen výsledky průzkumu v požadavcích Většina moderních metod (různé varianty agilního a iterativního vývoje, Rapid Application Development): uživatel jako člen týmu často zástupce ( business champion ) hodnotí modely, prototypy, software odpovídá na otázky (doménový expert)
Iterativní metoda vývoje počáteční plánování požadavky plánování analýza a návrh implementace nasazení vyhodnocení testování [zdroj: Wikipedia]
Formativní fáze požadavky počáteční plánování plánování funkčnost estetika interoperabilita konzistence s okolními artefakty interpretivní metody průzkumu pracovní postup a jeho kontext charakteristiky uživatelů motivace uživatelů sociální role artefaktu doménové postupy doménová terminologie
Formativní fáze standardní komponenty standardní grafické výrazové prostředky doménové postupy doménová terminologie prototypování prediktivní vyhodnocení analýza a návrh implementace nasazení pracovní postup a jeho kontext charakteristiky uživatelů motivace uživatelů sociální role artefaktu postupy podpory uživatele
Za účelem analýza a návrh testu porozumění realitě ověření nápadu předpovědi použitelnosti identifikace potíží zlepšení návrhu implementace nasazení
Sumativní fáze testování použitelnosti interpretivní metody (terénní pozorování, interview ) monitorování, analýza webu vyhodnocení testování
Manifest agilních metod We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. [zdroj: Wikipedia]
Agilní metody zapojení uživatelů do vývojového týmu komunikace nejlépe pomocí fungujícího software prototypy i pozdní návrhy vítány pružná reakce rychlá obrátka lehkotonážní metody HCI [zdroj: Wikipedia]
Postavení uživatele v agilních metodách Styčný důstojník zástupce uživatelů v týmu Release artefaktu v rychlém sledu Agilní metody nemilují dokumentaci Fungující software jako nástroj komunikace s uživateli Dokud není hotová první verze? Srozumitelné a živé modely prototypy, komiks (storyboarding), diagramy
HCI a CASE modely HCI Modely uživatele a interakce Z hlediska uživatele Artefakt je černá skřínka CASE Modely jako specifikace vlastností artefaktu Uživatel je vně artefaktu
Zdroje vědomostí pro CASE modely Analýza domény Analýza kontextu Interpretivní průzkum Analýza úloh Model domény Model aktivit Případy použití Požadavky interoperability Požadavky funkce
Cíle uživatele a případy užití Cíl uživatele: něco, co dává smysl a je užitečné z hlediska uživatele Případ užití je definován stejně Ale: některé cíle (vyšší úrovně) odpovídají případům užití, jiné spíše aktivitám Případy užití nevyjadřují úmysly Případy užití nevyjadřují možné posloupnosti akcí Integrace HCI do postupů, založených na případech užití (různé varianty Unified Process), vyžaduje přizpůsobení jejich úrovně cílům "Each use case focuses on describing how to achieve a goal or a task. For most software projects, this means that multiple, perhaps dozens of use cases are needed to define the scope of the new system. The degree of formality of a particular software project and the stage of the project will influence the level of detail required in each use case." [
Iterativní modelování Příklad: Agile Model Driven Development (AMDD) Založen na tvorbě modelů v míře nezbytně nutné pro danou iteraci modely požadavků modely architektury modely iterace atd. Modely jsou živé, mohou být spuštěny, analyzovány HCI problém: jsou tyto modely srozumitelné zúčastněným uživatelům?