Architektúra modulu témata

Podobné dokumenty
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vývoj informačních systémů. Přehled témat a úkolů

Návrh, implementácia a prevádzka informačného systému

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ. Metodika verzií zdrojového kódu

Analýza a Návrh. Analýza

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Znalostní systém nad ontologií ve formátu Topic Maps

IS pro podporu BOZP na FIT ČVUT

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Architektury informačních systémů

Architektury informačních systémů

(Enterprise) JavaBeans. Lekce 7

Základy analýzy. autor. Jan Novotný února 2007

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

Operačný systém Úvodná prednáška

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Základy algoritmizácie a programovania

Základy algoritmizácie a programovania

Architektura aplikace

PŘÍLOHA C Požadavky na Dokumentaci

Testovanie 5. v školskom roku 2015/2016. Testovanie sa uskutoční 25. novembra 2015 (streda). Žiaci budú testy písať v nasledovnom poradí:

VZOR PROTOKOLU O KOMPILÁCII

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Metodika na manažment úloh

Tvorba informačních systémů

Tvorba informačních systémů

Programovanie.NET, C++ - najbližšie termíny:

TÉMATICKÝ OKRUH Softwarové inženýrství

Elektronické služby katastra nehnuteľnosti Mapový klient ZBGIS a možnosti jeho konfigurácie

Návrhové vzory pro J2EE. Miroslav Beneš

RESTful web service v Javě

Vývoj informačních systémů. Přehled témat a úkolů

Elektronická podpora výuky předmětu Komprese dat

MS OFFICE OUTLOOK 2007

PROGRAMOVANIE A JEHO POZÍCIA VPREDMETE INFORMATIKA. Mgr. Ján Guniš

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Michal Krátký, Miroslav Beneš

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

Krížovka. Hot Potatoes JCross ( červená farba) = vytvorenie krížovky, do ktorej vpisujeme odpovede na zadané otázky. Priradenie

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

P R O L U C. POZNÁMKY individuálnej účtovnej závierky pre rok 2014

Architektura softwarových systémů

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Úvod do softwarového inženýrství a týmového vývoje

Tvorba informačních systémů

Návrhové vzory pro J2EE

KEO - Register obyvateľov Prevod údajov

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Semináˇr Java X J2EE Semináˇr Java X p.1/23

D.Viewer2 Používateľská príručka

Návod na viacnásobné podpisovanie dokumentov prostredníctvom aplikácie D.Signer/XAdES v prostredí elektronickej schránky

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Centrálny GIS MV SR. Ing. Kamil FAKO, PhD. OA, SITB MV SR

Organizačné štruktúry.

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Databázové systémy BIK-DBS

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Extrémne programovanie a iné agilné metodológie Zimný semester 2007/08

VYUŽITÍ MDA PRO INTEGROVANÝ VÝVOJOVÝ NÁSTROJ QI BUILDER

7.1 Návrhové zobrazenie dotazu

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

IMPLEMENTACE USE CASE POMOCÍ NÁVRHOVÉHO VZORU CONTROLLER

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava. Dátové rozhranie pre externý subjekt SP

Ako sme postavili Benátky

Oznámenie o príjme a výdaji liehu v SBL

Informační systém ozdravných pobytů zdravotní pojišťovny

Architektura softwarových systémů

Naformátuj to. Naformátuj to. pre samoukov

Cieľ: správne vysvetlenie významu slova migrovanie, priblížiť prečo ľudia migrujú, zapájať do odpovedí účastníkov,

Úvod do tvorby internetových aplikací

Moderní metodiky a technologie ve výuce softwarového inženýrství

KORUNOVAČNÁ BRATISLAVA MANUÁL LOGA VER. 1/2017

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Postupy pre komunikačné pripájanie zákazníkov ku elektromerom MT880 vo vlastníctve Stredoslovenskej distribučnej, a. s. Verzia 4/1.3.

ONLINE POBOČKA. pre zamestnávateľov MANUÁL

Checklist report. Legenda. Projekt. Url. všetko je správne. chyba, problém. Dátum. nemá zmysel testovať. Kontroloval. netestované

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

zákonem, váže k subjektu (dodavateli, příp. subdodavateli) nikoliv k osobám u něj zaměstnaným, a slouží k prokázání zkušeností dodavatele.

CERTIFIKAČNÉ ELEKTRONICKÉ TESTOVANIA - PERSPEKTÍVA

Ing. Marián Vasilečko, TT-IT s.r.o. Trnava GIS MESTA TRNAVA júna Konferencia CGIT 2013 hotel Partizán, Tále

Automatizovaný informačný systém technických kontrol

Univerzita Komenského v Bratislave. Filozofická fakulta

