Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

ia în considerare exemplul

Diagrama de stare UML


Diagrama de stare (diagrame de mașini de stat) - aceasta este o tehnologie cunoscută descrie comportamentul sistemului. Într-o formă sau alta diagrama de stat acolo din anul 1960, iar la începutul programării orientate pe obiecte sunt folosite pentru a reprezenta comportamentul sistemului. În abordările orientate spre obiect, desenați o diagramă singură clasă de stat pentru a arăta comportamentul unui singur obiect, în cursul vieții sale.

Ori de câte ori se scrie despre mașinile de stat, ca exemple conduce în mod inevitabil, controlul vitezei de croazieră sau mașini de vânzare.
Am decis să utilizeze un controler secret de pe panoul de control în castel gotic. În acest castel pentru că vrem să-și ascundă comorile lor, astfel încât acestea sunt greu de găsit. Pentru a avea acces la seiful castel, trebuie să se retragă din lumânarea strategice candelabru, dar de blocare va apărea numai în cazul în care ușa este închisă. După apariția castelului putem insera cheia și deschide seiful. Pentru securitate suplimentară, ne-am asigurat că seiful poate fi deschis numai după îndepărtarea lumânări. În cazul în care hoțul nu acorde atenție la această măsură de precauție, am dezlănțuit monstru hidos, care va înghiți un hoț.

Fig. 10.1 prezintă o diagramă a clasei controlor de stat care gestionează sistemul meu de securitate neobișnuită. Diagrama de stare începe cu starea generată de controlor obiect: Așteptați starea (așteptați). In schema acest lucru este indicat prin intermediul primelor pseudo-state (pseudostate inițială). care nu este un stat, dar are o săgeată îndreptată spre starea inițială.
Diagrama arată că regulatorul poate fi într-una din cele trei stări: Stai (Stai), Lock (blocare) și Deschidere (Open). Diagrama prezintă, de asemenea, reguli după care regulatorul pornește de la un stat la altul. Aceste reguli sunt prezentate sub forma unor tranziții - linii de legătură a statului.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Tranziția (de tranziție) se deplasează de la un stat la altul. Fiecare tranziție are o etichetă care este alcătuit din trei părți:
Identificator de declanșare [Protecție] / Activitate (trigger-semnătură [guard] / activitate). Toate acestea sunt opționale. De regulă, un identificator de declanșare - este singurul eveniment care poate provoca o schimbare de stat.

Protecția, dacă există, este o condiție logică pe care trebuie să se asigure că tranziția a avut loc. Activitatea - este un comportament al sistemului în timpul tranziției. Acesta poate fi orice expresie comportamentală. Forma completă a declanșatorului-identificatorul poate include mai multe evenimente și parametri. Tranziția de la starea Așteptare (Fig. 10.1) într-un alt stat poate fi citită ca „Statul Stai. În cazul în care lumânare este eliminat, puteți vedea castelul și du-te într-o stare de blocare ».

Toate cele trei părți descrie tranziția nu este opțională. Sar peste activitate înseamnă că procesul de tranziție, nu se întâmplă nimic. Trecând peste scândurile înseamnă că tranziția este întotdeauna efectuată în cazul în care are loc evenimentul declanșator. Trigger-identificator nu este rar, dar se întâmplă. Acest lucru înseamnă că tranziția este imediată, care poate fi observată în principal în stare activă.

Când în loc un anumit eveniment de stare, atunci această stare se poate face doar o conversie, de exemplu, într-o poziție de a bloca (Fig. 10.1), protecția trebuie să se excludă reciproc. În cazul în care are loc un eveniment, și a permis nici un tranziții - cum ar fi închiderea în condiții de siguranță Așteptați de stat sau de a scoate lumânare cu ușa deschisă - evenimentul este ignorat.

Starea finală (starea finală) înseamnă că aparatul de stat finit, ceea ce face obiectul regulator de îndepărtare. Deci, pentru cei care au avut imprudența să cadă în capcana, ne informează că din moment ce obiectul controlerului încetează să mai existe, trebuie să punem iepure înapoi în cușcă, se spală podeaua și reporniți sistemul.

Amintiți-vă că mașinile de stat pot apărea numai acele obiecte care sunt observate în mod direct sau act. Prin urmare, chiar dacă s-ar putea aștepta, că am pus ceva în seif sau de a lua ceva atunci când ușa este deschisă, nu am observat pe diagramă, deoarece controller este nimic despre acest raport nu se poate.

