PŘÍNOSY MODELOVACÍCH TECHNIK PRO ANALÝZU A NÁVRH KNIHOVNÍCH APLIKACÍ Petr Novák, Ústav informačních studií a knihovnictví FF UK Praha Modelovací techniky jsou v softwarovém inženýrství využívány k vizualizaci, specifikaci, definici návrhu a dokumentaci vyvíjených programů a aplikací. Jako nástroj k modelování slouží modelovací jazyky, z nichž nejrozšířenější je Unifikovaný modelovací jazyk UML – Unified Modelling Language. UML umožňuje prostřednictvím sady různých typů diagramů znázornit jak návrh systému včetně prvků jako jsou stavy, aktivity, procesy, systémové funkce, tak realizační komponenty, z nichž se výsledný systém skládá jako jsou příkazy programovacích jazyků, databázová schémata, programové komponenty a definice programových balíčků. UML není jazyk programovací, jedná se o symbolický jazyk založený na vizualizaci. UML není metodikou, která by určovala konkrétní postupy „jak to udělat“. UML je nástroj, založený na slovníku pojmů a výrazových prostředků. Kromě využití pro analýzu a návrh softwarových systémů jej lze použít pro stavbu ontologií 1 . Proč hovořit o modelování v souvislosti s vývojem a realizací informačních systémů v knihovnictví? Jaké jsou případné přínosy modelování? Přínosy modelování Přínos 1. Odhad potřebných kapacit a kvalifikované vyjádření požadavků Pokud dnes informační instituce stojí před úkolem či problémem, který chce řešit pomocí nového informačního systému či programové aplikace, má na výběr z několika možností: zvolit komerčně dostupné řešení, dodávané na trh některou z tuzemských či zahraničních softwarových společností; sáhnout po některém z volně dostupných produktů s otevřeným kódem – Open Source; realizovat vlastní vývoj informačního systému. Možné jsou i kombinace výše uvedeného. Volbě by mělo předcházet dů1
www.users.fsid.cvut.cz/~jura/pis/materialy/prednasky/KDprednaska.doc
95
kladné zmapování vlastních potřeb a možností i představ o budoucím systému. Právě zde je místo pro modelování. Modelovací techniky umožňují definovat věcné vymezení a rozsah uvažovaného systému a dekomponovat jej do objektů, stanovit možnosti požadované kooperace se stávajícími používanými či vyvíjenými řešeními, podrobně připomínkovat vlastnosti systému napříč institucí i vně, výčtem stanovit kvalifikované požadavky. Přínos 2. Odstranění bariér uvnitř Přestože se v případě modelovacího jazyka UML ve své podstatě jedná o nástroj vytvořený programátory a programátorům určený, díky modularitě UML lze pro některé techniky nalézt uplatnění i jinde, zejména mezi systémovými knihovníky, informačními managery, ale také (třeba i za asistence) u profesí, které budou reálně s danými aplikacemi a systémy pracovat. I rešeršéři, referenční pracovníci, pracovníci služeb mohou přispět svými názory a představami k budování nových systémů. Modelování může nejen v případě přípravy rozsáhlých systémů odstranit nedostatky v komunikaci. Cílem a výrazným přínosem může být i usnadnění pochopení komplexnějších aspektů knihovnického oboru i pro technicky orientované partnery z řad SW a IT zaměstnanců firem. Příkladem budiž např. FRBR, RDA, OAI-ORE, SWORD a další nové koncepty a standardy, často reagující na měnící se obsah oboru v digitální éře. Přínos 3. Nalezení společného jazyka navenek Často se v knihovnicko-informačním světě mluví o konceptech Web 2.0, Library 2.0, o sociálních sítích, konvergenci paměťových institucí obecně, o nutnosti domluvy mezi knihovnami, archivy, muzei, galeriemi, sférou klasických i internetových médií. Modelovací techniky nabízí prostřednictvím UML možnost, jak tuto domluvu zprostředkovat – umožnit ji již při vývoji společných projektů a systémů na základě rozšířeného a respektovaného způsobu sdílení myšlenek a koncepcí. UML zde může představovat společný jazyk ve smyslu lingua franca, s důrazem kladeným na ono „language“ ve zkratce UML. Teprve se společným jazykem je možné akcentovat interoperabilitu systémů, které mají využívat koncepce, postupy či data z různých zdrojů. Se společným modelovacím jazykem je možné přistoupit k tak náročným úkolům, jako je např. budování regionálních či oborových katalogů paměťových institucí, propojení elektronických služeb institucí zabývajících se šířením informací a krásné literatury (knihovny, knihkupectví, antikvariáty, 96
nakladatelství), dodávání primárních zdrojů a objednávání digitálních kopií (vč. 3D digitalizace), tvoření nových interakcí a vazeb, čímž vznikají systémy s novou kvalitou, příprava a realizace analytických nástrojů generujících synteticky původní primární či sekundární zdroje (korpusy, slovníky, ontologie, automatizované překlady, sémantické analýzy, pokročilé aplikované technologie – EBM, bioinformatika aj.).
Přínos 4. Otevření se knihoven a nové obzory pro knihovní systémy a jejich výrobce Zmapování a popsání běžných i méně běžných aktivit a procesů v knihovnických a informačních institucích pomocí modelovacího jazyka UML může otevřít cestu dalším IT subjektům, které se vývojem software a aplikací pro knihovny dosud nezabývaly. Podobně zvládnutí modelování v současných firmách vyvíjejících a dodávajících software pro knihovny a paměťové instituce obecně umožní porozhlédnout se po podnikatelských příležitostech i jinde – u více či méně souvisejících oborů. Příklady modelování Čtyři předložené modely, popisující činnosti a aktivity z problematiky knihoven, zahrnují malou část z toho, co UML opravdu nabízí. Následuje přehled diagramů v UML 2.0 včetně jejich rozčlenění do skupin: - diagramy chování: o diagram aktivit (activity diagram) – viz ukázky o diagram případů užití (use case diagram) – viz ukázka o stavový diagram (state machine diagram) – viz ukázka - strukturní diagramy: o diagram tříd (class diagram) – zachycuje statickou strukturu a vztahy mezi objektovými třídami navrhovaného informačního systému. Za objektovou třídu je považován předpis pro tvorbu reálných objektů, který využívá atributů, operací (transformací), relací a dalších prvků o diagram komponent (component diagram) – znázorňuje komponenty použité v systému. Komponenta je modulární část systému, která poskytuje souhrn daných služeb prostřednictvím konzistentního rozhraní. Jedná se o spustitelnou část programového kódu, doplněnou o zdrojový kód a popisnou specifikaci o diagram kompozitních struktur (composite structure dia97
-
gram) – integruje prvky diagramu komponent a tříd s cílem znázornění komplexních cílů systému o diagram nasazení (deployment diagram) – ukazuje rozmístění zdrojů (včetně hardware), softwarových komponent těchto zdrojů využívajících (na zdrojích běžících) a jejich vzájemných vazeb o diagram balíčků (package diagram) – znázorňuje náročnější dekompozice systému. Využívá metody seskupování tříd, vzájemně logicky spolupracujících. Lze jej s výhodou použít při implementaci systému po částech o diagram objektů (object diagram) – zachycuje objekty v systému v daném časovém okamžiku. Používá se v součinnosti s diagramem tříd diagramy interakce: o sekvenční diagram (sequence diagram) – znázorňuje spolupráci objektů v systému z hlediska času (pořadí probíhání akcí a vzájemné závislosti a časové souvislosti) o diagram komunikace (communication diagram) – umožňuje podobně jako sekvenční diagramy popsat spolupráci mezi objekty, vhodnější jsou pro zachycení statického propojení, kdo s kým komunikuje o diagram časování (timing diagram) – klade důraz na zachycení na časové ose tak, aby jednotlivé změny stavu objektu v čase byly jednoznačně identifikovány o diagram přehledů interakcí (interaction overview diagram) – kombinuje výše uvedené diagramy interakcí s diagramy aktivit, což přináší možnost sloučit výhody obou typů a modelovat tak v „mateřském“ diagramu aktivit interakce jako jednotlivé dynamické prvky
Model 1 – Případ užití „Služba dodávání dokumentů“ Knihovna s fondem tištěných časopisů plánuje systém pro dodávání elektronických kopií s cílem zpřístupnit články z těchto časopisů. Projekt neřeší otázku katalogu časopisů. Čtenář – uživatel vytvoří novou objednávku na zpracování a dodání digitální kopie článku z tištěného časopisu. Po ověření existence jeho uživatelského účtu a stavu hotovosti vloží povinné bibliografické údaje (název článku, autorské informace, název časopisu, ISSN, ročník, číslo, stránkování) a nepovinné údaje pro zpracování (formát, kvalita, rychlost dodávky, způsob dodávky).
98
Knihovník zpracovatel otevře nově příchozí objednávku, vyžádá si příslušné číslo či svazek ze skladu. Knihovník skladník vyhledá číslo či svazek ze skladu. Knihovník zpracovatel článek naskenuje, knihovník skladník číslo či svazek vrátí zpět do skladu. Knihovník zpracovatel naskenovaný obrázek převede do požadovaného formátu, opatří vodoznakem žádajícího čtenáře a vloží jej do úložiště. Provede kontrolu objednávky.
Obr.1 – Případ užití „Služba dodávání dokumentů“
Modelování případů užití (use case modelling) je základní analytická a popisná technika pro zachycení interakcí mezi systémem a aktérem. Cílem je vždy poskytnutí nějaké hodnoty či informace aktérovi. Pojmem aktér označujeme osobu (např. čtenář, knihovník), skupinu osob (uživatelé, akvi99
zitéři, referenční pracovníci), organizaci či její část (oddělení základních služeb, katalogizační linka), zařízení (RFID čtečka, třídička), abstraktní události v čase (konec výpůjční doby, počátek zpřístupnění licencovaného zdroje). Ve virtuálním světě mohou být aktéry i další externí informační systémy a procesy, které přímo ovlivňují činnost systému – například si s ním vyměňují informace (OAI harvester). Diagram případu užití přímo navazuje na textový scénář. Případy užití slouží zejména k definici architektury systému a k výčtu možností systému z uživatelovy perspektivy. Model 2 – Stavový diagram „Funkcionalita čtečky RFID čipů při revizi“ Scénář zachycuje stavy, které nastávají při kontinuální revizi fondu, ve kterém jsou jednotlivé exempláře vybaveny čipem RFID. Při spuštění načítání RFID čtečkou může dojít k těmto stavům: a) publikace je správně zařazena na regále b) publikace není správně zařazena na regále c) publikace na regále má nečitelné RFID d) publikace na regále chybí. V případě b) dojde k zařazení, v případě c) nápravě situace (přečipování). Neuvažujeme stav, kdy je nutno publikaci vyřadit z fondu pro její neopravitelnost. Pokud nastane případ d) a publikace na regále chybí (sekvence RFID čipů neodpovídá obrazu v knihovním systému), je nutno knihu dohledat. Nejprve čtečka kontroluje výpůjční status. Pokud je kniha vypůjčena, je po vrácení určena k zařazení a zařazena. Pokud je publikace na přečipování, je po dokončení určena k zařazení a zařazena. Pokud není vypůjčena ani na přečipování a má být na regále, je považována za přechodně ztracenou a je dohledávána. Pokud je při revizi dohledána, je zařazena, pokud není dohledána, je navržena k vyřazení. Diagram pracuje s jedním vstupním stavem – start čtečky a se dvěma výstupními stavy – publikace je správně zařazena a publikace je ztracena.
100
Obr. 2 – Stavový diagram „Funkcionalita čtečky RFID čipů při revizi“
Stavový diagram zachycuje chování systému, skládajícího se z objektů. Objekty mohou nabývat různých stavů, přičemž klíčové pro modelování stavů je zachycení akcí a aktivit symbolizujících stavy mezi objekty. Objekt může zůstat v určitém stavu po určitou dobu. UML metodologie podporuje vnořovaní stavů, kdy určitý stav je možné rozkreslit opět jako nový stavový diagram (viz ukázka). Přechod ze stavu do stavu je jednorázový a okamžitý, není ho možné dále dělit. 101
Modelování stavových diagramů lze využít zejména pro zachycení dynamického vývoje v systému. Objektem zde může být hmotný i elektronický dokument, sekundární informace (metadata) či celé jejich soubory. Model 3 – Diagram aktivit „Zpracování požadavku na referenční služby“ Scénář znázorňuje situaci, kdy je referenční službě typu Ptejte se knihovny předán požadavek na zodpovězení otázky. Referenční systém udržuje registraci uživatelů užívajících tuto službu. Následně probíhá lineární proces zodpovídání dotazu.
Obr.3 – Diagram aktivit „Zpracování požadavku na referenční služby“
102
Diagram aktivit je podobný stavovému s tím rozdílem, že je zde kladen důraz na subprocesy a paralelní zpracování dat. Podobně jako u stavového diagramu se lze setkat s podmíněným větvením. Diagramy aktivit je výhodné použít v případě potřeby paralelního zpracování, které je dále potřeba synchronizovat (např. některé typy autentizačních mechanismů, sledování funkcí služeb a procesů odpovídajících za běh aplikací – monitoring, auditing apod.). Model 4 – Diagram aktivit „Zpracování nového přírůstku do fondu“ Scénář popisuje základní aktivity oddělení akvizice a katalogizace, které mohou v určité fázi probíhat paralelně vedle sebe. V okamžiku, kdy je publikace v oddělení akvizice objednána, může být v oddělení katalogizace stažen ze souborného katalogu akviziční záznam, se kterým již mohou obě oddělení pracovat.
Obr. 4 – Diagram aktivit „Zpracování nového přírůstku do fondu“
103
Závěr Je pravděpodobné, že prezentované modely obsahují chyby, P. T. čtenářstvo se tímto žádá o shovívavost. Nebylo cílem článku prezentovat řešení, ale nastínit možnosti modelování na konkrétních příkladech. Pro specifickou oblast vývoje systémů pro knihovnictví a informační služby je podle mého názoru přínosné zvážit možnost nasazení modelování prostřednictvím jazyka UML s tím, že pro běžné základní použití postačuje modelování případů užití. Další typy diagramů lze s úspěchem použít v případě návrhu a analýzy komplexních informačních systémů i v případě rozšiřování systémů stávajících. Osvojení si znalostí modelování informačních procesů a systémů umožní plánování a realizaci nové generace knihovních systémů, ve kterých bude informační hodnota ukrytá ve stávajících paměťových institucích maximalizována. Poznámka: Pro tvorbu diagramů byla využita komunitní verze programu Visual Paradigma for UML (http://www.visual-paradigm.com/). Za cenné připomínky děkuji Petru Steinbauerovi. Použitá literatura: KANISOVÁ, Hana, MÜLLER, Miroslav. UML srozumitelně. 2. aktualiz. vyd. Brno : Computer Press, 2007. 176 s. ISBN 80-251-1083-4. PAVUS, M. OO, UML, analýza, metodologie [online]. 18.7.2006 [cit. 2008-07-31]. Dostupný z WWW:
. Wikipedie: Otevřená encyklopedie: Unified Modeling Language [online]. c2008 [citováno 2. 08. 2008]. Dostupný z WWW: http://cs.wikipedia.org/w/index.php? title=Unified_Modeling_Language&oldid=2792156
104