Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

courses:a4m33nms [2012/01/12 20:31]
rychtluk
courses:a4m33nms [2025/01/03 18:23] (aktuální)
Řádek 6: Řádek 6:
  
 ===== Cvičení ===== ===== Cvičení =====
-  * semestrálka ve skupinách po 2, hodnocení 0-100%+  * semestrálka ve skupinách po 2
   * max 2 absence   * max 2 absence
-  * min 50% z odevzdané semestrální práce 
   * ústní prezentace semestrální práce v 12/13 týdnu   * ústní prezentace semestrální práce v 12/13 týdnu
-  * semestrální práce se podílí z 20% na hodnocení u zkoušky+  * semestrální práce se podílí z 40(max. 40 bodů - zkouška 60 bodů) ​na hodnocení u zkoušky 
 + 
 +===== Materiály ke zkoušce ===== 
 + 
 +Udělal jsem shrnutí přednášek (2013/2014) do tisknutelné verze. Myslím, že se stačí naučit to, co je v tom shrnutí + návrhové vzory. Přikládám odkaz na GoogleDocs [[https://​docs.google.com/​document/​d/​15J6GwQVC2W7tBKyG4IqlpMzTSJYdeLXJokv6ypeOFLA/​edit?​usp=sharing|https://​docs.google.com/​document/​d/​15J6GwQVC2W7tBKyG4IqlpMzTSJYdeLXJokv6ypeOFLA/​edit?​usp=sharing]] . Dávám to jako veřejně editovatelné (aby to kdokoliv mohl doplnit/​opravit),​ tak snad to někdo nevymaže. 
 + 
 +Základní vypracování otázek z let 2013,2014 (na obrázky návrhových vzorů se podivte třeba do přednášek) 
 +https://​docs.google.com/​document/​d/​17JnZEYd1MUPbNqhReXsbMD1KXPuLQidL8z7spYApTYI/​edit?​usp=sharing
  
 ===== Zkouška ===== ===== Zkouška =====
-===Termín 05.01.2011=== + 
-==První==+==== Zkouška 20.1.2016 ==== 
 +10 otázek, každá za 6 bodů, minimum z testu je 30 bodů, hodně otázek bylo na synchronizaci a vlákna a taky na Javu 
 + 
 +1) Je možné volat abstraktní metodu uvnitř synchronizovaného bloku 
 + 
 +2) Agragace a kompozice - definice a rozdíly 
 + 
 +3) Kompozice - obrázek s příkladem kompozice kdy 2 celky ukazují na 1 součást, za jakých podmínek je to možné? Pouze pokud se jedná o různé instance součástí 
 + 
 +4) Návrhový vzor Decorator - popis, diagram, příkladem 
 + 
 +5) Návrhový vzor Bridge - popis, diagram 
 + 
 +6) Race condition bez synchronizace - volatile, pomocná proměnná pro uzamčení 
 + 
 +7) IDL, na čo slúži, ako sa používa, varianta pri webových službách 
 + 
 +8) Blocking queue - jak se chovají jednotlivé typy (vyhození výjímky, vrátí hodnotu, čeká, čeká nějaký čas)  
 + 
 +9) CRUD mapování na HTTP metody 
 + 
 +10) Příklad kódu v Javě kde 1 vlákno čeká až druhé skončí 
 + 
 + 
 +==== Zkouška 13.1.2016 ==== 
 +5 Otázek po šesti bodech, totožné jako v letech 2013,14: 
 +Adaptér, visitor, marshalling,​ compare and set, UML - kompozice, agregace, asociace 
 + 
 +Za 30 bodů Class diagram nějakýho systému na monitorování zařízení a měla se tam použít abstract factory. Byla to hrozná blbost a ze zadání se to blbě dalo pochopit. Udělejte, cokoliv můžete, moc si nelamte hlavu s funkcema, ale soustředte se na třídy. Hlavně aspon něco mějte. 
 + 
 +Po písemný zkoušce je ústní, kde Kouba projde váš test a může se vás na něco dozeptat, ale spíš se vám snaží dát body.  
 + 
 +==== Zkouška 20.1.2014 ==== 
 + 
 +  * Popsat MVC  
 +  * Bridge Pattern - vysvětlit a nakreslit 
 +  * K čemu slouží Service layer 
 +  * Význam IDL ve webové službě = IDL ve WS je WSDL 
 +  * Zabránění souběhu dvou vláken (race-condition) nad jednou proměnnou = mělo být volatile nebo Compare-and-Swap 
 +  * Mapování CRUD v RESTU na HTTP požadavky = Create-post Retrieve-get Update-put Remove-remove 
 +  * Vyjmenujte a načtrtněte 6 UML diagramů 
 +  * Co je to Injection of control 
 +  * Jaký je rozdíl mezi funkcionálními a nefunkc. požadavky + příklady 
 +  * Napište implementaci Singletonu v Javě nebo C# (myslím že to mělo být thread-safe) 
 + 
 +==== Termín 13.1.2014 ==== 
 +  - k čemu je návrhový vzor proxy 
 +  - asociace, agregace, kompozice 
 +  - Adaptér + praktický příklad 
 +  - IoC, DI 
 +  - CAS 
 +  - mashalling/​unmarshalling 
 +  - REST 
 +  - scope lock 
 +  - offline concurency control (optimistic x pesimistic) 
 +  - význam WSDL v SOAP 
 +====Termín 14.01.2013==== 
 +Podobne ako minulý rok, bolo 10 otázok po 6b. 
 + 
 +   * Navrhnite triedu v Jave alebo C#, ktorá umožní lazy loading. 
 + 
 +   * Vymenujte 6 typov UML diagramov + ukážka. 
 + 
 +   * Vysvetlite Bridge pattern + UML diagram + reálny príklad. 
 + 
 +   * Je možné zabrániť súbehu viacerých vlakien nad premennou, bez použitia synchronized?​ 
 + 
 +   * Význam IDL jazyka u RPC, ako sa používa + alternatíva pri webových službách. 
 + 
 +   * Vysvetlite Inversion of Control (IoC). 
 + 
 +   * CRUD požiadavky na HTTP protokol pre REST služby. 
 + 
 +   * Vysvetlite Service layer pattern. 
 + 
 +   * Porovnajte funkcionálne a nefunkcionálne požiadavky. 
 + 
 +   * Popíšte MVC.  
 + 
 +====Termín 07.01.2012==== 
 +10 otazek, kazda za 6 bodu, měli jsme hodinu, ale když jsme nestíhali, tak přidal. Opravoval Mička, hodnotil Kouba. Opraveno docela přísně, ale hodnocení bylo mírné. Na ústní se ptal jen když něco nemohl přečíst, známku už moc ovlivnit nešlo 
 + 
 +  * Popište architektonické návrhové vzory pro hexagonální (ports & adapters) a vrstevnatou (layered) architekturu,​ napište co mají společné a v čem se liší 
 + 
 +  * Popište návrhové vzory pro Service Locator a Dependency Injection, napište co mají společné a v čem se liší 
 + 
 +  * Napište a vysvětlete alespoň 3 GRASP vzory 
 + 
 +  * Vysvětlete princip a rozdíl návrhových vzorů Active Object a Monitor. Napište, k čemu se používají 
 + 
 +  * Popište návrh distribuovaných aplikací používající stub/​skeleton 
 + 
 +  * Napište v Javě nebo C# kód pro vláknově bezpečný Singleton 
 + 
 +  * Nakreslete UML class a sekvenční diagramy návrhového vzoru Vizitor, popište a uveďte reálný příklad použití 
 + 
 +  * Popište návrhový vzor Executor (pozn.: myšleno např. ten, co v Javě spouští vlákna), napište kdy se používá a jaké jsou jeho standardní implementace 
 + 
 +  * Máme pekárnu, kde může současně pracovat neurčité množství pekařů. Pekař, když dopeče chleba, umístího do regálu a jde péci další. Máme jednu prodejnu, kde je jeden neomezeně velký regál. Zákazníci u něj tvoří frontu a s regálem může pracovat pouze jeden. Napište v Javě nebo C# kód pro Pekaře a Zákazníka pro vláknově bezpečnou práci s regálem. 
 + 
 +  * Nakreslete UML diagramy používající následující typy vazeb: realizace, generalizace,​ agregace, kompozice, synchronní zpráva, asynchronní zpráva 
 + 
 + 
 + 
 +====Termín 05.01.2011==== 
 +===První===
 Namodelovat v podobě class diagramu program na tvorbu ER diagramu. Jednotlivé třídy budou Diagram (plátno, kde se bude kreslit), Node (uzel reprezentující např. třídu), Edge (hrana mezi uzly), Polygon (grafická reprezentace uzlu), Dialog (dialogové okno, které vyskočí po kliknutí na uzel), Point (jednotlivá zalomení hrany). V diagramu bude možné pohybovat s uzly, přidávat nové a mazat staré. Mezi uzly bude možné vytvořit orientovanou hranu. Po kliknutí na uzel se ukáže dialog. Namodelovat v podobě class diagramu program na tvorbu ER diagramu. Jednotlivé třídy budou Diagram (plátno, kde se bude kreslit), Node (uzel reprezentující např. třídu), Edge (hrana mezi uzly), Polygon (grafická reprezentace uzlu), Dialog (dialogové okno, které vyskočí po kliknutí na uzel), Point (jednotlivá zalomení hrany). V diagramu bude možné pohybovat s uzly, přidávat nové a mazat staré. Mezi uzly bude možné vytvořit orientovanou hranu. Po kliknutí na uzel se ukáže dialog.
  
