1. Úvod 1.1 Projekt Mantichora 1.1.1 Představení projektu Projekt Mantichora vzniká jako víceletý týmový bakalářský projekt. Vedoucím projektu je Ing. Jiří Chludil z katedry počítačů FEL ČVUT. Inspirací názvu i samotného projektu je několikadílná knižní sci-fi série od Davida Webera o Honor Harringtonové a jejím rodném Hvězdném království Mantichoře. Náš projekt se tedy zabývá simulací vesmíru nikoliv mýtickou bytostí, kterou má toto království ve znaku. Cílem projektu je vytvořit klient server aplikaci zobrazující hvězdné soustavy, vesmírné lodě, družice atd. Ve finální verzi by systém měl být uživatelsky interaktivní. To znamená umožnit uživateli ovládat například vesmírné lodě a možná s nimi vést i bitvy. Vytvořit takový systém, je ale časově velmi náročné, proto je Mantichora projektem jak týmovým tak i víceletým. Jako součásti projektu v budoucnu pravděpodobně nebudou pouze bakalářské, ale i diplomové práce. Akademický rok 2008/2009 je prvním rokem vývoje projektu Mantichora. Z toho důvodu jsou cíle prvních bakalářů, pracujících na tomto projektu, omezeny na simulace jednoduchých hvězdných soustav. Výsledkem by tedy měl být funkční prototyp aplikace, bez optimalizací. Proto pravděpodobně i tyto jednoduché simulace, nepoběží bez viditelných chyb. 1.1.2 Tým Mantichora Celý projekt je skládankou prací prozatím sedmi studentů a Ing. Jiřího Chludila. Každý ze studentů má svůj úkol v rámci projektu. Některé práce na sebe úzce navazují, jiné jsou v podstatě samostatné. Členové týmu: Ing. Jiří Chludil Vedoucí projektu Vedení konzultací týmu pořádaných každý týden. Schválení a úprava návrhů dalšího vývoje a nabízených řešení. Václav Podlipný Řízení projektu Rešerše možností aplikační podpory řízení projektu. Výběr vhodné aplikace, její úprava, nastavení, případně implementace vlastní aplikace. Jiří Kopecký Sít ová komponenta Prozkoumání nástrojů pro měření parametrů sítí. Vybrání vhodného nástroje a implementace rozhraní pro Mantichoru. Jiří Nekola Matematicko-fyzikální engine Provádí analýzu aplikací pro výpočty matematicko-fyzikálních modelů. Implementuje matematickofyzikální model Sluneční soustavy a jeho napojení na grafický engine. 1
Ondřej Čermák Editor modelů Implementuje editor scény s podporou importu grafických modelů a definicí jejich matematickofyzikálních vlastností. Scénu z toho editoru načítají grafické enginy. Michal Vaňkát Grafický engine OpenGL Implementuje grafický engine v prostředí OpenGL schopný zobrazovat specializovanou strukturu scény. Vladimír Blažek Grafický engine Java 3D Implementuje grafický engine v prostředí Java 3D schopný zobrazovat specializovanou strukturu scény. Zdeněk Hák Management zásuvných modulů Rešerše knihoven a aplikací podporujících tvorbu pluginové architektury. Navrhuje řešení propojení modulů v aplikaci Mantichora. 1.1.3 Komunikace v týmu Jak je vidět z předchozí části někteří členové týmu jsou závislí na jiných více či méně. Největší důraz na spolupráci se klade na skupinu editor modelů, matematicko-fyzikální engine a grafický engine. Je to z důvodu dohody na přenosu dat mezi moduly. Pro přenos dat mezi moduly bylo nakonec zvoleno XML. V editoru modelů je toto XML vytvořeno. Jsou v něm patřičné objekty a jejich vlastnosti. Toto XML je nahráno do grafického enginu, pro který matematicko-fyzikální engine počítá potřebná data. Přepočet dat a jejich posílání grafickému enginu však probíhá za běhu aplikace. Jedná se vlastně o podporu zásuvných modulů. Původní idea předpokládala využití Web Services připravených externě od Marka Sachy pracujícího na projektu Studentova berlička. Zdeněk Hák měl původně zpracovat pouze konkurentí možnosti podpory zásuvných modulů. Nakonec se však web services ukázalo jako nevhodné pro nasazení v projektu Mantichora, proto v první verzi byl zvolen přenos dat pomocí jednoduchých zpráv pře TCP protokol. Ostatní členové týmu řeší podporu tohoto implementačního jádra. Komunikace v týmu probíhala na každotýdenní schůzkách s vedoucím projektu a pomocí webové aplikace Assembla. 2
2. Popis problému, specikace cíle 3
3. Řešení 3.1 Abecední seznam rešeršovaných aplikací Bugzilla 3.2.3 FogBugz 6.0 MantisBT 1.1.6 TaskFreak! 0.6.2 4
3.2 Rešerše 3.2.1 Bugzilla 3.2.3 Vývoj po licencí: MPL Mozilla public license Vývojář: Mozilla Foundation Domovská stránka projektu: http://www.bugzilla.org/ Cena: freeware Požadavky na instalaci: Perl 5.8.1 a vyšší Požadované Perl moduly: CGI 3.21, Date::Format 2.21, DBI 1.41, File:Spec 0.84, Template 2.15, Email::Send 2.00, Email::MIME::Modifier 1.442 Požadované Perl moduly v závislosti na použité databázi: DBD::Pg 1.45, DBD::Oracle1.19, DBD::mysql 4.0 Databáze: MySQL 4.1.2 a vyšší, PostgreSQL 8.00.0000 a vyšší nebo Oracle 10.02.0 a vyšší Web server s podporou CGI skriptů, doporučován Apache verze 1.3.x nebo 2.x Mail server Stručný popis: První verze Bugzilly byla napsána v roce 1998 Terrym Weissmanem v Tcl, ještě před zveřejněním, však byla přepsána do Perlu. První dostupná verze byla tedy Bugzilla 2.0. Bugzilla je web-based bug tracking systém původně vyvinutý a používaný organizací Mozilla. Bugzilla je open source projektem a je využíván k podpoře mnoha open source i proprietárních projektů. Bugzilla se vyznačuje velkým množstvým parametrů, které je možné chybě přiřadit. Význam pojmu chyba je zde velmi obecný, nebot se tato aplikace používá nejen pro evidenci chyb v pravém slova smyslu, ale i pro návrhy na vylepšení a požadavky nových funkcí. Podobné aplikace se z tohoto důvodu často nenazývají jako nástroje pro bug tracking ale jako nástroje pro issue tracking. Samozřejmostí jsou filtry pro vyhledávání v chybách. Bugzilla nabízí také integraci některých systémů pro správu verzí. Uživatel si může zvolit, zda použije Bonsai, CVS, Perforace, Subversion nebo Tinderbox. 5
Náhled: Obrázek 1: Bugzilla - Náhled UI Zdroje: The Bugzilla Guide: 3.2.3 Release [online]. [2009-03-30] [cit. 2009-04-08]. EN. Dostupný z WWW: <http://www.bugzilla.org/docs/3.2/en/pdf/bugzilla-guide.pdf>. Wikipedie: Bugzilla[online]. [2008-09-17] [cit. 2009-04-08]. CZ. Dostupný z WWW: <http://cs.wikipedia.org/wiki/bugzilla>. 6
3.2.2 FogBugz 6.0 Vývojář: Fog Creek Software Domovská stránka projektu: http://www.fogcreek.com/fogbugz/ Cena: užívání na serveru výrobce: $25 / uživatel / měsíc užívání na vlastním serveru: 1 licence $199 10 licencí $1899 100 licencí $14 999 500 licencí $49 999 zkušební verze: zdarma omezena na 45 dní Požadavky na instalaci: pro Windows: Web server: IIS.Net Framework 2.0 Databáze: MySQL 4.1 a vyšší, MS SQL 7.0 2000, 2005, 2008 nebo MS Jet 4.0sp3 Mail server Verzovací systém: Subversion, Perforce, CVS, Visual SourceSafe nebo Vault pro MacOS, Unix Web server: Apache s PHP 5.1 a vyšší a rozšířeními xml, imap, mysql, iconv Databáze: MySQL 4.1 a vyšší Mail server Open source.net: Mono Nástroj příkazové řádky: Curl Verzovací systém: Subversion, Perforce, CVS, Visual SourceSafe nebo Vault 7
Stručný popis: FogBugz je dalším web-based bug tracking systémem pro podporu vývoje softwaru. Současná (7.4. 2009) nejnovější verze je 6.0. FogBugz patří mezi placené systémy, ale na domovských stránkách projektu si po registraci můžete systém odzkoušet ve 45 denní trial verzi. Pro zakoupení tohoto produktu jsou možné 2 cesty. Měsíční platby podle počtu uživatelů v systému při používání systému na serverech výrobce nebo zakoupení instalace s určitým počtem licencí. FogBugz umožňuje spravovat úkoly v týmu. Úkoly jsou rozděleny podle uživatelů, kategorie a statusu. Pro snadní vyhledávání v úkolech je možné použít různé filtry. Mezi další funkce Fog- Bugzu patří mail list, wiki, diskuzní fórum a spolupráce s verzovacími systémy. Velkou výhodou FogBugzu je široká podpora verzovacích systémů (Subversion, Perforce, CVS, Visual SourceSafe a Vault). Další zajímavou možností je import dat z Bugzilly a Tracku. Náhled: Obrázek 2: FogBugz - Náhled UI Zdroje: FogBugz: Windows system requirements[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.fogcreek.com/fogbugz/docs/60/topics/setup/windowssystemrequirements FogBugz: Mac system requirements[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.fogcreek.com/fogbugz/docs/60/topics/setup/macsystemrequirements.htm FogBugz: Unix system requirements[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.fogcreek.com/fogbugz/docs/60/topics/setup/unixssystemrequirements.ht FogBugz: Price list[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.fogcreek.com/fogbugz/pricelist.html>. 8
FogBugz: Feature list[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.fogcreek.com/fogbugz/pricelist.html>. 9
3.2.3 MantisBT 1.1.6 Vývoj po licencí: GNU/GPL Vývojář: Victor Boctor Domovská stránka projektu: http://www.mantisbt.org/ Cena: freeware Požadavky na instalaci: Pro MantisBT 1.1.x: PHP 4.3.0 a vyšší MySQL databáze 4.1.1 a vyšší (MS SQL a DB2 jsou také podporovány) Web server (Apache, IIS, etc.) pro MantisBT 1.2.x: PHP 5.2.0 a vyšší MySQL databáze 4.1.1 a vyšší (MS SQL, DB2, a PostgreSQL jsou také podporovány) Web server (Apache, IIS, atd.) Stručný popis: Mantis je bug tracking systém, podporující vývoj software. Je možné ho zdarma stáhnout z http://www.mantisbt.org/. Systém uživatel instaluje na svém počítači nebo serveru. Současný stable release je verze 1.1.6 současná (7.4. 2009) poslední vývojová verze je 1.2.0a3. Mantis může být instalován na Microsoft Windows, Mac OS, OS/2 a také Unix. Většina webových prohlížečů by měla být schopna Mantis zobrazit. Mantis se vyznačuje jednoduchým grafickým rozhraním. Úkoly jsou jasně rozděleny do skupin a jejich stav je rozlišen na první pohled podle barvy. Pro vyhledání určitého úkolu Mantis disponuje různými filtry. Mezi další zajímavé funkce Mantisu patří wiki, change log, road map a možnost propojení s verzovacím systémem. Road map přehledně ukazuje splněné a nesplněné úkoly na projektu a jejich poměr. Z verzovacích systémů je v Mantis uzpůsoben pouze na spolupráci s CVS, který bohužel nepatří mezi nejnovější systémy pro správu verzí. Pro vyzkoušení funkcí Mantisu je na stránkách projektu umístěno demo, které po registraci umožní uživateli vyzkoušet většinu funkcí, kromě těch vyžadujících upload, či jinou manipulaci se soubory. 10
Náhled: Obrázek 2: Mantis - Náhled UI Zdroje: MantisBT: Requirements [online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.mantisbt.org/requirements.php>. MantisBT: CVS Integration[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: <http://www.mantisbt.org/manual/manual.installation.cvs.integration.php>. Wikipedie: Mantis[online]. [2008-12-28] [cit. 2009-04-07]. CZ. Dostupný z WWW: <http://cs.wikipedia.org/wiki/mantis>. 11
3.2.4 TaskFreak! 0.6.2 Vývoj po licencí: GNU/GPL (částečně GNU/LGPL) Vývojář: Stan Ozier Domovská stránka projektu: http://www.taskfreak.org/ Cena: freeware Požadavky na instalaci: PHP 4.3.1 a vyšší (při použití SQLite PHP 4 s příslušnými rozšířeními nebo PHP 5) MySQL databáze 3.23 nebo SQLite Web server (Apache, IIS, atd.) Stručný popis: TaskFreak je webově založeným systémem pro správu úkolů. Na domovských stránkách projektu http://www.taskfreak.org/ je k dispozici několik verzí pro instalaci. Rozdíly verzí jsou v používané databázi a počtu uživatelů. Na výběr je jednouživatelská verze a více uživatelská verze s neomezený počtem uživatelů. Pro vyzkoušení funkcí TaskFreku si můžete prohlédnout demo víceuživatelské verze na domovských stránkách. Protože TaskFreak je vyvíjen jako open source a je poměrně hojně užívaný, bylo k němu dopsáno množství pluginů. Pluginy přidávají funkce jako upozornění na změny pomocí mailu a další. Zajímavostí na vývoji je, že některé soubory pochází z Tirzen Frameworku. Tyto části jsou šířeny pod licencí LGPL (Lesser General Public Licence). To znamená, že je můžete volně používat a to i v komerčních projektech. TaskFreak disponuje velmi přehledným GUI na druhou stranu jsou jeho funkce omezené pouze na správu úkolů. Umožňuje spravovat úkoly více uživatelů na více projektech. Viditelnost úkolů se dá nastavit. Bud to pro všechny, pro všechny na projektu, kam spadá úkol, nebo pouze pro tvůrce úkolu. Pro jednoduché vyhledání jsou pro uživatele připraveny filtry. Úkoly je v rámci projektu možno dělit do několika kategorií a je možné úkoly komentovat a sledovat stav jejich splněnosti (20%, 40%, 60%, 80%, 100%). Bohužel nelze přidávat přílohy k úkolům a chybí i možnost na propojení s nějakým verzovacím systémem pro správu kódu. Zajímavou funkcí TaskFreaku je možnost vygenerování verze pro tisk z právě zobrazených úkolů. 12
Náhled: Obrázek 4: TaskFreak - Náhled UI Zdroje: TaskFreak! [online]. [2000-2008] [cit. 2009-04-23]. EN. Dostupný z WWW: <http://www.taskfreak.com/>. TaskFreak!: Versions and licenses [online]. [2000-2008] [cit. 2009-04-23]. EN. Dostupný z WWW: <http://www.taskfreak.com/licence.html>. 13
3.3 Srovnávací tabulka 3.4 Zdůvodnění výběru systému Assembla 14