Când dezvoltați un produs sau un program de computer, diagramele de stare UML pot ajuta la vizualizarea Ciclu de viață a fiecărui obiect într-un mod clar și de înțeles. Deși această diagramă constă doar din câteva elemente, dacă este utilizată corect, aceasta poate contribui semnificativ la rezultatul final. În secțiunile următoare, vă explicăm de ce și în ce cazuri merită să faceți o diagramă de stare UML și cum să o faceți.

diagramelor

  1. Ce este o diagramă de stare UML?
  2. Pentru ce este diagrama de stare UML?
  3. Diagrama de stare: structură și componente
    1. stat
    2. Tranziție: cum schimbi starea?
      1. Tranziția externă: schimbarea stării
      2. Tranziție internă: stare nealterată
    3. Evenimente: de ce se schimbă starea?
    4. Pseudo-state
  4. Diagrame complexe
  5. Creați o diagramă de stare - Exemplu de diagramă simplă

Ce este o diagramă de stare UML?

O diagramă de stare UML (numită și diagramă de stare, diagramă de tranziție de stare sau diagramă de mașină de stare) arată stările prin care trece o mașină de stare finită, adică un model de comportament constând din acțiuni și stări sau tranziții către alte stări. Diagrama oferă o stare inițială și finală, precum și cel puțin o stare intermediară pentru fiecare obiect. Diagrama de stare face astfel posibilă reprezentarea ciclu complet de viață a oricărui sistem, subsistem sau componente sau clase ale acestora, cum ar fi o mașină de cafea, un cititor de cărți electronice sau o componentă tehnologică a unui vehicul.

Diagrama de stare este unul dintre cele 14 tipuri de diagrame definite în Unified Modeling Language (UML), sau Unified Modeling Language și în Systems Model Language (SysML). Se întoarce la un concept propus de David Harel în 1987 în articolul său Statecharts: A Visual Formalism for Complex Systems. Alte tipuri de diagrame UML sunt, de exemplu, diagrama cazului de utilizare sau diagrama componentelor.

Pentru ce este diagrama de stare UML?

După cum am menționat deja, scopul diagramelor de stare este de a descrie comportamentul unui sistem cu cea mai mare precizie. Printre altele, aceasta reprezentarea grafică a proceselor ar trebui să răspundă la următoarele întrebări:

  • Ce se întâmplă atunci când obiectul se află într-o stare concretă?
  • În ce stare trebuie să se afle obiectul pentru a schimba comportamentul?
  • Care sunt factorii declanșatori?
  • Ce proprietăți trebuie să aibă obiectul pentru a putea schimba starea?

Prin urmare, diagramele de stare UML sunt utilizate pentru a optimiza orice proces de dezvoltare în care este util să vizualizați starea obiectului și condițiile pentru tranziția de la o stare la alta. Ele sunt de obicei utilizate, de exemplu, în proiectarea sistemului încorporat (În limba engleză, sisteme încorporate), unde semnalele automatizate și procesele de fundal trebuie să fie perfect coordonate. În acest caz, diagrama de stare îi ajută pe dezvoltatori vizualiza toate funcții de control și reglare cel mai important într-o singură schemă.

funcția de oprire a robinetului de apă care au aproape toate mașini de spălat poate servi ca exemplu pentru a imagina o diagramă de stare UML. În acest context, această funcție ar fi reprezentată ca un sistem separat. În acest caz, diagrama va arăta în ce stare și în ce condiții este activată funcția.

În diferite sectoare ale industriei, cum ar fi transportul sau tehnologia medicală, sunt utilizate diagramele de stat explica procesele complexe. Ele sunt, de asemenea, utilizate în ingineria cerințelor și în gestionarea produselor și a proiectelor.

Diagrama de stare: structură și componente

Deși diagramele de stare UML se bazează doar pe câteva elemente, combinarea lor inteligentă ne permite să reprezentăm cu ușurință secvențe de stare complexe. Care sunt componentele principale și ce este structură de bază a unei diagrame de stare?

stat

Statele sunt componenta principală a unei diagrame de stare. Fiecare stare reală este întotdeauna afișat într-un dreptunghi de colț rotunjit. De exemplu, o ușă poate avea două valori de stare:

