Beehive groupware Meet your visions http://beehiveware.sf.net
Osnova Projektový tým Představení projektu Časový harmonogram Zadání projektu Metodologie Nabyté zkušenosti
Projektový tým Vedoucí projektu RNDr. Filip Zavoral, Ph.D. Řešitelský tým Tomáš Pluskal - data store, emailový klient Lucie Bittnerová - desktop Jan Mikšátko - komunikační modul, address-book Petr Stodůlka - síťová část komunikačního modulu, messaging, conference Ondřej Těthal - IO modul, permission control, plánovací kalendář původně ještě Vlastimil Janda, byl však z týmu vyloučen
Beehive Otevřený, modulární, klient-server groupwarový systém Obsahuje kalendář, adresář, emailový klient, instantní messenger, konferenční modul Umožňuje komunikovat a sdílet data v týmu, např. použít společný adresář či kalendář
Desktop aplikace Zprostředkovává pohled na strom složek uživatele, umožňuje vytvářet, upravovat, či přesouvat složky a dokumenty pomocí drag&drop Umožňuje pracovat s lokálními i se serverovými složkami, či vytvořit synchronizovanou složku Po dvojitém kliknutí na složku či dokument aktivuje příslušný grouplet
Kalendář Slouží k plánování času lidí či zdrojů Umožňuje nastavit časované upozornění ke každé události Umožňuje specifikovat účastníky každé události a rozeslat jim pozvánky, a tak organizovat hromadné schůzky
Adresář Slouží k ukládání informací o kontaktech, včetně možnosti editace, prohledávání, importu/exportu do XML, tisku Umožňuje spolupráci s ostatními grouplety odeslání kontaktu emailem vybrání kontaktu při různých příležitostech zobrazení stavu uživatele u kontaktu
Emailový klient Slouží k odesílání a příjmu emailů Pro komunikaci protokoly SMTP a POP3 používá služby IO modulu aplikace Umožňuje posílání a příjem příloh, napojení na adresář Poskytuje službu odeslání mailu ostatním groupletům, včetně zpracování příchozích zpráv a předání příslušnému groupletu
Messenger Slouží ke komunikaci dvou uživatelů Zobrazuje aktuální stav připojení druhého uživatele k serveru Umožňuje archivovat průběh komunikace, exportovat ho do textového souboru, či tisknout
Konference Slouží ke komunikaci více uživatelů současně Umožňuje vytvořit na serveru komunikační místnosti, do kterých uživatelé vstupují Umožňuje zobrazit přítomné uživatele, nastavit místnosti moderátory, či nastavovat oblíbené místnosti
Časový harmonogram Projekt byl navržen v říjnu 2001 Původní harmonogram počítal s obhajobou v květnu 2002, což se ukázalo jako nereálné Zpoždění bylo způsobeno jednak rozsáhlostí zadání a jednak specifickými problémy týmu (vyloučení jednoho člena, 2 další členové na delší dobu v zahraničí)
Průběh vývoje Říjen 2001 Vytvoření řešitelského týmu Listopad 2001 Sepsání a odevzdání specifikace Prosinec 2001 Schválení specifikace projektovou komisí Prosinec 2001 až únor 2002 Návrh funkčnosti celé aplikace a podrobný návrh jednotlivých modulů jádra
Průběh vývoje Březen 2002 - říjen 2002 Vývoj modulů jádra Červen 2002 Odchod Vlastimila Jandy Říjen 2002 Odevzdána první výroční zpráva Říjen 2002 - duben 2003 Dokončování vývoje jádra, příprava návrhu groupletů
Průběh vývoje Duben 2003 - září 2003 Vývoj groupletů, opravování chyb jádra při individuálním testování groupletů Říjen 2003 Odevzdána druhá výroční zpráva Říjen 2003 - prosinec 2003 Dokončování zbývající funkčnosti, testování celého systému Prosinec 2003 Dokumentace Leden 2004 Obhajoba
Zadání projektu Základní zadání open source groupwarový systém Inspirováno obdobnými systémy (Microsoft Outlook/Exchange, Lotus Notes, Novell Groupwise), ale založeno na otevřených technologiích Po sestavení týmu a dohodnutí vedoucího byla sestavena detailní specifikace (klíčové body specifikace na dalším slajdu)
Klíčové body specifikace Platforma Java 2 Modulární návrh ( grouplety ) Klient-server architektura, možnost napojení na více serverů současně Synchronizace dat mezi klientem a serverem Komunikace mezi moduly zasíláním XML zpráv Ukládání dat ve formě XML dokumentů
Metodologie Pro synchronizaci kódu byl použit systém CVS hostovaný na serveru SourceForge (sf.net) Pro komunikaci byla použita emailová konference (prošlo přes 3000 zpráv) Osvědčila se tvorba dílčích harmonogramů a jejich následná kontrola Osvědčilo se též organizování pravidelných schůzek, což ale v pozdější fázi vývoje nebylo možné (2 členové v zahraničí)
Metodologie Práce byla dělena rovnoměrně mezi členy týmu a vývoj probíhal paralelně Testování probíhalo vždy individuálně (každý otestoval svojí část), a poté společně Členové týmu používají různé vývojové platformy, čímž byla zaručena platformová nezávislost systému
Nabyté zkušenosti Při tvorbě zadání a specifikace je třeba držet se při zemi a myslet na pravidlo 80:20 Problémem byla nízká angažovanost členů týmu i vedoucího, nikdo neměl osobní zájem na dokončení projektu, což mělo vliv na motivaci a pracovní morálku
Nabyté zkušenosti Některé prvky architektury nebyly zřejmě zvoleny šťastně: Komunikace modulů pomocí XML zpráv se ukázala jako dost pracné a komplikované řešení Ukládání dokumentů v textovém XML formátu bylo také nemělo očekávaný přínost, vhodnější by bylo zřejmě ukládat data do databáze či jako serializované Java třídy
Beehive Meet your visions Děkujeme za pozornost! http://beehiveware.sf.net