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, termín do kdy odevzdáte do svn
stanoví cvičící (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 k udanému
termínu „zmrazí“ (v době kolem termínu 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 (tj vážná závada SVN) uveďte: 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ý
mail, 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 je součástí vzorového zadání.
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í (po vyčerpání samostatných možností). 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í - 4 body |
|
Připomínky k zadání |
„globální“ chyby v zadání |
Další postup 1)
Spojit verze (merge) okomentovaného zadání a aktuálního textu. Detailní popis: Odevzdávané
zdrojové 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 pro dva vlastní typy
odladěné v projektu v adresáři: CSLNode,
přeložitelné s původním mainem (do funkce main tedy raději
nezasahujte). Dále se hodnotí hlavičkový soubor kontejneru uložený
v projektu v adresáři Project, a pro něj
vytvořený zdrojový soubor s funkcí main, ve kterém bude
demonstrováno volání všech vytvořených metod a funkcí kontejneru
uvedených v hlavičkovém souboru. Zdrojové soubory CNode_xxx.h: Třídy pro
uložení prvku CNode jsou součástí připraveného projektu (společně
s ostatními, které však neměňte) a měly by být doplněny pro
zvolené typy (různé od připraveného vzorového bool a TWeekDay) v
hlavičkové i zdrojové části. Původní CNode pro bool a TWeekDay
zůstávají součástí projektu (a main s nimi musí nadále být schopen
pracovat bez modifikace, stejně jako s novými třídami). Určení,
která z variant CNode 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 CNode.h). Hlavičkové soubory kontejneru: Vlastní
projekt kontejneru se „odevzdává“ do svn, kde v
adresáři trunk je vytvořen podadresář Project, 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
konečná verze dokumentace. Vlastní dokumentace metod a projektu je
již součástí odevzdání hlavičky. Všímejte si i warningů
překladače, zpráv knihovny check, „překlad“ Doxygen a
zkuste i analýzu kódu překladačem. V rámci tvorby hlavičky vytvořte i komentáře pro dokumentaci projektu formou vhodnou pro zpracování pomocí nástroje Doxygen. Dokumentujte soubory, třídy, datové členy a metody (pro ty použijte text zadání a popište předávané a návratové parametry). 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ě dvakrát 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 CNode_XXX (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é (na učebně, 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,
která 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í, … závěr (1b) – celkem 6 bodů |
|
Zhodnocení projektů |
„globální“ chyby v projektech |
Poslední úpravy 2015-11-09