-==Druhý==+===Druhý===
 Napsat javovský program, který spustí druhé vlákno a zároveň umožní jeho bezpečné ukončení. Zadání bylo velmi strohé, teprve u ústního mi vysvětlil, že chtěl ukázat použití wait() a notify(). Mohlo to vypadat nějak takto (nezaručuju funkčnost, jsem línej to zkoušet): Napsat javovský program, který spustí druhé vlákno a zároveň umožní jeho bezpečné ukončení. Zadání bylo velmi strohé, teprve u ústního mi vysvětlil, že chtěl ukázat použití wait() a notify(). Mohlo to vypadat nějak takto (nezaručuju funkčnost, jsem línej to zkoušet):
  
Řádek 83: Řádek 194:
 </​code>​ </​code>​
  
-==Třetí==+===Třetí===
 Nakreslit pomocí UML návrhový vzor Bridge. Popsat, k čemu se používá (příklad) a jak funguje. Já popisoval JDBC, ale to se mu moc nelíbilo, že prý JDBC nemusí být bridge, protože stačí volat funkce v ovladači jako je connect a executeQuery. Já oponoval tím, že pokud bych chtěl například ve svém systému logovat uživatelské příkazy na databázi, rozhodně bych si vytvořil svojí obalovací metodu na komunikaci s JDBC. Nakonec jsem ho přesvědčil. Nakreslit pomocí UML návrhový vzor Bridge. Popsat, k čemu se používá (příklad) a jak funguje. Já popisoval JDBC, ale to se mu moc nelíbilo, že prý JDBC nemusí být bridge, protože stačí volat funkce v ovladači jako je connect a executeQuery. Já oponoval tím, že pokud bych chtěl například ve svém systému logovat uživatelské příkazy na databázi, rozhodně bych si vytvořil svojí obalovací metodu na komunikaci s JDBC. Nakonec jsem ho přesvědčil.
  