Databáze II. 1. přednáška. Helena Palovská

Databázové a informační systémy

Řízení reálných projektů, agilní metodiky

Business Intelligence

P RSO S N O ALIST S IKA K A RIADENIE UDSK S Ý K CH

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

1. prednáška MARKETING MANAŽMENT

Jemný úvod do spracovania XML

7 Jazyk UML (Unified Modeling Language)

ezakazky Manuál uchádzača

PA165: Úvod do Java EE. Petr Adámek

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava. Dátové rozhranie pre externý subjekt SP

Transkript:

Architektúra modulu témata Vypracované autorským kolektívem v složení: Jiři Novotný Miroslav Vacek Peter Cipov Push Team, 2010 Vytvorené 1.4.2010 Verzia 1.0 1 Úvod Účelem tohoto dokumentu je blíže přiblížit architekturu projektu modul Témata, tak jak jsme ji navrhly v rámci této iterace. Během této iterace jsme vyrobily testovací modul, který prokázal, že v naší architektuře lze bezezbytku využít možností frameworku SPRING v oblast testování výsledného kódu. Naše architektura dále umožňuje ladit chyby bez rizika jejich zavlečení do dalších částí aplikace, neboť jednotlivé části jsou od sebe fyzicky odděleny. Toto ještě umocňuje fakt, že později ve fázi deploymentu od sebe budou fyzicky odděleny i aplikace (tedy stávající aplikace bude provozována tam kde doposud a naše řešení se bude otrkávat na serveru beta.kiv.zcu.cz dokud nebude zadavatel spokojen s našimi výsledky). V rámci návrhu této architektury jsem vycházeli zejména z finální verze vize projektu schválené zákazníkem (viz wiki projektu, sekce downloads) a dále z diagramu případů užití (viz Ilustrace 1), který vznikl na základě konzultace se zákazníkem.

Ilustrace 1: Diagram případů užití 2 Klíčové aspekty organizace Modul témata má za úkol umožnit zaměstnancům KIV vypisovat a následně přidělovat témata. Na takto vypsaná témata se budou moci zapisovat studenti KIV pomocí svého webového prohlížeče. Náš modul má v současnosti tři základní subsystémy: 1) modul DAO obstarává komunikaci s databází, fyzicky z ni vybírá data 2) modul Mediator zabezpečuje práci z daty, např. logika pro filtrování, editaci, či výpis témat 3) modul View zobrazení výsledků uživateli 3 Mimofunkční požadavky V rámci mimofunkčních požadavků jsme narazili na zajímavý problém. V našem týmu totiž nelze dostatečně dobře použít tzv. Burnout charts. Důvodem tohoto problému je fakt, že na této práci pracujeme ve velké míře nárazově, což je do značné míry vynuceno skladbou předmětů v tomto semestru. Není tedy neobvyklé, když člen týmu věnuje práci na tomto tématu jen dva dny v týdnu, nicméně tyto dva dny pracuje opravdu jen na zadaném úkolu. Jako určitou formu náhrady za Burnout charts je možné chápat FlySpray RoadMap, který monitoruje stav jednotlivých tasků ze systému FlySpray. Tato náhrada se však uplatní pouze tehdy, budeme-li mít možnost ji využívat (probíhají jednání s Přemyslem Bradou o přístupu k tomuto nástroji).

4 Kontext Modul témata běží v kontextu několika dalších aplikací. Toto ukazuje ilustrace 2. Zde je vidět, že nedílnou součástí našeho systému je OpenCMS, SMTP server, a další služby, bez kterých by funkce našeho modulu nebyla možná. Ilustrace 2: Návaznosti modulu Témata na další služby 5 Zdůvodnění Naše architektura se do současné podoby dostala zejména proto, že ze strany zákazníka byly kladeny konkrétních požadavky na použití určitých technologií. Tyto požadavky mají svůj původ v politice katedry, která aplikace podobného rozsahu jako je naše, dává k vyřešení svým studentům. Tito studenti však mnohdy nemají znalost pokročilých technologií (např. Hybernate,...), čili je nutné, aby na řešení mohli pracovat s nástroji, které důvěrně znají (např. Java, JSP,...). Proto se naše architektura opírá zejména právě o programovací jazyk Java, JSP, Servlety a pouze okrajově používáme pokročilejší technologie, jako např. SPRING.

