OBEKTOVÁ ALGEBRA Zdeěk Pezlar Úsav Iformaiky, Provozě-ekoomická fakula MZLU, Bro, ČR Absrak V objekovém modelu da defiujeme objekové schéma (řídu) jako čveřici skládající se ze jméa řídy, aribuů, domé a procesů. Nad ímo schémaem defiujeme objeky. Srukuru sysému popisujeme jak ve saickém pohledu pomocí vzahů mezi řídami a objeky, ak v dyamickém pohledu popisujícím chováí objeků v čase pomocí pěic skládajících se z původího objeku, jeho událosi, jí způsobeé zprávy, cílového objeku a jeho akiviy iiciovaé oou zprávou. Nad ímo modelem můžeme dále adefiova operace objekové algebry, keré ám umoží formalizova maipulace s objeky (zejméa doazy).. Úvod Sofwarové ižeýrsví se pomalu sává součásí ašeho každodeího živoa. Věšia lidských akivi používá sofware, kerý se ak posupě sává komplexějším a ákladějším. Popávka po sofisikovaém sofware pak zvyšuje požadavky kladeé a vývojové ýmy. Z oho aké vyplývá popávka po kvaliích meodách. Meoda defiuje opakovaelý způsob získáí spolehlivých výsledků. Meody obecě umožňují vysavě modely z elemeů, vořících základí způsoby popisu sysémů. Meody aké defiují reprezeaci časo grafickou kerá umožňuje jak sadou maipulaci s modely, ak komuikaci a výměu iformací mezi růzými čásmi. Dobrá reprezeace usiluje o vyrovaos mezi huosí a čielosí iformací. Meody aké ad modely a jejich grafickou reprezeací defiují pravidla popisující výsledky růzých pohledů, pořadí úkolů, ebo alokaci zodpovědosi. V současé době se můžeme seka s ásupem objekově-orieovaých meod (OOM). Byl vyvoře Uified Modellig Laguage (UML), meamodel sadardizující objekovou oaci (formálě popisující syaxi i sémaiku oace). Teo meamodel umožňuje kosrukci modelu, sadardizace procesu vorby modelu však sále chybí. Také chybí prosředky pro formálí zhodoceí kvaliy vyvořeého modelu (meriky). Pokud by se podařilo objekově-orieovaý přísup formalizova, poom bychom za pomoci éo formalizace mohli jak popsa a porova jedolivé procesy vorby modelů, ak formalizova hodoceí jejich kvali. Uživaelé jedolivých vyvořeých modelů časem získávají určié zkušeosi, keré elze vždy jasě formulova, či předa dále. I yo zkušeosi by mohly bý formalizováy a zapracováváy do vyvořeých procesů. edou z možosí, jak formalizaci provés, je použií prosředků eorie moži výsledkem bude objekový model da. Využií eorie moži se v objekovém přísupu jeví jako zvlášě vhodé z ěkolika důvodů. edím je blízkos kocepu moži a objeků. Isace objeků sdílí obecé charakerisiky řídy, keré voří charakerisické vlasosi možiy isací. Pro uo možiu a její charakerisické vlasosi plaí obdobé zákoiosi jako pro řídy a jejich elemey. 47
Kocep eorie moži byl aké velmi úspěšě použi při vorbě relačího modelu da, pomocí kerého formalizujeme daové srukury při srukurovaém modelováí. V omo relačím modelu máme velmi silé prosředky pro popis sémaiky relačích jazyků (sloužících zejméa pro maipulaci s day) relačí algebru a relačí kalkul, prosředky pro ávrh vhodých relačích srukur (umožňující ormalizaci), prosředky pro odděleí da od jejich implemeace. Podobé prosředky exisují i v objekovém modelu da popsaém v ásledující kapiole ebo by z ěj mohly bý v budoucu vyvořey. ejich využiím bychom vyřešili problémy asíěé v úvodu čláku. Objekový model da je aké výhodý pro převod srukur a procesů z relačího modelu vzhledem ke sejé srukuře relačího a objekového modelu da (založeých a možiové eorii) by měly bý výsledky přeosielé (po úpravách apříklad vzahujícím se k procesům).. Objekový model da Máme možiy = je plaé jméo D= { D D je doméa} Q= { Q Q je proces} P= { P P Q} Pak objekovým schémaem (řídou) azveme jakoukoliv čveřici skládající se ze jméa řídy, jme aribuů,,...,, příslušých domé D, D,..., D a z procesů P. Formálě zapsáo ( : D, : D, Κ, : D, P),,,, Κ, D, D, Κ, D D P P Přičemž jméa i jsou uikáí, doméy D i se mohou opakova. Dále si můžeme adefiova i možiu všech říd (objekových schéma) = ( Κ ) je objekové schéma Pro každé schéma budeme dále uvažova objeky, o kerých budeme hovoři jako o objekech ad objekovým schémaem, ebo jedodušeji jako o objekech ze řídy. Tyo objeky budou dodržova daé objekové schéma a budou odpovída základím charakerisikám objeků ideia bude dáa jméem objeku O, sav hodoami aribuů a chováí možiou procesů z objekového schémau. elikož se hodoy aribuů objeků mohou v čase měi, budeme uvažova objeky v daém čase. Formálě zapsáo O ( a, a, Κ, a ), ai Di a možiu aribuů objeků ad daým schémaem (v daém čase) si ozačíme M = {( a, a, Κ, a ) O ( a, a, Κ a ) je objek v čase ad daým objekovým schémaem }, Někdy ovšem můžeme pořebova pracova i s objekem obecě (zejméa při specifikacích plaých po celou dobu živoa objeku), proo zavedeme i obecý saický objek O = O je libovolý čas O= { O O je saický objek} 48
(,,,, K, K ), A i O A, i Ki K, přičemž K je možia kardiali K = { 0,, N, } Tako edy můžeme formálě popsa objeky a řídy, eboli základí savebí elemey objekového přísupu. Pokud má bý formalizace využielá, musíme ješě adefiova ásroje, pomocí kerých popíšeme srukuru sysému. V jazyce aalýzy iformačích sysémů jde o logický pohled, a o jak o jeho saickou, ak o jeho dyamickou čás. Saickou čás, kromě srukur říd a objeků, voří i jejich vzájemé vazby. Obecou vazbu mezi řídami si můžeme popsa pomocí jejího jméa A, jme obou říd do vzahu vsupujících, ázvu jejich rolí ve vzahu a kardiali. Formálě Rozezáváme více druhů vzahů mezi řídami, ale všechy mohou bý popsáy pomocí éo obecé šabloy apříklad u vzahu geeralizačě-specializačího budou jméa rolí superřída a subřída, přičemž budou plai omezeí pro aribuy, doméy a procesy ze S S S S S S S B B B B B B B superřídy : D, : D : D, P i subřídy : D, : D m : Dm, P ao: Dyamická čás popisuje chováí objeků v čase. Přičemž změy asávají ako asae událos, kerá způsobí vyvoláí zprávy, keré může vyvola akiviu vedoucí ke změě savu. Máme-li edy můžeme jede vzah popsa jako uspořádaou pěici složeou z výchozího savu jedoho objeku, událosí ímo objekem způsobeé, zprávy, akiviy druhého objeku m S S B B = S S B B D, Κ, D D, Κ, D E= { E E je událos} S B P P (bez polymorfismu) M = { M M je zpráva} (akiviy iiciovaé zprávou) a kocového savu druhého objeku elý objekový model da pak bude voře objeky, řídami, saickým i dyamickým ( O, E, M, Q, O ), D = E E M M Q P, akového že ( : D : D, P) (, O, S, D) S= D=, { S S je saický vzah} { D D je dyamický vzah} pohledem, edy Kokréí maipulace s objeky pak budeme moci vyváře ad kokréími objeky v čase, edy ad možiami, pro všecha dosupá. 49
3. Objeková algebra Pro maipulaci s objeky bude ezbyé popsa operace objekové algebry, kerá umoží formalizova zejméa doazy a maipulace s objeky. Základí operace můžeme převzí z relačí algebry a budeme je aplikova a možiy aribuů objeků ad daými schémay. Operace možiové sjedoceí, průik a rozdíl budou klasické možiové operace defiovaé a možiy aribuů daých objeků. ediou podmíkou bude kompaibilia operadů edy skuečos, že do ěcho operací mohou vsupova pouze y možiy objeků, jejichž schémaa mají sejý poče aribuů a jejichž odpovídající doméy se avzájem rovají. Pro výsledou možiu hodo aribuů v daém čase musíme ješě vyvoři i odpovídající objekové schéma, v omo případě lze převzí objekové schéma libovolého z objeků do operace vsupujícího. Operace karézský souči žádá omezeí emá, výsledé objekové schéma bude obsahova aribuy a doméy z obou vsupích schéma, možia procesů v ovém schémau bude sjedoceím moži procesů v původích schémaech. Operace projekce A, A je podmožia možiy aribuů řídy, odsraí z - M ic hodo aribuů z možiy [ ] aribuy, keré ejsou obsažey v možiě A. Výsledkem bude edy možia odpovídající objekovému schémau s aribuy z možiy A (a s odpovídajícími doméami) a s procesy zpracovávajícími aké pouze yo aribuy (edy z původího schémau odsraíme procesy, keré zpracovávají aribuy, keré se evyskyují v možiě A). Selekce φ poechá pouze y prvky možiy, keré vyhovují podmíce φ (logický výraz porovávající hodoy aribuů mezi sebou a s kosaami). Objekové schéma zůsae beze změy. D Spojeí M * M moži ad schémay a D s možiami aribuů A, B a s možiami procesů P a Q vyvoří ad schémaem složeým ze sjedoceí aribuů A B a ze sjedoceí procesů P Q maximálí možiu akovou, že její projekce a aribuy A je a D projekce a aribuy B je. Kromě výsledků získaelých použiím ěcho radičích operací exisuje ovšem řadu dalších skuečosí, keré by ás mohly zajíma, keré můžeme získa z objekového modelu, ale keré ěmio sedmi operacemi ezískáme. Vesměs jde o skuečosi související se vzahy mezi objeky. Pro jejich získáí můžeme využí operaci levý vzah, kerá určí pro objek (řídu) D možiu objeků (říd), keré jsou s ím ve vzahu a keré odpovídají podmíce ψ, operace bude adefiováa ako: D { ψ } = { E exisuje vzah A( D, E,,, K, K) splňující podmíkuψ } Obdobě adefiujeme operaci pravý vzah, kerá pracuje sejě jako levý vzah, pouze pro druhý objek (řídu) příomý ve vzahu. Tedy { ψ } E = { D exisuje vzah A( D, E,,, K, K) splňující podmíkuψ } Tímo způsobem můžeme zjisi apříklad možiu všech superříd pro daou řídu X { ="superřída "}X 50
Operace levý a pravý vzah obsahují určiou ekompaibiliu vzhledem k radičím operacím jejich výsledkem eí možia hodo aribuů, ale možia říd, případě objeků. Pro yo výsledé řídy ale máme možiy, a keré jsou už radičí operace aplikovaelé. 4. Závěr Další rozšířeí objekového modelu by mohlo bý vyvořeo jako ásavba a zde publikovaém modelu a v souladu s oací popsaou v UML. de apříklad o zahruí růzých ypů zpráv a jejich sychroizace, o rozlišeí růzých úroví zapouzdřeí u říd (public, privae, proeced), o omezováí asociací a geeralizací, o asociačí kvalifikáory, ebo o zahruí celé kocepce polymorfismu. Užiečé by bylo saoveí určiých omezeí a procesy omezeí procesů a aribuy příslušé řídy edy ěco jako. objeková ormálí forma. Na i by mohl avazova popis dalších ormálích forem omezujících vzahy a umožňujících vyvořeí kvaliích srukur (podobě jako formy založeé a fukčích závislosech u relací, ovšem rozšířeě o procesy). U objekové algebry bude muse ásledova komparace s doazovacími jazyky, a jejímž základě eprve budeme moci kvaliu ako prezeovaého modelu vyhodoi. Lieraura. Booch, G., acobso, I, Rumbaugh,. The Uified Modellig Laguage User Guide, Addiso-Wesley Pub o, 999. Eriksso, H. E., Peker, M. Isa UML, Wrox Press Ld., Birmigham, 997 3. Pezlar, Z., Rábová, I. Od De Marca k UML, a co dál?, výročí sborík MZLU, Bro, 999 (v isku) 4. Pokorý,. Doazovací jazyky, Sciece, Veleiy, 994 5