1. Úvod 1.1 Projekt Mantichora 1.1.1 Pˇredstavení projektu Projekt Mantichora vzniká jako víceletý týmový bakaláˇrský projekt. Vedoucím projektu je ˇ Ing. Jiˇrí Chludil z katedry poˇcítaˇcu˚ FEL CVUT. Inspirací názvu i samotného projektu je nˇekolikadílná knižní sci-fi série od Davida Webera o Honor Harringtonové a jejím rodném Hvˇezdném království Mantichoˇre. 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ˇrit klient – server aplikaci zobrazující hvˇezdné soustavy, vesmírné lodˇe, družice atd. Ve finální verzi by systém mˇel být uživatelsky interaktivní. To znamená umožnit uživateli ovládat napˇríklad vesmírné lodˇe a možná s nimi vést i bitvy. Vytvoˇrit takový systém, je ale cˇ asovˇe velmi nároˇcné, proto je Mantichora projektem jak týmovým tak i víceletým. Jako souˇcásti projektu v budoucnu pravdˇepodobnˇe nebudou pouze bakaláˇrské, ale i diplomové práce. Akademický rok 2008/2009 je prvním rokem vývoje projektu Mantichora. Z toho d˚uvodu jsou cíle prvních bakaláˇru˚ , pracujících na tomto projektu, omezeny na simulace jednoduchých hvˇezdných soustav. Výsledkem by tedy mˇel být funkˇcní prototyp aplikace, bez optimalizací. Proto pravdˇepodobnˇe i tyto jednoduché simulace, nepobˇeží bez viditelných chyb.
1.1.2 Tým Mantichora Celý projekt je skládankou prací prozatím sedmi student˚u a Ing. Jiˇrího Chludila. Každý ze student˚u má sv˚uj úkol v rámci projektu. Nˇekteré práce na sebe úzce navazují, jiné jsou v podstatˇe samostatné. ˇ Clenové týmu: • Ing. Jiˇrí Chludil – Vedoucí projektu Vedení konzultací týmu poˇrádaných každý týden. Schválení a úprava návrh˚u dalšího vývoje a nabízených ˇrešení. ˇ • Václav Podlipný – Rízení projektu Rešerše možností aplikaˇcní podpory ˇrízení projektu. Výbˇer vhodné aplikace, její úprava, nastavení, pˇrípadnˇe implementace vlastní aplikace. • Jiˇrí Kopecký – Sít’ová komponenta Prozkoumání nástroj˚u pro mˇeˇrení parametr˚u sítí. Vybrání vhodného nástroje a implementace rozhraní pro Mantichoru. • Jiˇrí Nekola – Matematicko-fyzikální engine Provádí analýzu aplikací pro výpoˇcty matematicko-fyzikálních model˚u. Implementuje matematickofyzikální model Sluneˇcní soustavy a jeho napojení na grafický engine.
1
ˇ • Ondˇrej Cermák – Editor model˚u Implementuje editor scény s podporou importu grafických model˚u a definicí jejich matematickofyzikálních vlastností. Scénu z toho editoru naˇcítají grafické enginy. • Michal Vaˇnkát – Grafický engine – OpenGL Implementuje grafický engine v prostˇredí OpenGL schopný zobrazovat specializovanou strukturu scény. • Vladimír Blažek – Grafický engine – Java 3D Implementuje grafický engine v prostˇredí Java 3D schopný zobrazovat specializovanou strukturu scény. • Zdenˇek Hák – Management zásuvných modul˚u Rešerše knihoven a aplikací podporujících tvorbu pluginové architektury. Navrhuje ˇrešení propojení modul˚u v aplikaci Mantichora.
1.1.3 Komunikace v týmu Jak je vidˇet z pˇredchozí cˇ ásti nˇekteˇrí cˇ lenové týmu jsou závislí na jiných více cˇ i ménˇe. Nejvˇetší d˚uraz na spolupráci se klade na skupinu editor model˚u, matematicko-fyzikální engine a grafický engine. Je to z d˚uvodu dohody na pˇrenosu dat mezi moduly. Pro pˇrenos dat mezi moduly bylo nakonec zvoleno XML. V editoru model˚u je toto XML vytvoˇreno. Jsou v nˇem patˇriˇcné objekty a jejich vlastnosti. Toto XML je nahráno do grafického enginu, pro který matematicko-fyzikální engine poˇcítá potˇrebná data. Pˇrepoˇcet dat a jejich posílání grafickému enginu však probíhá za bˇehu aplikace. Jedná se vlastnˇe o podporu zásuvných modul˚u. P˚uvodní idea pˇredpokládala využití Web Services pˇripravených externˇe od Marka Sachy pracujícího na projektu Studentova berliˇcka. Zdenˇek Hák mˇel p˚uvodnˇe zpracovat pouze konkurentí možnosti podpory zásuvných modul˚u. Nakonec se však web services ukázalo jako nevhodné pro nasazení v projektu Mantichora, proto v první verzi byl zvolen pˇrenos dat pomocí jednoduchých zpráv pˇre TCP protokol. Ostatní cˇ lenové týmu ˇreší podporu tohoto implementaˇcního jádra. Komunikace v týmu probíhala na každotýdenní sch˚uzkách s vedoucím projektu a pomocí webové aplikace Assembla.
2
2. Popis problému, specikace cíle
3
ˇ 3. Reš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áˇr: 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˚u, doporuˇcován Apache verze 1.3.x nebo 2.x • Mail server Struˇcný popis: První verze Bugzilly byla napsána v roce 1998 Terrym Weissmanem v Tcl, ještˇe pˇred zveˇrejnˇením, však byla pˇrepsána do Perlu. První dostupná verze byla tedy Bugzilla 2.0. Bugzilla je web-based bug tracking systém p˚uvodnˇe vyvinutý a používaný organizací Mozilla. Bugzilla je open source projektem a je využíván k podpoˇre mnoha open source i proprietárních projekt˚u. Bugzilla se vyznaˇcuje velkým množstvým parametr˚u, které je možné chybˇe pˇriˇradit. 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˚uvodu cˇ asto nenazývají jako nástroje pro bug tracking ale jako nástroje pro issue tracking. Samozˇrejmostí jsou filtry pro vyhledávání v chybách. Bugzilla nabízí také integraci nˇekterých systém˚u pro správu verzí. Uživatel si m˚už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:
. • Wikipedie: Bugzilla[online]. [2008-09-17] [cit. 2009-04-08]. CZ. Dostupný z WWW: .
6
3.2.2 FogBugz 6.0 Vývojáˇr: Fog Creek Software Domovská stránka projektu: http://www.fogcreek.com/FogBugz/ Cena: užívání na serveru výrobce: $25 / uživatel / mˇesí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šíˇreními xml, imap, mysql, iconv • Databáze: MySQL 4.1 a vyšší • Mail server • Open source .NET: Mono • Nástroj pˇríkazové ˇrádky: Curl • Verzovací systém: Subversion, Perforce, CVS, Visual SourceSafe nebo Vault
7
Struˇcný popis: FogBugz je dalším web-based bug tracking systémem pro podporu vývoje softwaru. Souˇcasná (7.4. 2009) nejnovˇejší verze je 6.0. FogBugz patˇrí mezi placené systémy, ale na domovských stránkách projektu si po registraci m˚užete systém odzkoušet ve 45 denní trial verzi. Pro zakoupení tohoto produktu jsou možné 2 cesty. Mˇesíˇcní platby podle poˇctu uživatel˚u v systému pˇri používání systému na serverech výrobce nebo zakoupení instalace s urˇcitým poˇctem licencí. FogBugz umožˇnuje spravovat úkoly v týmu. Úkoly jsou rozdˇeleny podle uživatel˚u, kategorie a statusu. Pro snadní vyhledávání v úkolech je možné použít r˚uzné filtry. Mezi další funkce FogBugzu patˇrí 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˚u (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:
• FogBugz: Mac system requirements[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW:
• FogBugz: Unix system requirements[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: .
8
• FogBugz: Feature list[online]. [2000-2009] [cit. 2009-04-07]. EN. Dostupný z WWW: .
9
3.2.3 MantisBT 1.1.6 Vývoj po licencí: GNU/GPL Vývojáˇr: 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ˇcný 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ˇcítaˇci nebo serveru. Souˇcasný stable release je verze 1.1.6 souˇcasná (7.4. 2009) poslední vývojová verze je 1.2.0a3. Mantis m˚uže být instalován na Microsoft Windows, Mac OS, OS/2 a také Unix. Vˇetšina webových prohlížeˇcu˚ by mˇela být schopna Mantis zobrazit. Mantis se vyznaˇcuje jednoduchým grafickým rozhraním. Úkoly jsou jasnˇe rozdˇeleny do skupin a jejich stav je rozlišen na první pohled podle barvy. Pro vyhledání urˇcitého úkolu Mantis disponuje r˚uznými filtry. Mezi další zajímavé funkce Mantisu patˇrí wiki, change log, road map a možnost propojení s verzovacím systémem. Road map pˇrehlednˇe ukazuje splnˇené a nesplnˇené úkoly na projektu a jejich pomˇer. Z verzovacích systém˚u je v Mantis uzp˚usoben pouze na spolupráci s CVS, který bohužel nepatˇrí mezi nejnovˇejší systémy pro správu verzí. Pro vyzkoušení funkcí Mantisu je na stránkách projektu umístˇeno demo, které po registraci umožní uživateli vyzkoušet vˇetšinu funkcí, kromˇe tˇech vyžadujících upload, cˇ 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: . • MantisBT: CVS Integration[online]. [2000 - 2009] [cit. 2009-04-07]. EN. Dostupný z WWW: . • Wikipedie: Mantis[online]. [2008-12-28] [cit. 2009-04-07]. CZ. Dostupný z WWW: .
11
3.2.4 TaskFreak! 0.6.2 Vývoj po licencí: GNU/GPL (ˇcásteˇcnˇe GNU/LGPL) Vývojáˇr: Stan Ozier Domovská stránka projektu: http://www.taskfreak.org/ Cena: freeware Požadavky na instalaci: • PHP 4.3.1 a vyšší (pˇri použití SQLite PHP 4 s pˇríslušnými rozšíˇreními nebo PHP 5) • MySQL databáze 3.23 nebo SQLite • Web server (Apache, IIS, atd.) Struˇcný popis: TaskFreak je webovˇe založeným systémem pro správu úkol˚u. Na domovských stránkách projektu http://www.taskfreak.org/ je k dispozici nˇekolik verzí pro instalaci. Rozdíly verzí jsou v používané databázi a poˇctu uživatel˚u. Na výbˇer je jednouživatelská verze a více uživatelská verze s neomezený poˇctem uživatel˚u. Pro vyzkoušení funkcí TaskFreku si m˚už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ˇernˇe hojnˇe užívaný, bylo k nˇemu dopsáno množství plugin˚u. Pluginy pˇridávají funkce jako upozornˇení na zmˇeny pomocí mailu a další. Zajímavostí na vývoji je, že nˇekteré soubory pochází z Tirzen Frameworku. Tyto cˇ ásti jsou šíˇreny pod licencí LGPL (Lesser General Public Licence). To znamená, že je m˚užete volnˇe používat a to i v komerˇcních projektech. TaskFreak disponuje velmi pˇrehledným GUI na druhou stranu jsou jeho funkce omezené pouze na správu úkol˚u. Umožˇnuje spravovat úkoly více uživatel˚u na více projektech. Viditelnost úkol˚u se dá nastavit. Bud’to pro všechny, pro všechny na projektu, kam spadá úkol, nebo pouze pro tv˚urce úkolu. Pro jednoduché vyhledání jsou pro uživatele pˇripraveny filtry. Úkoly je v rámci projektu možno dˇelit do nˇekolika kategorií a je možné úkoly komentovat a sledovat stav jejich splnˇenosti (20%, 40%, 60%, 80%, 100%). Bohužel nelze pˇridávat pˇrílohy k úkol˚um a chybí i možnost na propojení s nˇejaký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ˇe zobrazených úkol˚u.
12
Náhled:
Obrázek 4: TaskFreak - Náhled UI Zdroje: • TaskFreak! [online]. [2000 - 2008] [cit. 2009-04-23]. EN. Dostupný z WWW: . • TaskFreak!: Versions and licenses [online]. [2000 - 2008] [cit. 2009-04-23]. EN. Dostupný z WWW: .
13
3.3 Srovnávací tabulka 3.4 Zduvodnˇ ˚ ení výbˇeru systému Assembla
14