Când dezvoltatorii vorbesc despre obiecte, de multe ori se referă la starea obiectului, referindu-se la combinația tuturor datelor conținute în câmpurile obiectului. Cu toate acestea, diagrama de stare pentru o mașină de stare finită este o condiție concept abstract; linia de jos este faptul că diferite stări își asume diferite moduri de a răspunde la evenimente.

Activitatea intern în diagrama de stare

Statele pot reacționa la evenimente fără a face tranziția, utilizând activitatea internă (activități interne), și, în acest caz, evenimentul, protecția și activitatea sunt plasate în interiorul statului caseta.

Fig. 10.2 prezintă activitate specială: activitatea de intrare și de ieșire. Intrare Activitate executat de fiecare dată când introduceți un stat; Activitatea de ieșire - de fiecare dată când părăsesc statul. Cu toate acestea, activitatea internă nu inițiază activitatea de intrare și de ieșire; Aceasta este diferența dintre isamoperehodami activitate intrinsecă.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

starea activă în diagrama de stare

Condițiile pe care le-am descris până acum, obiectul este tăcut și așteaptă pentru următorul eveniment, înainte de a face ceva. Cu toate acestea, posibile stări în care se opune prezintă o anumită activitate.

Searching Status (căutare) din Fig. 10.3 este starea de activitate (stare de activitate). conducând denotat do / simbol activ; prin urmare, termenul de do-activitate (proactivă). După terminarea căutării, o tranziție este făcută fără nici o activitate, de exemplu, afișarea hardware nou (Display New Hardware). În cazul în anulare (anulare) evenimentul are loc în cursul activității, activitatea-do este întreruptă și ne întoarcem la starea de actualizare fereastra Hardware (Actualizarea caseta de hardware).

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Și de a face-activitate și activitățile normale sunt o manifestare a unui comportament. Diferența esențială dintre ele constă în faptul că activitatea obișnuită să apară „instantaneu“ și nu poate fi întreruptă de evenimentele obișnuite, în timp ce do-activitatea poate fi realizată pentru o perioadă limitată de timp și poate fi întreruptă, așa cum se arată în Fig. 10.3. Instantaneitatea pentru sisteme diferite sunt tratate în mod diferit; pentru sisteme în timp real, acest lucru poate dura câteva instrucțiuni mașină, și se pot ridica la câteva secunde pentru software-ul pentru desktop.

Într-o acțiune de activitate UML convențională desemnată termenul (acțiune), iar activitatea pe termen lung (activitate) a fost folosit doar pentru do-activități.

suprastatal

Se întâmplă adesea ca mai multe state împărtășesc tranziții comune și activitatea internă. In astfel de cazuri, ele pot fi convertite într-un substate () și sub-stări comportamentul general al trecerii în suprastatului (superstatului), așa cum se arată în Fig. 10.4. Fără superstat ar trebui să atragă anula tranziția (anulare) pentru toate cele trei state din interiorul statului Introduceți Detalii conexiune (Introducerea detaliile de conectare).

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

stat paralel

Statele pot fi împărțite în mai multe state paralele, lansate în același timp. Fig. 10.5 arată un simplu ceas cu alarmă, care poate include un CD sau de radio și arată fie ora curentă sau ora alarmei.

Opțiuni CD / radio și ora curentă timp / de alarmă sunt paralele. Dacă doriți să trimiteți acest lucru cu o diagramă de stare non-paralel, s-ar obține graficul murdar adăuga stare, dacă este necesar. Separarea celor două domenii de comportament în două diagrame de stare face mult mai clar.


Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Fig. 10.5 include, de asemenea, o istorie de stare (istoria pseudostate). Acest lucru înseamnă că, atunci când a inclus opțiunea de radio cu ceas / CD-ul merge într-o stare în care au existat momente în care au fost off. Săgeata emanată din istoria arată ceea ce a existat inițial de stat atunci când nu a existat nici o pre-istorie.

Punerea în aplicare a diagramelor de stat

