Nástroj pro vývoj aplikací C&IS Designer
V článku jsou charakterizovány tzv. agilní metodiky vývoje aplikačního programového vybavení systémů pro řízení technologických procesů v průmyslu. Následně je stručně popsán nástroj pro návrh aplikačních programů (aplikací) v oboru informačních a řídicích systémů C&IS Designer. Nástroj C&IS Designer představuje implementaci metodiky, která patří do množiny agilních metodik. Jde o metodiku založenou na tzv. extrémním modelování, kdy předmětem vývoje není vlastní kód, nýbrž model aplikace.
Úvod
Neustálý růst informačního výkonu technických zařízení (rychlost zpracování dat, rychlost přenosu dat) nabízí potenciál k rozšiřování funkčních schopností programového vybavení systémů pro zpracování dat při jejich použití téměř ve všech oblastech lidské činnosti. Tato skutečnost je významná zejména při řešení úloh identifikace a řízení technologických procesů. Výsledkem jsou poměrně složité informační a řídicí systémy (IŘS). Složitost jejich funkcí vyžaduje vysokou kvalitu aplikačního programového vybavení (aplikací) a může vést k prodlužování doby potřebné na jeho vývoj a současně ke zvýšeným požadavkům na odbornou připravenost vývojových pracovníků, které je vedou ke specializaci. Při vývoji aplikace pak právě tito specialisté musejí být k dispozici. To jsou některé z faktorů, které mají ekonomický dopad na společnost věnující se programovému vybavení v podobě rostoucích nákladů na vývoj. Daný tlak je násoben potřebou neustále rychlejší modifikace funkcí, tj. požadavkem na maximální rychlost uvádění stále komplexnějších programových produktů na trh. Od tvůrců softwaru je požadována nižší cena při větších hodnotách kvalitativních parametrů (rozsah, rychlost a spolehlivost) funkcí jejich programových produktů.
Jednou z možností, jak čelit uvedenému rozporu, je zavést některé z agilních metodik vývoje programového vybavení IŘS. Nástroj C&IS Designer pro tvorbu aplikačního programového vybavení IŘS, popsaný v tomto článku, jde právě tímto směrem.
Agilní přístupy k tvorbě aplikací
Agilní přístupy se ideově opírají o manifest pro agilní vývoj aplikací zdůrazňující názor, že umožnit změnu je mnohem efektivnější než jí zabránit, a požadující připravenostreakce na nepředvídatelné události, které jsou nevyhnutelné. Z toho plynou následující postuláty:
- individuality a interakce mají přednost před procesy a nástroji,
- funkční programové vybavení má přednost před dokumentací,
- spolupráce se zákazníkem má přednost před sjednáváním smluv,
- reakce na změnu má přednost před plněním plánu.
Agilní metodiky proto z hlediska tradičních přístupů zavádějí určitý extremismus ve všech přístupech k procesům a jednotlivým artefaktům vzniklým při vývoji aplikací. Nejznámnějšími metodikami podporujícími agilní vývoj aplikací jsou Extreme Programming (XP), Feature-Driven Development (FDD), Test-Driven Development (TDD), Dynamic System Development Method, Pragmatic Programming, Adaptive Software Development a SCRUM Development Process. Společnými vlastnostmi všech agilních metodik jsou:
- inkrementální vývoj v iteračním cyklu s minimalizovaným počtem iterací,
- co nejrychlejší komunikace mezi uživatelem a vývojovými pracovníky,
- průběžné testování produktu.
Je zřejmé, že v porovnání s tradičními přístupy v podobě rigorózních (težkých) metodik je patrná změna v roli uživatele při vývoji aplikace. V ideálním případě je uživatel součástí vývoje: v čase blízkém reálnému času vývoje může reagovat na průběžné výsledky a má rozhodující vliv na návrh testů, čímž vytváří zpětnou vazbu směrem k vývojovým pracovníkům. Výsledkem je vysoká pravděpodobnost shody výsledného produktu s požadavky uživatele.
C&IS Designer – základní vlastnosti
Komplexní vývojový nástroj Control and Information System Designer (C&IS Designer, popř. C&ISD) je založen na tzv. extrémně efektivním modelování, další z agilních metodik vývoje aplikací. Od jiných extremálních přístupů se liší způsobem vývoje aplikací, když předmětem vývoje v něm není kód aplikace, nýbrž její model. Vývoj tedy probíhá nikoliv formou programování, ale formou modelování aplikace, přičemž vlastní kód aplikace je obsažen v předem připravených komponentách spojovaných v procesu modelování prostřednictvím definovaného rozhraní. Komponenty se spojují při použití jednotlivých nástrojů dohromady tvořících tzv. aplikační systém (application framework).
Aplikační systém C&ISD jako specifické vývojové prostředí integruje všechny nástroje potřebné pro vývoj aplikací pro IŘS v oblasti řízení technologických procesů v průmyslu. Protože soubor postupů zavedených v C&ISD má všechny hlavní rysy agilních metodik vývoje programového vybavení, přináší C&ISD do oblasti tvorby aplikací pro IŘS tyto žádoucí vlastnosti:
- možnost intenzivní komunikace s uživatelem,
- maximální důraz na průběžné modelování,
- vysokou míru dynamiky projektové dokumentace,
- silnou angažovanost jednotlivých rolí na řízení projektu,
- iteraci revizí,
- maximální opětovnou použitelnost všech artefaktů vzniklých při vývoji aplikace,
- nezávislost procesu modelování na implementaci aplikace,
- realizaci procesu modelování s extrémně rychlou zpětnou vazbou.
Obr. 1. Blokové schéma aplikačního systému C&IS Designer: hlavní podsystémy, systémové funkce, uživatelské role
K zajištění požadovaných funkcí jsou v C&ISD jako jeho základní principy striktně dodržovány systémový přístup, abstrakce ve fázi analýzy a návrhu, iterace životního cyklu, dostupnost a modularita a otevřenost systému.
Celková struktura systému C&IS Designer
Aplikační systém C&IS Designer obsahuje nástroje k realizaci funkcí soustřeďujích informace v podobě dat vstupujících do projektu řídicího systému v jednotlivých fázích jeho vývojového, resp. životního cyklu. Systém C&ISD jako celek se skládá z relativně nezávislých hlavních subsystémů, zajišťujících systémové i uživatelské funkce, a z uživatelů v různých rolích (obr. 1).
Systémové funkce pracují s daty tekoucími z okolního prostředí do aplikačního systému v průběhu vývoje aplikace. Jde o funkce zabezpečující:
- řízení projektu (funkce Project Management),
- řízení licenční politiky (License Policy Management),
- správu verzí projektu (Project Version Management),
- integraci projektových dat (Project Data Integration),
- validaci projektových dat (Project Data Validation),
- provoz aplikace (Operation).
Na obr. 1 jsou systémové funkce znázorněny bloky ve tvaru šipek směřujících od uživatelských rolí (v podobě schematických lidských siluet) k hlavním subsystémům. Uživatelská role je označení třídy uživatelů, kteří využívají právě systémové funkce. V systému C&ISD jsou podle obr. 1 definovány tyto uživatelské role:
- správce licencí (název License Administrator),
- správce projektu (Project Administrator),
- architekt projektu (Project Architect),
- analytik projektu (Project Analyst),
- návrhář projektu (Project Designer),
- uživatel projektu (název Project User),
- vývojář projektu (Project Developer),
- zkoušeč (tester) projektu (Application Tester),
- operátor aplikace (Application Operator).
Vytvářený produkt obsahuje komponenty, ve kterých jsou implementovány funkce zabezpečující vzájemné propojení dat přicházejících z okolí a dat vznikajících uvnitř systému C&ISD. Jde o nutný požadavek konzistence dat v každém okamžiku v průběhu procesu vývoje aplikace.
Hlavních podsystémů má systém C&ISD celkem sedm. Jsou to (obr. 1):
- vývojový systém (s název Application Development System),
- projektový server (Data Project Application Server),
- systém běhu aplikace (Application Runtime System),
- systém licenčních pravidel (License Policy System),
- systém správy projektových dat (Project Administration Management System),
- systém správy verzí (Version Management System).
Z nich se článek dále bude věnovat jen tomu nejvýznamnějšímu, kterým je vlastní vývojové jádro systému C&ISD s názvem Application Development System.
C&ISD – Application Development System
Struktura jádra vývojového systému
Funkce subsystému C&ISD – Application Development System, vlastního jádra vývojového systému C&IS Designer, jsou realizovány při použití komponent a technik souhrnně uvedených a charakterizovaných v tab. 1. Posloupnost použití technik vývojového subsystému uvedená v tab. 1 zároveň naznačuje vzájemnou závislost objektů vytvářených aplikačním systémem v jednotlivých fázích životního cyklu projektu. Data získaná postupem podle tab. 1 integruje systémová komponenta Data Integration System (obr. 1).
Tab. 1. Techniky a komponenty použité v podsystému C&ISD – Application Development System
Technika |
Komponenta |
Funkce |
Zúčastněné role |
Fáze vývoje aplikace |
|
název |
zkratka |
System Architecture Diagram |
Editor diagramu architektury systému |
SADE |
definování architektury systému, definování rozhraní aplikace |
architekt projektu, vývojář projektu |
analýza |
Data Flow Diagram |
Editor diagramu toků dat |
DFDE |
systémová dekompozice procesů, definování datových objektů |
analytik projektu, vývojář projektu |
analýza |
Data Structure Diagram |
Editor diagramu datových struktur |
DSDE |
kompozice okamžitých toků dat |
návrhář projektu, vývojář projektu |
návrh (datová vrstva) |
Entity Relationship Diagram |
Editor diagramu vztahů mezi entitami |
ERDE |
kompozice perzistentních toků dat |
Function Block Diagram |
Editor diagramu funkčních bloků |
FBDE |
funkční kompozice datových funkčních bloků |
návrh (aplikační vrstva) |
Form Sequence Diagram |
Editor diagramu posloupnosti formulářů |
FSDE |
kompozice uživatelského rozhraní, editace posloupností formulářů |
návrh (prezentační vrstva) |
Form Contents Diagram |
Editor diagramu obsahu formulářů |
FCDE |
kompozice obsahu obrazových formulářů, editace uživatelského rozhraní |
Následující odstavce blíže popisují techniky a komponenty uvedené v tab. 1.
Editor diagramu architektury systému – SADE
Technika diagramu architektury systému realizuje tři základní úlohy:
- definování rozhraní aplikace vzhledem k relevantnímu okolí,
- systémová dekompozice úlohy, kterou aplikace řeší,
- definování pracovního kontextu jednotlivých procesů (uzlů).
Nástrojem k dekompozici systému je editor diagramu architektury systému SADE (System Architecture Diagram Editor). Výstupem je systémová dekompozice úlohy řídicího, popř. informačního systému. Diagram architektury systému (System Architecture Diagram – SAD) poskytuje abstraktní popis základních funkcí jednotlivých procesů realizovaných v uzlech, které obvykle korespondují s fyzickými prostředky na zpracování dat.
Diagram systémové architektury dále vyjadřuje fyzickou komunikaci mezi uzly (Processor). Přenosy dat mezi uzly jsou zprostředkovány okamžitými toky dat (Volatile Data Flow), popř. perzistentními toky dat (Persistent Data Flow) a toky událostí (Event Flow). Okamžité toky dat a toky událostí zprostředkovávají komunikaci s technologickým procesem prostřednictvím rozhraní (Interface), stálé neboli perzistentní toky dat prostřednictvím datových skladů (Data Store). Příklad diagramu architektury systému je na obr. 2.
Editor diagramu toků dat – DFDE
Ve druhé fázi analýzy je řešena úloha systémové dekompozice jednotlivých funkcí aplikace. Nástrojem je editor diagramu toků dat DFDE (Data Flow Diagram Editor). Jde o proces definování struktury aplikace, který vychází z automatického generování tzv. kontextového diagramu (diagram toku dat na úrovni nula) z podkladů uložených v diagramu architektury vytvářeného systému (SAD). Struktura aplikace je následně určena hierarchickou posloupností diagramu toků dat.
Obr. 2. Příklad diagramu architektury systému v prostředí C&IS Designer
Diagram datových toků je formálně definován jako množina datových funkčních bloků (relativně nezávislá část aplikace definovaná abstraktní funkcí), úložišť dat, datových ukončení a ukončení událostí jako uzlů a okamžitých toků dat, perzistentních toků dat a toků událostí jako hran mezi uzly. Zobrazení diagramu toků dat v prostředí C&ISD vyhlíží obdobně jako zobrazení diagramu architektury systému na obr. 2. Potřebné funkční bloky jsou předem uloženy v některém z aplikačně zaměřených katalogů datových objektů (Data Object Toolbox), z nichž jsou k aplikaci dynamicky připojovány v průběhu činnosti vývojového systému.
Editor diagramu datových struktur – DSDE
Editor diagramu datových struktur DSDE (Data Structure Diagram Editor) umožňuje v prostředí C&ISD specifikovat strukturu a funkci každého z okamžitých toků dat.
Diagram datových struktur je definován jako množina datových struktur (Data Structure, základní rozlišitelný datový objekt, který definuje obsah okamžitého toku dat) obsahující dále tzv. datové sekvence, datové iterace, datové funkce a datové procedury. Datová struktura může obsahovat sebe sama, takže může popisovat úplnou stromovou strukturu okamžitého datového toku. Kořenová datová struktura obsahuje jedinečný objekt tzv. poskytovatele dat (Data Provider), který umožňuje aplikaci přistupovat k ovládacím komponentám datových rozhraní hostujících v operačním systému.
Editor diagramu vztahů mezi entitami – ERDE
Při definování obsahu perzistentních toků dat se vytváří množina jednoduchých datových objektů – instancí databázových prvků (entit). Entitu je možné chápat jako určitou třídu jednoznačně identifikovatelného datového objektu. Instance entity je datová abstrakce reálného objektu identifikovatelná prostřednictvím svých nedělitelných vlastností (atributů), které jsou reprezentovány v podobě dat. Datové (databázové) třídy obvykle nejsou nezávislé. V případě závislosti má smysl zavést pojem relace a kardinalita relace. Skutečnost, že entita je v relaci s jinou entitou, se vyjadřuje doplněním množiny jejích atributů tzv. cizím klíčem (vlastním klíčem entity, ke které je v relaci).
Z uvedeného plyne, že pro popis perzistentního datového objektu nestačí vyjádření v podobě diagramu datových struktur. K definování struktury perzistentního toku dat se proto používá editor diagramu vztahů mezi entitami ERDE (Entity Relationship Diagram Editor), resp. jeho rozšířené modifikace (perzistentní toky dat totiž nemusejí obsahovat pouze datové entity). Diagram vztahů mezi entitami musí obsahovat objekt databázového poskytovatele se specifikacemi připojení k ovládacím komponentám databázových systémů hostujících v operačním systému.
Základním prvkem ERDE je objekt databázové entity popisující perzistentní datovou strukturu. Jde o funkční blok, který obsahuje příkazy jazyka SQL pro přístup k jednotlivým položkám v databázi (čtení, zápis). Diagram vztahů mezi entitami dále zahrnuje objekty popisující vztah mezi entitami (typ a kardinalitu relace). Nástroj ERDE umožňuje definovat a konfigurovat i funkční bloky zavádějící operace nad informačními atributy databázových entit. Jde o databázové trigery (funkční blok s operacemi spouštěnými při některé události na přístupu k databázové entitě), databázové (uložené) funkce a databázové (uložené) procedury. Uvedené funkční bloky jsou také obsaženy v některém z aplikačně zaměřených katalogů, v tomto případě katalogu databázových objektů (Database Object Toolbox), odkud jsou dynamicky připojovány k aplikaci při jejím vývoji.
Editor diagramu funkčních bloků – FBDE
Editor diagramu funkčních bloků FBDE (Function Block Diagram Editor) realizuje systémovou funkci spočívající ve specifikování postupu zpracování dat. Umožňuje graficky propojovat tzv. implementační funkční bloky do diagramu funkčních bloků definovaného jako množina implementačních funkčních bloků (jako objektů realizujících funkce transakčního zpracování dat), spojovacích bloků, referenčních toků dat a referenčních toků událostí (obr. 3).
Opět platí, že implementační funkční bloky jsou uloženy v příslušném katalogu (Function Block Toolbox) k dynamickému připojování k vyvíjené aplikaci. Podobně jako u nástroje DSDE se i u FBDE počítá s doplňováním dalších speciálních datových objektů implementujících speciální funkce. Z toho vyplývá požadavek na zveřejnění funkčního rozhraní komponenty jádra nástroje FBDE.
Editor diagramu posloupnosti formulářů – FSDE
Editor diagramu posloupnosti uživatelských zobrazení FSDE (Form Sequence Diagram Editor) je určen k:
definování konfigurace propojení uživatelského rozhraní s datovými objekty na úrovni definice struktur perzistentních, popř. okamžitých toků dat (ERDE, popř. DSDE),
deklarování jednotlivých zobrazení a způsobu přechodu mezi nimi.
Obr. 3. Příklad zobrazení diagramu funkčních bloků v prostředí C&ISD
Posloupnost uživatelských zobrazení se tvoří v součinnosti s tvorbou diagramu obsahu uživatelských zobrazení (obsahu grafického uživatelského rozhraní). Diagram posloupnosti uživatelských zobrazení formálně vyjadřuje vztahy mezi jednotlivými grafickými objekty a z hlediska vlastní prezentace aplikace nemá žádný grafický obsah. Je definován jako množina uživatelských formulářů, přechodů mezi uživatelskými formuláři a vazeb dynamických grafických objektů a referenčních objektů na zdroje dat. Vztahy datových objektů definované prostřednictvím diagramu datových struktur a diagramu vztahů mezi entitami k uživatelskému zobrazení určují množinu hodnot proměnných, které může uživatel zobrazovat, popř. nastavovat (dynamické grafické objekty). Uživatelské zobrazení může obsahovat specifický objekt, jehož výskyt v diagramu obsahu formulářů se promítne v připojení obrazu objektu ke konstruktu jiného uživatelského zobrazení (formuláře). Přechod mezi uživatelskými formuláři je realizován prostřednictvím speciálního funkčního bloku (Transition Block), zavádějícího určitý způsob obsluhy uživatelské události. Konstrukt přechodu mezi uživatelskými formuláři je připojen na konstrukt dynamického grafického objektu (původ uživatelské události) a na konstrukt následně zobrazovaného uživatelského formuláře (způsob obsluhy uživatelské události).
Editor diagramu obsahu formulářů – FCDE
Editor diagramu obsahu uživatelských zobrazení FCDE (Form Contents Diagram Editor) umožňuje definovat obsah jednotlivých uživatelských zobrazení (formulářů) jako bezprostředního uživatelského rozhraní, jehož prostřednictvím uživatel ovládá funkce systému. Jde o funkce (z hlediska aplikace):
- vstup (zápis dat do aplikace),
- výstup (čtení dat aplikace).
Funkce vstupu a výstupu se vykonávají prostřednictvím dynamických grafických objektů (vyznačujících se schopností měnit svůj vzhled v závislosti na hodnotách výstupních proměnných aplikace, popř. na základě události modifikovat data vstupních proměných aplikace). Vedle dynamických grafických objektů obsahuje nástroj FCDE také pomocné grafické objekty statického charakteru určené k orientaci ve schématu.
Závěr
V článku jsou velmi stručně charakterizovány současné agilní metodiky tvorby programových systémů. Dále je zde popsán nový systém pro vývoj aplikací C&IS Designer (Control and Information System Designer) jako řešení rozšiřující principy agilních metod o metodu extrémně efektivního modelování a její použití při vývoji programového vybavení řídicích a informačních systémů (IŘS). Systém pro tvorbu aplikací je v daném případě pojat skutečně jako tzv. application framework, tedy ucelené vývojové prostředí integrující všechny nástroje potřebné k tvorbě aplikačních programů pro IŘS. Na omezené ploše článku v časopise přitom nebylo možné často ani zmínit mnohé další důležité aspekty popisovaného řešení, např. uplatněné principy systémového modelování, podrobněji popsat strukturu a funkci editorů jednotlivých diagramů obsažených v nástroji C&IS Designer a syntaktická pravidla pro práci s nimi atd. To vše případní zájemci najdou ve [2].
Poděkování
Projekt Aplikační systém C&IS Designer, realizovaný ve společnosti Unis spol. s r. o., byl financován z prostředků programů podpory výzkumu a vývoje Ministerstva průmyslu a obchodu ČR ev. č. FD-K3/082.
Literatura:
[1] YOURDON, E.: Modern Structured Analysis. Yourdon Press, Prentice-Hall Building, 1989.
[2] MAREK, J.: Analýza systémové architektury vývojového systému – analytická studie. Projektová dokumentace projektu OSVR, UNIS spol. s r. o., 2005.
Ing. Jiří Marek, CSc., Unis spol. s r. o.
(jmarek@unis.cz)
|