Prejsť na obsah
Výskum ÚISI

Bibliografický odkaz:

    Bieliková, M., Návrat, P. a kol.: Štúdie vybraných tém softvérového inžinierstva, Vydavateľstvo STU, Bratislava. 238 s. ISBN238 80-227-2464-5, 2006

Autorský kolektív:

    Mária Bieliková, Pavol Návrat, Anton Andrejko, Peter Blšták, György Frivolt, Vladimír Grlický, Jaroslav Jakubík, Matej Košík, Jaroslav Kuruc, Marián Lekavý, Vladimír Marko, Matúš Navarčík

Podpora:

Obsah:

    Diel 1: Návrhové vzory
    Diel 2: Vybrané témy programových a informačných systémov
    Na stiahnutie: podrobný obsah

Predhovor:

    Publikácia, ktorá sa vám dostala do rúk, vznikla na základe seminárov študentov doktorandského štúdia študijného programu programové systémy v odbore softvérové inžinierstvo. Semináre boli podporené projektom Európskych štrukturálnych fondov, ktorého hlavným cieľom je podpora vzdelávania prostredníctvom motivačných nástrojov pre doktorandov a zvyšovaním kvality vzdelávania v treťom stupni vysokoškolského štúdia v oblasti informatiky a informačných technológií.

    Informatika a informačné technológie sú kľúčovým prvkom budovania modernej spoločnosti založenej na vedomostiach. Mladí talentovaní absolventi druhého stupňa vysokoškolského štúdia v oblasti informatiky alebo príbuzných oblastiach majú v súčasnosti veľké možnosti uplatnenia sa v praxi. Informačná spoločnosť však potrebuje aj špecializovaných odborníkov a vedeckých pracovníkov s ukončeným tretím stupňom vysokoškolského štúdia v študijných odboroch skupiny informatických vied, informačných a komunikačných technológií tak, aby bolo možné budovať ekonomiku založenú na najnovších vedeckých poznatkoch. S tým súvisí potreba profesionálov v oblasti uchovávania, spracúvania a prezentácie informácií v bohatej palete reprezentácií ako základného prvku informačnej spoločnosti.

    S rozvojom informatiky a informačných technológií a s posunom spoločnosti k informačnej spoločnosti, resp. spoločnosti založenej na vedomostiach, vzniká potreba vychovávať odborníkov v špecializovaných oblastiach. Semináre, ktoré sa uskutočňujú na Fakulte informatiky a informačných technológií Slovenskej technickej univerzity v Bratislave v rámci doktorandského štúdia a podporené projektom sa zameriavajú na oblasť programových systémov, ktorá zahŕňa najrôznejšie aspekty softvérového inžinierstva od analýzy, návrhu, implementácie a testovania až po manažment verzií programových systémov, manažment kvality a softvérových projektov a v oblasti spracovania informácií.

    Našou ambíciou bolo sprístupniť záujemcom o softvérové inžinierstvo vybrané témy a tým zdieľať výsledky seminárov a tvorivého prístupu študentov k jednotlivým témam v rámci diskusií.

    Výskumné texty v tejto publikácii sú vhodné aj pre študentov ďalších študijných programov v odboroch ako napr. informatika, aplikovaná informatika, informačné systémy, či umelá inteligencia a to v študijných programoch uskutočňovaných na Slovenskej technickej univerzite v Bratislave a aj na iných univerzitách.

    Publikácia pozostáva z dvoch častí, v prvej (Diel 1: Návrhové vzory) sa sústreďujeme na analýzu návrhových vzorov, ktoré predstavujú jednu s kľúčových vyvíjajúcej sa disciplíny softvérového inžinierstva. Druhá časť (Diel 2: Vybrané témy programových a informačných systémov) obsahuje päť štúdií, ktoré diskutujú a analyzujú vybrané otvorené vedecké problémy z dynamicky sa rozvíjajúcej oblasti programových systémov so špeciálnym dôrazom na programové informačné systémy aj v spojitosti s internetom.