Cele două stări posibile ale unei uși: poate fi deschisă sau închisă, dar nu ambele în același timp.

De asemenea, diagrama de stare a ușii ar indica faptul că trebuie îndeplinită întotdeauna următoarea condiție:

  • Obiectul este întotdeauna în una din cele două stări: ușa este deschisă sau închisă, dar niciodată deschisă și închisă în același timp.

În cele mai complexe diagrame de stare, dreptunghiul poate fi împărțit în până la trei zone în care sunt prezentate specificațiile comportamentale (vezi tranziția).

Tranziție: cum schimbi starea?

Pentru a trece de la o stare la alta, trebuie declanșează un eveniment care provoacă o tranziție. Acest tranziție de stat comunică stările între ele și este reprezentat de o săgeată. Pot exista condiții pentru ca o astfel de tranziție să se declanșeze. În general vorbind, diagramele de stare UML reprezintă tranziții interne și externe. O diagramă de stare trebuie să aibă întotdeauna unele tranziții externe, dar nu trebuie să includă tranziții interne.

În diagrama de stare a unui lift, de exemplu, ar putea fi specificată următoarea condiție pentru acțiunea „închiderea ușii liftului”: faptul că liftul a fost deschis cu cel puțin cinci secunde înainte ca starea să treacă de la „deschis” la „închis”.

Tranziția externă: schimbarea stării

Tranziția din exemplul următor este considerată externă și are ca rezultat starea de schimbare a obiectelor (intrare/ieșire).

Exemplu: după ce se declanșează o alarmă radio, starea se schimbă de la „alarmă activată” la „alarmă dezactivată”.

Când alarma este activată, obiectul își schimbă starea: dacă alarma a fost activată acum un moment, acum este dezactivată.

Tranziție internă: stare nealterată

O tranziție internă nu declanșează o schimbare de stare, ci a activitate.

Exemplu: Niste sisteme contabile ei retrimit facturile fără a plăti automat clientul (tranziție externă). Dacă ce ei trimit este o aducere aminte faptul că factura este în așteptarea plății, aceasta reprezintă o tranziție internă: adică, chiar dacă există o activitate („trimiteți memento-ul”), factura rămâne în aceeași stare („neplătită”) până la o nouă notificare.

Evenimente: de ce se schimbă statul?

Prin evenimente este posibil să se descrie mai detaliat condițiile în care un stat este abandonat pentru a trece la următorul. În cazul tranziției de la starea inițială la prima stare reală, nu este necesară, dar mai multe informații pot fi adăugate opțional. Dacă nu este indicat niciun eveniment, înseamnă că evenimentul se produce automat de îndată ce toate activitățile din statele de mai sus au fost finalizate.

Dacă declanșatorul nu este indicat, înseamnă că acest eveniment are loc întotdeauna. Evenimentele pot fi reprezentate ca o specificație a comportamentului în interiorul statului sau în cadrul tranziției către un alt stat (vezi tranziția).

Un eveniment declanșator trebuie să îndeplinească următoarele trei termeni:

  • intrare- Evenimentul este declanșat automat când se declanșează o stare, adică la toate tranzițiile primite.
  • Ieșire- Evenimentul este declanșat la ieșirea unui stat, adică la toate tranzițiile de ieșire.
  • do: evenimentul este declanșat iar și iar dacă starea nu este modificată.

Aceste indicații pot fi observate în interiorul statului însuși pentru a simplifica reprezentarea comportamentului în care starea se schimbă. Există două opțiuni pentru afișarea grafică a acestor declanșatoare. Unul dintre ele este să le indicați în caseta de stare corespunzătoare, așa cum ilustrează următorul exemplu de diagramă de stare:

Starea unei uși este „închisă”. Pentru a intra în această stare, mai întâi trebuie să aibă loc evenimentul „închide ușa” (intrare). La ieșirea stării, are loc evenimentul „deschide ușa” (ieșire). În timpul stării, „ușa este (permanent) închisă” (faceți).

Evenimentele pot fi indicate și printr-o săgeată de tranziție:

În diagrame simple de stare, evenimentele sunt notate pe săgeata de tranziție.

Pseudo-state

