Ponuka
ÚVOD
V tomto dokumente je obsiahnutá ponuka na vypracovanie tímového projektu s názvom „Podpora riadenia projektovo-orientovanej firmy“ v rámci predmetu Tvorba softvérového systému v tíme.
ZADANIE PROJEKTU
Názov témy: Podpora riadenia projektovo-orientovanej firmy
Vedúci tímu: Ing. Roman Filkorn
Fungovanie organizačného celku v prostredí nadnárodnej spoločnosti si vyžaduje vykonávať aj úlohy, ktoré by bolo veľmi výhodné podporiť softvérovými systémami. Existujúce riešenia sú často spojené s vysokými finančnými nárokmi a vyžadujú aj značnú mieru prispôsobenia sa do konkrétneho prostredia zákazníka. Zároveň však nie je možné nahradiť súčasné “legacy” systémy, ktoré už v istej miere podporujú jednotlivé činnosti. Značná časť úsilia je teda venovaná práve integrácii existujúcich zdrojov dát a procesov do spolupracujúceho celku, nad ktorým je možné stavať “pridanú hodnotu” riešenia. V súčasnosti existuje silná podpora integračných technológií aj medzi voľne prístupnými produktmi.
Na základe rozhovoru so zákazníkom analyzujte, špecifikujte, navrhnite a vytvorte systém podpory riadenia projektovo-orientovanej firmy, ktorý bude:
- Integrovať súčasné systémy na úrovni zdroja dát (napr. organizačná štruktúra, zoznamy pracovníkov, evidencia odpracovaných hodín).
- Spravovať dáta projektového riadenia (aj získavaním z centrálnych báz údajov, s možnosťami doplňovať lokálne platné údaje).
- Podporovať HR manažment (odhady príjmov na projekt / pracovníka, evidencia dochádzky, odhady a štatistika výdajov na zamestnanca a pod.).
- Podporovať rôznu “papierovú” operatívu tak, aby ju bolo možné automatizovane spracúvať.
- Flexibilne vykonávať zadefinované procesy spracovania údajov (tzv. business procesy projektov, organizačných jednotiek, v kooperácii s materskou spoločnosťou).
MOTIVÁCIA
Pri tvorbe tímu sme rozmýšľali nad vlastnosťami, ktoré by mal spĺňať projekt, ktorý si vyberieme. Základné požiadavky boli, aby sme mohli pracovať a rozširovať si vedomosti programovacieho jazyka Java a jeho častí, a aby sme si mohli naštudovať jednu alebo viac nových technológií. Týmto všeobecným požiadavkám vyhovovalo viacero tém projektov. Z dôvodov, ktoré sú uvedené nižšie sme si nakoniec zvolili projekt s názvom „Podpora riadenia projektovo-orientovanej firmy“.
Dobré riadenie projektov patrí k základným predpokladom na úspech nielen softvérovej firmy. Dôležitosť efektívneho riadenia sa viac a viac vynára pri rozrastaní sa firmy. Z tohto dôvodu je vhodné ho podporiť aj softvérovými prostriedkami, ktoré uľahčujú a zlepšujú riadenie a prácu s ním spojenú.
Téma projektu predpokladá spoluprácu vytvoreného systému s inými podpornými systémami. To nám umožní sa v praxi naučiť a vyskúšať si spracovanie údajov z rôznych zdrojov a v rôznej kvalite.
Od tejto témy očakávame prehĺbenie si vedomostí o technológiách, ktoré sme už mali možnosť používať. Taktiež očakávame možnosť vyskúšať si niektorú z nám zatiaľ neznámych technológií a spoznať fungovanie veľkej firmy aj z pohľadu riadenia a manažmentu projektov.
PREDSTAVENIE ČLENOV TÍMU
Náš tím pozostáva z piatich študentov. Všetci členovia tímu sú úspešní absolventi bakalárskeho štúdia v odbore Informatika na Fakulte informatiky a informačných technológií Slovenskej technickej univerzity v Bratislave (FIIT STU). Pracovné pôsobenie v komerčnej oblasti prinieslo jednotlivým tímovým členom bohaté skúsenosti v oblasti riešenia „real-life“ biznis problémov. Spolu so skúsenosťami pracovať v tíme predstavujú tieto schopnosti a zručnosti dobrý základ na úspešné zvládnutie tohto projektu.
BC. MARKO DIVÉKY
Z programovacích jazykov má dlhoročné skúsenosti s jazykom Java a programovaním na platforme Java SE. Ovláda aj platformu .NET, kde pracoval s jazykom C#. Z enterprise platformy má skúsenosti s .NET webovými službami. Taktiež pracoval s databázovým prostredím Microsoft SQL Server 2005, verziovacím systémom Microsoft SourceSafe 2005 a ovláda technológie XML, XSD, XPath, XSLT. Má skúsenosti s jazykom UML a analýzou a navrhovaním softvérových systémov. V roku 2007 sa ako člen štvorčlenného tímu študentov prebojoval do svetového finále súťaže Imagine Cup 2007, kde v kategórií Software Design reprezentoval Slovensko. V komerčnej sfére pracuje na projekte postavenom na aplikácií IBM Rational Software Architect/Modeler, kde si osvojil technológie ako Eclipse PDE, GMF, EMF, SWT a ďalšie. Počas tohto projektu by si rád osvojil technológie platformy Java EE.
BC. MARIAN GABLOVSKÝ
Počas štúdia na bakalárskom stupni FIIT STU si osvojil technológiu Java SE, naviac má skúsenosti aj s platformou Java EE. Pracoval s knižnicami Spring, Hibernate, Cocoon, technológiami Maven, Ant a testovacím nástrojom JMeter. Ovláda technológie XML, XSLT, XPath. Z databázového prostredia používal MySQL v spolupráci s jazykom PHP. Má skúsenosti s webovými technológiami, ako napr. (X)HTML, CSS a jazykom JavaScript. Z verziovacích systémov si osvojil Subversion. Má skúsenosti s písaním dokumentácie, analýzou a návrhom softvéru s pomocou jazyka UML a prácou v tíme. Momentálne pracuje pre medzinárodnú softvérovú firmu, ktorá získala prestížne ocenenie IT FIRMA roka 2007. Počas riešenia tohto projektu by si rád osvojil a v praxi aplikoval nové technológie.
BC. MATÚŠ KORMAN
Počas svojej práce v softvérovej firme zameranej na bezpečnosť v komunikácii získal bohaté skúsenosti s databázovými prostrediami, počítačovou bezpečnosťou, šifrovaním a elektronickým podpisom. Podieľal sa na vývoji softvérového systému, ktorý je tematicky blízky zadaniu projektu. Má skúsenosti s webovými službami postavenými na platforme .NET a tiež technológiami XML, XSD a ASN.1. Podieľal sa na návrhu softvéru s použitím jazyka UML. Pracoval s verziovacími systémami Microsoft SourceSafe, Subversion a IBM Rational ClearCase. Z databázového prostredia má skúsenosti so systémami PostgreSQL, Microsoft SQL Server, prepojeniami JDBC, ODBC a ADO.NET. Aktívne ovláda platformy UNIX a Microsoft Windows po stránke programovania aj správy. Spomedzi programovacích jazykov ovláda predovšetkým C, C++, Assembler, C#, Java a PHP. Počas riešenia tohto projektu uvíta nové skúsenosti s platformou Java EE.
BC. JAKUB KOŽÍŠEK
Ovláda programovacie jazyky Delphi, PHP, Ruby, Perl, Java, C, C++, Assembler, Smalltalk, Python a JavaScript, ktoré si osvojil počas riešenia školských aj pracovných projektov a taktiež samoštúdiom. Počas práce si ako vývojár webových aplikácií osvojil technológie AJAX, JavaScript, PHP v kombinácii s databázovým prostredím MySQL. V súčasnosti pracuje ako Java špecialista v slovenskej pobočke medzinárodnej firmy zaoberajúcej sa, okrem iného, tvorbou rozsiahlych softvérových systémov. V práci sa venuje vývoju pre platformu Eclipse a v neposlednom rade bezpečnosti – technológii XACML, a pod. Má skúsenosti s model-driven architektúrou - Eclipse EMF knižnicou, návrhovými vzormi, návrhom softvérových aplikácií, nakoľko plánuje v budúcnosti pracovať ako softvérový architekt. Zaujíma sa o použitie technológie AJAX a Java – s využitím dostupných knižníc, ako napr. GWT, Echo. Ovláda technológie XML, XSLT. Má skúsenosti s vedením tímu, manažmentom kvality, buildovacími a verziovacími systémami. Pracuje so systémami/technológiami Subversion, Maven, Continuum, Ant, Apache, Tomcat a ďalšími.
BC. KATARÍNA SIROTOVÁ
Počas štúdia na strednej a vysokej škole aktívne pracovala s jazykmi C a Java. V súčasnosti si osvojuje platformu Java EE. Má skúsenosti s testovaním a vyhodnocovaním údajov získaných v prostredí klient-server s využitím technológie RMI. Pri vypracovaní bakalárskej práce na FIIT STU si osvojila jazyk PHP, prácu s databázovým prostredím MySQL a technológiu CSS. Tieto skúsenosti aplikovala pri tvorbe webových stránok. Ovláda jazyk UML a má pozitívny prístup k písaniu projektovej dokumentácie. Má bohaté skúsenosti s prostredím Microsoft Office a jeho aplikáciami Word, Excel a PowerPoint. Má zmysel pre detail a tímovú prácu.
NAŠA PREDSTAVA O PROJEKTE
Vzhľadom na široký charakter témy predostierame našu nezáväznú predstavu o projekte.
Projekt takéhoto zamerania sa vyznačuje širokými možnosťami realizácie v závislosti od rôznych alternatív prostredia. Vo všeobecnosti sa jedná o vysoko špecializované riešenie navrhované pre podmienky konkrétneho stredného alebo veľkého podniku, resp. podnikovej divízie. Takéto riešenie je aplikovateľné do veľkého množstva prostredí, avšak jeho realizácia pre jedno konkrétne prostredie nemusí vyhovovať iným prostrediam. Súčasťou systému by malo byť akési jadro zahŕňajúce biznis logiku spoločnú pre väčšinu mysliteľných prostredí nasadenia. Ostatné časti spočívajú v adaptácii tohto systému na konkrétne prostredie, čo pokrýva biznis logiku a tiež rozhrania s inými systémami.
Projekt je zameraný na podporu riadenia firmy, v rámci ktorej je činnosť zamestnancov rozdelená do projektov a úloh vykonávaných na týchto projektoch. Tým pádom zahŕňa biznis logiku týkajúcu sa viacerých procesov závislých od konkrétnych požiadaviek, ktoré ďalej závisia od firmy a nasadenia v konkrétnom prostredí.
Medzi významné vlastnosti riešenia radíme predovšetkým spoľahlivosť, bezpečnosť a schopnosť interaktívnej práce v reálnom čase. Taktiež si uvedomujeme dôležitosť modulárneho prístupu k návrhu systému a dlhodobo zachovateľnej udržiavateľnosti systému, nakoľko sa jedná o systém, ktorý bude pravdepodobne žiadúce modifikovať súbežne s evolúciou procesov v rámci firmy.
Spoločným návrhovým rysom riešenia pre rôzne prostredia sa javí použitie databázových technológií, ktoré umožnia relatívne nezávislé prepojenie s existujúcimi systémami, ktoré sú nasadené v prostredí už v čase implementácie. Okrem toho dôležitú úlohu nepochybne zohrá možnosť interakcie s ostatnými systémami. Na tento účel je možné využiť viacero prístupov a technológií, medzi ktoré patrí napríklad vzdialené volanie metód alebo samotná sieťová komunikácia. Veľká časť návrhu systému závisí od modelu nasadenia. Systém môže byť sčasti súčasťou rámca (framework-u), ktorý do značnej miery rieši interakciu modulov, alebo sa môže jednať o zväčša autonómne bežiaci systém, ktorý bude nezaobalene komunikovať s ostatnými systémami.
Ako tím sme otvorení práci a získavaniu nových skúseností s perspektívnymi podnikovými technológiami a tiež zdokonaľovaniu sa v rutinách vývoja softvérových systémov.
Naviac máme ambíciu ponúknuť časť našich vedomostí, skúseností a prostriedkov na samotný účel rozšírenia existujúcej podpory procesov riadenia firmy.
PREDPOKLADANÉ ZDROJE
Zdroje potrebné na realizáciu projektu sú určované požiadavkou vývoja systému na platforme Java, ktorá zahŕňa integrované prostredie pre vývoj a enterprise server slúžiaci ako kontajner pre časť systému. Konkrétne softvérové požiadavky pre potreby implementácie sú:
- Operačný systém Windows XP a novší, všetky novšie distribúcie Linuxu a Mac OS X,
- vývojové prostredie Eclipse Europa (verzia 3.3) a príslušné prídavné moduly,
- aplikačný server JBoss Application Server 4.2.1.GA,
- Java SE Development Kit 6.0 Update 2.
- verziovací systém Subversion 1.4.4,
- nástroj pre manažovanie stavby projektov Maven 2.0.7,
- webová aplikácia pre dokumentáciu a sledovanie zmien Bugzilla 3.0.2,
- nástroj pre manažment projektu Gantt 2.0.4.
- minimálne 512 MB operačnej pamäte,
- 1 GB miesta na pevnom disku,
- taktovacia frekvencia CPU aspoň 1 GHz.
- 512 MB RAM,
- 100 MB voľného miesta na pevnom disku,
- 400 MHz CPU.