Diel 1: Návrhové vzory

    Návrhové vzory sú významným metodologickým príspevkom v rozvoji softvérového inžinierstva ako vedeckej disciplíny. V prvej polovici deväťdesiatych rokov minulého storočia došlo nielen k explicitnému zvýrazneniu pojmu softvérovej architektúry a rozbehol sa jej výskum, ale aj sa postupne stávalo bežným explicitné používanie tohto pojmu pri vývoji softvérových systémov. Ako to už býva pri vzniku nového pojmu, nebolo celkom jasné, čo znamená. Ako to už býva pri vzniku novej vedeckej disciplíny, k určeniu jej obsahu výrazne prispievajú vedecké monografie, ktoré sa mu venujú. V prípade softvérovej architektúry sa nedá obísť monografia Shaw, Garlan (Software architecture: perspectives on an emerging discipline. Prentice-Hall, Inc., 1996). Určite to nebola učebnica – na vznik učebnice bola disciplína ešte príliš nezrelá, učebnica nemohla vzniknúť. Koniec koncov, vznik učebnice predpokladá, že sa príslušná disciplína niekde na univerzite vyučuje. Avšak zaviesť niekde takúto novú univerzitnú disciplínu nie je vonkoncom jednoduché. Musí tomu predchádzať výskum v príslušnej oblasti. Je to len ilustráciou všeobecne uznávanej pravdy, že výskum a vzdelávanie sa na univerzite musia rozvíjať ruka v ruke.

    V našom prípade sme naozaj začali skúmať vybrané otázky, týkajúce sa architektúry softvérových systémov ako vedeckej disciplíny, v druhej polovici deväťdesiatych rokov minulého storočia. To nám umožnilo, aby sme mohli zaviesť predmet Architektúra softvérových systémov do študijného programu na druhom stupni vysokoškolského štúdia. Samozrejme, oblasť architektúry softvérových systémov je značne široká a náš výskum, ak mal mať nádej na dosiahnutie významnejších výsledkov, sa musel zamerať na vybrané otázky. V našom prípade sme si zvolili tému návrhových vzorov, špeciálne v tom zmysle, ako ju zaviedli autori GoF (E. Gamma, R. Helm, R. Johnson, J. Vlissides.: Design Patterns: Elements of Reusable Object-Oriented Software. 1st edition, Addison-Wesley, 1995). Ide o monografiu, ktorá prelomovým spôsobom poznačila vývoj disciplíny. Dodnes nie je svojím spôsobom prekonaná. Súčasne však treba povedať, že podnietila rozsiahly výskum, ktorý smeroval okrem rozšírenia toho, čo dosiahla, aj v podstate k jej prekonaniu. Tento výskum pokračuje a bolo by len prirodzené, ak by sme sa aj my na takom výskume podieľali. Naozaj, v uplynulom období sa podarilo dosiahnuť viacero pôvodných výsledkov v tejto oblasti.

    Ak teda celkom pokojne akceptujeme, že monografiu GoF, akokoľvek je míľnikom, alebo práve preto, treba prekonať, tak súčasne sme uzrozumení s tým, že prvým krokom je pochopiť základné myšlienky, ktoré priniesla. Ďaleko viac: mali by sme analyzovať základné princípy a štruktúry, ktoré zaviedla a pokiaľ možno kriticky zhodnotiť ich význam ako z hľadiska teoretického prínosu pre disciplínu architektúry softvérových systémov, tak z hľadiska praktického prínosu pre prax vyvíjania softvérových systémov.

    Toto je asi hlavný dôvod, prečo považujeme štúdium návrhových vzorov za potrebné pre študentov doktorandského štúdia. Ak si osvoja pojem návrhový vzor, oboznámia sa s jeho princípom ako aj rôznymi druhmi a v rámci nich s jednotlivými typickými prípadmi, tak budú lepšie pripravení na to, aby návrhové vzory buď rozvinuli, alebo zavrhli. Samozrejme, na to nestačí oboznámiť sa len s návrhovými vzormi. Tento text však má realistický cieľ, ktorým je kritický opis jednotlivých najdôležitejších návrhových vzorov.

    Návrhové vzory sme v súlade s pôvodnou monografiou GoF začlenili do troch skupín:
    • vzory vytvárania,
    • štrukturálne vzory,
    • vzory správania sa.
    Navyše, ako odraz súčasného vývoja, sme zaradili do tohto textu aj
      vzory J2EE.
    Každému vzoru venujeme opis, ktorý nie je len mechanickým prevzatím myšlienok z pôvodnej monografie GoF, ale má snahu o istú aktualizáciu a kritický pohľad.

    Vytvorený text však aktualizáciu a kritický pohľad skôr naznačuje: je predsa viac na čitateľovi, študentovi, ktorý sa podujal bádať v oblasti softvérového inžinierstva, aby kritický pohľad prehĺbil, samotný pojem návrhového vzoru rozpracoval a v konečnom dôsledku hypotézu o vhodnosti návrhových vzorov na vyjadrenie niektorých vedomostí používaných vo vývoji softvérových systémov buď potvrdil alebo zavrhol.

    Opis každého návrhového vzoru sleduje jednotnú štruktúru, ktorá má inšpiráciu v štruktúre pôvodného výkladu v GoF. Každý opis návrhového vzoru je výsledkom tvorivej činnosti, ku ktorej prispeli viacerí. Samotný text každého návrhového vzoru písal ten-ktorý doktorand a jeho autorský prínos treba čo najvýraznejšie zdôrazniť a oceniť. Prvé verzie opisov predniesli doktorandi na seminároch v rámci doktorandského štúdia, ktoré viedol Pavol Návrat. Na seminároch prebiehala diskusia, na ktorej sa zúčastňovala celá skupina doktorandov a ktorá v tom-ktorom prípade ovplyvnila definitívne znenie opisu. Napriek tomu považujeme za korektné, aby sme označili ako jediných autorov jednotlivých opisov doktorandov, ktorí im dali písomnú podobu.

    Autori sa podieľali na jednotlivých kapitolách takto:
    • Vzory vytvárania: Peter Blšták
    • Štrukturálne vzory: György Frivolt, Matej Košík
    • Vzory správania: Anton Andrejko
    • J2EE vzory: Jaroslav Jakubík