În diagramele de stare UML, dacă un element de control influențează funcționarea unei mașini de stare, dar nu are nicio valoare atribuită, se numește pseudo-stare. În UML 2, versiunea curentă a Unified Modeling Language, sunt definite următoarele zece pseudo-stări:

Diagrame complexe

Depinzând de complexitate a procesului, este posibil să se includă substate în schema care arată un imagine detaliată a fiecărei stări de obiect și comportamentul său posibil. Această versiune mai complexă a diagramelor de stare UML este de obicei cea mai comună, în special în domeniul tehnic.

  • Stare compusă: această structură permite defini Un stat în adâncime.

Exemplu: o ușă poate fi în două stări: „deschisă” sau „închisă”. Substatele stării „închise” ar putea fi „blocate” și „deblocate”.

  • Starea utilajului secundar: starea include o diagramă de stare subordonat. Un sub-stat care constă din mai multe substate se numește stare complexă. Diferitele substate pot rula ambele independent unul de celălalt cum să fii legat unul de celălalt.

Exemplu: funcția de trezire a unui smartphone este una dintre numeroasele funcții care pot fi legate de alte stări. Dacă sunt programate diferite alarme pentru ore și zile diferite ale săptămânii, întregul proces va consta din substate care rulează independent.

Creați o diagramă de stare - Exemplu de diagramă simplă

Diagramele de stare pot fi aplicate obiectelor de tot felul. În exemplul următor, vă vom arăta cum să includeți fiecare articol în diagrama unei facturi. Acestea sunt cele mai importante elemente ale unei diagrame de stare UML:

Cele mai importante elemente ale unei diagrame de stare UML.

Dacă combinăm elementele pentru exemplul nostru, o diagramă simplă ar putea arăta astfel:

În acest exemplu, diagrama de stare UML prezintă o tranziție internă.

La punctul de plecare, factura se află în pseudo-stare „scris"(Scris). În cel mai bun caz, trecerea la statutul „plătit” (plătit). Această tranziție ar putea fi descrisă mai detaliat prin indicarea evenimentului „trimitere”.

După ce a fost plătită, factura se află în statutul „plătit”. Înainte de a ajunge la această stare, poate fi necesar trimite un „memento” (aducere aminte). În acest caz, deoarece factura nu schimbă starea, chiar dacă este cauzată o activitate, este o tranziție internă. Dacă factura nu este plătită, vor fi trimise până la trei memento-uri.

Diagramele de activitate: fluxul de lucru reprezentat grafic

Diagramele de activitate UML ajută la vizualizarea secvenței cronologice a proceselor în programarea orientată pe obiecte. Diagramele de activitate arată ce acțiuni au loc pentru a executa o activitate și în ce ordine. Cu acesta puteți crea cadre de cod folosind XML pass-through sau reprezenta grafic procesele de afaceri. Vă spunem totul despre.

6 instrumente UML pentru orice ocazie

Căutați cel mai bun instrument de diagramă UML? Aveți nevoie de un instrument pentru a crea rapid schițe și a face brainstorming cu echipa dvs.? Instrumentele UML oferă mai mult decât simple șabloane de diagrame pentru standardul UML. Fie că sunteți în căutarea unei aplicații gratuite pentru o comunicare eficientă sau a unei soluții complete pentru compania dvs.: vă arătăm ce să căutați și vă prezentăm 6.

Diagrame de clasă: creați diagrame structurale cu UML

Diagramele de clasă integrează diagramele structurale ale limbajului de modelare UML și astfel servesc la reprezentarea grafică a componentelor unui sistem și a dependențelor acestora în limbaje de programare orientate obiect. Când creați diagrame de clasă, urmați notația oficială și semantica pentru a evita neînțelegerile. Ce elemente alcătuiesc notația.

Diagramele secvențiale: arată interacțiunile cu UML

Diagramele secvențiale ajută la vizualizarea clară și clară a fluxului de mesaje în cadrul unui sistem. Acestea sunt recomandate pentru a înțelege cu precizie cazurile de aplicare. În programarea orientată obiect, de exemplu, diagramele de secvență sunt potrivite pentru verificarea logicii unui sistem. Descoperiți și învățați cum să creați o diagramă de secvență cu UML.