6 Princípy Veríme že dobre členený kód je základom správnych programátorských návykov. Predchádza sa tým znižovaniu čitateľnosti a potenciálnym logickým chybám. Pri vývoji sa budeme držať nasledujúcich zásad: Budeme dodržiavať zaužívané programátorské konvencie [1] Programovanie cez interface [2] bude slúžiť ako základný vzor pre väčšinu situácií. Očakávané výhody tejto voľby by sa mali dostaviť vo forme jednoduchších zmien kódu a lepšieho dekomponovania problému. Vytváranie doménového modelu vo forme jednoduchých java objektov (POJO). To aj znamená úsilie o čo najmenšiu nezávislosť od používaných technológií. Objektový návrh je dôležitejší ako použité technológie Testovanie je nevyhnutnou súčasťou vývoja. 7 Subsystémy Témata modul je vystavaný ako modul do OpenCms. Je fyzicky rozdelený do troch celkov: Dátová vrstva databázy spoločný modul pre všetky moduly. Jedná sa o implementáciu návrhového vzoru DAO [3]. Umožňuje jednotný prístup a zjednocuje rozhranie prístupu k systému riadenia bázy dát (srdb). Kód sa tým odľahčí od manažovania spojenia (vytvorenie, udržovanie, obnova, ukončenie) a implementačných detailov ako rôzne dialekt srbd. Táto vrstva poskytuje veľkú časť doménového modelu, ktorý je spoločný pre všetky vyššie vrstvy. Aplikačná logika aplikačná logika je postavená na DAO vrstve. V podstate sa jedná o vysoko úrovňovú logiku od získania požiadavku od užívateľa až po vytvorenie patričnej odpovede. Riešia sa tu problémy nad viacero DAO objektmi. Komplikovanejšie úlohy nad viacerými tabuľkami, triedenie a zoraďovanie výsledkov, validácia požiadavku, bezpečnosť. Prezentačná vrstva stará sa len o rendering odpovede. Je natívne predpokladaná technológia JSP (Java Server Pages). Jednotlivé JSP stránky volajú aplikačnú logiku ktorá im vráti odpoveď vo forme objektov doménového modelu. Tieto objektu JSP prevedie do požadovaného formátu (napr. XHTML 1.1 strict). Ďoležitou vlastnosťou JSP stránok v module je, že vytvárajú iba neformátovanú odpoveď, tzn., len čisté XHTML bez formátovania. Táto ich vlastnosť bola zvolená z dôvodu, že webmaster cms systému považuje jsp stránky v moduloch za malé atomické jednotky, ktoré si do svojich (iných) jsp stránok vloží pomocou include príkazu. Tým je mu umožnené si stránku poskladať podľa vôle.

8 Balíky Distribúcia témata modul je archív komprimovaný štandardnou metodou LZW (.zip súbor). Ten sa skladá z: Priečinok Pages obsahuje JSP stránky Priečinok lib obsahuje všetky jar súbory distribúcie. V súčastnej dobe obsahuje len jeden jar so skompilovanými triedami modulu. Distribúcia sa skladá z balíkov: cz.zcu.kiv.compators komparátory pre vyššiu aplikačnú logiku. cz.zcu.kiv.formhandler validátory odpovede od užívateľa cz.zcu.kiv.mediator obsluha requestu od užívateľa, miesto pre hlavnú apl. logiku cz.zcu.kiv.temata.trideni zabezpečuje funkciu triedenia a načítania zoznamu entit podľa stanovených kritérií

9 UML diagramy 9.1 Class diagram Ilustrace 3: Class diagram bližšieho pohľadu na architektúru modulu

Ilustrace 4: Class diagram obecnejšieho pohľadu na architektúru modulu 9.2 Component diagram Ilustrace 5: Komponentový diagram modulu temata

10 Rekapitulace Naše architektura tedy vychází především z finální verze vize produktu a diagramů užití. V architektuře se dále odráží i výsledky naších informačních schůzek se zákazníkem. Architektura samotná pak byla úmyslně navržena tak, aby nevyužívala žádné pokročilejší technologie, ale naopak byla přístupná studentům KIV (např. Absolventům předmětu PIA). Návrh se do značné míry opírá o programování do rozhraní. Toto je velmi důležitý aspekt, který nám umožnil použít v rámci naší aplikace framework Spring, jako nástroj pro testování výsledného kódu.

11 Literatúra [1] Sun Microsystems. Code Conventions for the Java TM Programming Language [online]. Posledné úpravy 20.4.1999 [cit. 1.4.2010]. Dostupné na http://java.sun.com/ docs/codeconv/html/codeconvtoc.doc.html. [2] GAMMA Erich. -HELM Richard. -JOHNSON Ralph. -VLISSIDES M. John. Design Patterns: Elements of Reusable Object-Oriented Software. London: Addison-Wesley, 1995, ISBN 0-201-63361-2 [3] Wikipedia. Data access object [online]. POsledné úpravy 20.2.2010 [cit. 1.4.2010]. Dostupné na http://en.wikipedia.org/wiki/data_access_object.