Diel 2: Vybrané témy programových a informačných systémov

    Do druhej časti zaraďujeme päť štúdií, ktoré sa venujú vybraným otvoreným vedeckým problémom, týkajúcim sa programových a informačných systémov. Ide o oblasti, v ktorých prebieha veľmi intenzívny vývoj. Programové systémy sa stávajú systémami, pôsobiacimi v čoraz rôznorodejšom prostredí, vrátane internetu. Stávajú sa súčasťou čoraz komplexnejších systémov – na jednej strane rozsiahlych informačných systémov, na druhej strane systémov, spolu určených technickou platformou, ktorou už dávno nie je len počítač v klasickom slova zmysle, ale aj najrôznejšie vnorené systémy, (tele‑)komunikačné systémy, atď.

    Informačné systémy sa stávajú univerzálnym modelom spôsobov vyhľadávania, získavania, sprístupňovania, uchovávania, odovzdávania, spoločného používania, prezentovania informácií. I keď sa v zásade dá na ne nazerať odhliadnuc od toho, či sú operácie a procesy podporené počítačom alebo nie, čoraz viac sa zväčšuje praktický význam informačných systémov, ktoré sú realizované pomocou programových systémov (a tie samozrejme pomocou počítačových systémov alebo iných technických systémov, zahŕňajúcich počítače). Je to najmä preto, že softvérovo podporené informačné systémy majú vďaka možnostiam, ktoré poskytuje naprogramovaný počítač, výhody, ktoré sa ručným spracovaním nedajú dosiahnuť. Toto je súčasne aj argumentom pre úzke prepojenie výskumu v oboch oblastiach – ako softvérového inžinierstva, tak aj informačných systémov.

    Štúdie sú výsledkom práce doktorandov v rámci ich doktorandského štúdia. Možno nezaškodí pripomenúť, že doktorandské štúdium sa koná pod vedením školiteľa. Na každej štúdii má preto podiel aj príslušný školiteľ. Napriek tomu však považujeme za korektné, aby sme označili ako jediných autorov jednotlivých štúdií doktorandov, ktorí im dali písomnú podobu a ktorí ich predložili a úspešne obhájili ako písomnú časť svojej dizertačnej skúšky.

    Autori sa podieľali na jednotlivých kapitolách takto:
    • Vývoj softvéru založený na vzoroch: Vladimír Marko (školiteľ prof. Pavol Návrat)
    • ormalizácia softvérových architektúr: Matúš Navarčík (školiteľ prof. Pavol Návrat)
    • Multiagentové systémy: Marián Lekavý (školiteľ prof. Pavol Návrat)
    • Modelovanie adaptívnych webových systémov: Jaroslav Kuruc (školiteľ: prof. Mária Bieliková)
    • Prezentácia informácií a znalostí na webe so sémantikou: Vladimír Grlický (školiteľ prof. Pavol Návrat)
    Dúfame, že text poslúži záujemcom o programové a informačné systémy, umožní zdieľať výsledky štúdia v tejto oblasti. Tešíme sa na prípadné odozvy, pripomienky, ktoré budú môcť prispieť k ďalším takýmto publikáciám.

    Mária Bieliková a Pavol Návrat

    Marec 2006, Bratislava

Na stiahnutie:

Projekt je spolufinancovaný Európskou úniou