Projekt
Postup při vytváření projektu a bodování je uvedeno zde, termíny jsou uvedeny v plánu cvičení.
Projekt bude hodnocen a opravován (v rámci možností) průběžně. Hodnocen však bude jednotně jako celek v IS až po skončení semestru.
Na cvičení, ve kterém je určeno odevzdání (jednotlivých částí),
můžete ještě provést konzultaci, ale ke konci cvičení (v daném dni)
odevzdáte do svn (při vážných problémech na straně svn (!) lze
zaslat projekt na e-mail cvičícího. Problémy popište, abychom mohli
svn upravit.). Do svn uložíte aktuální verzi, která se po termínu
„zmrazí“ (v den odevzdávání proto raději provádějte
minimum změn). Sledujte kdy se objeví opravená/okomentovaná verze a
připomínky zakomponujete do projektu. Projekt bude obodován pro celou
skupinu. Pro jednotlivé členy skupiny může dojít ke korekci (snížení
bodů) podle počtu komitů a kvality provedených akci, tak aby
odpovídaly množství odvedené práce - proto si úkol rozdělte na
(přibližně stejné) části a na nich pracujte samostatně -
neodevzdávejte z jednoho konta/počítače.
V případě náhradního
e-mailu: Subjekt „zadání BPPC“. Odevzdávaný „zip“
soubor pojmenujte kódem cvičení (po13=pondělí 13:00), jménem autora a
názvem tj. „po13_novak_zlomky“. Koncovku zip pro odeslání
smažte. Odevzdává jen jeden ze skupiny autorů. Po odevzdání
kontrolujte svůj mail, zda cvičící neodepíše že přišlo bez přílohy
(například kontrola virů …, doporučuji pro kontrolu poslat
kopii na jiný například někomu ze skupiny) - posílejte pouze soubory
typu „h“, „c“ a „cpp“ (jinak se
stanete obětí spam a vir filtrů).
Hierarchie projektu
Pozn.: tato stránka bude upravována/upřesňována na základě vašich dotazů.
Zadání témat projektů |
Vyberte si téma a dva spoluautory – do příštího cvičení Výběr spolupracovníků – projekt se vypracovává ve skupinách po třech studentech z jednoho cvičení (z důvodu času na konzultace). Doporučuji aby projekt vytvářel každý ze skupiny samostatně, poté jednotlivé verze srovnat, prokonzultovat a složit to nejlepší. Menší skupiny mohou být penalizovány. Výběr tématu: zvolte typ kontejneru a dvou datových typů - stejné téma mohou mít maximálně dvě skupiny(trojice) na cvičení. Seznam témat je součástí formuláře zadání. Zde zveřejněný formulář je předběžný, originál formuláře zadání (očekávejte pouze minimální změny) naleznete v svn po obdržení přístupových hesel. |
Nahlaste zvolené téma a skupinu spoluautorů ve svých cvičeních |
|
Na základě předloženého formuláře napište vlastní zadání vašeho projektu Napište zadání projektu podle předlohy.
Ve formuláři nahraďte zvýrazněné části textu na základě vlastností
vašeho projektu. Zadání specifikuje základní metody, které musí
třída mít z hlediska procvičení základních mechanizmů fungování
tříd. |
|
hodnocení úplnosti a kvality zadání - 2 body |
|
Připomínky k zadání |
„globální“ chyby v zadání |
Odevzdávané soubory by měly začínat komentářem, jehož součástí jsou jména autorů, název projektu, skupina. Jako součást odevzdání se budou hodnotit správně fungující třídy CValue odladěné v projektu v adresáři: CRail, hlavičkový soubor kontejneru uložený v projektu v adresáři Projekt, zdrojový soubor s funkcí main, ve které bude demonstrováno volání všech vytvořených metod a funkcí kontejneru. Všechny hlavičkové soubory by měly být standardně ošetřeny proti vícenásobnému načtení. Zdrojové soubory CValue: Třídy pro
uložení prvku CValue jsou součástí připraveného projektu (společně
s CRail, kterou však neměňte) a měly by být doplněny pro zvolené
typy (různé od bool a TWeekDay) v hlavičkové i zdrojové části.
Původní CValue pro bool a TWeekDay zůstávají součástí projektu (a
main s nimi musí nadále být schopen pracovat, stejně jako s novými
třídami bez modifikace). Určení, který z CValue je používán je
realizováno pomocí jeho zveřejnění do globálního jmenného prostoru
(ke změně dochází pouze na jediném místě v souboru CValue.h). Hlavičkové soubory kontejneru: Vlastní
projekt kontejneru se „odevzdává“ do svn, kde v
adresáři trunk je vytvořen podadresář Projekt, ve kterém na
projektu budete průběžně pracovat (aby se nepřetěžovala svn,
ověřte nakonfigurování clienta - viz www).
Očekáváme, že projekt v svn (nejprve hlavička s prázdnými metodami
a ukázkové volání těchto metod) bude vždy přeložitelný bez chyb
(errors). Do stejného adresáře se bude později „odevzdávat“
i dokončený projekt (opravy a doplněná implementace metod) a
dokumentace. V rámci tvorby hlavičky vytvořte i její komentáře pro dokumentaci projektu formou vhodnou pro zpracování pomocí Doxygen. Odevzdání
tedy bude minimálně obsahovat:
Hodnocení - podle kvality a úplnosti a počtu commitů do svn (každý člen pracující na projektu by měl minimálně jednou týdně upravit projekt smysluplným a výrazným způsobem) - 3 body
|
|
Zhodnocení hlaviček |
„globální“
chyby v hlavičkových
souborech. |
Pro zdrojové texty platí v podstatě totéž co pro odevzdání hlavičky, pouze s tím rozdílem, že se doplní i tělíčka metod/funkcí/operátorů a program bude fungovat tak, jak se od něj (v konečném stavu) očekává. Součástí je ukázka činnosti projektu (okomentovaný zdrojový soubor s main, který ukáže volání všech vytvořených metod/funkcí a zajistí kontrolu správného fungování vaší třídy (automatické testování správné funkcionality třídy)). Testováním se myslí například vyzkoušení metod pro odebrání prvku z prázdného objektu, operátor = pro a = a, zjištění počtu prvků objektu po několika přidáních a odebráních ... Samotná třída nebude interaktivně komunikovat s uživatelem. V ideálním případě nebude vypisovat a číst z konzoly vůbec nic (kromě streamů). Chybové stavy může main funkce detekovat zvláštní metodou třídy nebo je možné využít výjimky. Demonstrační program (funkce main) naopak interaktivní být mohou. Program bude demonstrovat načítání dat z konzoly (předtím vypíše popis formátu vkládaných dat se vzorovým příkladem takovýchto dat). Většina hodnot tedy nemusí být zadávány „z venčí“ programu ale mohou být součástí programu (nastavení pomocí konstruktorů, setterů). Tisk obsahu vašeho objektu na konzolu by měl být součástí demonstrace, není však nutné tisknout každou proměnnou po zavolání jednotlivých metod. Program se správně implementovanou knihovnou check nebude hlásit žádné memoryleaky. Soubory budou obsahovat jednoduché komentáře. Očekává se zapracování všech připomínek z předchozích hodnocení a implementace metod v rozsahu (původního) zadání. Změny vůči zadání i odevzdané hodnocené hlavičce jsou povoleny, očekává se, že změny a jejich důvody budou následně popsány v dokumentaci. Odevzdává se tedy do adresáře projekt minimálně: hlavičkový soubor třídy, zdrojový soubor třídy, soubory CBNode (2x4ks), cpp soubor s ukázkou použití třídy (soubor s main), check, soubor vzorového zadání dat (je-li použit). Tyto soubory musí být přeložitelné (bez chyb a warningů) v prostředí MS Visual C (projekt prázdná konzola s default nastavením překladače).
Hodnocení
zdrojů - kvalita zdrojových textů, demonstrační program
prezentující práci se třídou s komentáři – 4 body, |
|
Zhodnocení zdrojů |
„globální“ chyby ve zdrojových souborech |
Krátká prezentace a obhajoba projektu (upřesněno cvičícím na předposledním cvičení) – cca 5 minut + dotazy - členové skupiny obhajují jednotlivě. Konkrétní formu upřesní cvičící. Může v ní být například: Prezentace
by měla obsahovat: úvod, datová reprezentace včetně variant,
přehled zajímavých metod, zajímavý kód, ukázka volání, možnosti
zlepšení. Prezentovat to v čem si myslíte, že váš projekt je
výjimečný, čím byste mohli obohatit ostatní. Při obhajobě zodpovíte dotazy – krátký test na autorství – dopište funkci, upravte kód .... obhajoba bodování - 3 body – odpovědi k dotazům na některé části: úvod, datová reprezentace včetně variant, přehled metod, zajímavý kód, ukázka volání, možnosti zlepšení, dopsání části projektu, úprava projektu, vysvětlení části projektu |
|
Dokumentaci,
vytvářejte průběžně při řešení projektu, tak aby obsahoval
následující body (Dokumentace bude napsána v souborech projektu
*.h *.cpp a *.txt a musí být bez chyb vytvořitelná pomocí
Doxygen). dokumentace bodování – zadání, hlavička (1b), filozofie návrhu, volba dat, (1b) privátní a veřejné funkce, konstruktory, UML diagram (1b), popis funkcí rozhraní (2b), … závěr (1b) – celkem 6 bodů |
|
Zhodnocení projektů |
„globální“ chyby v projektech |
Poslední úpravy 2013-11-14