nazaj na kazalo dinamicno modeliranje casovne relacije je tezko razumeti sistem lahko najbolje razumemo ce najprej raziscemo njegovo staticno strukturo torej njegovo strukturo v smislu objektov ter njihovih medsebojnih relacij ki pa ne veljajo le v dolocenem casovnem trenutku sele nato raziscemo spremembe nad objekti ter njihove relacije skozi cas tisti vidiki sistema ki se nanasajo na cas in spremembe predstavljajo dinamicni model v nasprotju s staticnim oz objektnim modelom kontrola control je tisti vidik sistema ki opisuje zaporedje operacij ki se pojavijo kot odgovor na zunanji eksterni stimulans neoziraje se na to kaj operacije pocno nad cem operirajo ali kako so implementirane to poglavje opisuje koncepte ki se nanasajo na pretok kontrole interakcije in sekvencioniranje operacij v sistemu socasno konkurentno aktivnih objektov glavni koncepti dinamicnega modeliranja so dogodki events ki predstavljajo eksterni zunanji stimulans spodbudo in stanja states ki predstavljajo vrednosti objektov diagrami stanj state diagrams so standardni koncept graficna predstavitev koncnih avtomatov finite state machine ki je v literaturi obravnavan na razlicne nacine odvisno od uporabe avtorji omt poudarjajo pri specificiraju kontrole uporabo dogodkov in stanj ne pa algebraicnih konstruktov nakazejo tudi da lahko dogodke in stanja organiziramo v generalizacijsko hierarhijo ki omogoca delitev strukture in obnasanja v tem poglavju vecinoma sledimo harel ovo harel notacijo za risanje strukturiranih diagramov stanj pri cemer za prikaz strukture uporabimo gnezdenje z uporabo gnezdenih kontur za prikaz strukture dogodki in stanja objektni model opisuje mozne vzorce objektov atributov in vezi ki lahko obstajajo v sistemu vrednosti atributov in vezi ki jih vzdrzuje objekt imenujemo njegovo stanje tekom casa objekti drug drugega stimulirajo kar ima za posledico serijo sprememb njihovih stanj samostojen stimulans enega objekta drugemu imenujemo dogodek odgovor reakcija na dogodek zavisi od stanja objekta prejemnika in lahko vkljucuje spremembo stanja ali pa ta objekt poslje drug dogodek izvornemu posiljatelju ali nekemu tretjemu objektu za dolocen razred lahko vzorec dogodkov stanj in prehodov med stanji abstrahiramo in predstavimo kot diagram stanj state diagram diagram stanj je mreza stanj in dogodkov podobno kot je objektni diagram mreza razredov in relacij dinamicni model sestoji iz vecih diagramov stanj po enega za vsak razred s pomembnim dinamicnim obnasanjem vsak avtomat state machine se izvaja socasno z drugimi in lahko neodvisno spreminja stanje s pomocjo deljenih skupnih shared dogodkov kombiniramo diagrame stanj razlicnih razredov v en sam dinamicni model dogodki dododek je nekaj kar se zgodi v nekem casovnem trenutku npr uporabnik spusti levo tipko na miski seveda nic ni resnicno trenutno dogodek je zgolj pripetljaj ki je sorazmerno hiter v primerjavi z granularnostjo casovne skale za podano abstrakcijo enemu dogodku lahko logicno predhaja ali sledi drug dogodek ali pa sta dva dogodka nepovezana oz nista v relaciji za dva dogodka ki sta vzrocno nepovezana causally unrelated recemo da sta konkurentna in drug na drugega ne vplivata pri modeliranju sistema ne skusamo vzpostaviti urejenosti zaporedja med socasnimi konkurentnimi dogodki saj se lahko pojavijo v poljubnem zaporedju dogodek je enosmerni prenos informacije od enega objekta k drugemu ni torej podoben klicu funkcije ali procedure ki vrne vrednost vsi objekti v realnem svetu obstajajo socasno konkurentno objekt ki posilja dogodek drugemu lahko pricakuje odgovor toda ta odgovor je locen dogodek ter podrejen kontroli drugega objekta ki dogodek lahko poslje ali pa tudi ne dogodke lahko zdruzujemo v razrede dogodkov event classes in vsakemu razredu dogodkov dolocimo ime ki indicira skupno strukturo in obnasanje ta struktura je hierarhicna tako kot je hierarhicna razredna struktura nekateri dogodki so preprosti signali toda vecina dogodkovnih razredov ima atribute ki nakazujejo informacije ki jih prenasajo podatkovne vrednosti ki jih prenasa dogodek so njegovi atributi tako kot objekt vzdrzuje vrednosti podatkov atribute prikazemo v oklepajih za imenom dogodka slika prikazuje nekatere primere razredov dogodkov z atributi prikaz atributov je opcijski pritisk gumba miske gumb lokacija vnos niza niz dvig telefonske slusalke odhod letala letalo stevilka leta mesto izbrana stevilka stevilka razredi dogodkov in atributi scenariji in sledi dogodkov scenarios and event traces scenarij scenario je zaporedje dogodkov ki se pojavijo tekom dolocenega izvajanja sistema obseg scenarija lahko varira vkljucuje lahko vse dogodke v sistemu ali pa le tiste dogodke ki zadevajo dolocene objekte sistema oz jih ti generirajo scenarij je lahko zgodovinski zapis o izvajanju sistema ali miselni preizkus delovanja predlaganega sistema klicatelj dvigne slusalko zacetek signala centrale klicatelj izbere stevilko konce signala centrale klicatelj izbere stevilko klicatelj izbere stevilko klicatelj izbere stevilko klicatelj izbere stevilko klicani telefon zacne zvoniti pri klicatelju zacne signal vzpostavljanja zveze klicani dvigne slusalko klicani telefon preneha zvoniti pri klicatelju preneha signal vzpostavljanja zveze telefona sta povezana klicani odlozi slusalko prekinitev zveze klicatelj odlozi slusalko scenarij telefonskega klica zaporedje dogodkov in objekte ki izmenjujejo dogodke lahko oboje prikazemo na razsirjenem scenariju imenovanem event trace diagram diagram sledenja dogodkov diagram prikazuje vsak objekt kot vertikalno crto in vsak dogodek kot horizontalno puscico od objekta posiljatelja do prejemnika cas raste od zgoraj navzdol pri tem pa razmik ni pomemben prikazano je le zaporedje dogodkov ne njihov dejanski timing slika ki sledi prikazuje sled dogodkov za telefonski klic zapomnimo si da lahko posiljamo socasne konkurentne dogodke tel linija lahko istocasno poslje dogodke klicatelju in klicanemu ter da dogodki med objekti niso nujno izmenicni klicatelj uspesno zavrti vec stevilk slika sled dogodkov za telefonski klic stanja stanje state je abstrakcija vrednosti atributov in vezi objekta mnozica vrednosti je grupirana v stanje z ozirom upostevajoc na lastnosti ki vplivajo na celotno obnasanje objekta stanje doloca odgovor objekta na vhodne dogodke odgovor objekta na dogodek lahko vkljucuje akcijo ali spremembo stanja objekta stanje ustreza intervalu med dvema dogodkoma ki ju objekt prejme dododki predstavljajo tocke v casu stanja pa casovne intervale stanje nekega objekta je odvisno od preteklega zaporedja dogodkov ki jih je objekt prejel toda v vecini primerov so pretekli dogodki eventualno skriti zakriti z dogodki ki sledijo stanje ima trajanje duration obsega dolocen casovni interval stanje je pogosto povezano z kontinuirano aktivnostjo kot je npr zvonenje telefona ali aktivnostjo ki za izvedbo zahteva in potrebuje dolocen cas dogodek locuje dve stanji in stanje locuje dva dogodka pri definiranju stanj ne upostevamo tistih atributov ki ne vplivajo na obnasanje objekta ter v eno stanje zdruzimo vse kombinacije vrednosti atributov in vezi ki imajo na dogodke enak odgovor oz odziv tako dogodki kot stanja so odvisni od nivoja uporabljene abstrakcije ali lahko imajo stanja tudi vezi links tako kot jih lahko obravnavamo kot objekte lahko imajo tudi stanje sicer pa v praksi v splosnem zadostuje ce stanje pridruzimo le objektom stanje objekta lahko vkljucuje tudi vrednosti njegovih vezi notacija diagramov stanj z operacijami slika povzetek notacij za nestrukturirane diagrame stanj kot je razvidno s slike zapisemo ime stanja poudarjeno znotraj zaobljenega okvirja ime dogodka zapisemo ob puscici prehoda in mu lahko v oklepajih opcijsko sledi eden ali vec atributov pogoj lahko navedemo v oglatih oklepajih za imenom dogodka aktivnost nakazemo znotraj skatlice s stanjem s pomocjo kljucne besede do kateri sledi ime ali opis aktivnosti akcijo indicira znak in ime ali opis akcije za imenom dogodka na ustreznem prehodu vsi ti konstrukti so na diagramih stanj opcijski diagrami stanj diagram stanj state diagram povezuje dogodke in stanja ko je prejet nek dogodek je naslednje stanje odvisno od trenutnega stanja kot tudi samega dododka spremembo stanja ki jo povzroci dogodek imenujemo prehod transition diagram stanj je graf katerega vozlisca so stanja in katerega usmerjene povezave so prehodi oznaceni z imeni dogodkov stanje narisemo kot zaobljeno skatlico ki vsebuje ime opcijsko prehod narisemo kot puscico od prejemnega stanja v ciljno stanje oznaka labela na puscici je ime dogodka ki povzroci prehod vsi prehodi iz stanja morajo ustrezati razlicnim dogodkom diagram stanj doloca oz specificira zaporedje stanj ki ga povzroci zaporedje dogodkov ce je objekt v nekem stanju ter se pojavi dogodek ki oznacuje enega izmed njegovih prehodov objekt preide v stanje na ciljnem koncu prehoda ce stanje zapusca vec kot le en prehod prvi dogodek ki se pojavi povroci da se prozi fire ustrezni prehod ce nastopi dogodek ki nima prehoda iz trenutnega stanja ta dogodek ni upostevan oz je ignoriran zaporedje dogodkov ustreza poti skozi graf diagram stanj opisuje obnasanje enega samega razreda objektov ker imajo vsi primerki razreda enako obnasanje po definiciji si delijo iste diagrame stanj tako kot si delijo iste razredne znacilnosti toda podobno kot ima vsak objekt svoje lastne vrednosti atributov ima vsak objekt tudi svoje lastno stanje kot rezultat zaporedja prejetih dogodkov vsak objekt je neodvisen od drugih ter napreduje po svoji lastni poti diagrami stanj lahko prikazujejo enkratne zivljenjske cikle ali pa tudi nepretrgane nenehne zanke diagram telefonske linije je nepretrgana zanka pri opisovanju obicajne uporabe telefona ne razmisljamo in pazimo na to kdaj se zanka zacne ce bi opisovali instalacijo nove linije bi bilo zacetno stanje pomembno one shot diagrami opisujejo objekte z finite lives taksen diagram ima zacetno in koncno stanje zacetno stanje nastopi ob kreiranju objekta vstop v koncno stanje pa oznacuje destrukcijo objekta zacetno stanje oznacimo s polnim krogcem dodamo lahko tudi labelo oznako ki oznacuje razlicne vhodne pogoje koncno stanje oznacimo kot oko dodamo lahko tudi oznake ki razlikujejo zakljucitvene pogoje slika prikazuje zivljenjski cikel igre saha z nekaterimi poenostavitvami one shot diagram za igro saha dinamicni model je kolekcija diagramov stanj z medsebojno interakcijo s pomocjo preko skupnih deljenih dogodkov objektni model predstavlja staticno strukturo sistema medtem ko dinamicni model predstavlja kontrolno strukturo sistema diagram stanj je podobno kot razred objektov vzorec opisuje celoten mozno neskoncen rang sekvenc scenarij je v enakem odnosu z dinamicnim modelom kot je diagram primerkov z objektnim modelom pogoji conditions pogoj condition je logicna funkcija vrednosti objekta pogoj je veljaven v dolocenem casovnem intervalu pomembno je razlikovati med pogoji in dogodki ki pa nimajo casovnega trajanja stanje lahko definiramo s pomocjo pogoja ce zadevo obrnemo biti v nekem stanju pomeni da je izpolnjen ustrezni pogoj pogoje lahko uporabimo kot strazarje guards pri prehodih nadzorovan guarded prehod se prozi ko nastopi nek dogodek toda le ce je resnicen tudi nadzorni quard pogoj prikazemo ga kot logicni izraz v oklepajih za imenom dogodka slika prikazuje diagram stanj z nadzorovanim prehodom na semaforiziranem kriziscu en par senzorjev preverja severno juzno levi pas drug par pa vzhodno zahodni pas ce na pasu sever jug ali vzhod zahod ni nobenega avtomobila potem je logika kontrole semaforjev dovolj pametna da preskoci del cikla za zavijanje v levo slika diagram stanj z nadzorovanimi prehodi operacije kako dogodki prozijo operacije kontrolne operacije controlling operation diagrami stanj bi bili nekoristni ce bi opisovali zgolj vzorce dogodkov opis obnasanja nekega objekta mora dolociti oz specificirati kaj objekt stori kot odgovor oz odziv na dogodke kot odgovor na pripadajoca stanja in dogodke se izvedejo operacije ki so pripete na stanja ali prehode aktivnost activity je operacija ki zahteva dolocen cas da se izvrsi oz zakljuci aktivnost je povezana s stanjem aktivnosti vkljucujejo nepretrgane continuous operacije kot je prikaz slike na televizijskem zaslonu kot tudi zaporedne operacije ki se zakljucijo same po dolocenem casovnem intervalu npr po izvedbi izracunavanj stanje lahko kontrolira nadzira nepretrgano aktivnost kot je npr zvonenje telefona ki obstaja dokler je ne zakljuci nek dogodek ki povzroci prehod iz tega stanja notacija do a znotraj skatlice ki oznacuje stanje indicira da aktivnost a starta ob vstopu v stanje ter se zakljuci ob izhodu stanje pa lahko kontrolira tudi zaporedno aktivnost kot je robot premakne del ki napreduje dokler se ne dokonca kompletira ali je ne prekine dogodek ki jo prezgodaj zakljuci ista notacija do a indicira da sekvencna aktivnost a starta ob vstopu v stanje ter se ustavi ko je kompletirana ce nek dogodek povzroci prehod iz stanja se preden se aktivnost dokonca ostane aktivnost nedokoncana npr robot lahko zazna nek odpor kar povzroci da se preneha premikati opisani uporabi v resnici nista razlicni nepretrgano aktivnost lahko opazujemo kot zaporedno ki pa traja nedefinirano dolgo akcija action je trenutna takosnja operacija akcija je povezana z dogodkom akcija predstavlja operacijo katere trajanje je nepomembno v primerjavi z resolucijo diagrama stanj akcije lahko predstavljajo tudi interne kontrolne operacije ko je postavitev vrednosti atributov in generiranje drugih dogodkov slika akcije pop up izbire notacija za akcijo ob prehodu je slash in ime ali opis akcije za imenom dogodka ki jo povzroci slika prikazuje diagram stanj za pop up menu ko je pritisnjen desni gumb miske se izbira prikaze ko pa desni gumb spustimo se izbira zbrise v casu ko je izbira vidna se ob vsakem premiku cursorja azurira osvetljeni oznacen element izbire primer diagram stanj diagram stanj za telefonsko linijo gnezdeni diagrami stanj diagrame stanj lahko strukturiramo da omogocimo jasen opis kompleksnih sistemov nacini strukturiranja avtomatov so podobni nacinom strukturiranja objektov generalizacija in agregacija generalizacija je ekvivalentna razsirjanju gnezdenih aktivnosti dopusca da aktivnost opisemo na visjem nivoju ter jo nato na nizjem nivoju razsirimo tako da dodamo podrobnosti podobno kot gnezdenim klicem procedur dodatno generalizacija omogoca da stanja in dogodke organiziramo uredimo v generalizacijske hierarhije z dedovanjem skupnih struktur in obnasanja kar je podobno dedovanju atributov in operacij pri razredih agregacija omogoca da stanje razbijemo v vec ortogonalnih komponent z omejeno medsebojno interakcijo podobno objektni zdruzitveni hierarhiji agregacija je ekvivalent socasnosti stanj v splosnem socasna stanja ustrezajo objektnim zdruzitvam agregacijam mozno tudi celotnega sistema ki ima interaktivne dele gnezdenje diagramov stanj aktivnost v diagramu stanj lahko razsirimo kot v nizje nivojskidiagram stanj kjer vsako stanje predstavlja en korak aktivnosti gnezdene aktivnosti so one shot diagrami z vhodnimi in izhodnimi prehodi podobnimi podprogramom slika prikazuje visoko nivojski model prodajnega avtomata ta diagram vsebuje aktivnost dispense item in dogodek select item ki sta razsirjena oz podrobneje opisana v gnezdenih diagramih stanj diagram prikazuje tudi nekatere alternativne notacije dogodek coins in amount je zapisan znotraj stanja collecting money to indicira prehod ki ostaja znotraj enega stanja prav tako prehod iz nepoimenovanega stanja ki vsebuje do dispense item do stanja idle nima oznake dogodka pomanjkanje oznak dogodkov kaze na to da se prehodi prozijo avtomaticno ko je aktivnost v stanju zakljucena oz dokoncana naslednja slika prikazuje poddiagram za aktivnost dispense item dogodke lahko prav tako razsirimo v podrejene diagrame stanj naslednja slika prikazuje dogodek select item ki dejansko vkljucuje nekaj nizje nivojskih dogodkov kupec vtipka stevilko izdelka in lahko zacne znova ce pritisne clear izbiro potrdi s pritiskom na enter oznaka na ocesu indicira da se dogodek generiran na visje nivojskem diagramu stanj prehod select item prodajnega avtomata generalizacija stanj state generalization gnezdeni diagrami stanj v bistvu predstavljajo obliko generalizacije stanj generalizacija je or relacija objekt v stanju visje nivojskega diagrama mora biti v natancno enem stanju v gnezdenem diagramu nahajati se mora v prvem stanju ali drugem stanju ali v enem izmed ostalih stanj stanja v gnezdenih diagramih so dodelave stanja visoko nivojskega diagrama stanja lahko imajo podstanja substates ki podedujejo prehode svojih nadstanj superstates vsak prehod ali akcija ki je uporabljena nad stanjem je uporabna tudi tudi na vsa podstanja razen ce so prekrite override z ekvivalentnim prehodom na podstanju slika prikazuje diagram stanj za avtomatski menjalnik menjalnik je lahko v stanju vzratno nevtralno ali naprej v primeru slednjega je lahko v prvi drugi ali tretji prestavi stanja prva druga in tretja so podstanja stanja naprej notacija generalizacije stanj je razlicna od tiste ki jo uporabimo pri razredih tudi zato da se izognemo velikemu stevilu povezav ki bi jih lahko mesali s prehodi nadstanje narisemo kot velik zaobljen pravokotnik ki obkroza vsa svoja podstanja podstanja lahko obkrozajo nadaljna podstanja ker so zaobljeni pravokotniki ki predstavljajo razlicna stanja gnezdeni jih harel imenuje konture contours mozno pa je predstaviti tudi zapletenejse situacije kot je eksplicitni prehod iz podstanja v stanje izven konture ali eksplicitni prehod v konturo v taksnih primerih se morajo vsa stanja nahajati na enem diagramu ter pri tem uporabimo notacijo konture v preprostejsih primerih kjer ni druge interakcije kot inicializacija in zakljucek pa lahko gnezdene diagrame enostavno narisemo kot locene diagrame in jih referenciramo s pomocjo imena in stavka do primer tega prodajni avtomat zgoraj podan generalizacija dogodkov dogodke lahko organiziramo v generalizacijsko hierarhijo z dedovanjem atributov dogodkov primer zagotovitev hierarhije dogodkov omogoca in dopusca v razlicnih mestih modela uporabo razlicnih nivojev abstrakcij npr v nekaterih stanjih so vsi vhodni znaki obravnavani na enak nacin in bi vodili k istemu naslednjemu stanju v drugih stanjih bi bili kontrolni znaki obravnavani drugace kot printing znaki druga stanja pa bi imela za vsak posamezen znak razlicne akcije socasnost konkurentnost socasnost agregacije dinamicni model opisuje mnozico konkurentnih objektov kjer ima vsak svoje lastno stanje in diagram stanj objekti v sistemu so ze po naravi konkurentni in lahko spreminjajo stanje neodvisno drug od drugega stanje celotnega sistema ne moremo predstaviti kot kot eno samo stanje v enem samem objektu je namrec produkt stanj vseh objektov v sistemu v mnogih sistemih pa se dinamicno spreminja tudi stevilo objektov diagram stanj za zdruzbo assembly je kolekcija diagramov stanj po enega za vsako komponento agregacija implicira socasnost stanje agregata ustreza kombiniranim stanjem vseh diagramov komponent stanje agregata je eno stanje iz prvega diagrama in stanje iz drugega diagrama in stanje iz vsakega izmed ostalih diagramov v najzanimivejsem primeru so stanja komponent v interakciji nadzorovani guarded prehodi enega objekta lahko zavisijo od tega ali je drug objekt v dolocenem stanju to dopusca interakcijo med diagrami stanj pri tem pa ohranjamo modularnost slika prikazuje stanje avtomobila kot agregacijo stanj komponent ignition zaganjac menjalnik pedal za plin in zavora plus ostali neomenjeni objekti vsako stanje komponente ima tudi podstanja stanje avtomobila vkljucuje eno podstanje vsake komponente vsaka komponenta vrsi prehode paralelno z vsemi ostalimi diagrami stanj za komponente so skoraj vendar ne popolnoma neodvisni socasnost znotraj objekta socasnost znotraj stanja enega samega objekta se pojavi kadar lahko objekt razdelimo v podmnozice atributov ali vezi kjer ima vsaka svoj lasten poddiagram stanje objekta vkljucuje po eno stanje iz vsakega poddiagrama poddiagrami niso nujno neodvisni isti dogodek lahko prozi prehode v vecih diagramih socasnost znotraj enega objekta prikazemo tako da sestavljeno stanje razdelimo v poddiagrame ki jih locimo s pikcasto crto ime celotnega sestavljenega stanja lahko zapisemo v locenem delu pravokotnika ter ga od preostalega dela socasnih poddiagramov locimo z normalno polno crto primer nazaj na kazalo