-===Termín 11.01.2009=== +====Termín 11.01.2009==== 
-==Prva uloha==+===Prva uloha===
 Jednalo sa o E-shop s kuponami na prazsku hromadnu dopravu, kde si zakaznik moze kupit novy kupon, zaplatit ho bud bankovym prevodom alebo nejak inak a zvolit si notifikaciu o prebehnutej platbe (mail || sms). Ked pride k validatoru (akoze ta skatula co je v metre), po vsunuti karty do citacky sa mu zobrazi zoznam existujucich kuponov a zoznam novych kuponov, ktore si moze nahrat na kartu. Bolo este povedane ze verifikacia a nahravanie je operacne a casovo narocna preto to trebe paralelizovat. \\ Jednalo sa o E-shop s kuponami na prazsku hromadnu dopravu, kde si zakaznik moze kupit novy kupon, zaplatit ho bud bankovym prevodom alebo nejak inak a zvolit si notifikaciu o prebehnutej platbe (mail || sms). Ked pride k validatoru (akoze ta skatula co je v metre), po vsunuti karty do citacky sa mu zobrazi zoznam existujucich kuponov a zoznam novych kuponov, ktore si moze nahrat na kartu. Bolo este povedane ze verifikacia a nahravanie je operacne a casovo narocna preto to trebe paralelizovat. \\
 Bolo treba urobit nejaky model ako to bude fungovat a use-case k tomu.\\ Bolo treba urobit nejaky model ako to bude fungovat a use-case k tomu.\\