Diagrama de stat poate fi implementată în trei moduri principale: prin intermediul închizătorului declarație încorporat, modelul de stat și masa de stat. Abordarea cea mai directă este de a lucra cu diagrama de stare - acesta este un comutator operator de cuibărit, cum ar fi în Fig. 10.6.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea


Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Partea de sus a ierarhiei este o clasă abstractă, care conține o descriere a tuturor metodelor care se ocupa de evenimente, dar nu de punere în aplicare.
Pentru fiecare stat este suficient pentru a rescrie eveniment specific metoda de tratare a iniția trecerea de la stat.
Statele Tabelul este o diagramă de stare ca date.

Astfel, diagrama din Fig. 10.1 poate fi reprezentat ca un tabel. 10.1.
Apoi vom construi un interpret care utilizează tabela de stat în timpul rulării sau un generator de cod care generează clase bazate pe acest tabel.


Evident, cele mai multe dintre lucrările de pe masa de stat se efectuează o dată, dar atunci acesta poate fi folosit ori de câte ori este necesar pentru a rezolva problema asociată cu statul. tabelul de stare runtime pot fi modificate fără recompilare, într-un mod convenabil. Format capabil să colecteze mai ușor, și cu toate că fiecare stat necesită o clasă separată, dar mărimea codului, care, atunci când este necesar să se scrie, destul de mici.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Acestea aproape de punere în aplicare minime, dar oferă o idee despre modul de utilizare diagrama de stare. În fiecare caz, punerea în aplicare a modelelor de state conduce la un program destul de stereotipe, așa că, de obicei, este mai bine să recurgă la una sau o altă metodă de generare a codului.

unde și cum pot folosi această metodă?

Diagrama UML stare este bună pentru a descrie comportamentul unui singur obiect în mai multe precedente. Dar ele nu sunt potrivite pentru a descrie comportamentul, caracterizat prin interacțiunea unui set de obiecte. Deci are sens în legătură cu diagrama de stat de a utiliza alte tehnologii. De exemplu, diagramele de interacțiune (capitolul 4) descriu perfect comportamentul obiectelor din mai multe precedentului, și diagrama bună activitate UML arată secvența de bază a operațiilor de mai multe obiecte în mai multe precedente.

Nu toată lumea crede că diagrama naturale de stat. Observați modul în care experți lucrează cu ei. Este posibil ca membrii echipei nu cred că diagramele de stare sunt potrivite pentru stilul lor de muncă. Nu este cea mai mare problemă; nu trebuie să uitați să împartă diferite metode de lucru.

Dacă utilizați diagrame de stat, nu încerca să le atragă pentru fiecare sistem de clasă. Această abordare este adesea folosit în scopul completitudinii formal riguroase, dar este aproape întotdeauna o risipă de efort. Utilizați diagrame de stat numai pentru acele clase care prezintă un comportament interesant, în cazul în care construirea diagrama de stare ajută să înțelegem cum se întâmplă.

cum poți învăța această metodă (tehnici de creativitate)?

Aici am încercat să ofere ca o modalitate mai simplă de a explora diagrama de stare UML.

Ca multe alte limbi el folosește pentru a descrie setul de caractere. Semnificația acestor semne veți găsi în tabelul de la „Note (descriere)“. Fiecare semn are numele său propriu (termenul), și scris. De asemenea, fiecare termen este prevăzut cu o scurtă explicație pentru a înțelege rapid esența ei.

În continuare, ne-ar recomanda să meargă la „exemple“ diagrame de stare. pentru a încerca mâna lor la diagrame de citire diferite. Apoi, ar trebui să revizuiască secțiunea „Utilizare“, deoarece, deși numărul de tipuri de diagrame în UML este mic, maxim beneficiile legate de utilizarea lor, veți obține numai dacă utilizați adecvat pentru graficul de destinație.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Engleză. Grad 7. Manualelor. Verticală. GEF. Afanasyeva OV
Manualul este conceput pentru elevii din clasele 7 și este o componentă majoră a complexului educațional și metodică de-al treilea an de studiu, care include, de asemenea, două registre de lucru, o carte pentru a citi, o carte pentru profesori și aplicații de e-mail.
Manualul este revizuit în conformitate cu cerințele standardului de învățământ de stat federal al învățământului general.
640 ruble.

Diagrama de stat (Figura mașinii) UML - soluții creative în proiectarea

Vorbind. 4 clasă. Manualelor. Formular VIII. Komarov SV
Manualul continuă manual „vorbind“ la programele de curs omonim pentru construcții (corecțional) instituțiile de învățământ VIII de specii (ed. Bgazhnokovoy IM).
627 ruble.