Návrhové vzory pro GUI
|
|
- Kamil Marek
- před 6 lety
- Počet zobrazení:
Transkript
1 Návrhové vzory pro GUI RICHARD LIPKA
2 Základní struktura GUI Vstup od uživatele Propojení s periferiemi Zpracování událostí Co se má stát po vstupu Spojení s jádrem programu Užitečná činnost Zpracování vstupu (od OS) Grafický subsystém Vykreslení obrazu Reakce na události Vlastní činnost Vykreslování UUR - NÁVRH APLIKACE 2
3 Interakce s uživatelem OS zajišťuje komunikaci s periferiemi Jednoduchá komunikace Stisknutí tlačítka Pohyb myši Jedna jasná událost z okolí Gesta Dvojklik, trojklik Gesta myši, drag and drop Více dotyková zařízení Klávesové kombinace Stisk tlačítka Kinect a podobná zařízení gesta rukou Potřebuji je rozpoznávat V ideálním případě jejich rozpoznání zajistí OS / platforma Kde to jde reagovat na gesta - univerzálnější Správa přerušení (HW) Ovladač zařízení Detekce gest Vznik události Obsluha OS Platforma Aplikace UUR - NÁVRH APLIKACE 3
4 Událostní smyčka 1 proces (CPU) může vykonávat jen 1 program Pevně daná posloupnost akcí Můžu se ptát jestli proběhla událost potřebuji nekonečný cyklus Proces musí zajistit Sledování událostí Rozpoznání gest (pokud je nedělá někdo za něj) Reakci na události Aktualizaci vzhledu Včetně změn kurzoru, podbarvení tlačítek Smyčka funguje ve většině technologií sama Nenarušovat ji, jen využít Pokračovat? Vezmi událost z fronty Je tam? ne ano ano Překresli okno Zavolej obsluhu ne UUR - NÁVRH APLIKACE 4
5 Zpracování události Každé události je třeba nastavit obsluhu Běží uvnitř smyčky událostí krátká a rychlá (nebo nové vlákno)! jinak GUI zamrzne! Platforma obvykle dokáže zpracovat základní gesta Kliknutí na obrazovku Událost myši pozice, identifikace tlačítka Lze získat z OS / ovladače příslušného zařízení Stisk tlačítka V důsledku stisknutí levého tlačítka myši nad komponentou tlačítko (nebo stisknutí klávesnicí, nebo stisknutí na dotykovém zařízení) Platforma musí zjistit že k ní došlo (OS nerozumí vnitřku okna, pokud není nativní) Platforma může vytvořit odpovídající událost, reagovat na ni (univerzálnější) Pozor, gesto může existovat s původní událostí lze reagovat na obojí (ale chci to?) UUR - NÁVRH APLIKACE 5
6 Důležité aspekty vývoje Návrh je naprosto nezbytný Nejdřív na papíře / v modelovacím nástroji! Nikdy bez spolupráce s uživatelem! (nebo alespoň bez dobré znalosti jeho práce) Iterativní design Prvotní návrh málokdy funguje, počítat s tím Chyby a problémy se často projeví až při testování / skutečném používání obtížné testovat GUI bez funkčního backendu Všechny fáze konzultovat s uživatelem / testovat Držet se zvyklostí platformy Často existují odpovídající manuály (Windows, Mac OS, Android) Uživatel se v aplikaci snáze vyzná Pozor na vstupy Cokoliv co uživatel zadává je podezřelé testovat, kontrolovat, upozorňovat UUR - NÁVRH APLIKACE 6
7 Důležité aspekty vývoje Pozor na zpracování chyb Nikdy je neskrývejte Nezobrazujte uživateli nic čemu nerozumí logy pro vývojáře, srozumitelná chybová hlášení Stabilní aplikace Uživatel si vytváří mentální mapu aplikace neměnit pozice prvků, neskrývat - nepomáhá to Uživatele lze sledovat Existuje řada studií o tom kam uživatelé koukají, co vidí dřív a co později Aplikace může logovat své používání je poznat co a jak se používá UUR - NÁVRH APLIKACE 7
8 Řízení aplikace - doporučení Umožněte ovládání myší i klávesnicí Klávesové zkratky urychlují práci Myš občas nefunguje nespoléhat jen na ni (podle možností) Popisujte srozumitelně všechny prvky Jasné popisy tlačítek a menu Kontextová nápověda (popup) když je text moc dlouhý Vratné akce Umožněte uživateli vracet jednotlivé úklony ( zpět ve Wordu) Nepovolte destruktivní akce bez ověření Okamžitá reakce Nikdy nenechte GUI zamrznout, vždy zobrazujte jak dlouho bude ještě pracovat (nebo alespoň že je vytížené) Umožněte zastavení probíhajících činností bez poškození dat Konzistentní GUI Seskupujte související ovládací prvky Reagujte na chyby vždy stejně dialog, pomocný výpis, stavová lišta UUR - NÁVRH APLIKACE 8
9 Dělení aplikace na vrstvy Zapouzdření = komunikace jen přes definovaná rozhraní implementace je skrytá před ostatními vrstvy jsou na sobě nezávislé snadná záměna a spolupráce na jednotlivých částech aplikace Soudržnost (cohesion) : 1 entita, 1 úkol Minimální provázanost (loose coupling): kde to jde vyhnout se závislostem Obojí lze měřit, nespoléhat slepě na metriky A D A D B E B E C F C << Interface >> F UUR - NÁVRH APLIKACE 9
10 Vrstvení aplikace třívrstvá architektura Prezentační vrstva Uživatelské rozhraní Přijímá pokyny a převádí výsledky do uživatelem pochopitelné podoby Logická vrstva Aplikační procesy, výpočty Datová vrstva Ukládání a získávání dat (databáze / soubory) UUR - NÁVRH APLIKACE 10
11 Návrhové vzory Poslední přednáška OOP! Vzorečky pro tvorbu programů Pokrývají základní situace které se opakovaně objevují Usnadňují komunikaci mezi vývojáři a návrháři (můžu pojmenovat i složitější struktury) Vyzkoušená a funkční řešení urychlují návrh a vývoj!!! Pokud jsou správně použity!!! Je dobré je znát a rozumět jim, není nutné je používat vždy (výhody se obvykle projeví u větších a dlouhodobě udržovaných projektů) Z roku 1995 (GoF) - Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, 1995 Pro jazyk C++ - řada věcí v Javě zadarmo podporována návrhem jazyka 23 vzorů, 3 skupiny V knihovně česká verze (Návrh programů pomocí vzorů : stavební kameny objektově orientovaných programů) UUR - NÁVRH APLIKACE 11
12 Návrhové vzory potřebné pro GUI Architektonické vzory (doplněné později) Model-View-Controler Model-View-Presenter Model-View-ViewPresenter Konstrukční vzory Tovární metoda (Factory) Postupem času se objevily další vzory Strukturální vzory Kompozit [Strom, graf] (Composite) Vzory chování Pozorovatel (Observer) Prostředník (Mediator) Iterátor (Iterator) Strategie (Strategy) Ozdoba (Decorator) Velké množství informací je možné nalézt na internetu (bohužel obvykle bez podrobného rozboru) UUR - NÁVRH APLIKACE 12
13 Pozorovatel (Observer) Univerzální obsluha událostí Pozorovatel (obvykle rozhraní nebo abstraktní třída) a jeho potomci Metoda notify() pro oznámení změny Pozorovaný Reference na pozorovatele Registrace a deregistrace Může vést k memory leakům, pokud se pozorovatelé neodhlašují Základ pro složitější vzory V Javě třída Observable a rozhraní Observer Obvykle je třeba vlastní implementace nechci dědit od Observable Observable addobserver() deleteobserver (Observer o) haschanged() clearchanged() setchanged() notifyobservers() notifyobservers (Object o) Observer update (Observable o Object arg) UUR - NÁVRH APLIKACE 13
14 Prostředník (Mediator) Komunikace mezi objekty aniž by na sebe měly referenci Zdroj odesílá zprávy do schránky Cíle si zprávy ze schránky vybírají Zdroj a cíl může být stejný objekt, peer to peer komunikace Umožňuje asynchronní komunikaci větší míra oddělení vrstev Běžný ve složitějších frameworcích (OSGi) Mediator a Colleague (Producer a Consumer) obvykle reprezentováni rozhraním Pro příjem zpráv lze využít vzor Observer Mediátor obvykle umožňuje filtrování zpráv pro posluchače (podle zdroje nebo obsahu zprávy) UUR - NÁVRH APLIKACE 14
15 Model-View-Controller (MVC) Klasický model komunikace počítače s člověkem, nejstarší Dělí GUI na 3 moduly Model: udržuje stav systému, obsahuje logiku aplikace aktivní nebo pasivní View: zobrazuje systém uživateli na základě informací z modelu Controller: Přijímá vstup od uživatele, provádí změny v modelu, volí vhodné view pro výstup Typické pro webové aplikace Model backend aplikace View zobrazované html Controller zpracování vrácených formulářů Velmi často hierarchický (pro každou komponentu) UUR - NÁVRH APLIKACE 15
16 Model-View-Presenter (MVP) Podobný jako MVC, view může být pasivní Model: rozhraní pro přístup k datům, logika aplikace View: Pasivní rozhraní které zobrazuje data Supervising controller: view navíc zpracovává vstup od uživatele Presenter: Získává data z modelu a předává je view Pokud je víc view, pro každé musí být vlastní presenter UUR - NÁVRH APLIKACE 16
17 Model-View-ViewModel (MVVM) Nejnovější, vytvořený v Microsoft Model: doménový model, data, logika aplikace View: prezentační vrstva - vstup i výstup pro uživatele ViewModel: abstrakce view pro model binding dat mezi view a viewmodel obraz vstupních a výstupních polí (nepotřebuje referenci na view, binding zajistí framework) může být doplněn o separátní controllery UUR - NÁVRH APLIKACE 17
18 MVC vs. MVP vs. MVVM Model a View víceméně vždy totéž Model: data a logika aplikace View: to co vidí uživatel a s čím může pracovat (formuláře, tlačítka, stránky na webu, ) Controler: Ovladače pro uživatele, přímo manipuluje s modelem V klasické podobě přímo ovládací prvky V moderní podobě třídy zpracovávající vstupy Presenter: Překladač modelu pro view, reference mezi view a modelem, synchronní komunikace ViewModel: Překladač view pro model, binding zajišťuje aktualizaci dat detaily implementace viz UUR - NÁVRH APLIKACE 18
19 Odbočka Novinky ve světě JavaFX Změna struktury Java JDK a číslování verzí Půlroční interval vydávání, nové číslování verzí, snaha o menší jádro Javy (Java někdy brzy, Java ) JavaFX, Java Web Start, Applet odděleny do samostatných modulů (snaha totéž udělat i se Swing, AWT, ) Kotlin a TornadoFX Jazyk nad JRE Od autorů IntelliJ IDEA Snaha o snazší synxaci a přehlednější kód FXGL - Knihovna pro herní aplikace Podpora Javy a Kotlinu Paralaxní scrollling, částicové systémy, manipulace s texturami, základní fyzika (kolize, Box2D), podpora pro AI (gdx-ai), hledání cest, UUR - NÁVRH APLIKACE 19
20 Dekompozice aplikace - příklad GUI Add Button Table Store Button Volá metodu store() z rozhraní Controller Zobrazuje Vytváří instance (volá konstruktor nebo továrnu) Datový model - kolekce Task Person Department Odpovídá struktuře databáze nebo souborů s daty Volá metodu create() z rozhraní Create new Store files Ukládá data na disk / do DB UUR - NÁVRH APLIKACE 20
21 Tovární metoda Metoda vytvářející instanci objektu místo konstruktoru továrna může rozhodnout o třídě vytvářeného objektu Klient neví nic o způsobu vytváření objektu Zná jen rozhraní objektu který továrna vrací Může odstínit od složitých konstruktorů Za běhu lze rozhodnout o použité implementaci předáním vhodné reference (místo podmínky) UUR - NÁVRH APLIKACE 21
22 Iterátor Vzor pro průchod všemi prvky daného kontejneru Skrývá implementaci kontejneru (nemusím vědět jakým způsobem ho procházet jednoduché u polí, těžší u stromů) Jen pokud je možné jednoznačně určit pořadí prvků Může existovat několik způsobů procházení V Javě umožňuje tvorbu zkráceného for cyklu nebo použití foreach() V Javě rozhraní Iterator hasnext() getnext() remove() nemusí být podporovaná funkce Pro seznamy ListIterator<E> Rozhraní Iterable pro objekty přes které lze iterovat UUR - NÁVRH APLIKACE 22
23 Kompozit Umožňuje zacházet se skupinou objektů jako s jedním objektem Vytváří stromovou strukturu (prvkem kompozitu mohou být další kompozity) Při změně kompozitu nemusím měnit klienta Typicky okno v GUI, geometrické objekty složené z grafických primitiv UUR - NÁVRH APLIKACE 23
24 Strategy Definována sada algoritmů které Mohou být zaměňovány Za běhu programu si lze vybrat který bude použit Algoritmy ukryty za rozhraním jednotný přístup Užitečné pro Layoutování prvků v okně Práci s různými typy souborů Řazení podle různých pravidel Mění chování objektu, ale ne jeho vzhled (ve smyslu API) na venek UUR - NÁVRH APLIKACE 24
25 Dekorátor (Wrapper) Doplnění nebo úprava funkcionality danému objektu, aniž by se změnilo jeho standardní chování Může fungovat staticky i dynamicky (přiřazení za běhu) Nemění se původní třída Lze na sebe vršit několik dekorátorů Znáte z I/O proudů, třída Optional<T> V GUI např. doplnění posuvníků nebo rámečků UUR - NÁVRH APLIKACE 25
26 Dekorátor 1. Dekorovaný prvek a dekorátor sdílejí stejné rozhraní (nebo jsou potomky téže třídy) 2. Dekorátor má referenci na dekorovaný objekt (obvykle získaný v konstruktoru) 3. Všechna volání předává dekorovanému objektu 4. Implementace dekorátoru překrývá metody které je třeba měnit nebo přidává nové UUR - NÁVRH APLIKACE 26
27 Lambda výrazy V Javě od verze 1.8 Lze chápat jako anonymní metody Hodí se při potřebě anonymní vnitřní třídy s jedinou metodu Umožňují použít jako parameter metody jinou metodu Hodí se pro Porovnávání (tvorba komparátoru) Zpracování celé kolekce (metoda foreach()) Reakce na události (jednoduchý obslužný objekt) UUR - NÁVRH APLIKACE 27
28 Lambda výrazy - zápis (parametry) -> {tělo metody} Parametry: seznam parametrů (a typů pokud je třeba) Obvykle si překladač dokáže typ parametru odvodit Tělo metody: blok který se má provést Lze použít tam, kde se jako parametr očekává instance rozhraní s jedinou metodou ( functional interface ) Z definice metody se odvozují typy Příklad: Pro interface Comparator, metodu compare() (name1, name2) -> { if (name1.length() == name2.length()) { return 0; } if (name1.length() > name2.length()) { return -1; } else { return 1; } } UUR - NÁVRH APLIKACE 28
29 Lambda výrazy příklad II Lambda výraz bez implementace rozhraní (int x, int y) -> x+y (x, y) -> { return x+y; } (int x, int y) -> { System.out.println(x+y); return x+y; } Lambda výraz a interface Converter { double convert(double input); } static double convert (Converter converter, double input) { return converter.convert(input); } System.out.println (convert(input -> (input-32)*5.0/9.0, 98.6)); UUR - NÁVRH APLIKACE 29
30 Děkuji za pozornost UUR - NÁVRH APLIKACE 30
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
VíceVývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
VíceNávrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
VíceCineStar Černý Most Praha 31. 10. 2012
CineStar Černý Most Praha 31. 10. 2012 Stejná aplikace na více zařízeních Michael Juřek Microsoft s.r.o. Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy
VíceMVC (Model-View-Controller)
MVC vs PAC MVC (Model-View-Controller) Architektonický vzor zabývající se uživatelským rozhraním Odděluje doménovou (bussiness) logiku a uživatelské rozhraní do tří nezávislých komponent: Model View Controller
VíceČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33
Stručný obsah Část 1: Zahřívací kolo Kapitola 1 Co je a k čemu je návrhový vzor 33 Kapitola 2 Zásady objektově orientovaného programování 39 Kapitola 3 Co konstruktor neumí (Jednoduchá tovární metoda Simple
VíceVyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
VíceSemin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2008 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 24
Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Návrhové vzory 1/ 24 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)
VíceSemin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25
Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2009 Radek Kočí Seminář Java Návrhové vzory 1/ 25 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)
VíceDesign Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz
Design Patterns Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Základní návrhové vzory Kategorie Creational Patterns starají se o vytváření instancí Structural Patterns struktura komponent v
VíceAnalýza a Návrh. Analýza
Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení
VíceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceHiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)
Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control) Problém HMVC úvod MVC v určitých aplikacích nedostačující Příklad: webová stránka s widgety Např. kalendář, hodnocení,
VíceSemináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 29. Otázka : Zpracování událostí: mechanismus událostí a jejich zpracování (Event/Listener), nepřímá invokace (Observer/Observable). Obsah : 1. Mechanisums
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceJava/QE Akademie - Osnova
Java/QE Akademie - Osnova Lekce 1 1. Co je to Java? 1.1. Struktura Java kódu 2. Potřebné nástroje pro vývoj 2.1. JVM 2.2. JRE 2.3. JDK 3. Co je to proměnná a její zápis v Javě 3.1. Klasické proměnné 3.2.
VíceObserver. Klasifikace. Alias. Smysl. Potřeba sledování změn objektu a notifikace. Obdoba systému událostí (C#, Java) vlastními prostředky
Observer Observer Klasifikace Object Behavioral Alias Dependents Publish-subscribe Smysl Zavádí možnost sledování změn u objektu tak, že když objekt změní stav, ostatní objekty na tuto změnu zareagují,
VíceNávrhové vzory OMO, LS 2014/2015
Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost
VíceBridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
VíceProgramování II. Modularita 2017/18
Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích
VíceNávrhové vzory pro GUI 29. 2. 2016
Návrhové vzory pro GUI RICHARD LIPKA 29. 2. 2016 Nabídka semestrálních prací pro Aimtec 1. Porovnání plánovaného a skutečného času vývoje v iteraci Dohledat a zobrazit plánované a skutečné časy vývoje
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze
VíceAplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:
Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva
VíceGenerické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
VíceIS pro podporu BOZP na FIT ČVUT
IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod
Více14. května 2012, Brno
14. května 2012, Brno Připravil: Tomáš Koubek Testování Cvičení z předmětu Pokročilá uživatelská rozhraní Testování Strana 2 / 12 Testování aplikací Testování návrhu Cílem je vylepšit produkt během vývoje.
VícePři studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
VíceMVVM pro desktop i web
MVVM pro desktop i web Tomáš Herceg CEO @ RIGANTI Co-founder of Update Conference Microsoft MVP tomas.herceg@riganti.cz @hercegtomas www.tomasherceg.com/blog MVVM Model View ViewModel { firstname: "Humphrey",
Více1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
VíceEfektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz
Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows
VíceObsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13
Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací
VíceMaturitní témata Školní rok: 2015/2016
Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní
VíceArchitektura rodiny operačních systémů Windows NT Mgr. Josef Horálek
Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání
VíceSoftware602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
VíceBusiness Intelligence
Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma
VíceProgramování II. Třídy a objekty (objektová orientovanost) 2018/19
Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru
VíceTechnologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
VíceMobile application developent
Mobile application developent Jiří Šebek b6b36nss Obsah Návrh softwaru Prototypování testování MVVM architektura - mobile aplikace 2 Návrh softwaru Strategie : top down, bottom up Nejen u navrhu sw, ale
VíceVývoj informačních systémů. Obecně o IS
Vývoj informačních systémů Obecně o IS Informační systém Informační systém je propojení informačních technologií a lidských aktivit směřující k zajištění podpory procesů v organizaci. V širším slova smyslu
VíceNávrhový vzor Factory v JAVA API
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB - Technická univerzita Ostrava martin.kot.fei@vsb.cz Abstrakt V třídách API jazyka JAVA je použito mnoho návrhových vzorů. Najdeme zde
VícePHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
VíceČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
VíceHospodářská informatika
Hospodářská informatika HINFL, HINFK Vytvořeno s podporou projektu Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu reg.
VíceVZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ
VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ 1. Dědičnost v OOP umožňuje: a) dědit vlastnosti od jiných tříd a dále je rozšiřovat b) dědit vlastnosti od jiných tříd, rozšiřovat lze jen atributy
VíceNetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
VíceArchitektura. Vedení sesterské dokumentace
Architektura Tým Lorem Ipsum Verze 1.1 29.3.2015 Obsah 1 Kontext...3 1.1 Cíle projektu...3 2 Technologie...3 2.1 Zvolená alternativa tvorby GUI...3 3 Datové schéma...4 4 Navržená architektura...5 4.1 Fyzický
VíceDesign systému. Komponentová versus procesní architektura
Design systému Komponentová versus procesní architektura Architektura : třídy statické aspekty propojení logický pohled struktura popisu systému Architektura procesů: objekty dynamické aspekty koordinace
VíceVyužití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Více6 Objektově-orientovaný vývoj programového vybavení
6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).
VíceSpecifikace projektu Ocerus
Specifikace projektu Ocerus Tým Vedoucí: Ondřej Sýkora (ondrasej@centrum.cz) Členové: Michal Čevora (macjariel@gmail.com) Lukáš Hermann (lukas.hermann@seznam.cz) Ondřej Mocný (hardwire@volny.cz) Tomáš
VíceJak testovat software v praxi. aneb šetříme svůj vlastní čas
Jak testovat software v praxi aneb šetříme svůj vlastní čas Proč testy nepíšeme Nemáme na to čas Platí v cca 5% případů Nový projekt Prototyp je třeba mít během pár dní Počítá se s tím, že další verze
VíceVstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
VíceMBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
VícePŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Návrhové vzory. 2013 Dan Doležel
PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Návrhové vzory 2013 Dan Doležel Anotace Návrhové vzory jsou doporučené postupy pro řešení často se vyskytujících úloh. V
VíceWonderware Information Server 4.0 Co je nového
Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat
VíceÚvodem... 9 Kapitola 1 Karetních
Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12
VíceJavaScript 101. "Trocha života do statických stránek"
JavaScript 101 "Trocha života do statických stránek" Nacionále: JavaScript 101 Vznik: Netscape, 1995 Původně Mocha, později LiveScript, nakonec z marketingových důvodů přejmenován na JavaScript JavaScript
Více1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VícePlatforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13
Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace
VíceEmbedded vývoj v Clutteru a Mx
Pavel Šimerda pavlix@pavlix.net OpenMobility 2011 Creative Commons Uved te autora 3.0 Česko Embedded Oblíbený buzzword Vestavěná zařízení (v automobilech, budovách, venkovních terminálech) Jednoúčelová
VíceJazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
VíceZpravodaj. Uživatelská příručka. Verze
Zpravodaj Uživatelská příručka Verze 02.01.02 1. Úvod... 3 2. Jak číst tuto příručku... 4 3. Funkčnost... 5 3.1. Seznam zpráv... 5 4. Ovládání programu... 6 4.1. Hlavní okno serveru... 6 4.2. Seznam zpráv...
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VíceNástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode
KAPITOLA 1 Nástroje na vývoj aplikací pro ios 11 Trocha motivace na úvod 11 Co budete potřebovat 11 Co když nemáte k dispozici počítač s macos? 12 Vývojové prostředí Xcode 14 Průběžná aktualizace 16 První
VíceKlíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda
Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:
VíceZačínáme pracovat s tabulkovým procesorem MS Excel
Začínáme pracovat s tabulkovým procesorem MS Excel Nejtypičtějším představitelem tabulkových procesorů je MS Excel. Je to pokročilý nástroj pro tvorbu jednoduchých i složitých výpočtů a grafů. Program
VíceDědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
VíceObsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13
Obsah Předmluva 11 O této knize 13 Konvence........................................................13 Inovace prostřednictvím otevřenosti 15 Ekosystém Symbianu.............................................16
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VícePB161 Základy OOP. Tomáš Brukner
PB161 Základy OOP Tomáš Brukner Sylabus - Co je to OOP? Jaké jsou základní principy OOP? Jak se projevují v C++? https://cs.wikipedia.org/wiki/strahovská_knihovna SELECT * FROM books WHERE pages < 250
VíceRozklad na prvočinitele. 3. prosince 2010
Rozklad na prvočinitele Ondřej Slavíček 3. prosince 2010 1 Obsah 1 Příručka k programu 3 1.1 funkce main()............................. 3 1.2 funkce hlavnifunkce()........................ 3 1.3 funkce
VíceArchitektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
VíceKomponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr
Komponentově orientované webové frameworky Jiří Stránský jistr@jistr.net twitter.com/jistr O čem to bude Three-Tier aplikace MVC frameworky Komponentově orientované frameworky Apache Wicket Three-Tier
VíceArchitektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
VíceObsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14
Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14 KAPITOLA 1 Nové rysy Windows 8 a 8.1 15 Nové uživatelské rozhraní 15 Rychlý náběh po zapnutí 16 Informace v prvním sledu 16 Nové prezentační
VíceNávrh softwarových systémů - architektura softwarových systémů
Návrh softwarových systémů - architektura softwarových systémů Martin Tomášek, Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura Využívá se
VíceKnot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015
Knot DNS Resolver Modulární rekurzivní resolver Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je KNOT Resolver Části resolveru Funkce a konfigurace Integrační testování Co je Knot DNS Resolver Minimalistický
VíceGUI. Systémová integrace pro desktopové aplikace
GUI Systémová integrace pro desktopové aplikace 1 java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace k dispozici static Desktop getdesktop()
VíceJAVA Unit testing Java, zimní semestr
JAVA Unit testing Úvod unit testing testování malý jednotek funkčnosti jednotka nezávislá na ostatních testování zcela oddělené vytvářejí se pomocné objekty pro testování kontext typicky v OO jazycích
VíceÚvod 1 ČÁST 1 HTML 1 Základy HTML a kaskádových stylů 5
Úvod 1 ČÁST 1 HTML 1 Základy HTML a kaskádových stylů 5 Struktura dokumentu HTML obsah a forma 5 Prvky dokumentu 7 Jméno prvku 7 Atributy prvku 8 Obsah prvku, hierarchie prvků 9 Zastupující jednotky (entity)
VíceProgramátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
VíceNový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9
Nový design ESO9 E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a 2 2 1 4 1 0 0, P r a h a Strana 1 z 9 Úvod... 3 Popis změn... 4 Horní lišta... 4 Strom činností... 5 Prostřední rám... 7 Horní lišta...
VíceVývoj rozhraní pro vzdálené ovládání systému mainframe. Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze
Vývoj rozhraní pro vzdálené ovládání systému mainframe Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze David Fabian 3.9.2008 1 Obsah Cíle projektu a práce Úvod do mainframe
Více1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services
13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -
VíceVývoj řízený testy Test Driven Development
Vývoj řízený testy Test Driven Development Richard Salač, Ondřej Lanč Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze 23. - 30. 10. 2012 Obsah 1 Testování 2 Klasický přístup
VícePrincipy OOP při tvorbě aplikací v JEE. Michal Čejchan
Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích
VíceD2 - GUI design. Radek Mečiar 28.3.2014
D2 - GUI design Radek Mečiar 28.3.2014 1 Úvod Zvolená platforma: Android Verze: 4.x Nástroj pro kreslení: Pencil Platformu a verzi jsem zvolil, protože je v současnosti nejpoužívanější. Informace o standardu
VíceOutdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /
Outdoor Expert Uživatelský manuál Verze aplikace: 1.0 28. 12. 2014 OutdoorExpert_Manual.docx 1 / 35 2015-01-01 Obsah 1 ÚVOD... 3 2 POPIS FUNKČNOSTÍ APLIKACE... 3 2.1 SPUŠTĚNÍ APLIKACE... 3 2.2 ZALOŽENÍ
VíceObsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12
O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10 Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 Poděkování 15 Earle Castledine 15 Myles Eftos 15 Max Wheeler
VíceBc. Martin Majer, AiP Beroun s.r.o.
REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam
VíceArchitektury Informačních systémů. Jaroslav Žáček
Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?
VíceDílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina
Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceVlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.
Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces
VícePŘÍLOHA C Požadavky na Dokumentaci
PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
Více