Řádek 94: Řádek 205:
    ​* ​    ​diagram nasadenia (na jednaj strane viacero serverov a databaza a na druhej strane validator. Komunikuju pomocou HTTP, XML a JMS)    ​* ​    ​diagram nasadenia (na jednaj strane viacero serverov a databaza a na druhej strane validator. Komunikuju pomocou HTTP, XML a JMS)
    ​* ​    ​funkcne a nefunkcne poziadavky. Opat samostatne na E-Shop a na Validator    ​* ​    ​funkcne a nefunkcne poziadavky. Opat samostatne na E-Shop a na Validator
-==Druha uloha==+===Druha uloha===
 A) Uvedte pri akych okolnostiach sa pri sucasnom pristupe viacerych threadov k tomu istemu objektu mozeme vyhnut nutnosti pouzivania synchronizacie a pritom nebude ohrozena threadova bezpecnost. \\ A) Uvedte pri akych okolnostiach sa pri sucasnom pristupe viacerych threadov k tomu istemu objektu mozeme vyhnut nutnosti pouzivania synchronizacie a pritom nebude ohrozena threadova bezpecnost. \\
 Zjednodusene ako sa vyhnut pouzitiu klucoveho slova synchronized a pritom zabezpecit threadovu bezpecnost Zjednodusene ako sa vyhnut pouzitiu klucoveho slova synchronized a pritom zabezpecit threadovu bezpecnost
Řádek 100: Řádek 211:
 B) Diskutujte vhodnost volania abstraktnych metod vo viacvlaknovych aplikaciach B) Diskutujte vhodnost volania abstraktnych metod vo viacvlaknovych aplikaciach
    ​* ​    ​Absolutne nevhodne, pretoze kazdy si tam moze napisat svoju implementaciu a to moze viest k necakanemu chovaniu aplikacie alebo problemom typu deathlock.    ​* ​    ​Absolutne nevhodne, pretoze kazdy si tam moze napisat svoju implementaciu a to moze viest k necakanemu chovaniu aplikacie alebo problemom typu deathlock.
-==Tretia uloha==+===Tretia uloha===
 A) Vymyslite zmysluplny priklad na pouzitie navrhoveho vzoru STRATEGY\\ A) Vymyslite zmysluplny priklad na pouzitie navrhoveho vzoru STRATEGY\\
 B) Nakreslite diagram tried ilustrujuci vas priklad B) Nakreslite diagram tried ilustrujuci vas priklad
courses/a4m33nms.1326396697.txt.gz · Poslední úprava: 2025/01/03 18:15 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0