nazaj na kazalo napredni koncepti dinamicnega modeliranja akcije ob vstopu in izstopu entry in exit actions kot alternativa temu da akcije prikazemo ob nad prehodi lahko akcije pridruzimo vstopu ali izhodu iz stanja med obema notacijami ni razlike v izrazni moci toda pogosto vsi prehodi v stanje izvajajo isto akcijo ter je v tem primeru jedrnatejsa oblika kjer akcije pridruzimo stanju slika prikazuje model kontrole garaznih vrat ter uporabo akcij pri vstopu v stanje akcijo ob vstopu nakazemo znotraj skatlice stanja in sicer za kljucno besedo entry in znakom vstopna akcija se izvede ob kateremkoli prehodu v stanje vstopna akcija je ekvivalentna temu da bi akcijo pridruzili vsem prehodom v to stanje ce pa prehod incoming transition ze ima akcijo se ta akcija izvrsi najprej torej kot prva akcije ob izstopu exit actions so manj pogoste kot vstopne obcasno pa so lahko zelo uporabne izstopno akcijo nakazemo znotraj skatlice stanja in sicer za kljucno besedo exit in znakom kadarkoli se z izhodnim prehodom outgoing transition zapusca to stanje se najprej izvede izstopna akcija ce je v nekem stanju specificiranih vec akcij se te izvedejo v naslednjem zaporedju akcije prehoda ob vstopu akcije ob vstopu do aktivnosti akcije ob izstopu akcije prehoda ob izstopu do aktivnosti lahko prekinejo dogodki ki povzrocijo prehod iz stanja toda akcije ob vstopu in izstopu se v vsakem primeru dokoncajo ce je prekinjena do aktivnost se izstopna akcija kljub vsemu izvede interne akcije dogodek lahko inicira akcijo ki se izvede ne da bi povzrocila spremembo stanja ime dogodka zapisemo znotraj skatlice stanja imenu pa sledi in ime akcije znotraj skatlice stanja so torej kljucne besede exit entry in do rezervirane besede ko nastopi tak dogodek se izvede jo le pripadajoca e akcija e ne pa tudi vstopne ali izstopne akcije zato torej obstaja razlika med interno akcijo in prehodom v samega sebe self transition slednji povzroci da se izvedejo tako vstopne kot izstopne akcije dolocenega stanja referenca na sliko zbiranje denarja povzetek razsirjene notacije diagramov stanj avtomaticni prehodi automatic transition pogosto je edini cilj stanja ta da se izvede sekvencna aktivnost ko se aktivnost zakljuci dokonca se prozi prehod v drugo stanje puscica brez imena dogodka oznacuje avtomaticen samodejen prehod ki se sprozi ob tem ko se dokonca oz zakljuci aktivnost pridruzena izvornemu stanju ce ni nobene aktivnosti se neoznacen nelabeliran prehod sprozi takoj ob vstopu toda vstopne in izstopne akcije se vedno izvrsijo te nepoimenovane prehode pogosto imenujemo lambda prehodi po grski crki ki jo v nekaterih knjigah oznacuje taksen prehod referenca na aktivnost test item and compute change ce ima neko stanje enega ali vec avtomaticnih prehodov vendar nobeden izmed nadzornih pogojev ni izpolnjen ostane stanje aktivno vse dotlej dokler eden izmed pogojev ni izpolnjen ali dokler nek dogodek ne povzroci da se sprozi nek drug prehod posiljanje dogodkov sending events objekt lahko vrsi akcijo posiljanja dogodka drugemu objektu v sistemu objekti medsebojno sodelujejo z izmenjavo dogodkov akcija send e atributi poslje dogodek e s podanimi atributi objektu ali objektom prejemnikom dogodek je lahko usmerjen napoten k mnozici objektov ali pa k enemu samemu objektu poljuben ali vsi objekti s prehodi za ta dogodek lahko tega sprejemajo istocasno besedico send lahko izpustimo ce je jasno da je e ime dogodka npr da imena dogodkov prikazemo s posevno pisavo imena akcij pa z normalno pisavo pikcasta crta od prehoda do objekta glej povzetek rasirjene notacije indicira da se dogodek poslje objektu ko se sprozi prehod puscico lahko direktno povezemo s prehodom znotraj diagrama stanj ciljnega objekta ter s tem nakazemo da je ciljni prehod odvisen od dogodka sinhronizacija socasnih konkurentnih aktivnosti vcasih mora nek objekt socasno izvajati dve ali vec akcij interni koraki aktivnosti niso sinhronizirani toda obe aktivnosti morata biti dokoncani preden lahko objekt napreduje v svoje naslednje stanje npr vzamimo primer bankomata ki izda gotovino in vrne kartico ob koncu transakcije stroj se ne sme resetirati preden uporabnik ne vzame kartice in gotovine to lahko stori v poljubne vrstnem redu ali pa oboje istocasno zaporedje v katerem jih vzame ni pomemebno pomembno je zgolj dejstvo da je bilo oboje vzeto to je primer delitve kontrole splitting control v socasne aktivnosti in kasneje zdruzevanje kontrole merging control slika prikazuje tak primer socasne aktivnosti znotraj ene same sestavljene aktivnosti prikazemo z delitvijo stanja v regije pikcasta crta vsako podrocje oz regija je poddiagram ki predstavlja socasne aktivnosti znotraj sestavljene aktivnosti sestavljena aktivnost predpostavlja natancno eno stanje iz vsakega poddiagrama razdelitev locitev kontrole v konkurentne poti prikazemo s puscico ki se razcepi ter izbere po eno stanje iz vsakega konkurentnega poddiagrama zdruzevanje konkurentne kontrole prikazuje puscica ima dva repa ciljno stanje postane aktivno ko se pojavita oba dogodka v poljubnem zaporedju dogodka nista nujno simultana vsak poddiagram se konca takoj ko se sprozi njegov del prehodov toda vsi deli prehoda morajo biti prozeni preden je prozen celoten prehod in se sestavljeno stanje zakljuci povezava med objektim in dinamicnim modelom dinamicni model doloca specificira dopustna zaporedja sprememb nad objekti objektnega modela diagram stanj opisuje celotno ali del obnasanja enega objekta v podanem razredu stanja so ekvivalentna razredom vrednosti atributov in vezi za objekt dogodke lahko v objektnem modelu predstavimo kot operacije struktura dinamicnega modela je povezana in omejena s strukturo objektnega modela podstanje redefinira vrednosti atributov in vezi ki jih lahko ima objekt vsako podstanje omeji vrednosti ki jih lahko ima objekt sestavljeno stanje je agregacija zdruzitev vec kot enega socasnega podstanja znotraj objektnega modela obstajajo trije izvori socasnosti prvi je zdruzitev objektov vsaka komponenta neke zdruzitve ima svoje neodvisno stanje tako da lahko zbir assembly obravnavamo kot da ima stanje ki je sestavljeno iz stanj vseh svojih delov drug izvor je zdruzitev agregacija znotraj nekega objekta atributi in vezi objekta so njegovi deli sestavine atributi in vezi zdruzeni v skupine pa skupaj definirajo socasna podstanja sestavljenega stanja objekta tretji izvor je socasno obnasanje objekta dogodke lahko definiramo za razlicne razrede objektov stanja so definirana z interakcijo objektov in dogodkov prehode lahko pogosto implementiramo kot operacije nad objekti ime operacije ustreza imenu dogodka vsekakor imajo dogodki vecjo izrazno moc kot operacije saj ucinek nekega dogodka ni odvisen le od razreda nekega objekta temvec tudi od njegovega stanja prakticni nasveti diagrame stanj zgradimo le za razrede objektov ki imajo pomembno in smiselno dinamicno obnasanje vsi razredi objektov ne zahtevajo diagrama stanj preverimo razlicne diagrame stanj v smislu konsistentnosti skladnosti deljenih dogodkov ter tako zagotovimo da je celoten dinamicen model pravilen natancen correct za pomoc pri zacetku oblikovanja diagramov stanj uporabimo scenarije pri definiranju stanj upostevamo le relevantne atribute v diagramih stanj ni potrebno prikazati vseh atributov ki nastopajo v objektnem modelu pri dolocanju granularnosti dogodkov in stanj upostevamo potrebe aplikacije pri aplikaciji locimo med aktivnostmi in akcijami aktivnosti trajajo dolocen daljsi cas medtem ko so akcije trenutne v primerjavi s casovno skalo aplikacije kadar v stanje vodi vec prehodov in vsi prehodi povzrocijo isto akcijo navedemo te akcije znotraj skatlice dogodka in sicer za dogodek entry namesto da bi jih navedli na povezavah lokih ki oznacujejo prehode enako storimo tudi za exit dogodke kadar se ista transakcija nanasa na vec stanj uporabimo gnezdena stanja vecina socasnosti izhaja iz agregacije objektov in je v digramu stanj ni potrebno eksplicitno predstaviti da prikazemo neodvisne vidike obnasanja enega samega objekta uporabimo sestavljena stanja zagotoviti skusamo neodvisnost diagramov stanj podrazredov od diagramov stanj njihovih nadrazredov diagrami stanj podrazredov se morajo osredotociti na atribute ki so lastni oz znacilni za podrazrede povzetek poglavja dinamicni model predstavlja kontrolne informacije zaporedja dogodkov stanja in operacije ki se pojavijo znotraj sistema objektov podobno kot objektni model je tudi dinamicni model vzorec ki doloca dopustne dovoljene scenarije ki se lahko pojavijo notacija dinamicnega modela predstavlja kompromis med preprostostjo in izraznostjo obstaja nekaj smiselnih omejitev ki jih s pomocjo predstavljene notacije ne moremo predstaviti podobno kot pri objektnem modelu moramo te omejitve izraziti s pomocjo naravnega jezika dogodek je signal da se je nekaj zgodilo stanje predstavlja interval med dogodki in doloca kontekst v katerem se dogodki interpretirajo prehod med stanji predstavlja odgovor odziv na dogodek vkljucno z naslednjim stanjem in moznimi akcijami ter dogodki ki se posljejo drugim objektom pogoj je logicna funkcija ki kontrolira nadzira ali je dovoljeno da se prehod izvrsi diagram stanj je graf stanj in prehodov oznacenih z dogodki akcija je trenutna operacija kot odgovor na dogodek pogosto ne prevec purely formalna ali interna en tip akcije je posiljanje nekega dogodka drugemu objektu akcije lahko pridruzimo prehodom ali vstopom ali izstopom iz stanja aktivnost je zaporedje akcije ki zahtevajo dolocen cas da se zakljucijo in dokoncajo aktivnost lahko enacimo s stanjem ali celotnim diagramom stanj rezultat aktivnosti lahko uporabimo kot odlocitev pri izbiri naslednjega stanja da prikazemo podrobnosti lahko tako stanja kot dogodke razsirimo v gnezdene diagrame stanj oboje stanja in dogodke lahko organiziramo v hierarhije dedovanja podstanja podedujejo prehode svojih nadstanj poddogodki prozijo iste prehode kot njihovi naddogodki objekti so ze po naravi socasni konkurentni vsak objekt je kolekcija ki ima svoje lastno stanje diagrami stanj prikazujejo socasnost kot zdruzitev aggregacijo konkurentnih stanj kjer vsako zase neodvisno deluje socasni objekti vrsijo interakcijo z izmenjavo dogodkov in testiranjem pogojev ostalih objektov vkljucno s stanji prehodi lahko delijo ali zdruzujejo pretok kontrole vstopne in izstopne akcije omogocajo da akcije pridruzimo stanju ter tako nakazemo vse prehode ki vstopajo ali izstopajo iz stanja predstavljajo self contained diagrame stanj ki jih lahko uporabimo v vecih kontekstih interne akcije predstavjajo prehode ki ne zapustijo stanja avtomaticni prehodi se sprozijo kadar so zadovoljeni njihovi pogoji in je zakljucena ustrezna aktivnost v izvornem stanju stanja so v bistvu restriktivna generalizacija nad razredi in so komplementarne obicajnim razsiritvenim generalizacijam podrazred podeduje diagrame stanj svojih prednikov da je socasen s poljubnim diagramom stanj ki ga definira ops prav tako je mozno dodelati izboljsati podedovan diagram stanj v smislu razsiritve stanj v podstanja ali v socasne konkurentne poddiagrame realisticen model programabilnega termostata obsega tri strani ter ilustrira subtilnost obnasanja ki ni jasno razvidno iz navodil za uporabo ali vsakodnevnega delovanja nazaj na kazalo