Diagram primerov uporabe igre človek proti človeku. Algoritemska predstavitev pravil igre. Kdo potrebuje skripte in v katerih primerih?

Diagrami primerov uporabe - se uporabljajo za modeliranje obnašanja sistema, podsistema ali razreda v smislu primerov uporabe (ali primerov uporabe).

Diagrami primerov uporabe vključujejo naslednje elemente:

Precedens;

Udeleženci (igralci);

Odnosi odvisnosti, posplošitve in asociacije.

Precedens, to je opis nabora zaporedij dejanj, ki jih izvaja sistem, da lahko akter (udeleženec, izvajalec) doseže določen rezultat. Grafični prikaz primera precedensov je prikazan na sl. 3.5.6.1.

riž. 3.5.6.1. Grafični prikaz primerov uporabe v UML.

Udeleženec (predmet, igralec)- različne vloge, ki jih uporabniki uporabljajo v interakciji z njimi. Udeleženec je lahko oseba, naprava ali drug programski sistem. Grafični prikaz primera udeležencev je prikazan na sl. 3.5.6.2.

riž. 3.5.6.2. Grafični prikaz primerov udeležencev v UML

Diagrami primerov uporabe se običajno uporabljajo za reševanje naslednjih težav:

Modeliranje konteksta sistema, ki vključuje identifikacijo udeležencev, ki so v interakciji s sistemom, kot tudi njihovih vlog;

Modeliranje zahtev – služi ugotavljanju funkcionalnosti sistema od zunanjega opazovalca, brez upoštevanja problemov implementacije funkcionalnosti.

Entitete, ki so zunaj modeliranega sistema in so v interakciji z njim, tvorijo njegov kontekst. Pomembna naloga pri modeliranju konteksta je identificirati entitete, ki so v interakciji s sistemom, in jih opisati.

Sistemsko modeliranje je treba izvesti po naslednjih korakih:

Identificirajte udeležence, ki obkrožajo sistem. Hkrati je treba identificirati in analizirati skupine, ki jih zanima, da sistem opravlja svoje funkcije;

Razmislite in opišite tokove dogodkov za precedense, ki se odražajo v glavnem diagramu precedensov, in sicer: predpogoji, glavni tok, podtokovi, alternativni tokovi, postpogoji;

Organizirajte podobne udeležence z uporabo razmerij generalizacija/specializacija;

Postavite udeležence na diagram primerov uporabe in identificirajte njihove povezave s primeri uporabe sistema.

Modeliranje zahtev - to je opis lastnosti in obnašanja sistema, potrebnih za izvedbo projekta, brez upoštevanja mehanizmov izvedbe. Delovni sistem mora izpolnjevati vse zahteve, navedene v modelu.

Sistemske zahteve za modeliranje je treba izvesti po naslednjih korakih:

Vzpostavitev konteksta sistema, identificiranje udeležencev, ki obdajajo sistem;

Za vsakega udeleženca - upoštevanje vedenja, ki ga pričakuje in zahteva od sistema;

Poimenovanje izbranih vedenjskih možnosti kot precedensov;

Poudarjanje običajnega vedenja v nove precedense, ki jih bodo uporabljali drugi;

Izoliranje variacij v vedenju v nove precedense, ki širijo glavne tokove dogodkov;

Modeliranje izbranih precedentov, udeležencev, odnosov med njimi na precedenčnem diagramu;

Dopolnitev primerov uporabe z opombami, ki opisujejo nefunkcionalne zahteve, specifične za sistem.

Simulacije diagramov primerov uporabe z uporabo posebnih primerov so prikazane na sliki. 3.5.6.3. in riž 3.5.6.4.

riž. 3.5.6.3. Grafični prikaz precedensov na primeru storitve

naročniki mobilne telefonije.

Upoštevati je treba, da so primeri uporabe dopolnjeni z opombami, ki opisujejo nefunkcionalne posebne zahteve, to je komentarji, ki lahko spremljajo nekatera razmerja med primeri uporabe. Torej, pomen odnosa " vključi" je, da v tem primeru »Povezava« vključuje »Izbira telekomunikacijskega operaterja«. Pomen povezave <> je, da je precedens, na primer, »Upoštevanje vprašalnika«, »razširjen " primer uporabe “Sklenitev pogodbe”. V tem primeru je to mogoče razložiti z dejstvom, da je "Skleni pogodbo" mogoče storiti šele, ko je operater preveril vprašalnik. »Obravnava vloge« »razširja« precedens »Blokiranje številke«, »Zamenjava kartice SIM«, »Podrobnost računa«, »Zamenjava naročniške številke«. Torej povezava <> govori o izvajanju določenega precedensa glede na določene pogoje.

riž. 3.5.6.4. Grafični prikaz precedensov

na primeru proizvodne lokacije.

Ti diagrami primerov uporabe opisujejo udeležence med njihovo interakcijo s sistemom v podjetjih.

Diagram primera uporabe se razvije v fazi analize glavnih procesov, ki jih informacijski sistem podpira.

Popolna zasnova programskega sistema je niz modelov logične in fizične ravni, ki morajo biti med seboj skladni.

Jezik UML uporablja izvedbeni diagrami ki vključujejo komponentni diagram in diagram razmestitve.

Za podrobnejšo analizo so bila pravila družabne igre predstavljena v obliki blokovnih diagramov, ki opisujejo glavne faze igranja. Splošni diagram je prikazan na sliki 1.1.

riž. 1.1.

Ta shema vključuje naslednje podprocese:

1. Inicializacija. Vsebuje algoritme za določanje pravice do prve poteze in izdajo začetnega števila kart vsem igralcem.

2. Razvojna faza. Vsebuje algoritem za polaganje kart na mizo v obliki živali in njihovih lastnosti.

3. Faza določanja zaloge hrane. Vsebuje algoritem za določanje števila žetonov hrane, ki bodo na voljo igralcem med »fazo hrane«.

4. Faza prehrane. Vsebuje algoritme za hranjenje in uporabo lastnosti živali.

5. Faza izumrtja in prejemanja novih kart. Vsebuje algoritme za premestitev nehranjenih živali na smetišče, določanje števila in izdajo novih kart.

6. Konec igre. Ta shema vsebuje algoritem za štetje točk in določanje zmagovalca.

Podrobni diagrami podprocesov so v prilogi B. Algoritemski opis pravil igre.

Specifikacija zahtev

Igra, ki se razvija, je popoln analog namizne igre Evolution, zato mora najprej celotno igranje ustrezati in potekati v skladu s pravili izvirne (namizne) igre.

Poslovne zahteve:

Igra proti računalniku;

Izbira števila igralcev.

Funkcionalne zahteve:

Zahteve za sistem v smislu pravil igre:

Izdaja kartic;

Hranite posodobljene informacije o trenutnih kartah v rokah igralcev in njihovih živalih z vsemi lastnostmi, ki ležijo na igralnem polju;

Izračunajte vrstni red potez;

Določi in prenese pravico do prve poteze;

Izračunajte interakcije med različnimi lastnostmi;

Določite zalogo hrane glede na število igralcev;

Položite karte v kup zavržkov;

Shranite informacije o kartah v igralčevem kupu zavržkov;

Sistemske zahteve z vidika igralca:

Začni novo igro;

Postavite kartico v obliki živali;

Postavite kartico kot lastnino;

Preskoči zavoj;

Vzemite čips iz zaloge hrane;

Postavite žeton za hrano na svojo žival;

Aktiviraj lastnost uporabe;

Končaj igro.

Model primera uporabe

Izdelava diagrama primera uporabe

Vizualizacija zahtev se izvaja z uporabo diagrame primerov uporabe (glej sliko 1.2.).


riž. 1.2.

Dokumentiranje primerov uporabe

Dokumentacija precedensov je predstavljena v spodnjih tabelah (glej. Tabela 1.1. - 1,15).

Tabela 1.1. Primer uporabe »Ustvari novo igro«.

Tabela 1.2. Primer uporabe »Nastavi parametre«.

Kratek opis

Primer uporabe omogoča uporabniku, da nastavi parametre igre, ki se ustvarja, in začne z igranjem.

Izvajalci

Predpogoji

Uporabnik je kliknil gumb "Nova igra".

Glavna nit

1. Igralec izbere komplet kart za uporabo:

Standardni set (84 kartic) - privzeto.

Dodatek “Time to Fly” (+42 kart).

2. Igralec izbere število igralcev:

2 igralca - privzeto.

3 igralci.

4 igralci.

3. Igralec klikne gumb »Ustvari igro«.

4. Ustvarjeni igri se dodajo boti (računalniško vodeni igralci) v številu, določenem v nastavitvah.

Alternativni tokovi

Postpogoji

Nastavitve so zdaj konfigurirane.

Kratek opis

Izvršitelj

Predpogoji

Glavna nit

2. Sistem prikaže okno, v katerem lahko igralec izbere mesto, kamor naj shrani datoteko v formatu txt.

3. Predvajalnik izbere pot, ime datoteke in potrdi shranjevanje.

4. Sistem shrani igro na disk in prikaže sporočilo igralcu.

5. Sistem ponudi nadaljevanje igre.

Alternativni tokovi

A1. Ni dovolj prostora na disku.

a. Sistem prikaže sporočilo, da na disku ni dovolj prostora za snemanje.

Postpogoji

Konfiguracija in trenutno stanje igre se shranita v datoteko na trdem disku

Tabela 1.4 Precedens “Nadaljuj igro”.

Kratek opis

Primer uporabe vam omogoča nadaljevanje predhodno shranjene igre.

Izvršitelj

Predpogoji

Razpoložljivost datoteke s shranjeno konfiguracijo igre na disku.

Glavna nit

1. Igralec zažene sistem.

2. Igralec klikne gumb »Nadaljuj z igro«.

3. Sistem prikaže okno, v katerem ima igralec možnost izbrati shranjeno datoteko igre.

4. Predvajalnik izbere datoteko in potrdi odprtje.

A1. Struktura datoteke ni pravilna.

5. Sistem obnovi konfiguracijo, stanje in število igralcev iz datoteke ter naloži igralno polje.

Alternativni tokovi

A1. Struktura datoteke ni pravilna.

a. Sistem prikaže sporočilo, ki nakazuje, da je datoteka poškodovana.

b. Sistem se vrne na 3. točko.

Postpogoji

Konfiguracija igre je bila obnovljena.

Tabela 1.5 Precedens “Končaj igro”.

Tabela 1.6 Precedens “Play”.

Kratek opis

Precedens predstavlja igranje.

Izvršitelj

Predpogoji

Precedens »Ustvari novo igro« je bil izveden.

Glavna nit

Začetek igre:

1. Sistem določi vrstni red (izvede žrebanje na podlagi naključne možnosti).

2. Sistem prenese pravico prve poteze na igralca, ki je bil izbran na podlagi žrebanja.

3. Precedens »Get Cards« za novo igro je izveden.

Razvojna faza:

A2. Igralec je že zamudil svojo vrsto.

5. Igralec naredi potezo.

A3. Igralec se odloči, da gre.

A4. Igralec nima kart v roki.

6. Sistem prenese na vrsto drugega igralca.

Faza določanja krme:

7. Sistem s pomočjo randomizatorja določi število žetonov hrane, ki bodo na voljo med fazo hranjenja.

8. Na igrišču se pojavijo žetoni hrane.

Faza moči:

A7. Igralec je že zamudil svojo vrsto.

9. Igralec naredi potezo.

A9. Igralec se odloči, da gre.

A5. Igralec klikne na gumb »Preskoči potezo«.

10. Sistem premakne na vrsti naslednjega igralca.

Faza izumiranja:

11. Precedens »Get Cards« se izvede med fazo izumiranja.

Zaključek igre:

12. Sistem šteje točke, ki jih dosežejo igralci.

13. Sistem prikaže skupni rezultat vseh igralcev.

14. Prikažeta se gumba “Ustvari novo igro” in “Izhod v meni”.

Alternativni tokovi

A1. Vsi igralci so prejeli karte.

a. Igra se premakne na 3. korak.

A2. Igralec je že zamudil svojo vrsto.

A3. Igralec nima kart v roki.

A4. Igralec se odloči, da gre.

a. Precedens »Naredi potezo« se izvede v razvojni fazi.

A5. Igralec klikne na gumb »Preskoči potezo«.

a. Precedens »Preskoči zavoj« je izveden.

A6. Vsi igralci so zamudili preobrat v razvojni fazi.

a. Igra se premakne na 5. korak.

A7. Igralec je že zamudil svojo vrsto.

a. Primer uporabe se premakne na 8. korak.

A8. Igralec nima kart na mizi.

a. Precedens »Preskoči zavoj« je izveden.

A9. Igralec se odloči, da gre.

a. Precedens »Naredi potezo« se izvede med fazo moči.

A10. Vsi igralci so zgrešili potezo med fazo hranjenja.

a. Igra se premakne na 9. korak.

A11. Precedens "Get Cards" v fazi izumiranja je končan.

A11.1. Nihče od igralcev ni prejel novih kart.

a. Pravica do prve poteze preide na naslednjega igralca.

b. Igra se vrne na 3. korak.

A11.1. Med fazo izumrtja noben igralec ni prejel novih kart.

a. Igra se premakne na 10. korak.

A12. Igralec je dosegel največ točk.

a. Precedens »Win« je izveden.

A13. Igralec je skupaj z drugim igralcem dosegel enako število točk, vendar več kot ostali igralci.

a. Sistem dodatno šteje točke za živali na kupu zavrženih igralcev.

b. Če igralec doseže več točk kot nasprotnik, se izvede precedens »Win«.

c. Če igralec doseže manj točk kot nasprotnik, se izvede precedens »izguba«.

A14. Igralec je dosegel manj točk kot drug igralec.

A15. Igralec je kliknil gumb »Ustvari novo igro«.

a. Izveden je primer uporabe »Ustvari igro«.

A16. Igralec je pritisnil gumb "Izhod v meni".

a. Primer uporabe "End Game" je izveden.

Razširitvena točka

· Precedens »zmaga«.

· "Izgubljeni" precedens.

Postpogoji

Odigrana je bila igra.

Tabela 1.7. Primer uporabe "Get cards".

Kratek opis

Precedens omogoča igralcu, da vleče nove karte iz kompleta.

Predpogoji

Precedens »Ustvari novo igro« je bil izveden.

Glavna nit

Za novo igro:

1. Sistem daje igralcu 6 kart iz skupnega kompleta.

V fazi izumiranja:

A1. Vsi igralci so prejeli zahtevano število kart ali pa je v kompletu zmanjkalo kart.

A2. Igralčeve nenahranjene živali se dajo v kup zavržkov in določi se število kart, ki jih je treba razdeliti.

1. Sistem postavi nehranjene živali v igralčev kup zavržkov.

2. Sistem določi število kart, potrebnih za izdajo, enako številu preživelih živali igralca + 1.

3. Sistem da igralcu eno karto od zahtevanega števila.

4. Sistem premakne na vrsti naslednjega igralca.

5. Precedens »Get Cards« se izvede med fazo izumiranja.

Alternativni tokovi

A1. Vsi igralci so prejeli zahtevano število kart ali pa je v kompletu zmanjkalo kart.

a. Precedens se konča.

A2. Igralčeve nenahranjene živali se dajo na kup zavržkov in določi se število preživelih živali.

a. Primer uporabe se premakne na 3. korak.

A3. Igralec nima nobene preživele živali in nobenih kart v roki.

A3.1. V kompletu ni kart.

a. Sistem določi število potrebnih kartic za izdajo, ki je enako 6.

A3.1. V kompletu ni kart.

a. Precedens »izguba« je izvršen.

b. Primer uporabe se premakne na 4. korak.

A4. Igralec dobi vse potrebno število kart.

a. Primer uporabe se premakne na 4. korak.

Postpogoji

Igralec je prejel nove karte.

Tabela 1.8 Precedens »Win«.

Tabela 1.9. Precedens "izguba".

Tabela 1.10 Precedens »Preskoči potezo«.

Kratek opis

Precedens preskoči igralca na vrsti.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

1. Sistem konča igralčevo potezo. Med trenutno fazo igralec ne bo več prejel pravice do premika.

Alternativni tokovi

A1. Igra je v fazi hranjenja, v zalogi hrane so žetoni in igralec ima nenahranjene živali ali živali z nezapolnjenimi maščobnimi rezervami.

a. Sistem prikaže sporočilo, da igralec ne more preskočiti poteze, ker ... mora vzeti žeton za hrano.

b. Precedens se konča.

Postpogoji

Igralec zgreši potezo in se v trenutni fazi ne more več premikati.

Tabela 1.11. Precedens "Naredi potezo".

Kratek opis

Precedens omogoča igralcu, da izvede potezo.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

Razvojna faza:

Faza moči:

A5. Igralec uporabi sposobnost.

Alternativni tokovi

A1. Igralec položi karto v obliki živali.

a. Precedens »Postavite kartico v obliki živali« je izveden.

A2. Igralec postavi karto kot sposobnost.

a. Izveden je primer uporabe »Postavite kartico kot sposobnost«.

b. Primer uporabe Make a Move se konča.

A3. V zalogi hrane ni več čipsa. Predvajalnik nima lastnosti, ki bi jih bilo mogoče uporabiti.

a. Precedens »Preskoči zavoj« je izveden.

A4. Igralec vzame žeton hrane iz zaloge hrane.

a. Precedens »Vzemite žeton za hrano« je izveden.

A5. Igralec uporabi sposobnost.

a. Primer uporabe »Uporabi lastnost« je izveden.

A5.1. Predvajalnik nima lastnosti, ki bi jih bilo mogoče uporabiti.

a. Primer uporabe Make a Move se konča.

Postpogoji

Igralec naredi potezo v trenutni fazi.

Tabela 1.12 Precedens "Postavite kartico v obliki živali."

Kratek opis

Precedens omogoča igralcu, da ustvari novo žival.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

A1. Igralec je izpustil karto.

2. Igralec povleče karto na prazen prostor na svojem igralnem polju.

3. Sistem dodeli prostor in obvesti igralca, da bo karta postavljena v obliki igralčeve živali.

A2. Karta se nahaja nad drugo karto na vašem igralnem polju ali na nasprotnikovem polju.

4. Igralec izpusti karto.

5. Karto položite na igralčevo igralno polje z živaljo obrnjeno navzgor.

Alternativni tokovi

A1. Igralec je izpustil karto.

A2. Igralec spusti karto čez drugo karto na svojem ali nasprotnikovem igralnem polju.

a. Precedens »Postavi kartico kot lastnino« iz 3. koraka se izvede.

A3. Igralec je spustil karto čez nasprotnikovo igralno polje.

Postpogoji

Na igralnem polju trenutnega igralca se prikaže živalska karta.

Tabela 1.13. Primer uporabe "Postavite kartico kot sposobnost."

Kratek opis

Precedens omogoča igralcu, da izbrani živali dodeli lastnost.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

1. Igralec klikne na izbrano karto in jo drži.

A1. Igralec je izpustil karto.

2. Igralec povleče karto na žival na svojem igralnem polju.

3. Sistem označi karto živali in obvesti igralca, da bo karta locirana kot last te živali.

4. Igralec izpusti karto.

5. Nad izbrano živaljo se prikaže ime in lastnosti nepremičnine.

Alternativni tokovi

A1. Igralec je izpustil karto.

a. Karta ne spremeni položaja in ostane v igralčevih "rokah".

A2. Igralec je spustil karto v prazen prostor na svojem igralnem polju.

a. Precedens »Postavite karto v obliki živali« iz 3. koraka se izvede.

A3. Igralec je spustil karto na prazen prostor na nasprotnikovem igralnem polju.

a. Karta se vrne nazaj v igralčeve "roke".

A4. Igralec je spustil karto čez nasprotnikovo žival.

a. Če je lastnost mogoče uporabiti na živalih drugih igralcev, se primer uporabe premakne na 5. korak.

b. Če lastnosti ni mogoče uporabiti za živali drugih igralcev, sistem obvesti igralca, da je to lastnost mogoče uporabiti samo za njegove lastne živali, in karta se vrne nazaj v igralčeve "roke".

A5. Nepremičnina na zemljevidu je seznanjena lastnost.

a. Sistem uporabi lastnost za izbrano žival in od igralca zahteva, da določi drugo žival.

b. Igralec pokaže 2. žival.

c. Sistem postavi navedene kartice drugo zraven druge.

d. Ime lastnosti in povezovalna črta med temi lastnostmi se pojavi nad izbranimi živalmi.

A5.1. Igralec ima samo 1 žival.

a. Sistem obvesti igralca, da seznanjene lastnosti ni mogoče postaviti, ker Igralec nima dovolj kart z živalmi.

b. Karta se vrne nazaj v igralčeve "roke".

A6. Na zemljevidu lahko izbirate med dvema nepremičninama.

a. Sistem prikaže modalno okno z možnostmi lastnosti.

b. Igralec klikne na izbrano lastnost.

c. Primer uporabe se premakne na 5. korak.

A7. Sposobnosti ni mogoče dvakrat uporabiti na isti karti živali.

a. Sistem obvesti igralca, da sposobnosti ni mogoče dati dvakrat na isto žival.

Postpogoji

Na igralčevem igralnem polju se karti živali dodajo ime in značilnosti lastnine, ki jo ima.

Tabela 1.14 Precedens »Vzemi čip za hrano.«

Kratek opis

Precedens omogoča igralcu, da nahrani eno od svojih živali.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

1. Igralec klikne na živilski žeton v hranilni bazi in ga drži.

A1. Igralec je izpustil žeton.

2. Igralec povleče žeton hrane na žival na svojem igralnem polju.

3. Sistem osvetli karto živali in obvesti igralca, da bo ta žival prejela +1 k svoji zalogi hrane.

4. Igralec sprosti žeton za hrano.

5. Izbrana žival je označena z žetonom hrane, zaloga hrane pa se dopolni za +1 enoto.

Alternativni tokovi

A1. Igralec je izpustil žeton.

a. Čip ne spremeni položaja in ostane v podajalnem dnu.

A2. Igralčeva žival je že nahranjena.

a. Sistem poudari karto živali in obvesti igralca, da ta žival ne more prejeti novega žetona hrane, ker je polno nahranjen.

b. Če igralec izpusti žeton hrane, se žeton vrne v osnovo hrane.

A3. Igralec je izpustil kos hrane zunaj svojega igralnega polja.

A4. Igralec je izpustil figuro zunaj karte živali na svojem igralnem polju.

a. Čip se vrne v osnovo hrane.

Postpogoji

Igralčeva trenutna žival dopolni zalogo hrane za 1 enoto.

Tabela 1.15 Primer uporabe »Uporabi lastnost«.

Kratek opis

Primer uporabe omogoča igralcu, da aktivira sposobnost svoje živali.

Predpogoji

Igralec ima pravico do gibanja.

Glavna nit

1. Sistem poudari lastnosti živali, ki jih je mogoče aktivirati.

2. Igralec klikne na razpoložljivo lastnost.

3. Sistem obdela izbrano lastnost in rezultat uporabe prikaže na igralnem polju ali pa ga sporoči igralcu.

Alternativni tokovi

A1. Lastnost "Predator" je bila uporabljena.

a. Sistem izpostavlja živali, ki so lahko napadene.

b. Igralec izbere žival, ki bo napadla.

c. Sistem preverja zaščitne lastnosti te živali.

d. Če obstaja zaščitna lastnost, potem sistem prenese potezo na igralca, čigar žival je napadena; po izbiri lastnosti se poteza vrne nazaj na napadalnega igralca in precedens se premakne na 3. korak.

e. Če lastnosti ni ali ni delovalo, se žival šteje za pojedeno in izgine s polja. Žival igralca, ki napada, prejme 2 enoti hrane.

A2. Sposobnost je mogoče uporabiti enkrat na krog.

a. Sistem označi lastnost kot uporabljeno, take lastnosti v tem krogu ni več mogoče uporabiti.

Postpogoji

Aktivira se lastnost živali, ki pripada igralcu.

In diktativno vedenje (iz angleščine addiction - nagnjenost, zasvojenost; lat. addictus - suženjsko vdan) je posebna vrsta oblik destruktivnega vedenja, ki se izraža v želji po begu iz resničnosti s posebno spremembo duševnega stanja. Sinonim: zasvojenost.

Obstajajo glavne vrste zasvojenosti:

  • zloraba ene ali več snovi, ki spreminjajo duševno stanje, na primer alkohol, droge, zdravila, različni strupi;
  • sodelovanje pri igrah na srečo, vključno z računalniškimi igrami;
  • spolno zasvojenost;
  • prenajedanje;
  • deloholizem (deloholizem);
  • dolgotrajno poslušanje glasbe, ki temelji predvsem na ritmih.

Ko se oblikuje zasvojenost, pride do redukcije, tj. poenostavljanje, glajenje medčloveških čustvenih odnosov.

Kompleks simptomov duševnih motenj, ki nastanejo zaradi pretirane uporabe računalnika ali interneta, psihiatri opisujejo z imenom zasvojenost z računalnikom in internetom ali računalniški sindrom.

Patološka privlačnost do računalniških iger in interneta se nanaša na nekemične ali vedenjske odvisnosti, torej odvisnosti, ki ne temeljijo na specifičnih biokemičnih substratih (za razliko od alkoholizma, odvisnosti od drog, odvisnosti od nikotina).

1. VPLIV RAČUNALNIŠKIH IGRIC NA TELO

Znanstveniki so poskušali proučiti posledice zasvojenosti z računalnikom na psihofizični ravni in odkrili naslednje.

Telesne spremembe v telesu so posledica vpliva več dejavnikov:

  • dolgotrajno sedenje v monotonem položaju, ki pogosto izkrivlja držo osebe in notranje organe;
  • utripanje monitorja;
  • elektronsko sevanje.

Zdravniki vključujejo posledice izpostavljenosti zgornjim dejavnikom:

  1. Zmanjšana imunost (zaščitne lastnosti telesa) - nagnjenost k okužbam in raku.
  2. Nevrološke motnje - obstajajo številna opažanja pediatričnih nevrologov o razvoju konvulzivnih napadov, ki jih izzove učinek utripanja monitorja in pogoste spremembe slike med igro (pojavi se fotostimulacija konvulzivne aktivnosti možganov).
  3. Nevrovegetativne spremembe - te vključujejo nihanje krvnega tlaka, srčnega utripa, frekvence dihanja, povišano telesno temperaturo in glavobole.
  4. Vaskularne motnje. Zaradi monotone drže se razvijejo zastoji v posodah organov, otekanje in krčne žile.
  5. Sprememba drže.
  6. Reproduktivna disfunkcija.
  7. Poslabšanje vida.
  8. Endokrine motnje.

Tako so na Japonskem s študijami ugotovili, da na primer računalniške igrice pri otrocih stimulirajo le omejen del možganov, zato morajo več brati, pisati in računati. Poleg tega je za spodbujanje delovanja možganov in normalnega razvoja pomembno, da se otroci igrajo zunaj s svojimi vrstniki in več komunicirajo z drugimi.

Po mnenju ameriških znanstvenikov pretirano ukvarjanje z nasilnimi računalniškimi igricami vodi do motenj v prenosu impulzov med živčnimi celicami in upočasnjuje delovanje možganov (kar so potrdili tudi rezultati študij funkcionalnega slikanja z magnetno resonanco, opravljenih na mladostnikih, ki so sodelovali v raziskavi). Ta zavora je še posebej izrazita pri mladostnikih z vedenjskimi motnjami, pri katerih je aktivnost v skorji čelnega režnja (odgovorna med drugim za čustva in impulzivnost) že močno zmanjšana.

Po statističnih podatkih, pridobljenih v ZDA, šestošolec v povprečju gleda televizijo 4 ure na dan – in to ne vključuje časa, ki ga preživi z igranjem različnih igric pred računalnikom ali TV zaslonom. Otroci priznavajo, da se pogosto igrajo dlje, kot so nameravali. Ni redkost, da zaradi tega zanemarijo študij.

Po nekaterih ocenah je približno 40 % ameriških otrok, starih od 5 do 8 let, debelih. Očitno je vzrok za to nezadostna telesna aktivnost - posledica dolgega gledanja televizije ali računalnika. Eno podjetje je celo razvilo posebne simulatorje, ki jih lahko uporabljate med igranjem računalniških igric. Toda ali ne bi bilo bolje tem igram posvetiti manj časa, da bi bilo dovolj časa za druge dejavnosti, potrebne za celovit razvoj otrokove osebnosti?

In tu je še ena nevarnost, ki jo predstavljajo elektronske igre: dolgotrajno sedenje pred zaslonom lahko poškoduje vaše oči. Dokazi kažejo, da ima vsaj eden od štirih uporabnikov računalnika težave z vidom. Eden od razlogov je v zmanjšanju pogostosti mežikanja, kar povzroča suhost in draženje oči. Ko oseba mežika, spodbuja sproščanje solzne tekočine, ki opere zrklo in ga zaščiti pred kontaminacijo. Otroci, odneseni, pozabijo na vse na svetu in se zato lahko ure in ure igrajo za računalnikom, skoraj brez odmora. To vodi v prekomerno obremenitev oči in težave pri fokusiranju. Strokovnjaki priporočajo nekajminutni odmor po vsaki uri dela z računalnikom.

2. VPLIV NA PSIHO. POJAV ODVISNOSTI OD IGER

Današnja hitrost informatizacije presega hitrost razvoja vseh drugih panog. Sodobni človek začne nenehno komunicirati z računalnikom - v službi, doma, v avtu in celo na letalu. Računalniki se hitro vpeljujejo v človeško življenje, zasedajo svoje mesto v naši zavesti in pogosto se ne zavedamo, da začenjamo v veliki meri odvisni od njihovega delovanja.

S prihodom računalnikov so se pojavile računalniške igre, ki so takoj našle veliko oboževalcev. Ko so se računalniki izboljševali, so se izboljševale tudi igre, ki so pritegnile vse več ljudi. Pričakuje se, da se bo trg elektronskih iger v prihodnjih letih vztrajno širil. V družbi se oblikuje cel sloj ljudi, ki so ljubitelji računalniških igric; igranje postane njihova glavna dejavnost. Njihov krog socialnih stikov je zelo ozek, vse druge aktivnosti so usmerjene le v preživetje, v zadovoljevanje fizioloških potreb; Glavna stvar je zadovoljiti potrebo po igranju na računalniku. Izkušnje kažejo, da mnogim med njimi ta hobi ni prav nič koristen, nekateri pa resno potrebujejo pomoč. Večinoma gre za ljudi z znanimi psihičnimi težavami: neurejenim osebnim življenjem, nezadovoljstvom s seboj in posledično izgubo smisla življenja in običajnih človeških vrednot. Edina vrednost zanje je računalnik in vse, kar je z njim povezano.

Za duševno zdravje je največja nevarnost računalniških igric zasvojenost. Človek je najbolj dovzeten za odvisnost od računalniških iger, saj se dogodki v računalniških igrah ne ponavljajo in potekajo precej dinamično, sam proces igre pa je neprekinjen. Pred koncem katere koli igre obstajajo določene logične faze, ki so večinoma precej tesno povezane med seboj, zaradi česar se subjekt ne moti, ampak zaznava potek celotne igre od začetka do konca. kot en sam proces.

Računalniške igre, predvsem igre vlog, so eden od načinov tako imenovanega zasvojenostnega izvajanja, tj. beg od realnosti.

S tem ko se človek popolnoma poglobi v igro in v njej doseže določene uspehe, tako uresniči (praktično) večino svojih obstoječih potreb, ostale pa zanemari. V vsaki družbi so ljudje, ki raje bežijo pred težavami. Tiste, ki za to metodo izberejo alkohol, imenujemo alkoholiki, droge - odvisniki od drog, delo - deloholiki, igre na srečo - patološki hazarderji. Odvisniki od interneta, računalniških iger – cyberaddicts itd. V slednjem primeru se človek namesto v reševanje problemov tukaj in zdaj potopi v računalniško igrico. Tam, v igri, se dobro počuti: je močan, pogumen, oborožen, uspešen ... Čas, porabljen za igro, ga ne naredi močnejšega in uspešnejšega v resničnem življenju. Zato človek, ko preide iz virtualnega sveta v resničnega, doživi nelagodje, se počuti majhnega, šibkega in brez obrambe v agresivnem okolju. In želi se čim prej vrniti tja, kjer je zmagovalec.

Popolna potopitev v igro ustvarja učinek igralca, ki sodeluje v nekakšni virtualni resničnosti, v nekem kompleksnem in gibljivem procesu, ki obstaja samo zanj. Ta lastnost računalniških iger ne dovoljuje igričarju, da prekine proces, da bi izpolnil kakršne koli družbene obveznosti v resničnem življenju. Nekateri celo noč presedijo za računalnikom in izpadejo iz resničnega življenja. Ljudje okoli vas so zaskrbljeni, a pogosto ne vedo, kaj storiti. Neki mlad igralec računalniških igric je rekel: Ko se pogovarjam z ljudmi na spletu, se jim zdim pameten in eleganten. In ko me vidijo v življenju, mi svetujejo, naj shujšam.

Na ta način človek pobegne od realnosti v izmišljeni svet. Tukaj je primeren opis, ki ga en opazovalec poda ljubiteljem računalniških iger: Za spletnega igralca je izmišljeni svet veliko bolj privlačen od resničnega. Njegovo življenje izven igre se zmanjša le na to, da zasluži minimalno količino denarja, ki je potrebna za nadaljevanje igranja.

Seveda so razvijalci tovrstnih programskih izdelkov zainteresirani, da bi bila igra čim bolj privlačna. Naloga proizvajalcev programske opreme za igre na srečo je ustvariti največji učinek potopitve, tako da bo oseba, zasvojena z računalniškimi igrami, brez oklevanja kupila njihov izdelek ob izidu naslednje serije.

Računalniški razvoj je namenjen izboljšanju prenosa večpredstavnostnih učinkov, ki so neposredno povezani z igralnimi procesi. Danes obstaja veliko načinov za ustvarjanje učinka sodelovanja igralca v procesu, od logike igre (prva oseba, timska igra itd.) in grafičnega oblikovanja (3D grafika, izometrični pogled) do glasbene spremljave (digitaliziran glas, psihološko zanimiva ali napeta glasba) in naravni zvočni učinki.

Zasvojenost z računalniškimi igrami ni odvisnost od katere koli računalniške igre, saj gre bolj za psihološko verižno reakcijo. Po dokončanju ene igre v kateri koli zvrsti, ki mu je bila najbolj všeč, gameholik išče druge igre istega žanra, narejene v enakem slogu in ne manjvredne v psihološki napetosti, nato pa želja po dokončanju vseh (vsaj znanih) iger te vrste, ki jih je trenutno na trgu ogromno.

Številne igre imajo kombinirane žanre iger, kar odvisnika prisili, da preide na druge vrste iger. Upoštevati je treba, da dokončanje nove računalniške igre traja od 5-6 ur do nekaj dni, včasih celo tednov. Da bi gameholik čim dlje igral to ali ono igro, razvijalci vanje uvedejo dodatne majhne podravni, tako imenovane skrivnosti, katerih iskanje traja veliko časa. Človek, obseden z računalniško igro, se od nje dokončno ne poslovi, dokler ne najde vseh skrivnih nivojev, sob in ne zbere vseh bonusov. Zdi se, da z ustvarjanjem skrivnih podravni proizvajalci potiskajo igralca k določenemu tekmovalnemu občutku, kdo bo zmagal? , kar je eden od mnogih razlogov za zasvojenost z računalniškimi igrami.

Igre, v katerih so dogodki neposredno odvisni od igralca, tj. razvijajo se neodvisno skupaj z igralcem, osredotočajo se na njegove šibke in močne točke ali pa imajo veliko naključnih parametrov, ki jih igralec nastavi, zaradi česar mora odvisnik vedno znova iti skozi njih. Vsakič, v vsaki novi situaciji, igralec preveri, kaj se bo zgodilo, če se bodo dogodki odvijali drugače. Takšne igre so še bolj privlačne kot tiste, ki temeljijo na scenarijih, saj igralcu zagotavljajo še večjo svobodo delovanja in mu dajejo možnost, da se počuti kot razvijalec določene stopnje ali scenarija računalniške igre.

Drug način, da subjekt postavite na računalniško iglo, je, da zagotovite programski paket, ki je vključen v igro, za razvoj lastnih nivojev scenarija igre in včasih celo za ustvarjanje lastnih likov ter zamenjavo glasovnih in zvočnih učinkov, tj. ki zagotavlja obsežne multimedijske zmogljivosti. Takšni programi priljubljeni igri začasno dajo določen kultni značaj. V virtualnih konferencah in na spletnih mestih oboževalcev se pojavijo ravni za določeno računalniško igro, ki jih ustvarijo neposredno igralci in so vsem na voljo za igranje in ocenjevanje. Če igra podpira sisteme več igralcev (hkratno igranje dveh ali več igralcev), to še dodatno krepi psihološko odvisnost subjektov od igre. Več igralcev lahko tekmuje med seboj, kdo je našel najbolj učinkovito igralno taktiko, igra proti računalniku pa je veliko manj zanimiva kot ista igra, vendar proti živemu človeku. Poleg tega igranje proti osebi na nivoju, ki ga je razvil igralec sam, resnično vznemiri njegovo zavest, v trenutku igre se mu zdi, da je v svojem virtualnem svetu, kjer mora dokazati svojo moč, moč in igralne sposobnosti; .

Negativne posledice zasvojenosti z računalnikom so tako zasvojenost, ki se izraža v psihopatoloških simptomih (kot so nezmožnost prehoda na drugo razvedrilo, občutek večvrednosti nad drugimi ljudmi, osiromašenje čustvene sfere) in zožitev kroga interesov, in težave pri komunikaciji z vrstniki ter somatske motnje (zmanjšan vid, utrujenost).

Dejavnike tveganja za razvoj odvisnosti od računalnika lahko razdelimo v tri skupine:

1) Socialno

Nezadostno preventivno in razlagalno delo v družini, oslabljen nadzor nad higieno dela za računalnikom.

Množično navdušenje vrstnikov in odraslih (staršev) okoli otroka nad računalniškimi igrami in internetom.

Finančna spodbuda – priložnost za zadetek z igranjem stav, spletni kazino.

Pomanjkanje alternativnega prostega časa - nenaklonjenost ali pomanjkanje možnosti, da bi počeli karkoli drugega kot računalnik.

2) Dedno-biološki

Dedna nagnjenost k razvoju določene vrste višje živčne dejavnosti. V človeškem genomu so razvozlali 31 genov, ki so odgovorni za nastajanje hormonov razpoloženja – nevrotransmiterjev (dopamin, serotonin, norepinefrin, GABA). Individualne duševne značilnosti so v veliki meri odvisne od hitrosti nastajanja in prenosa teh snovi v človeškem centralnem živčnem sistemu.

Pre-, peri- in postnatalne nevarnosti (škodljivost neonatalnega obdobja), nevroinfekcije, travmatične poškodbe možganov, zastrupitve in resne bolezni prispevajo k razvoju organske inferiornosti možganov in oblikujejo določene karakterološke lastnosti posameznika.

3) Psiho-karakterološki

Mladi z nizko samopodobo, nesamozavestni, čustveno nestabilni, težko komunicirajo, potopljeni v svet lastnih izkušenj (introvertirani) in čutijo pomanjkanje pozornosti in podpore družine in prijateljev so bolj dovzetni za odvisnost od računalniških iger in internet. V igri se dobro počuti: je močan, pogumen, oborožen, uspešen ... Človek ob prehodu iz virtualnega sveta v resnični svet doživi nelagodje, se počuti majhnega, šibkega in brez obrambe v agresivnem okolju in se želi vrniti v kjer je zmagovalec čim prej.

Mladenič se tako navadi na realistično računalniško igrico, da mu postane veliko bolj zanimiva kot v resničnem življenju. Zastavljene so zelo specifične naloge, katerih neizpolnitev ne bo povzročila nobenih izgub, slabih ocen ali grajanja staršev. Storjeno napako lahko popravite tako, da večkrat ponovite ta ali oni trenutek igre.

Bodočega odvisnika igra pritegne:

  • prisotnost lastnega (intimnega) sveta, v katerega nima dostopa nihče razen njega samega;
  • pomanjkanje odgovornosti;
  • realistični procesi in popolna abstrakcija od okoliškega sveta;
  • zmožnost popravljanja kakršne koli napake z večkratnimi poskusi;
  • sposobnost samostojnega sprejemanja kakršnih koli (znotraj igre) odločitev, ne glede na to, do česa lahko vodijo.

Treba je opozoriti, da ker se v otroštvu človekove duševne sposobnosti razvijajo v procesu interakcije in prilagajanja okolju, in za razliko od odraslega - zrele osebnosti z izoblikovanimi psihološkimi obrambnimi mehanizmi, otrok brez kritik sprejema tisto, kar mu je ponujeno, takrat postane odvisen hitreje kot odrasel. Zato so vprašanja zgodnjega preprečevanja zasvojenosti z računalnikom v pristojnosti predvsem staršev.

Na splošno mehanizem človekove zasvojenosti in nastajanja odvisnosti od iger na srečo temelji na delno nezavednih težnjah in potrebah: pobeg od realnosti in sprejemanje vloge. Ti mehanizmi se aktivirajo takoj, ko se oseba seznani z računalniškimi igrami vlog in jih bolj ali manj redno igra ter delujejo ne glede na človekovo zavest in naravo motivacije za igralno dejavnost.

3. PSIHOLOŠKA KLASIFIKACIJA RAČUNALNIŠKIH IGR

Vse računalniške igre lahko razdelimo na igre za igranje vlog in igre brez igranja vlog.

Računalniške igre vlog so igre, v katerih igralec prevzame vlogo računalniškega lika, tj. sama igra obvezuje igralca, da deluje kot določen ali namišljen računalniški junak. Računalniške igre z igranjem vlog ustvarjajo kakovostno novo raven psihološke odvisnosti od računalnika kot igre brez igranja vlog ali katere koli vrste računalniških dejavnosti, ki niso povezane z igrami. Očitno je, da je psihološka odvisnost od igranja vlog najmočnejša glede na stopnjo vpliva na osebnost igralca.

Izpostavimo kriterije za uvrstitev računalniške igre v razred iger vlog:

Igra vlog naj spodbudi igralca, da se vživi v vlogo računalniškega lika in atmosfero igre skozi svoj zaplet in multimedijske (grafično in zvočno oblikovanje) značilnosti.

Igra vlog mora biti strukturirana tako, da pri igralcu ne povzroča motivacije, ki temelji na navdušenju - zbrati več točk, s tem podreti rekord nekoga drugega, preiti na naslednjo stopnjo itd.

Čeprav v kateri koli računalniški igri obstaja element vznemirjenja, v igri vlog ta dejavnik ne bi smel biti bistvenega pomena.

Spodaj predlagana klasifikacija ni vseobsegajoča, popolna ali popolna. Videti je takole:

I. Računalniške igre igranja vlog.

  • Igre s pogledom iz oči vašega računalniškega junaka.
  • Igre z zunanjim pogledom na vašega računalniškega junaka.
  • Voditeljske igre.

II. Računalniške igre brez igranja vlog.

  • Arcade.
  • Uganke.
  • Igre za hitrost reakcije.
  • Tradicionalne igre na srečo.

SPECIFIČNOST RAČUNALNIŠKIH IGR

I. Računalniške igre igranja vlog

Glavna značilnost je največji vpliv na psiho igralca, največja globina vstopa v igro, pa tudi motivacija igralne dejavnosti, ki temelji na potrebah po sprejemanju vloge in begu iz realnosti. Tu se trije podtipi razlikujejo predvsem po naravi vpliva na igralca, moči vpletenosti v igro in stopnji globine psihološke odvisnosti.

1) Igre s pogledom iz oči vašega računalniškega junaka. Za to vrsto igre je značilna največja sila zategovanja oziroma vstopa v igro. Posebnost pri tem je, da pogled iz oči izzove igralca, da se popolnoma poistoveti z računalniškim likom, da se popolnoma vživi v vlogo. Po nekaj minutah igranja (čas se razlikuje glede na individualne psihološke značilnosti in igralne izkušnje igralca) oseba začne izgubljati stik z resničnim življenjem, se popolnoma osredotoči na igro in se prenese v virtualni svet.

Igralec lahko virtualni svet jemlje popolnoma resno in dejanja svojega junaka smatra za svoja. Oseba postane motivirana, da se vključi v zaplet igre.

2) Igre z zunanjim pogledom na vašega računalniškega junaka. Za to vrsto iger je značilna manjša moč pri vstopu v vlogo v primerjavi s prejšnjo. Igralec se vidi od zunaj in nadzoruje dejanja tega junaka.

Identifikacija z računalniškim likom je manj izrazita, posledično sta tudi motivacijska vpletenost in čustvene manifestacije manj izraziti v primerjavi z igrami s pogledom iz oči. Če v primeru slednjega človek v kritičnih sekundah življenja svojega junaka lahko bledi in se vrtoglavi na stolu ter se poskuša izogniti udarcem ali strelom računalniških sovražnikov, potem v primeru zunanjega pogleda zunanji Manifestacije so bolj zmerne, vendar manj močni igralci ne doživijo neuspehov ali smrti samega sebe v podobi računalniškega junaka.

3) Vodstvene igre. Vrsta je tako imenovana, ker ima igralec v teh igrah pravico usmerjati dejavnosti računalniških likov, ki so mu podrejeni. V tem primeru lahko igralec deluje kot vodja različnih specifikacij: poveljnik odreda posebnih sil, vrhovni poveljnik vojske, vodja države, celo bog, ki vodi zgodovinski proces. V tem primeru oseba ne vidi svojega računalniškega junaka na zaslonu, ampak si izmisli vlogo zase. To je edini razred iger igranja vlog, kjer vloga ni posebej podana, ampak si jo igralec zamisli. Posledično bo globina potopitve v igro in vaša vloga pomembna le za ljudi z dobro domišljijo. Vendar pa motivacijska vključenost v proces igre in mehanizem za nastanek psihološke odvisnosti od igre nista nič manj močna kot pri drugih igrah vlog.

II. Računalniške igre brez igranja vlog

Osnova za razlikovanje te vrste je, da igralec ne prevzame vloge računalniškega lika, zaradi česar so psihološki mehanizmi za nastanek odvisnosti in vpliv iger na človekovo osebnost manj močni. Motivacija za igralno dejavnost temelji na navdušenju nad podajo in (ali) doseganjem točk. Obstaja več podtipov:

1) Arkadne igre. Takšne igre imenujemo tudi konzolne igre, saj so zaradi nizke porabe računalniških virov zelo razširjene na igralnih konzolah. Ploskev je običajno šibka in linearna. Vse, kar mora igralec storiti, je, da se hitro premika, strelja in zbira različne nagrade, medtem ko vozi računalniški lik ali vozilo. V večini primerov so te igre zelo neškodljive v smislu vplivanja na osebnost igralca, ker Psihična odvisnost od njih je največkrat kratkotrajna.

2) Uganke. Ta vrsta iger vključuje računalniške različice različnih družabnih iger (šah, dama, backgammon itd.), pa tudi različne vrste ugank, ki so izvedene v obliki računalniških programov.

Motivacija, ki temelji na strasti, je tu povezana z željo premagati računalnik, dokazati svojo premoč nad strojem.

3) Igre za hitrost reakcije. To vključuje vse igre, v katerih mora igralec pokazati spretnost in hitro reakcijo. Razlika od arkadnih iger je, da sploh nimajo zapleta in so praviloma popolnoma abstraktne in nimajo nobene povezave z resničnim življenjem. Motivacija, ki temelji na strasti, potreba po dokončanju igre, doseganju več točk, lahko oblikuje popolnoma stabilno psihološko odvisnost osebe od te vrste igre.

4) Tradicionalne igre na srečo. Sem spadajo računalniške različice iger s kartami, rulete, simulatorji igralnih avtomatov, z eno besedo - računalniške različice igralniškega repertoarja. Psihološki vidiki oblikovanja odvisnosti od teh računalniških iger in njihovih resničnih analogov so zelo podobni, zato se na to ne bomo osredotočali.

Računalniške igre vlog torej v največji meri omogočajo osebi, da vstopi v virtualnost, se loči (vsaj za čas igre) od resničnosti in vstopi v virtualni svet. Zaradi tega imajo računalniške igre vlog pomemben vpliv na človekovo osebnost.

4. SIMPTOMI ZASVOJENOSTI OD IGER

Manifestacije sindroma odvisnosti od računalnika se postopoma povečujejo in ne postanejo takoj opazne za druge. Obenem zasvojenost z računalniškimi igricami prepoznajo predvsem prijatelji, sorodniki in znanci okoli subjekta, ne pa tudi on sam, kar je zelo podobno kot pri katerikoli drugi vrsti zasvojenosti.

Glavni simptomi, ki opredeljujejo to bolezen, so naslednji:

  1. zatopljenost, preokupacija z igro (spomini na pretekle igre, načrtovanje za prihodnje, misli o tem, kako najti denar za igro);
  2. občutek čustvenega dviga pri delu z računalnikom, živčnost in vznemirjenost med igranjem;
  3. nenaklonjenost odvračanju od igranja z računalnikom;
  4. občutki, tesnoba ali razdraženost, ko je treba igro prekiniti;
  5. uporaba iger kot sredstva, da se znebimo neprijetnih izkušenj;
  6. poskusi zmagati po izgubi, popraviti situacijo;
  7. laži in poskusi racionalnega utemeljevanja svojega vedenja, da bi prikrili pravo stopnjo svoje vpletenosti v igro;
  8. pozabljanje na gospodinjska opravila, obveznosti, študij, sestanke med igranjem na računalniku, poslabšanje odnosov v šoli, s starši, s prijatelji;
  9. izposojanje denarja od drugih za nakup nove igre.
  10. zanemarjanje lastnega zdravja, higiene in spanja v korist preživljanja več časa za računalnikom;

Če ima človek štiri ali več simptomov, je to že bolezen...

5. KAJ STORITI?

Trenutno znanstveniki ne morejo nedvoumno reči, ali obstaja potreba po strogem reševanju problemov zasvojenosti z računalnikom med mladimi. Po eni strani takšna zasvojenost človeka požre, vzame veliko časa za razvoj in izobraževanje, izloči subjekt iz aktivnega družbenega procesa, po drugi strani pa je zasvojenost z računalniškimi igrami minljiv, začasen pojav.

Zasvojenost z računalnikom se od kajenja, alkohola, drog in iger na srečo razlikuje po tem, da v določenem trenutku pride do zasičenosti z računalnikom. Potem se subjekt bodisi ukvarja s tem profesionalno ali pa računalnik nima več tako pomembnega mesta v njegovem življenju. To vprašanje ostaja odprto predvsem zato, ker nikoli ni jasno, na kateri točki bo računalniški odvisnik, še posebej igričar, dosegel točko sitosti. Bo prepozno za študij in nadoknaditi? Ali bo v evforiji računalniških igric izgubil družbeni status? V tem primeru to pomeni izključitev iz šole ali fakultete, odpust iz službe, izgubo naziva ali položaja.

Možno je, da bo prenasičenost z računalniškimi igrami v zgodnjem otroštvu zahtevala veliko manj časa kot na primer študent. Možno je, da se bo otrok hitro naveličal enoličnosti ekrana v primerjavi z neskončnostjo možnosti in neodkritimi trenutki resničnega sveta. Toda na žalost ni nobenega zagotovila, da otrokova psiha ne bo poškodovana zaradi takšnega neupravičenega poskusa.

Preizkušen način, kako preprečiti, da bi človek postal odvisen od računalniških iger, je, da ga pritegnemo v resnično življenje, da se v njem uresniči. Obstaja veliko zanimivih dejavnosti (komunikacija z naravo, vadba joge, branje izobraževalne literature itd.), Ki vam ne omogočajo le raziskovanja lastnega sveta, razvijanja budnosti in zavedanja, temveč tudi trenirajo telo in normalizirajo psihološko stanje. Navidezna resničnost je neotipljivost vpliva, konvencionalnost parametrov in minljivost - ni življenje, je le njegov sekundarni del, vzporedni, a ne glavni proces. Nima smisla zanemariti računalniških zmogljivosti, potrebno jih je uporabiti po potrebi in združiti zabavo v obliki računalniških iger z resničnimi aktivnimi dejanji v resničnem svetu.

6. predavanje:

Diagrami primerov uporabe: od blizu

Nekaj ​​besed o zahtevah

Pogovorimo se torej o zahtevah. Na splošno razumemo, kaj je to - ko nam stranka opiše, kaj točno želi, vedno slišimo fraze, kot so "Želim, da se preverjanje posodobitev izvede samodejno, kot pri antivirusih", "Želim velik zeleni gumb v sredina okna , ki začne postopek", " program vam mora omogočati ogled in tiskanje poročil«, »in vse bi moralo biti lepo, s prosojnostjo, kot v Vista«, »pri izhodu bi se morala prikazati potrditev« itd. itd. Seveda kot pravi razvijalci razumemo, da da stranka nikoli ne ve, kaj točno potrebuje, in če razume, tega ne zna razložiti. Avtor: v bistvu enako! Opisujejo, kako si stranka predstavlja sistem, kaj si želi od sistema, funkcionalnosti, ki jih od njega pričakuje, zahteve, ki jih postavlja.

Če se obrnemo na klasiko, na primer na isto »tolpo treh« (Jacobson, Butch, Rambo), izvemo, da zahteva je želena funkcionalnost, lastnost ali obnašanje sistema. Razvojni proces se začne z zbiranjem zahtev. BY. Če upodabljamo razvojni proces BY kot " Črna škatla"(prepričani smo, da bralec ve, kaj je to, če ne - Wikipedia vam je na voljo), katerega rezultat dobimo programsko opremo, nato naprej vhod Ta "črna skrinjica" bo zagotovila natančno nabor zahtev za programski izdelek ( riž. 6.1)!


riž. 6.1.

Mimogrede, kateremu diagramu je podobna ta slika? Prav, diagram dejavnosti. In izbira tega posebnega diagrama je tukaj popolnoma upravičena - ne pozabite, to smo rekli diagrami dejavnosti pogosto uporablja za opis poslovnih procesov? Edino opozorilo: običajno se razvojni proces ne konča z izdajo programskega izdelka - prihaja nov ponovitev, nove, posodobljene zahteve, nova različica itd.

Mimogrede, vrnimo se k zahtevam. Da, rekli smo, da je vnos naše »črne skrinjice« niz zahtev. Toda v kakšni obliki? Kako so te zahteve dokumentirane? Mislim, da se večina bralcev spomni, kaj je tehnična naloga- glavni dokument, brez katerega se v sovjetskih časih ni začel noben projekt. Dokument je bil velik, večstranski, z jasno strukturo, ki jo določajo GOST (državni industrijski standardi). In je opisal Avtor: v bistvu nič drugega kot zahteve za sistem, ki se ustvarja!

Tehnična naloga - stvar Avtor:- dober na svoj način. Toda čas je minil, spremenili so se standardi, oznake in načini opisovanja zahtev. In tako postopoma tehnična naloga priznal mesto nabor artefaktov, sestavljen iz dveh vrst dokumentov:

· diagrami primerov uporabe ;

· nefunkcionalne zahteve.

Diagrami primerov uporabe pobotati se model primera uporabe(primeri uporabe, primeri uporabe). Precedens- to je funkcionalnost sistema, ki uporabniku omogoča pridobitev nekega pomembnega, oprijemljivega in merljivega rezultata. vsak precedens ustreza ločeni storitvi, ki jo zagotavlja modelirani sistem kot odziv na prošnja uporabnik, tj. določa, kako uporabljati ta sistem. točno tako Avtor: Zaradi tega se primeri uporabe ali precedensi v ruski terminologiji pogosto pojavljajo kot primeri uporabe. Primeri uporabe se najpogosteje uporabljajo za določanje zunanjih zahtev za sistem, ki se načrtuje, ali za določanje funkcionalnega obnašanja obstoječega sistema. Poleg tega primeri uporabe implicitno opisujejo tipične načine interakcije uporabnika s sistemom, kar jim omogoča pravilno delo s storitvami, ki jih zagotavlja sistem.

Nefunkcionalne zahteve - to je opis lastnosti sistema, kot so značilnosti okolja in izvedbe, izvedba,razširljivost, zanesljivost itd. Pogosto nefunkcionalne zahteve niso vezane na določen primer uporabe in so zato ločeno seznam dodatne sistemske zahteve ( riž. 6.2).



riž. 6.2.

A vrnimo se k precedensom (primerom uporabe). Sistemski analitik je odgovoren za prepoznavanje precedensov in akterjev. In to počne, da bi:

· jasno razlikovati med sistemom in njegovim okoljem;

· določite, kateri akterji sodelujejo s sistemom in kako natančno, katere funkcionalnosti (primeri uporabe) se pričakujejo od sistema;

· definirati in v domenskem slovarju (glosarju) opisati splošne pojme, ki so potrebni za podroben opis funkcionalnosti sistema (precedensi).

Ta vrsta dejavnosti se običajno izvaja v naslednjem zaporedju:

1. Identifikacija igralcev.

2. Opredelitev precedensov.

3. Sestavljanje opisa vsakega precedensa.

4. Opis modela primera uporabe kot celote (ta stopnja vključuje izdelavo domenskega slovarja).

Na začetku so zahteve formalizirane v obliki običajnega besedilnega dokumenta, ki ga ustvari uporabnik sam ali uporabnik in razvijalec skupaj. Nato so zahteve predstavljene v obliki tabele. Precedensi so postavljeni v levi stolpec, akterji, ki sodelujejo v precedensu, pa v desni stolpec.

Poglejmo si primer. Tajnica ga postavi na strežnik meni kosilo jedi za teden. Zaposleni bi se morali seznaniti s meni in oddajte naročilo tako, da izberete jedi za vsak dan v naslednjem tednu. Pisarna-upravnik mora znati ustvariti račun in ga plačati. Sistem mora biti zapisan A.S.P..MREŽA. To je preprost internet aplikacija za avtomatizacijo naročil kosila urad.

Mislimo, da je tukaj vse jasno. Tabela z opisom zahtev je lahko na primer to:

Precedens

Igralec

post meni

tajnica

ogled menija

naredite naročilo

uslužbenec, tajnica, vodja pisarne

ustvari račun

Vodja pisarne

plačaj račun

Vodja pisarne

Nikjer ne piše, da mora biti sistem vpisan A.S.P..MREŽA. Jasno je zakaj: to je nefunkcionalna zahteva! In tudi, očitno je, da tajnica in urad-vodja so tudi zaposleni. Bralec, ki je pozorno prebral prejšnja predavanja, bo sumil, da bi v tem primeru pri ustvarjanju modela precedensa, ko govorimo o akterjih, lahko uporabili posploševanje. res, diagram primerov uporabe, zgrajena na podlagi te tabele, je lahko na primer taka ( riž. 6.3):



riž. 6.3.

Diagrami primerov uporabe in njihov zapis

No, imamo primer tabele. Torej, katere elemente vidimo na njem? Prva stvar, ki pade v oči, je velika pravokotnik, znotraj katerega so postavljene elipse, ki kažejo, kot smo že razumeli, precedens. Ime modeliranega sistema je navedeno v zgornjem delu pravokotnika in se imenuje znotraj sistema (sistem meja, predmet meja),kontekstu ali preprosto sistem. Ta element diagrama prikazuje mejo med tem, kar vam je všeč analitik prikazano v obliki precedensov (znotraj tega okvira) in s tem, kar ste prikazali kot akterji (zunaj njih). Najpogosteje je prikazan ta pravokotnik meje samega simuliranega sistema. To pomeni, da znotraj meje obstajajo precedensi - funkcionalnost, ki jo sistem izvaja (in v tem smislu se precedensi lahko obravnavajo kot predstavitve podsistemov in razredov modela), zunaj pa - znakov: uporabniki in drugi zunanje entitete, v interakciji z modeliranim sistemom.

Povedati je treba, da je ogrodje sistema v diagramih primerov uporabe prikazano zelo redko, saj so implicitno implicirani v samem diagramu. Avtor: V bistvu ta element diagramu ne doda nobenih dodatnih pomembnih informacij, zato je njegova uporaba stvar okusa analitika. Videz sistemskega ogrodja na diagramu primerov uporabe največkrat narekujejo značilnosti osebnega stila oblikovanja.

Poleg ogrodja sistema ali njegovega konteksta v diagramu vidimo še dve vrsti entitet, ki sta povezani z njim – to sta znakov(igralci) in precedensi. Začnimo z ektorji. Precej pogosto v literaturi v ruskem jeziku Avtor: UML Za označevanje znakov lahko najdete izraz " igralec". Načeloma je njegov pomen bolj ali manj jasen in je skladen z izvirnim angleškim izrazom. Poleg tega obstaja še en razlog za tak prevod. beseda prva stvar, ki vam pride na misel, ko slišite beseda "igralec"? Seveda - beseda"vloga"! Gre za vloge, o katerih bomo kmalu spregovorili, ko bomo poskušali ugotoviti, kaj se skriva za pojmom »igralec«. Medtem, naj nam bralec oprosti, bomo še naprej uporabljali besedo "igralec" - prepis izvirnega izraza. Spomnim se, da smo nekoč pisali o našem odnosu do dobesednega prevajanja terminologije ...

Kaj je torej pomen pojma igralec? Ector je niz vlog, ki jih igra uporabnik med interakcijo z neko entiteto (sistem, podsistem, razred). Akter je lahko oseba, drug sistem, podsistem ali razred, ki predstavlja nekaj, kar presega zadevno entiteto. Akterji »komunicirajo« s sistemom z izmenjavo sporočil. Z jasno identifikacijo akterjev s tem jasno določite mejo med tem, kar je znotraj sistema in tistim, kar je zunaj – okvir sistema.

Morda besede "vloge, ki jih izvaja uporabnik" v definiciji igralca ne zvenijo zelo jasno. Ta koncept je zelo smešno razložen v Zicom Mentorju:

vloga ni določen uporabnik, ampak nekakšen klobuk, ki si ga oseba nadene pri interakciji z entiteto.

Resnično, če si nadenete piratski klobuk, ste kapitan Jack Sparrow, a nadenete si cilinder in postanete Jack Razparač! Samo hecam se ... "Fizično" uporabnik lahko igra vlogo enega ali celo več akterjev, ki opravljajo svoje funkcije med interakcijo s sistemom. Nasprotno pa lahko vlogo istega igralca opravlja več uporabnikov.

Na lestvicah UML ektorji so upodobljeni kot stilizirani možje, ker, kot se seveda spomnite, je bila ideja ustvariti zapis, katerega kateri koli simbol je mogoče zlahka upodobiti z roko ( riž. 6.4):


riž. 6.4.

Kljub »človeškemu« videzu te oznake ne smemo pozabiti, da igralci niso nujno ljudje. Kot smo že rekli, je akter lahko zunanji sistem, podsistem, Razred itd. Mimogrede, mali človek ("oseba-palica" ) ni edina oznaka za ector, ki se uporablja v UML. V diagramih primerov je običajno uporabljena "humanoidna" oblika igralca, v drugih diagramih, zlasti v primerih, ko ima akter atribute, kar je pomembno pokazati, je uporabljena podoba ektorja kot razreda s stereotipom<> (slika 6.5):


riž. 6.5.

Akterji, kot smo že rekli, komunicirajo s sistemom prek sporočil, če pa govorimo na višji ravni abstrakcije, v smislu precedenčnega modela, potem s sistemom komunicirajo prek precedentov. En in isti akter je lahko povezan z več precedensi in obratno z enim precedens lahko povezana z več različnimi akterji. Asociacije med akterjem in precedensom so vedno binarne – to pomeni, da predstavljajo razmerje ena proti ena; uporaba mnogoterosti je nesprejemljiva. To ni v nasprotju s tem, kar je bilo povedano zgoraj: res je lahko en akter povezan z več precedensi, vendar le prek ločenih asociacij - Avtor: za vsakega enega precedens. To smo videli na našem primeru. Mimogrede, tam smo videli asociacije, prikazane ne le kot črte, ampak kot puščice. Menimo, da je pomen te oznake povsem jasen: to usmerjeno združenje in puščica (kot v drugih diagramih) je vedno usmerjena proti subjektu, od katerega se nekaj zahteva, katerega storitev se uporablja itd.

In še nekaj - akterji ne morejo biti povezani med seboj. Edino sprejemljivo odnos med igralci - posploševanje(dedovanje). Spet v našem primeru naročanja kosila pri urad, si lahko ogledal točno ta tip odnosa med igralci. To v resničnem življenju ne pomeni tako urad- vodja in tajnica (in pravzaprav katerakoli dva zaposlena) ne moreta komunicirati: le da pri ustvarjanju precedenčnega modela taka komunikacija ne spada v naše interesno področje in se šteje za nepomembno.

Druga vrsta elementov, ki jih najdemo v diagramih primerov uporabe, poleg tega pa jim daje tudi ime, je dejanski precedensi, ali primere uporabe. Precedens je opis nabora zaporednih dogodkov (vključno z možnimi možnostmi), ki jih izvede sistem in vodijo do rezultata, ki ga opazuje akter. Primeri uporabe opisujejo storitve, ki jih sistem zagotavlja akterjem, s katerimi sodeluje. Poleg tega precedens nikoli ne pojasnjuje, "kako" storitev deluje, ampak samo opisuje, "kaj" je narejeno.

Precedensi so upodobljeni v obliki elipse, znotraj obrisa katere je ime (opis) precedensa. Ime primera uporabe je običajno veliko daljše od imen drugih elementov modela. Zakaj je tako, je načeloma jasno: ime primera uporabe opisuje interakcijo akterja s sistemom, govori o tem, kakšna sporočila si izmenjujeta. V našem primeru z naročanjem kosila smo videli več precedensov in bralec je verjetno opazil, da je ime precedensa bolj ime scenarija, ki se reproducira med interakcijo igralca s sistemom. In to je vedno opis z igralčevega vidika, opis storitev, ki jih sistem zagotavlja uporabniku. Naj navedemo primer preprostega diagrama, ki ponazarja, kar smo povedali o precedenčnem zapisu ( riž. 6.6).



riž. 6.6.

V tem primeru lahko potnik kupi vozovnico za neko vrsto prevoza na servisu. Nakup vstopnice je ime scenarija, Avtor: ki jih lahko igralec (potnik) komunicira s sistemom (blagajno). Upoštevajte to ni opis scenarij, namreč naslov – nam pove Kaj naredi ector med interakcijo, vendar ne pove, kako natančno! Pa vendar - precedensi določajo nepovezano vedenjski scenariji. Izvajanja enega primera uporabe ni mogoče prekiniti z delovanjem drugega primera uporabe. Z drugimi besedami, izvajanja enega primera uporabe ne morejo prekiniti dogodki ali dejanja, ki jih povzroči izvajanje drugega primera uporabe. Precedens deluje kot atomske transakcije, katerega izvršitve ni mogoče prekiniti.

Pozorni bralec je morda opazil, kako tiho smo predstavili beseda " scenarij". Kaj je to scenarij in kako je koncept scenarija povezan s konceptom precedensa? Na prvo vprašanje dobro odgovarjajo klasiki (G. Buch):

Skript je določeno zaporedje dejanj, ki ponazarja vedenje.

Scenarij- to je pripovedna zgodba o dejanjih, ki jih izvaja igralec, zgodba, epizoda, ki se zgodi v danem časovnem okviru in v danem kontekstu interakcije. Skripte (v različnih oblikah) se pogosto uporabljajo v procesu razvoja programske opreme. Kot smo pravkar omenili, je pisanje scenarija podobno pisanju izmišljene zgodbe, kar pojasnjuje dejstvo, da je uporaba scenarijev zelo razširjena med analitiki, ki imajo pogosto umetniške ali literarne sposobnosti. Kljub njihovi kontinuirani pripovedni naravi si lahko scenarije predstavljamo kot zaporedje dejanj (delovanje storyboard). Pri načrtovanju uporabniškega vmesnika scenariji opisujejo interakcijo med uporabnikom (ali kategorijo uporabnikov, npr. sistemskimi skrbniki, končnimi uporabniki) in sistemom. Takšna scenarij sestoji iz zaporednega opisa kombinacij posameznih dejanj in opravil (na primer pritiski tipk, kliki Avtor: kontrole, vnos podatkov v ustrezna polja itd.). Spomnite se na primer opisov zaporedij uporabniških dejanj (namenjenih doseganju določenih rezultatov, reševanju določenih težav), ki jih najdete v pomoči za neznani program. Enako lahko rečemo za zdaj modne »videoposnetke z navodili«, v katerih so takšna zaporedja prikazana vizualno s posebnimi primeri. V vsakem primeru je namen tovrstnih referenčnih materialov zagotoviti opis tipičnih scenarijev uporabe sistema, scenarijev interakcije med uporabnikom in sistemom.

Scenariji so včasih vidni tudi v diagramu primerov uporabe. Včasih so prikazani kot " List papirja«, na katerem piše Ime datoteke, - pravokotnik z ukrivljenim spodnjim levim kotom. V tem primeru določeno mapa vsebuje opis tega scenarija. In včasih scenarij piše v komentarju. Kot se verjetno spomnite, so komentarji predstavljeni s pravokotniki z ukrivljenim zgornjim desnim kotom in so povezani z elementom, ki ga pojasnjujejo, s pikčasto črto ( riž. 6.7).



riž. 6.7.

Kot smo že omenili, je skripte mogoče napisati v različnih oblikah. Lahko je strukturirano, a neformalizirano besedilo, formalizirano strukturirano besedilo, psevdokoda, tabela, diagram dejavnosti, končno! vsak scenarij v pripovedni obliki opisuje zaključeno, specifično interakcijo, ki ima z vidika uporabnika določen namen. Če upoštevamo tabelarično obliko predstavitve scenarija, potem črta, ki deli levi in ​​desni stolpec tabele, simbolizira mejo, ki ločuje dejanja uporabnika od odzivnih dejanj sistema. Tabelarna oblika poudarja sodelovanje uporabnika, ki je zelo pomemben vidik pri oblikovanju uporabniškega vmesnika.

Tukaj je primer preprostega (neformaliziranega) besedilnega opisa scenarija.

Uporabnik vnese prijavo, geslo, elektronski naslov in potrditveno kodo ter klikne gumb »Naprej«. Sistem vas pozove, da vnesete kodo za preverjanje. Uporabnik vnese kodo in klikne gumb »Naprej«. Sistem preveri, ali se koda ujema s prikazano na sliki .

Ali ni to poznan postopek? Da, to je opis registracije uporabnika na nekem spletnem mestu. Res je, da ni povsem popoln: primeri, ko je uporabnikova izbrana prijava že zasedena, se ne upoštevajo, naslov napačno vpisan e-poštni naslov, geslo ne ustreza zahtevam ali se koda ne ujema s prikazano na sliki. O takih primerih - alternativni scenariji- se bomo pogovorili malo kasneje.

In tukaj je isti scenarij v pogledu tabele:

To ste seveda opazili scenarij lahko ga podrobno navedete - na primer, preden vas prosi za vnos kode za preverjanje, sistem prikaže sliko, na kateri je upodobljena ta koda. To je prošnja za vnos kode vključuje sklep slike z omenjeno kodo. Tudi o tem bomo govorili kasneje.

Vmes pa poskusimo odgovoriti na drugo vprašanje, in sicer: Kako sta pojma scenarij in precedens povezana?. Precedensi, kot smo že rekli, se rodijo iz zahtev za sistem. Govorijo pa o tem, kaj počne sistem. Kako sistem to počne, pojasnjujejo skripti. torej precedens lahko specificiramo z opisom poteka dejanj ali dogodkov v besedilni obliki - v obliki, ki je razumljiva "zunanjemu" bralcu (ki ni neposredno vključen v razvoj sistema). Ampak takšen opis pač je scenarij! torej scenariji določajo primere uporabe. In dalje. Ker scenariji so Avtor: V bistvu so zgodbe zelo učinkovito sredstvo za pridobivanje informacij iz pogovorov s stranko in zagotavljajo odličen, laiku berljiv opis aplikacije, ki se gradi. Scenariji in na splošno diagrami primerov uporabe(skupaj s skripti) so odlični sredstvo komunikacije med razvijalci in strankami, in je zaradi enostavnosti zapisa obema stranema razumljivo sredstvo. Končno je razmerje med zahtevami, primeri uporabe in scenariji mogoče predstaviti s "psevdo diagramom" ( riž. 6.8).



riž. 6.8.

Kot lahko vidite, za vsako povezavo na diagramu obstaja večkratnost in njen pomen je povsem jasen, vendar bi morali o mnogoterosti govoriti ločeno. ena precedens definira več scenarijev, od katerih vsak predstavlja eno od možnih variant toka dogodkov, ki ga definira primer uporabe. Scenariji so povezani s primeri uporabe na enak način kot primerki razreda, tj. skript je primer primera uporabe, Kako predmet- primerek razreda. Sistem lahko vsebuje na primer več deset precedensov, od katerih je vsak zase čakalna vrsta, se lahko odvija v desetinah scenarijev. običajno, precedens ne opisuje enega zaporedja dejanj, ampak več, in običajno je nemogoče izraziti vse podrobnosti obravnavanega precedensa z uporabo enega zaporedja dejanj. Za skoraj vsak precedens je mogoče identificirati glavnega scenarij, ki opisuje "normalno" zaporedje dejanj, in pomožni, ki opisuje alternativa zaporedja, ki se sprožijo, ko nastopijo določeni pogoji.

Drugo vprašanje: ali je takšna razjasnitev precedenčnega modela potrebna, ali je upravičena za določeno stopnjo približevanja ali je »implicitna«? alternativa Ali lahko izpustite skripte? Na primer, v prejšnjem primeru z nakupom vozovnice na servisu nismo prikazali scenarijev (in s tem precedensov), ki ustrezajo možnostim, ko ni več vozovnic za let, ki ga je izbral potnik, potnik spremenil svojo odločitev in želi vzeti vozovnico za drug let, ko plačilo gre v gotovini oz Avtor: kreditna kartica itd.

"Nehaj tepeti okoli grmovja!" - bo vzkliknil nestrpen bralec. Mi že končujemo. Bralca smo preprosto želeli nežno napeljati k vprašanju odnosov med precedensi. In ti odnosi so zelo raznoliki. Začnimo s starim prijateljem – generalizacijskim razmerjem (dedovanje, generalizacija). O posploševanju smo že večkrat govorili, ko smo razmišljali razredni diagrami. A vseeno se spomnimo bistva tega pojma. Kot pravijo klasiki, posploševanje- To odnos specializacija (generalizacija), pri kateri se lahko objekti specializiranega elementa (potomca) nadomestijo z objekti posplošenega elementa (starša ali prednika).

Na popolnoma enak način, kot običajno počnemo z razredi, potem ko smo identificirali in opisali vsakega precedens, jih moramo pregledati vse, da vidimo, ali imajo enaka dejanja - preveriti, ali se nekatera dejanja izvajajo (uporabljajo) skupaj v več primerih uporabe. Ta skupni fragment je bolje opisan v ločenem primeru uporabe. Na ta način bomo zmanjšali odvečnost modelov z uporabo posploševanja precedensov (včasih pa ne govorijo o posploševanju, ampak o uporaba precedensi; zakaj - zdaj boste razumeli). Kot je »predvideno« med dedovanjem, primerki posplošenih precedentov (potomci) ohranijo vedenje, ki je neločljivo povezano s posplošenim precedensom (prednikom). Z drugimi besedami, prisotnost (uporaba) v primeru uporabe X generični primer uporabe Y nam pove, da je primer uporabe X vključujeprecedenčno vedenje Y . Posplošitve se uporabljajo za lažje razumevanje modela primerov uporabe z uporabo "praznih" primerov uporabe znova in znova za ustvarjanje primerov uporabe, ki jih stranka potrebuje (spomnite se, kako smo razpravljali o tem, ali je vedno treba ustvariti novega). Razred, ali je bolje uporabiti že pripravljeno rešitev, čutite analogijo?). Takšni "popolni" precedensi se imenujejo specifični precedensi. "Prazni" precedensi, ustvarjeni samo za večkratno uporabo v drugih precedensih, se imenujejo abstraktni precedensi. Povzetek precedens(tako dobro, kot abstraktni razred) sam po sebi ne obstaja Avtor: sama, vendar konkretni primer primera uporabe kaže vedenje, ki ga opisujejo abstraktni primeri uporabe, ki jih (ponovno) uporablja. Precedens, ki jih akterji opazujejo pri interakciji s sistemom ("polni" precedens, kot smo ga prej imenovali), se pogosto imenuje tudi " resnično"precedens.

Kot smo rekli zgoraj, posploševanje (dedovanje) se najpogosteje uporabljajo med razredi in vmesniki. Lahko pa so med seboj dedovalno povezani tudi drugi elementi modela - na primer paketi (o katerih tukaj ne govorimo), akterji, precedensi ...

Upodobljen posploševanje, kot se seveda spomni pozoren bralec, vrstica z "nezapolnjeno" trikotno puščico na koncu. Posploševanje- To odnos med prednikom in potomcem, puščica pa vedno kaže na prednika. Če se spomnimo, da potomci podedujejo (uporabljajo) lastnosti svojega prednika, potem naša izjava, da puščice v UML vedno usmerjeni k tistemu, od katerega nekaj zahtevajo, čigar storitve uporabljajo ( riž. 6.9):



riž. 6.9.

Kot smo že povedali in videli v našem prvem primeru diagrami primerov uporabe, posploševanje se lahko uporablja za ustvarjanje različnih vrst ektorjev. Akterji potomci podedujejo osnovne značilnosti od prednika in jih dopolnjujejo s svojimi posebnostmi. Podobno precedens-potomec podeduje vedenje in semantiko nadrejenega primera uporabe in dopolnjuje njegovo vedenje.

Naslednji tip odnosa med precedensi je inkluzija. Odnos vključitev pomeni, da na neki točki v osnovnem primeru uporabe je vsebovano vedenje drugega primera uporabe. Preklopljiv precedens sama ne obstaja Avtor: samo po sebi, ampak je le del splošnega precedensa. Torej osnovno precedens kot da si sposodi vedenje vključenih in ga razgradi na enostavnejše precedense. Na primer, ko kupimo nek artikel v trgovini, se v trenutku, ko blagajničarka prebere črtno kodo, stanje posodobi Baza podatkov blago na zalogi - število razpoložljivih enot kupljenega blaga se zmanjša. Enako dejanje se izvede, če je kupljeno izdelek izkazalo za pokvarjeno, neprimerno za uporabo ali nam enostavno ni bilo všeč: stanje omenjenega Baza podatkov se ponovno posodablja - vendar sedaj v smeri povečanja števila razpoložljivih enot določenega produkta. To pomeni, da obe dejanji - nakup in vračilo - vsebujeta (vključujeta) takšno dejanje, kot je posodabljanje vsebine DB.

Kako je prikazana inkluzija? Da, zelo preprosto – kot odvisnost (črtkana črta s puščico, se spomnite?) s stereotipom<> . V tem primeru je puščica seveda usmerjena proti vključenemu precedensu. To dejstvo je enostavno razložiti, če se spomnimo izjave, ki smo jo že večkrat uporabili v tem tečaju: puščica je vedno usmerjena proti elementu, od katerega se nekaj zahteva, katerega storitve se uporabljajo. In če predpostavimo, da je celovita precedens vključuje, sposoja (uporablja) vedenje vključenih precedentov, postane jasno, da je puščico mogoče usmeriti le na ta način. In tukaj je diagram, ki ponazarja zgornje, ki smo si ga sposodili pri Zicom Mentorju ( riž. 6.10 ):


povečaj sliko
riž. 6.10.

Kot jasno kaže ta primer, vam uporaba vključitve omogoča, da se izognete večkratnemu opisovanju istega niza dejanj – celotno vedenje je mogoče preprosto opisati kot primer uporabe, vključen v osnovne.

Naslednji - odnos razširitve. Da bi razumeli pomen širitve, si predstavljajmo, da govorimo o plačilu za nek izdelek, ki smo ga kupili. Lahko plačamo izdelek gotovino, če znesek ne presega 100 $, ali pa plačajte s kreditno kartico, če je znesek med 100 $ in 1000 $, bomo morali zaračunati kredit. Na ta način smo razširili naše razumevanje operacije plačilo kupljenega blaga in v primerih, ko se uporabljajo druga plačilna sredstva kot gotovina. Toda sami ti primeri nastanejo samo pod strogo določenimi pogoji: kdaj ceno izdelka spada v določene meje.

Razširitev dopolnjuje precedens drugi precedensi, ki "delujejo" pod določenimi pogoji - preprosto doda izvirniku precedens zaporedje dejanj, vsebovanih v drugem primeru uporabe. Odnos razširitev primera uporabe A na primer uporabe B pomeni, da lahko primerek primera uporabe B vključuje (pod določenimi pogoji, ki so lahko opisani v razširitvi; kako natančno so opisani, bomo povedali malo kasneje) vedenje, opisano v primeru uporabe A . Primer je prikazan v naslednjem diagramu ( riž. 6.11):



riž. 6.11.

Vendar pa v zgornjem primeru ni jasno, pod kakšnimi pogoji oseba uporablja posamezne plačilne metode. Hkrati lahko pri modeliranju z razširitvijo določite tako pogoje za izvedbo razširjenega obnašanja kot mesto - razširitvena točka precedens, v katerem so povezana dejanja iz raztegljivih precedensov. Ne pozabite operator brezpogojnega skoka, za katerega upamo, da ga niste prepogosto uporabljali v svojih programih. Takoj, ko tolmač doseže ta stavek, prenese nadzor na vrstico, ki je označena z oznako, navedeno v tem stavku. Res je, da v primeru razširitve govorimo bolj o operatorju pogojnega skoka - ko izvirnik precedens(in sicer zaporedje dejanj, vsebovanih v njem) prispe na točko razširitve, se ovrednotijo ​​pogoji razširitve. Če so izpolnjeni pogoji, precedens vključuje zaporedje dejanj iz razširjenega primera uporabe.

Razširitvena točka je opisana v dodatni razdelek primer uporabe, ločen od njegovega imena z vodoravno črto - tako kot ločeni razdelki navajajo atribute razreda in njegovih operacije. Spodaj je primer opisa razširitvene točke, izposojen od Zicom Mentor ( riž. 6.12).



riž. 6.12.

V tem primeru registracija letalskih potnikov vključuje nadzor varnostne storitve in pod pogojem (navedeno v opombi za storitveno besedo " Pogoj:"), da oseba pogosto leti in je v kabini gneča (op. operaterja IN, če govorimo o sočasni izpolnitvi pogojev), Razred Vozovnico je mogoče nadgraditi na primer iz "ekonomskega" v "poslovni razred". Poleg tega se takšna nadgradnja lahko zgodi šele, ko je vozovnica predložena na okencu za prijavo - to je točka razširitve. Opisana je (navedeno je njeno ime) v dodatni razdelek precedens za storitveno frazo " Razširitev točke:". Recimo, da predvidevamo bralčevo vprašanje precedens ima lahko poljubno število razširitvenih točk. In primerjajte določeno razširitev precedens z določeno točko razširitve lahko preberete pogoje razširitve, navedene v komentarjih - sam pogoj je napisan za servisno besedo " Pogoj:" v zavitih oklepajih, ki mu sledi pomožni stavek " Razširitev točka:", ki mu sledi ime razširitvene točke. Ponovno si oglejte naš primer letališke prijave in se prepričajte, da je vse zelo preprosto!

Nekaj ​​zmede lahko povzroči dejstvo, da je puščica vedno usmerjena proti razširjenemu precedensu. Toda tudi to je enostavno razložiti z vidika naše teze, da »puščica vedno kaže na tistega, od katerega se nekaj zahteva«: navsezadnje, da bi precedens je bil razširjen, mora doseči razširitveno točko in preveriti resničnost pogojev - šele takrat je mogoče dejanja, ki jih vsebuje razširitveni primer uporabe, dodati zaporedju dejanj prvotnega primera uporabe. Torej je vse pravilno - razširjeni precedens zahteva razširitveno točko in preverjanje pogojev, zato je puščica usmerjena proti njej.

Če povzamemo vse zgoraj navedeno, lahko rečemo, da razširitev vam omogoča modeliranje neobveznega vedenja sistema(bi bilo Razred vozovnica se je povečala, če potnik ni preletel zahtevanega števila milj in je bila kabina skoraj prazna?). Samo dejstvo širitve je odvisno od izpolnjevanja pogojev – širitve morda ne bo! So preprosto posamezna zaporedja dejanj, ki se izvajajo samo v določenih okoliščinah in se sprožijo na določenih točkah v scenariju (običajno kot rezultat eksplicitne interakcije z igralcem).

Organiziranje primerov uporabe s poudarjanjem skupnega vedenja (vključitev) in različnih vedenj (razširitev) je pomemben del procesa razvoja preprostega, uravnoteženega in razumljivega niza primerov uporabe. Lahko bi celo rekli, da je uporaba vključitve in razširitve znak dobrega sloga pri modeliranju primerov uporabe.

S tem bi lahko zaključili pogovor o zapisu diagramov primerov uporabe. Rad bi povedal le še nekaj besed o razmerju med pojmoma precedens in sodelovanje. Prej smo že govorili o sodelovanju (se spomnite interakcijski diagrami?) kot niz vlog, ki delujejo skupaj, da zagotovijo določeno vedenje sistema. Omenili smo tudi, da primeri uporabe odgovarjajo na vprašanje "kaj sistem počne?", vendar ne povedo natančno, kako to počne. Na stopnji analize res ni treba natančno razumeti, kako sistem izvaja svoje vedenje. Ko pa preidemo na izvajanje, bi bilo dobro vedeti kateri razredi (ali drugi elementi modela) delujejo skupaj, da zagotovijo želeno vedenje. Se pravi, da smo logično prešli iz pogovora o precedensih na pogovor o sodelovanju! Ni zaman, da sta si oznaki sodelovanja in precedensa zelo podobni (bralec se seveda spomni, da sodelovanje označeno s pikčasto elipso) ( riž. 6.13).


riž. 6.13.

Torej v kakšnem razmerju sta precedens in sodelovanje? Iz prejšnjega odstavka logično izhaja, da ta odnos izvajanje. vsak precedens izvaja ena ali več kooperacij. To seveda ne pomeni, da so razredi togo porazdeljeni Avtor: sodelovanja: razredi, ki sodelujejo v sodelovanju, ki izvaja določeno precedens, bo sodeloval pri drugih sodelovanjih.

Modeliranje z diagrami primerov uporabe

Precedenčni model, Avtor: v bistvu je konceptualni model sistema. V njem je, kot smo že večkrat omenili, na splošno opisano le vedenje (funkcionalnost) sistema, podrobnosti izvedbe pa niso obravnavane - na tej stopnji implementacija ni pomembna, veliko pomembneje je zbrati zahteve za sistem in jih formalizirati v vizualni obliki, ki je razumljiva tako razvijalcem kot strankam.

Torej, če povzamemo, lahko oblikujemo tri razloge za uporabo precedensa. Oziroma trije načini uporabe precedensov (ni naključje, da v ruskem prevodu pogosto najdete stavek "primer uporabe"!) med delom na sistemu:

· Primeri uporabe omogočajo analitikom, uporabnikom in razvijalcem, da govorijo isti jezik : z uporabo precedensov lahko analitiki (strokovnjaki za področje) na podlagi želja naročnika opišejo obnašanje sistema z vidika uporabnika s tako stopnjo podrobnosti, da lahko razvijalci enostavno oblikujejo “notranjost” sistema . Hkrati pa je zapis diagramov primerov uporabe tako preprost, da lahko celo neizkušen uporabnik (stranka) razume njihov pomen in pomaga razjasniti – navsezadnje slike (še bolj pa stripi, ki so v bistvu UML diagrame) zaznamo veliko lažje kot besedilo!

· Primeri uporabe omogočajo razvijalcem, da razumejo namen elementa : Sistem, podsistem ali celo razred so lahko kompleksne entitete, sestavljene iz velikega števila sestavnih delov in imajo veliko število atributov in operacij. Modeliranje precedensov vam omogoča, da si bolje predstavljate obnašanje sistema, razumete, kateri elementi modela igrajo katere vloge pri izvajanju tega vedenja, v kakšno sodelovanje so vključeni in kakšen precedens (funkcionalnost sistema) izvajajo.

· Primeri uporabe so osnova za testiranje elementa skozi razvoj. : Model primera uporabe opisuje želeno vedenje sistema (njegovo funkcionalnost) z vidika uporabnika. Tako lahko z nenehnim primerjanjem (dejanske) funkcionalnosti, ki jo zagotavlja element, z obstoječimi precedensi, zanesljivo nadzirate pravilnost implementacije elementa. Tukaj imate, zanesljiv vir za regresijske teste. Poleg tega nas pojav novega primera uporabe pogosto prisili k ponovnemu premisleku o implementaciji elementa, da se prepričamo, da ima dovolj prilagodljivosti, spremenljivosti in razširljivosti.

Primeri uporabe so uporabni tako za naprej kot za obratno inženirstvo. Pri neposrednem oblikovanju smo Avtor: v bistvu izvajamo »prevod« iz UML Za nekatere programski jezik. In preizkusite ustvarjeno aplikacija sledi, prav na podlagi toka dogodkov, ki ga opisujejo precedensi. Povratni inženiring vključuje prevajanje iz programskega jezika v jezik UML- diagram. Te stvari je treba narediti iz več razlogov:

· Iskanje napak in zagotavljanje ustreznosti dizajna :

Odlična ideja je, da po prvem prevodu iz UML v programski jezik naredimo obratni prevod in primerjamo originalni in rekonstruirani model UML (priporočljivo je, da te prevode izvajajo različne ekipe). To bo zagotovilo, da se zasnova sistema ujema z modelom, da se med prevajanjem ne izgubi nobena informacija in preprosto ujame nekaj "hroščev". Ta pristop se imenuje obratno semantično sledenje (ali RST - Reverse Semantic Sledljivost) in ga je razvil INTSPEI ( http://www.intspei.com ) kot eno od osnovnih tehnik metodologije INTSPEI P-Modeling Framework, kratke informacije o kateri najdete v prilogi tega tečaja.

· Ko dokumentacija manjka : včasih je naloga spremeniti obstoječi sistem, katerega koda je slabo dokumentirana. V tem primeru je prevajanje iz programskega jezika v diagrame UML odličen način za razumevanje namena sistema in njegovih delov, funkcionalnosti, ki jih zagotavlja itd.

Nazadnje je treba opozoriti, da seveda samo diagrami primerov uporabe in scenariji, ki jih definirajo, niso dovolj za ustvarjanje modela obnašanja sistema. Kot smo že večkrat omenili, nam primeri uporabe povedo, kaj sistem počne, ne povedo pa, kako. O tem govorijo scenariji, vendar v besedilni obliki, zaradi česar so precej težko razumljivi. Diagrami pridejo na pomoč interakcije, ki vizualizirajo scenarije. Tako lahko zdaj dokončamo naš stari "psevdodiagram" in se opiramo nanj ( riž. 6.14):



riž. 6.14.

Nazadnje je tukaj nekaj primerov dokončanih diagramov primerov uporabe. Prvi primer (katerega pomen je jasen brez dodatne razlage) prikazuje vključitev, razširitev in dedovanje precedensi. Bodite pozorni na puščice, ki so usmerjene na ektorje, ki predstavljajo prehode. Vse je pravilno - navsezadnje sistem uporablja njihove storitve pri pošiljanju sporočil, medtem ko tržnik, nasprotno, uporablja storitve sistema, zato so puščice usmerjene stran od njega ( riž. 6.15


riž. 6.16.

drugič diagram, prav tako dobro zasnovana, nam pove, da race res ne marajo plačevati za pivo, ampak raje pijejo na kredit ( riž. 6.17).



riž. 6.17.

Mimogrede, bodite pozorni na okvirje diagramov, prikazane v tem primeru - pravokotnik, ki ločuje vsebinsko področje grafikona in ima na vrhu poseben razdelek za svoje ime.

In končno, tretja slika, ki ni dober primer diagrami primerov uporabe, ampak samo smešno. To je zgodba o načinih obnašanja, ki vam omogočajo, da zagotovo (!) padeš na katerem koli izpitu ( riž. 6.18):



riž. 6.18.

zaključki

· Model primera uporabe vam omogoča, da opišete sistem na konceptualni ravni.

· Diagrami primerov uporabe - odlično sredstvo komunikacije med strokovnjaki, uporabniki in razvijalci ter osnova za testiranje sistema, ki se ustvarja.

· Primer uporabe je opis nabora zaporednih dogodkov (vključno z možnimi možnostmi), ki jih izvede sistem in vodijo do rezultata, ki ga opazuje akter.

· Igralec je niz vlog, ki jih uporabnik opravlja med interakcijo z neko entiteto.

· Precedente (kot akterje) je mogoče posplošiti, torej podedovati in dopolnjevati lastnosti svojih prednikov.

· Primeri uporabe lahko med seboj vstopijo tudi v medsebojna razmerja vključitve in razširitve, kar vam omogoča, da primere uporabe razstavite na enostavnejše komponente in poudarite neobvezno vedenje.

· Vsak primer uporabe izvaja eno ali več sodelovanj.

· Scenariji določajo primere uporabe, interakcijski diagrami pa vizualizirajo scenarije.

Kontrolna vprašanja

· Kaj so nefunkcionalne zahteve? Kako so prikazani v diagramih primerov uporabe?

· Katere načine upodabljanja ektorjev poznate?

· V kakšne odnose lahko stopijo igralci med seboj?

· Kakšen je pomen razmerja vključitve in razširitve?

· Kaj je razširitvena točka?

· Naštejte razloge, ki jih poznate za uporabo precedensov.

· Kako se primeri uporabe uporabljajo pri naprednem in povratnem inženiringu?


Diagrami primerov uporabe delno opisuje primer uporabe - precedens za uporabo oblikovanega sistema, podajanje delno opis delno uporaba sistema z vidika pogojnega zunanjega opazovalca (za katerim v idealnem primeru stoji dogovorjeno stališče udeležencev dela). V tem primeru se opis osredotoča na Kaj sistem mora narediti glede na svoje zunanje okolje (periferijo), in ne na to kako ona to počne.

Z drugimi besedami, diagram je delno specifikacija.

Spomnimo se, da ima v obravnavanem pristopu ključno vlogo prepoznavanje glavnih (vendar ne vseh možnih) precedensov na začetni stopnji razvoja, kar ta pristop razlikuje od čisto algoritemskega. V tem primeru se običajno najprej upoštevajo uspešni scenariji (opcije).

Upoštevajte, da v primeru dokaj velikih programskih sistemov ne uporabljamo na primer izraza "algoritem" - neprimerno je govoriti o "algoritmu urejevalnika (urejanja besedila)" itd. Razlog je jasen – v kompleksnih primerih lahko nekatere zanesljivo opišemo (analiziramo, preverimo itd.). veje algoritem najvišje ravni, ne pa celoten algoritem sam, ki predvideva popoln opis vseh možnih vej.

Z drugimi besedami, scenarij je delno algoritmizacija.

Primer. Prijava pacienta na pregled v ambulanti.

Ta preprost primer predvideva nekaj takega, kot je naslednji skriti scenarij primera uporabe za njim (naravno je, da je komentar k imenu primera uporabe):

"Pacient kliče v ambulanto, da se naroči k zdravniku iz preventivnih razlogov. Registrator ambulante v vpisnem dnevniku poišče najbližji prosti termin, se s pacientom uskladi s časom in ga zabeleži v dnevnik"

Naroči se (uskladi sestanek [z zdravnikom]) – ime precedensa. Pacient (pacient) – vloga osebe. Povezava med akterjem in precedensom je asociacija komunikacije (na kratko komunikacija je v obliki sporočila)

Primer 2: Razjasnitev prejšnjega diagrama (z razširitvijo).

Drugi diagram prikazuje več podrobnosti situacije. Tu se pojavijo novi akterji: Scheduler - matičar, Doctor - zdravnik, Clerk - uslužbenec in novi precedensi CancelAppointment - preklic termina, RequestMedication - zahteva zdravljenje in PayBill - plačilo računa.

Velika ogrodja za modeliranje UML imajo zmožnosti različic. V tem primeru lahko pogled obravnavamo kot skupino diagramov, povezanih z najnovejšo različico ali z vsemi. Drugo je očitno prednostno.

Že prvi primer postavlja pred nas "glavno vprašanje vseh časov in ljudstev": "No, zakaj potrebujem te precedenčne diagrame?" Še bolj priljubljena možnost: "Kdo jih sploh potrebuje - vse te diagrame!" Med procesom učenja je bolje, da ga ne skrivate v sebi, ampak ga preusmerite k sebi, ga parafrazirate in specificirate. Komu točno in kdaj točno in za kaj točno ali so uporabni?


Programer se bo seveda na lastne oči prepričal o možnostih programske implementacije – obrisih [arhitekture, strukture] bodočega programa. Da bi razumeli druge možnosti, si morate samo predstavljati sebe v drugačni vlogi. Kot naročnik – da ocenite uporabnost uporabe sistema pri svojem delu. V vlogi naročnika in direktorja – pri razpravi o nalogi. V vlogi preizkuševalca - pri pripravi testov za zagon določenih vej programskega sistema.

Morala je stara - koristno je zavzeti mesto drugega, pogledati na svet skozi njegove oči.

A poglejmo še enkrat konkreten primer. Zakaj je potrebno takšno pojasnilo? Za nekoga, ki je seznanjen s področjem – v tem primeru zdravstvenim sistemom – v tem diagramu ni novih informacij. Zanj je implicitno vsebovan že v prvem precedensu in ga je mogoče izpeljati iz njega. Vendar, prvič, vsi ljudje niso enako seznanjeni s to domeno. Drugič, lahko imajo različna mnenja tako o sami domeni kot o tem, katere značilnosti naj se odražajo v sistemu, ki se razvija. Končno lahko v prihodnosti enostavno pozabimo, kaj smo se dogovorili.

Preprosto povedano, razumeti potrebo po diagramih nasploh, dovolj je, da si predstavljate sebe le kot človeka, ki ne ve vsega, se ne spomni vsega, ne zna narediti vsega itd. Skratka, lepo bi bilo biti bolj skromen...

Opis komunikacij. Diagrami zaporedja [sistem] - diagrami zaporedja

Diagrami zaporedja nekega sistema objektov - artefakt modela (del dokumentiranega opisa) primerov uporabe, ki se uporablja za delni opis obnašanje nek sistem predmetov v obliki možnih, glavnih (uspešnih) in alternativnih scenarijev.

Glavni namen takšnih diagramov je prikazati dogodke, ki jih izvršitelji posredujejo sistemu prek njegovih meja. Vsak od njih daje shematski opis precedenčni scenarij kot zaporedje dogodkov, ki jih ustvarjajo zunanji akterji – in kompakten, viden(za analizo, nadzor itd.) opis dogajanja, ki se generira znotraj samega sistema. Z drugimi besedami, diagram poskuša odgovoriti na vprašanje: "kateri glavni dogodki se sprožijo od zunaj" in ne na to, kako natančno se sistem odziva na zunanje signale. Ne ravno in v celoti – le kolikor je mogoče.

Naj tu opozorimo na novo interpretacijo starega vedenjskega pristopa (biheviorizma, iz vedenja), ki je temelj kibernetike. Struktura sistema je pomembna – vendar ne sama po sebi, vendar le v kolikor zagotavlja želeno vedenje, pravilno reakcijo na zunanje signale. Ni tako pomembno, kako je sistem zasnovan - bolj pomembno je, da posnema želeno vedenje. Naprava različnih t.i »pametni« stroji »virtualno« - to velja tako za resnične kot za virtualne stroje. Preprosto povedano, ne sme in ne more biti podoben pravemu. In obnašanje je resnično.

V kibernetskem smislu se vsi notranji podsistemi (povezani z opisom objektov danega sistema) obravnavajo kot "črna skrinjica", sam sistem pa kot prosojna ali "siva škatla". Kot prej velja, da je povezano tisto, kar je zunaj okvira logika, znotraj škatle - do implementacijo sistema(skrito v strukturi polja – ne glede na to, ali gre za definicijo strukture podatkov, povezanih z njim, ali metode). V "transparentnem" primeru mislimo na izvedbo na najvišji ravni.

Spomnimo se, da razredi in objekti v OOP opisujejo – na bolj ali manj abstraktni ravni – statično predstavitev modela. Vsebujejo navedbo metod - imenovano sklicevanje na definicijo pravil (algoritmov) potencial vedenje predmetov, medtem ko skrijejo dejansko vedenje predmetov v odnosu drug do drugega. Preprosto povedano, odgovarjajo na vprašanje "kako se lahko [en] dani predmet obnaša" in ne na vprašanje, kako se predmeti obnašajo - skupaj, kot celota.

Obnašanje sistema objektov je tukaj obravnavano kot usklajena interakcija objektov, zapisana v obliki časovne lestvice izvajanja metod pošiljanja sporočila - sled sporočila. Potek časa je prikazan s koordinato »od zgoraj navzdol«, objekti, ki pošiljajo sporočila (viri), so levo, prejemniki sporočil so desno (prejemniki sporočil). Če je možno.

Iz proceduralnega programiranja smo koncept zelo dobro seznanjeni [države] sledi, ki opisuje dejansko obnašanje objekta v obliki zaporedja sprememb njegovih stanj. V tem primeru je vsako od stanj opisano v obliki imenovanega niza spremenljivih vrednosti - značilnosti stanja predmeta v določenem trenutku. Imperativni (ukazni) model upravljanja to implicira nekdo(top-level executor) ukazuje spremembe na podrejenem objektu, kliče z njim povezane procedure v skladu z nekim pravilom - algoritem, program za spremembe na podrejenem objektu. Sledenje klicev– in obstaja veja izvajanja algoritma, predstavljena kot zaporedje imen ustreznih postopkov.

V tem primeru spet govorimo o klicni poti – natančneje o poti sporočil, ki sprožijo tovrstne klice. Toda v bolj zapletenem primeru sistema objektov, ki spreminjajo (s klicanjem metode izvornega objekta) stanja prejemnega objekta (in tudi, po možnosti kot stranski učinek, stanja drugih objektov). Sprememba stanja se zdaj razlaga kot "dogodek v življenju predmeta."

Še vedno obstajajo zunanji objekti, ki sprožijo notranje procese sporočanja, vendar v bolj zapletenih primerih ni enega samega glavnega »poveljnika« in ni hierarhije podrejenosti.

Primer. Hotelska rezervacija.

sporočilo


Zunanji objekt, ki sproži tok sporočila, je okno za rezervacije. Objekt Reservation window pošlje sporočilo makeReservation() ustrezni storitvi HotelChain. To nato posreduje sporočilo makeReservation() hotelu. Če ima hotel proste sobe, objekt Hotel pokliče metodi Rezervacija in Potrditev.

Vsaka od pikčastih navpičnih "življenjskih linij" predstavlja z dogodki poln čas potencialnega obstoja nekega predmeta - v obliki sprememb stanj drugih objektov in sprememb lastnih stanj. Vsaka puščica opisuje klic metode za pošiljanje sporočila. Puščica gre od pošiljatelja do prejemnika sporočila in na časovni koordinati osvetli vrstico aktivnosti (obdobje obdelave sporočila - aktivacijska vrstica).

V diagramu objekt hotela pokliče samega sebe (samoklic), da ugotovi razpoložljivost sobe. Če je pogoj IsRoom resničen, Hotel ustvari objekta Rezervacija in Potrditev. Zvezdica na razpoložljivem klicu pomeni iteracijo - ciklični klic (z namenom ugotoviti, ali je soba prosta za vse dni pričakovanega gostovega bivanja). Izraz v oglatem oklepaju pomeni pogoj (predikat).

Diagram vključuje tudi pojasnjevalno pripombo v obliki besedila na pravokotniku z ukrivljenim vogalom - možno in v vsakem primeru, ki ni očitno, potrebno za kateri koli drug diagram UML.

Diagrami sodelovanja (interakcije) –

diagrami sodelovanja

Diagrami sodelovanja so tako kot diagrami zaporedja diagrami za opisovanje interakcij. Vsebujejo enake informacije kot diagrami zaporedja – vendar z drugačne perspektive, pri čemer se ne osredotočajo na opisovanje procesov komunikacije med objekti (v obliki zaporedja klicev), ampak na opredelitev vloge objektov kot vira in prejemnika sporočil. . Z eno besedo, tukaj ne poskušamo odgovoriti na vprašanje, kako dejansko nastane komunikacija, ampak WHO in komu je mogoče posredovati sporočila.

Primer. Ista stvar - rezervacija hotelske sobe.

predmet
sporočilo

Pravokotniki, ki predstavljajo vloge objekta, so označeni z imenom razreda in/ali objekta (v slednjem primeru je ime razreda ločeno od imena objekta z dvopičjem). Sporočila na diagramu sodelovanja so oštevilčena. V tem primeru so sporočila nižjega nivoja - poslana med obdelavo določenega sporočila - oštevilčena s predponami, ločenimi s pikami od številke sporočila višjega nivoja - v skladu z zaporedjem teh klicev.

Z drugimi besedami, na ta dobro znani način (linearni drevesni zapis) je zakodirano dejstvo sledenja ali ugnezdenja procesov obdelave sporočil, skritih tukaj - enega v drugega. Kot prej se ne moreta prekrivati.

Opis strukture. Diagrami stanja. Diagrami stanja.

Diagrami stanj ali diagrami avtomatov so nam morda najbolj znani. Ali raje, mora biti poznamo - vsaj iz začetnega tečaja diskretne matematike.

Spomnimo se splošnih določb. Končni avtomat je model možnega odziva (v obliki neposredne in povratne reakcije) modelirnega objekta na zunanje dogodke – spremembe v zunanjem okolju (okolica, periferija, situacija, kontekst itd.)

Koncept avtomata je osrednjega pomena za razumevanje logičnega diagrama delovanja računalnika kot naprave, ki izvaja korak za korakom eden in edini operacija (kot katera koli druga), ki simulira operacijo aplikacije (uporaba funkcije za argument). Koncept avtomata je implicitno na začetku osnovnih konceptov programiranja - na primer obravnavanja programov kot pretvornikov tokov in/ali zaporednih datotek. Toda v tem primeru bi se morali spomniti prejšnjih konceptov. Ne o računalnikih ali programih, ampak o prav tako slavnem psu akademika Pavlova ...

Na splošno se stroj odziva na takšne spremembe v okolju

  • jasno določena s spremembo stanja njegove notranje strukture, nevidne od zunaj in skrite v njej; Takšna notranja stanja so v teoriji avtomatov poimenovana, vendar niso opisana.
  • sprememba stanja okolja - implicitna, saj je prisotnost takšnih stanj okolja implicirana, sama stanja pa niso določena.

Povratna informacija je sprememba vedenja (notranjega stanja) avtomata, ki nastane (posredno) kot posledica lastnih dejanj spreminjanja okolja.

Eksplicitno opredeljeno komunikacije avtomat z okoljem, v obliki

  • nabor možnih vhodnih in izhodnih sporočil. Njihovo vlogo v teoriji avtomatov igrajo elementarni signali, črke (v OOP seveda predmeti).
  • dve funkciji (ali en operator), ki na podlagi trenutnega vhodnega sporočila in notranjega stanja določita izhodno sporočilo in naslednje notranje stanje. Imenuje se izhodna funkcija in prehodna funkcija.

če Kdaj) ni vhodnih sporočil, opisuje stroj vir(ali pošiljatelja) predhodno pripravljenih izhodnih sporočil. če Kdaj) ni izhodnih sporočil, stroj opiše prejemnika (naslovnika, prejemnika) in upravljalnik izhodnih sporočil.

  • vnos - tipkanje na tipkovnici - [verjetno] veljaven (aktiven, pravilen) splošni uporabniški identifikator - kot številka potnega lista; v tem primeru je to številka stranke sistema socialne varnosti SSN (social security number),
  • vnos [domnevno] veljavnega osebnega identifikatorja uporabnika kot stranke te banke PIN (osebna identifikacijska številka)
  • pošiljanje teh informacij v potrditev.

Opis možnih [notranjih] avtorizacijskih stanj se začne z imenom. Getting SSN - pridobite SSN, Getting PIN - pridobite PIN, Validating - preverite in Rejecting - zavrnitev, če privzeti scenarij ne uspe. Nato so definirani prehodi iz stanja v stanje, za vsak par države in vse možne kombinacije sporočila.

Kaj je opisano v teoriji množic v smislu temeljnega koncepta kartezični produkt kompleti.

Bistvena razlika med diagrami stanj v UML (v primerjavi s klasično teorijo avtomatov) je zmožnost opisa strukturna stanja, tj. države, ki so same po sebi sistemi. Subtilna točka tukaj je prehod sporočil prek sistemskih meja. Konture pristopa UML, sprejetega tukaj, smo orisali pri razpravi o konceptu precedens.

Toda zmožnosti jezikov so vedno določene s potrebo po rešitvi nekega problema in preden "vstopite v škatlo (črno ali sivo)", je vredno razmisliti o kateri? Klasična teorija računalniške kompleksnosti opredeljuje "informacijsko eksplozijo" - obilico informacij, s katerimi oseba ne more ravnati (upravljati) v smislu eksponent (na primer 2 n). Kar je nedvomno, toda ... V programski praksi so polinomi (v tem primeru vsaj n 2) že v splošnem primeru ni obvladljiv - ni nadzorovan, analiziran, preverjen itd.Če želite pogledati kaosu v oči, si morate samo predstavljati stroj s 50 stanji. Zdi se, da ni veliko ... če ne 2500 možnih prehodov.

To zadeva kaj diagrami - binarni in drugi grafi, ne glede na to o interpretaciji, vrsti opisne naloge in načinu reševanja. Upam, da nam bo zdaj postalo veliko bolj vsebinsko ne samo razumevanje izvora UML, ampak tudi vseh drugih strukturnih metod v programiranju in nasploh namena matematičnih formalizmov. In rekli ste - "prazna abstrakcija, ločena od življenja" ... Čigavo življenje? - Ne iz življenja modela deskriptorja.

Bodimo pozorni na zanimivost primera. Pooblastilo ni stvar (fizični objekt), ne sistem takih objektov, ampak postopek. In hkrati je seveda predmet naše trenutne pozornosti in opisovanja.

Diagrami aktivnosti –

diagrami dejavnosti.

Diagrami dejavnosti so v bistvu dobro znani diagrami poteka s številnimi lastnostmi, ki odražajo spremembo proceduralnega pristopa pod vplivom OOP in tistih idej delnih opisov, ki smo jih prej povezovali z iterativnim pristopom.

Zlasti razlaga algoritmov kot kumulativnega opisa številnih uspešnih in neuspešnih scenarijev precedensov – v kompleksnih primerih, opisanih le delno na vsaki stopnji razvoja.

Najbolj opazne razlike so vidne v naslednjem primeru.

Primer. Shema delovanja bankomata za servisiranje stranke (Stranka) banke (Banka).


Kot prej so pogoji (predikati) predstavljeni z diamanti, metode (operatorji po meri) s pravokotniki z zaobljenimi konci.

Varovalni pogoj se tukaj razlaga kot preverjanje, ali bi prišlo do nepravilnega poteka dogodkov - tj. slab scenarij. V bistvu je to potreba po obravnavanju logične izjeme (ki jo povzroči napaka »logičnega časa«, ne »časa izvajanja«).

Plavalne črte ločujejo "plavalce" - objekte, katerih metode se izvajajo. Kot je razvidno iz primera, se tukaj dejansko razlagajo kot predmeti dejavnosti, ki opravlja nekatera splošna dela.

V ostrem nasprotju z zgodnjimi imperativnimi in kasnejšimi proceduralnimi pristopi. V prvem objektu opravlja ukaz, v drugem – dejanja se izvajajo. V obeh primerih - brez eksplicitne navedbe subjekta (akterja), ki sproži (začne, aktivira) dejanje (operacijo). Diagrami poteka (tj. diagrami poteka) izražajo tok prenosa nadzora – z implicitnim subjektom nadzora in eksplicitnim objektom nadzora. V tem primeru je primerneje govoriti o subjektih – v okviru razdelitve in prenosa pristojnosti in odgovornost za ta ali oni del dela.

Če nadaljujemo analizo teh primerov, lahko dovolimo dve interpretaciji primera, odvisno od specifičnega predmetnega področja.

· Bankomat in banka skupaj sestavljata strežniški sistem, ki opravlja delo za stranko iniciatorja (akterja) – ki ima prednost, kar se odraža v vrstnem redu subjektov.

· Vsi subjekti opravljajo nekatera skupna dela, ki si prizadevajo za vzajemno koristno sodelovanje. Stranka ne začne z delom, ker ima absolutno prednost - ampak samo zato, ker »tokrat mora nekdo še vedno začeti prvi«. Z drugimi besedami, v drugih diagramih je možen drugačen vrstni red razporeditve predmetov.

Seveda je za to področje primernejša prva razlaga, značilna za sodobne pristope »odjemalec-strežnik«.

Takšne diagrame smo navajeni gledati kot popolne opise. Toda v kontekstu obravnavanega pristopa obstaja še ena pomembna interpretacija diagramov, ki temelji na zmožnostih deskriptorja. Lahko domnevamo, da smo na tisti stopnji razvoja, ko razmerja med subjekti še niso določena ali pa so nam neznana. Nekako(za zdaj) je treba opisati.

Neposredna posledica »delitve dela«, ki se tu pojavlja med več akterji, je potreba po usklajevanju nastajajočega paralelizma pri izvajanju dejanj. V diagramu je takšno usklajevanje označeno z novim tipom razvejanja - fork and join procesov.

Paralelizem je izjemno kompleksna tema, ki je predmet številnih interpretacij. V kontekstu potrebe po opisu predmetnega področja je naravno nadaljevanje teme o delitvi dela med subjekti na podlagi potrebe po doseganju skupnega rezultata. V tej "večprocesorski" različici vrstni red dejanj ni pomemben.

Glede na zmožnosti deskriptorja je možna drugačna razlaga. Vemo, da se mora ta proces na neki točki začeti in na neki točki končati. Toda [še] ne poznamo točno vrstnega reda dejanj.

Naloga opisa predmetnega področja.

Model domene prikazuje konceptualne razrede - glavne, z vidika modelarja, razrede konceptov, povezanih s predmetno domeno (ne z implementacijo programske opreme).

V primeru poslovnega modeliranja - dejavnosti velikih podjetij - običajno govorimo o poslovni logiki, poslovnem modeliranju itd. V UML je model domene predstavljen kot niz diagramov razredov , na katerih so lastnosti in metode poimenovane, vendar na splošno niso implementirane. Z drugimi besedami, kadar koli je to mogoče, so definirani razredni vmesniki.

Formalno gledano se v obravnavanem pristopu konstrukcija diagramov razredov v svojih osnovnih načelih malo razlikuje od tiste, ki je sprejeta v "navadnem OOP". Najpomembnejša razlika izhaja iz zgoraj obravnavanih motivov za delitev dela. Če je mogoče, programer sokrivec v prejšnjih fazah, vendar odgovori za fazo implementacije programske opreme. Znotraj tega lahko prosto razporeja razrede glede na potrebo po reševanju notranjih problemov implementacije programske opreme – v okviru svoje vloge tega ne more storiti. Razredi domene so opredeljeni z realnostjo domene.

Res je, v predlaganem pristopu to ne pomeni več enostranske podrejenosti – kot nujno potrebno, ampak (občasno) – kot povratne informacije(povratna informacija) - lahko zahteva spremembo naloge zaradi nezmožnosti dokončanja naloge pod danimi pogoji - na primer z danimi časovnimi viri (tj. pravočasno).

Spomnimo se (kot snov za razmislek), da se je zgodovinsko koncept povratne zanke pojavil v kibernetiki (natančneje v teoriji avtomatov) ravno v povezavi s potrebo po formalnem opisu kompleksnega vedenja, značilnega za živ bitja Vendar ne pravi stroji, najpogostejši (zaradi preprostosti) primeri v današnji programski literaturi.

Model domene prikazuje:

· domenski objekti ali konceptualni razredi;

· asociacije med pojmovnimi razredi;

· atributi in operacije konceptualnih razredov (imena lastnosti in metod).

Primer razrednega diagrama. Shema plačila naročila.

Primer nakazuje približno naslednji (uspešen) scenarij plačila za naročilo naročnika določenega trgovsko-transportnega podjetja: »Naročnik, ki je naročil seznam blaga (glej točko - karakterizacija lastnosti blaga v ločeni točki naročilo) lahko naročilo plačate s kreditno kartico (kredit), gotovino (gotovina) ali bančnim čekom (ček)"

Upoštevajte, da diagrami razredov poleg samih razredov v obliki grafa opisujejo različne realne povezave (asociacije) med razredi.

Z drugimi besedami, pri opisovanju strukture razredov uporabljamo teorijo množic in relacij (relacije). relacijski pristop, ki smo ga upoštevali prej pri obvladovanju relacijskih baz podatkov. Opozorimo na možnost navedbe množice odnosov, ki natančneje opisujejo (v primerjavi z "ena" in "mnogo"), koliko predmetov (instanc) enega razreda je lahko v danem odnosu z drugim razredom. 0..1 - ne več kot ena, 1 - točno 1, 1* - ne manj kot ena itd.

Nekaj ​​zmede tukaj običajno izvira iz različnih vrst povezav. Tu je asociacija vsaka možna povezava med razredi, ne glede na to, kakšen nadaljnji odnos med objekti implicira.

Nekateri med njimi se – tako kot prej – nanašajo na opis podatkovne strukture. To sta na primer razmerje Stranka-Naročilo in razmerje »del-celo« (združevanje, agregacijsko razmerje) med razredoma Naročilo in Podrobnosti naročila.

Drugi (generalizacija) - za opis razmerja razredov po dedovanju. Oglejte si primer za razmerje med razredom Plačilo in podrazredi Gotovina, Ček in Kredit. To je statična (fiksna) povezava med razredi, kar pomeni možnost dinamično(spremenljiva) povezava med predmet in razred. V vsakem trenutku je predmet dodeljen določenemu razredu - vendar se nato pripadnost tega predmeta lahko spremeni. To je tisto, kar dejansko razlikuje koncept razreda v OOP od tipa v proceduralnem programiranju.

Zaznamki za prihodnost. Poleg »samo povezav« je posebna značilnost UML zmožnost definiranja drugih tipov povezav po meri, kot tudi združevanje razredov v paketi- iz razlogov, ki niso tisti, o katerih smo razpravljali prej. Vključno z nam še neznano prihodnostjo.

Običajno so paketi (pa tudi sprva moduli in komponente) povezani z reševanjem posebnih problemov obdelave programov kot podatkov (na primer prevajanje), lahko pa jih uporabimo tudi za druge, izvirne namene (če so res izvirni).

Objektni diagrami. *

Diagrami objektov se uporabljajo veliko manj pogosto kot diagrami razredov. Pravzaprav se tukaj spustimo na raven implementacije programske opreme. Koristno jih je uporabiti, ko grafični prikaz pomaga opozoriti udeležence v razvoju na tiste značilnosti izvedbe, ki jih je težko prepoznati iz besedila programa.

Kot neformalno motivacijo si lahko predstavljamo temperaturo v ekipi, ko se programer vrne z dopusta, ko sodelavcev ni posvetil posebnostim implementacije. Kot veste, se po Parkinsonovem zakonu (znanem tudi kot zakon padajočih sendvičev) pojavi potreba po popravku programske kode ravno v času odsotnosti programerja, ki jo je napisal! Vsekakor se bodo takšni primeri še dolgo spominjali ...

Primer 1: Rekurzivne relacije

Tukaj predpostavljamo hierarhijo razredov, ki opisujejo oddelke univerze.

Primer 2: Podedovane statične povezave.

mathStat, math, statistics, applyMath, mathEd – objekti, reference na razred Department

Verjetno bolj zapleten in pomemben primer je opis ne vedno očitnih možnosti spreminjanja v programu članstva enega objekta v različnih razredih – glede na hierarhijo dedovanja.

Diagrami komponent in diagrami uvajanja –

Diagrami komponent in razmestitve

Komponenta[arhitektura programskega sistema] – modul, del [besedila] programa, tradicionalno povezan z avtomatizacijo, algoritemsko obdelavo programske kode (programi kot podatki). Pri uporabi UML se obravnavajo kot fizični analogi razrednih diagramov in so opisani na podoben način. Z drugimi besedami, diagrami komponent so formalni analogni diagrami razredov, namenjeni opisovanju arhitekture programske opreme in strukture programskega sistema.

In v tej vlogi za aplikacijskega programerja niso tako pomembni. Toda še enkrat bodimo pozorni na eno pomembno točko. Navajeni smo, da programske naloge postavlja naročnik - iz zunanjega programiranja. Nedvomno pa se zelo velik del nalog pojavi v samem programiranju - pa naj gre za programsko ali strojno opremo, njen programski ali strojni del. Tako so bili moduli sprva bolj obravnavani kot enote prevajanja (sestavi) – vendar so tlakovali pot objektnemu programiranju kot univerzalni metoda modeliranja. Kar se v modularnem programiranju obravnava kot poimenovana konstanta (ime modula označuje fiksni vmesnik in njegovo izvedbo), v objektnem programiranju postane ime spremenljivke (ime objekta označuje spremenljiv vmesnik in izvedbo).

V komponentnem programiranju gre koncept komponent še dlje in ima jasnejšo definicijo. Preprosto - poimenovan, a [še] ne implementiran vmesnik. Ker se je rodil v okolju povsem sistemskih težav (tu je še posebej pomembno, da se spomnimo problema podpore različic), tukaj postane orodje za rešitev kaj naloge (povečane zahtevnosti).

Diagrami razmestitve so namenjene predvsem opisovanju fizično konfiguracijo(arhitektura) programska in strojna oprema. Tako naslednji primer prikazuje razmerja med komponentami programske in strojne opreme programskega sistema za obdelavo nepremičninskih transakcij.

Primer. Fizično okolje za podporo prodaje nepremičnin.

Tu sta Real Estate Server in Bank Server strežnika nepremičninske agencije in hipotekarne banke, ki daje posojilo svoji stranki (stranki) kot odgovor na njeno prošnjo (prošnjo). PC je odjemalski računalnik, ki omogoča uporabniku programskega sistema, ki ga razvijamo, povpraševanje tako pri banki kot pri agenciji, v skladu s seznamom ponudb, ki je na voljo v njeni bazi.

Naprave strojne opreme predstavljajo vozlišča. Vsaka programska komponenta je povezana z vozliščem in je v diagramu predstavljena kot pravokotnik z dvojno zanko v zgornjem levem kotu. Označeno z ločeno ikono (krog) vmesnik– nabor servisnih funkcij (zmožnosti podpore), ki jih odjemalcu zagotavljajo ustrezni sistemi.

Konceptualno razumevanje pojma je pregledno. Naročnik ne more poznati kompleksne notranje strukture sistemov (čeprav bi moral vedeti, da je kompleksna in zato ceniti delo razvijalcev). Nadalje. Ker ni visoko usposobljen specialist, je ne bi smel motijo ​​njihovo delovanje – tudi kadar za to obstaja razlog fizične sposobnosti. To daje posredno definicijo moralnih meja, pošteno stranko in preprosto - kulturna oseba. Ne heker.

Za normalno delovanje celotnega sistema pa ima pravico do dostopa do vmesnika - katerega opis najverjetneje pozna le v obliki uporabniškega priročnika v neformalno besedilno ali grafično obliko, tj. na vsakdanjičloveški jezik. Preprosto povedano, nekdo mu mora še razložiti osnove - "kaj, kako in zakaj."

Pravzaprav je edina pomembna novost tukaj posebna oznaka simbola za vmesnik, ki se obravnava ločeno od njegove programske ali fizične izvedbe (glejte razpravo zgoraj). Očitno enotni modelni jezik še vedno potrebuje dodatno poenotenje. No, vsi ljudje smo ljudje, vključno z ustvarjalci jezikov za modeliranje.

Vendar ne bi rad zaključil našega pregleda UML s tem, ampak s pozivom bralcu.

1. Konceptualizacija sistema: Ideja za aplikacijo je igra za razvoj spomina.

2. Analitični model je natančna, jasna predstavitev problema, ki vam omogoča, da odgovorite na vprašanja in zgradite rešitve.

3. Oblikovalski model je implementacija rešitev problemov, ki jih razumemo v fazi analize.

Kratek opis igre: na zaslonu se prikažejo figure različnih oblik in barv, igralec klikne na zadnjo prikazano figuro, če je izbira pravilna, se prikaže nova figura. Bistvo igre je, da več kot je figur na zaslonu, težje se je odločiti.

Kompleksnost. Igra mora podpirati standardne težavnostne možnosti (na primer enostavno, srednje težko). Uporabnik mora imeti možnost prilagoditi svojo težavnost igre.

Ravni. Ne glede na težavnostno vrsto mora igra podpirati ravni. Raven določa največje število številk na zaslonu. Tisti. število figur je funkcija nivoja.

Namigi.Če je težko izbrati figuro, lahko igralec izbere namig.

Baza podatkov.Če je mogoče, naj bodo podatki o igralcu shranjeni v sistemu.

Dodatne zahteve. Vse je treba narediti tako, da je igra razširljiva, tj. uporabnik je lahko svoji igri povezal različne težavnostne možnosti.

Za razvoj aplikacije bomo uporabili iterativni pristop. Pri prvi ponovitvi bomo implementirali le majhen del zahtev, saj bomo tako dobili najzgodnejšo povratno informacijo.

Model primerov uporabe, precedensi

Razmislimo o precedensih Igra in Nastavitev težavnosti.

Glavni artefakti pri modeliranju primerov uporabe so diagrami primerov uporabe, primeri uporabe in diagrami zaporedja primerov uporabe. Številni novinci pri modeliranju primerov uporabe OOA/P se osredotočajo samo na diagrame primerov uporabe, kar samo po sebi ni zelo uporabno. Pomembno je razumeti, da grafikoni samo prikazujejo imena, imena precedensi, in ne precedensi sami.

Slika 1. Diagram primerov uporabe

Naj to spomnimo precedens je zgodba o uporabi sistema s strani igralca, ki se lahko kasneje za večjo jasnost projicira v diagrame zaporedja primerov uporabe.

Identifikacija igralcev. Edina aktivna oseba je igralec. Igralec ni del sistema, saj sistem ne more nadzorovati njegovih dejanj, od igralca lahko pričakujemo le določeno zaporedje dejanj.

Identifikacija začetnih dogodkov. Ugotovimo, kateri dogodki sprožijo precedens Igra in Nastavitev težav. V tem primeru je začetni dogodek zahteva za ustrezne storitve, ki jih zagotavlja sistem.

Identifikacija končnih dogodkov. Določiti je treba tudi končne dogodke. Za precedenčno nastavitev težavnosti bo to nastavitev težavnostnih parametrov igre, tukaj je vse jasno. Za precedens Igra situacija je drugačna: primer uporabe Igra se lahko nadaljuje, dokler igra ni zmagana ali izgubljena. Zadnji dogodek precedensa igre bo dogodek, ko se igralec naveliča te storitve, tj. izstopite iz igre.

Predhodna priporočila: samo popolne transakcije, ki so smiselne za uporabnika sistema, je treba izbrati kot precedens. Čeprav so vodilni metodologi že opredelili stil pisanja precedensov, to ne pomeni, da se ga moramo striktno držati (ali pa ga ne upoštevati zgolj zaradi nestrinjanja). Ne pozabimo, da precedensi odgovarjajo na vprašanje »kaj« in ne na vprašanje »kako«, tj. V precedensu ni treba opisovati, kako se doseže ta ali oni rezultat.

Precedens Igra.

Precedens Nastavitev težavnosti.

Mnogim kolegom se bo morda zdelo nesmiselno modelirati tako majhno nalogo. Toda lepota tega je v tem, da majhen primer le ponazarja načela, ne da bi nas odvrnil od samih načel, ki so obravnavana v tem priročniku. V nasprotnem primeru, če vas bo zanesla sama igra (predmetno področje), boste morda pozabili, zakaj smo se danes zbrali tukaj.

zdaj bomo oblikovali primere uporabe v diagrame zaporedja primerov uporabe. Čeprav v UML ni takega koncepta, nam bo omogočil, da ponovno ustvarimo določeno logično povezavo v razmišljanju za gradnjo modelov.

Slika 2. Diagram zaporedja primerov uporabe Igra

Slika 3. Diagram zaporedja primerov uporabe Nastavitev težav

Analiza aplikacije

Ni potrebe po domenski analizi, saj aplikacija nima analogij v resničnem svetu. Analizirajmo aplikacijo: izpostavili bomo vidike programske aplikacije, ki so vidni uporabniku in odražajo njegov pogled. Toda analizo predmetnega področja je mogoče izvesti po podobni shemi.

Model aplikacijskega razreda.

Eden od artefaktov analize aplikacij so diagrami razredov. aplikacije. To pomeni, da v modelih ni priporočljivo prikazovati razredov, ki pripadajo implementacijski ravni (seznami, drevesa ipd. abstraktni podatkovni tipi).

Razredi. Precedense bomo izpostavili kot vir potencialnih razredov, vendar to ni edini vir. Običajno razredi ustrezajo samostalnikom. Na primer, iz stavka - sistem (zaslon) prikaže sliko, lahko izberete potencialne razrede Sistem(zaslon), Slika.

Težava: en del govora lahko gladko prehaja v drugega. Ne mučite se predolgo z vprašanjem korelacija ključnih besed s seznamom potencialnih razredov. Modeli razredov se bodo sčasoma izpopolnili in največkrat je nemogoče takoj zgraditi absolutno pravilen model. Čeprav to ne pomeni, da je to neuporabna dejavnost.

Izberimo potencialne razrede za naš primer: igralec, igra, figura, težavnost, nivo, elipsa, pravokotnik.

komentar: na splošno morate za vsak primer uporabe običajno zgraditi svoj model razreda. Ker pa je aplikacija majhna, bomo zgradili model enega razreda za oba primera uporabe.

Lastnosti. Določimo lastnosti razredov. Lastnosti so pojmi, ki nimajo lastne identitete. V tem primeru je na primer barva figure (če pa bi gradili grafični urejevalnik, bi barva najverjetneje imela takšno individualnost). Takšne lastnosti lahko najdete na seznamu potencialnih razredov.

Pogosta napaka pri izolaciji lastnosti je pisanje v lastnosti objektnih razredov, ki so kompleksni objekti. Na primer, lahko kot lastnost razreda Igra kažejo na težavnost, vendar razred kompleksnost ima svoje edinstveno vedenje, zanj je pomembna individualnost, zato je bolje, da ta dva razreda povežete med seboj z združevanjem.

Komentiraj: Če gradite aplikacijo ali model domene, tudi ne smete navesti notranjega identifikatorja kot lastnosti. Tovrsten atribut v resničnem svetu nima pomena, ampak prinaša le udobje za implementacijo.

Asociacije. Nato bomo med izbranimi razredi vzpostavili povezave – asociacije. Povezave je mogoče izluščiti iz istih precedensov, glagoli so potencial komunikacije. Z drugimi besedami – tako kot prej – ostaja problem razumevanja besed v naravnem jeziku v takšni ali drugačni vlogi.

Na primer, igro definira njena težavnost.

Slika 4. Diagram aplikacijskega razreda

V diagramu sta dve asociaciji - igro določa težavnost, številka je določena s kompleksnostjo.

Poznavanje oblikovalskega vzorca Nizka vezava, vidim potencialno napako, da je ena od teh asociacij odveč, za katero pa se bom odločil v fazi načrtovanja.

Operacije. Pri modeliranju razredov lahko takoj prepoznate najbolj očitne operacije. Na primer, lahko se nariše figura.

Priporočilo: Na splošno je diagram razredov zgrajen vzporedno z diagramom interakcije; diagram interakcije prikazuje sporočila, poslana med objekti. Sporočilo je klic funkcije razreda. Zato je bolje vzeti razredne operacije iz interakcijskih diagramov.

Posploševanja. Nato organiziramo strukturo hierarhije razredov po dedovanju z identifikacijo splošne strukture. Splošno strukturo je mogoče razlikovati med razredi Elipsa, pravokotnik itd. v razred Slika. Do te posplošitve je mogoče priti iz dveh premislekov. Posploševanje od spodaj navzgor: v nadrazredu Slika treba je določiti skupne značilnosti med razredi Elipsa, pravokotnik(koordinate, barva, življenjska doba). Določanje od zgoraj navzdol: izberimo iz opisa igre samostalniške besedne zveze, sestavljene iz različnih okoliščin z navedenim samostalnikom. Na primer, "oblika pravokotnika" ali "oblika elipse".

Slika 5. Diagram aplikacijskega razreda s povzetkom

komentar: morda bo ta posplošitev zagotovila točko nadaljnje razširitve vrst figur, prikazanih na zaslonu.

Povzetek: modeli razredov so uporabni za več kot le definiranje podatkovnih struktur. Modeli razreda sledenja vam omogočajo, da izrazite določene vrste vedenja, npr. precedensi.

Model stanja aplikacije

Drug artefakt faze analize aplikacije so grafikoni stanj. Diagrami stanja so potrebni za objekte domene, ki imajo netrivialno, vključno s cikličnim obnašanjem. Večina razredov v našem primeru ne zahteva uporabe diagramov stanj; za njihov opis zadostuje seznam operacij. To je na primer razred Figure - za to aplikacijo ni pomembno, v kakšnem stanju je figura.

Identificirajmo razrede, ki imajo različna stanja. Na primer, to je razred Igra. Ta razred je lahko v državah Igre, zmage itd.

Izpostavimo razredna stanja Igre. Da bi to naredili, si mentalno predstavljajmo predmet razreda Igra, poskuša razumeti razlike tega predmeta v stanjih Igra, zmaga, poraz. V stanju igre predmet nariše figuro, v drugih stanjih pa ne. Z drugimi besedami, povezava med razredi Igra in Slika prisoten v stanju Igra, in v državah Zmaga in Izguba te povezave ni (zato države Zmaga in Izguba zame nerazločljiv).

Zaradi majhnega obsega primera se morda zdi, da ti modeli niso potrebni. V praksi jih je v tem primeru mogoče pripisati implementaciji programske opreme, vendar je tukaj želja dati primer modeliranja diagrama stanja.

Izbor dogodka. Po izbiri stanj je potrebno izbrati dogodke, ki povzročajo prehode med stanji.

· Signalni dogodek je dogodek prejema ali pošiljanja signala.

· Dogodek spremembe je dogodek, ki ga povzroči izvajanje logičnega izraza.

· Časovni dogodek je dogodek, ki nastane zaradi doseganja absolutnega časovnega trenutka ali izteka časovnega intervala.

Spremeni dogodek Skladnost s pogoji igre prevede objekt razreda Igra od države Igre v stanju Zmaga. Spremeni dogodek Neupoštevanje pogojev igre prevede objekt razreda Igra od države Igre v stanju Izguba. Tako različni dogodki pripeljejo predmet v različna stanja.

Dogodki so točke na časovni premici, stanja pa intervali.

Slika 6. Diagram stanja za razred Igra

Dogodki se lahko zgodijo tudi znotraj stanj, vendar ti dogodki ne povzročajo prehodov med stanji. Na primer, v stanju igre se zgodijo dogodki risanja figur in dogodki, ko igralec izbere figuro.

Diagram stanja objekta je avtomat (graf), katerega oglišča so stanja, robovi pa dogodki.

Povzetek: s tem se zaključi postopek analize domene aplikacije. Po tem je treba nastale modele ponovno pregledati in po potrebi prilagoditi. Glavni namen analize je ugotoviti težavo, ne da bi dali kakršno koli posebno prednost kateri koli možnosti izvedbe.

Oblikovanje aplikacije

Zasnova sistema je izbira strategije na visoki ravni za reševanje problemov.

Model interakcije aplikacij

Vrnimo se k precedensom, saj so modeli interakcij zgrajeni na precedenčnih modelih. Diagrami zaporedja artefaktov precedensov so odgovorili na vprašanje "kaj", v tem razdelku bomo zgradili diagrame zaporedja, ki odgovarjajo na vprašanje "kako" pri reševanju problemov primera uporabe igre.

Obrnimo se na scenarij primera uporabe igre, ki se inicializira po dogodku, ko igralec zažene to storitev.

Inicializacija igre. Glede na načrtovalske vzorce je potreben razred krmilnika, ki bo prevzel »ogenj« dogodkov od uporabnika. Naj bo razred Game odgovoren za začetek igre.

Ustvarjanje figure vključuje zaporedje dejanj: naključno določanje parametrov bodoče figure in ustvarjanje figure glede na parametre.

Določitev vrednosti atributov bodoče figure. Ker je lik določen z atributi (vrsta, barva, položaj), vrednosti atributov pa morajo biti naključne, je potreben razred, ki bo odgovoren za naključno oblikovanje vrednosti atributov - razred Algoritem. Vrednosti atributov so odvisne od težavnosti igre. Z drugimi besedami, tukaj opazimo razredno vezavo Algoritem in Kompleksnost- tj. vrednosti atributov so funkcija Težave. S tem Kompleksnost prešel v razred Algoritem kot parameter. pomeni, Kompleksnost mora biti posredovan kot parameter ob zagonu igre.

Ustvarjanje figure. Parametri bodoče figure so določeni, toda kateri razred bo odgovoren za ustvarjanje figure? Tukaj uporabimo oblikovalski vzorec Creator, po katerem bo ustvarjen razred, ki ima več informacij o objektu, to je razred Algoritem. Razred Algoritem bo vrnil položaj novega dela razredu Igra. Ko je oblika ustvarjena, razred počaka, da uporabnik izbere obliko.

Izbira figure. Razred igralnega krmilnika bo obravnaval ta dogodek. Razred krmilnika sam preveri pravilnost igralčeve izbire figure, saj ima vse informacije za to. Če se je igralec pravilno odločil, potem sistem znova izžreba novo figuro, sicer igra preide v izgubljeno stanje.

Slika 7. Diagram zaporedja primerov uporabe Igra

Povzetek: Vsi se ne morejo strinjati z mano glede pristopa, uporabljenega tukaj pri analizi in oblikovanju tega določenega sistema. Na splošno odraža precej subjektiven pogled na stvari.


POGOVOR ZA HEKERJE. GLAVNI VIR.

Seveda ni vse zgoraj povedano 100% jasno in 100% uporabno za vas - v smislu 100% pripravljenosti jutri začeti razvijati kompleksne programske sisteme s 100-odstotno zanesljivostjo . Zdi se, da so sistemi, ki so danes tako pomembni, 100-odstotna zaščita informacij "pred zlobnimi hekerji, ki se nekje skrivajo." Ne verjamem, da so tukaj možna 100-odstotna jamstva - ali sploh potrebna. Vsekakor pa si ta skromni priročnik ni zastavljal nedosegljivih ciljev. Samo je navodila za še nekvalificiranega uporabnika (odjemalca) jezika UML. Napisano, kolikor je le mogoče, »na človeški način«.

Nihče ni popoln – ne vi, »naročnik izobraževanja«, ne jaz, vaš »strežnik«. Nisi se učil dovolj ali jaz nisem učil dovolj, zdaj je prepozno iskati krivce. Tukaj smo naredili samo prvo ponovitev v procesu priprave. Seveda se je treba za dovolj zanesljivo programiranje kompleksnih sistemov še poglobiti, specializirati ter znati in zmoči še marsikaj. Jasno je. Toda ta priročnik govori o nečem drugem. Tukaj nisem hotel narediti koraka naprej, ampak stopi nazaj- da vam pokažem, da morate najprej biti sposobni ponovno razumeti že minilo. Pogosto – nerazumljeno, mimo avtor.

Heker ni hudoben kriminalec. Vsaj na začetku. Nasprotno, navdušencu nad programiranjem rečemo tudi heker. Potem sva hekerja ti in jaz. No, brez zanimanja za delo je življenje dolgočasno. Še vedno smo ljudje, ne roboti. Ni vsakdo popoln, vsak je individualen.

Toda najprej se vsi zavežemo, da bomo naredili 1) vse 2) naenkrat 3) popolno. In to je normalno – dokler ne prizadene močno drugih, bližnjih in daljnih. Trenutek resnice nastopi, ko se naš idealni scenarij konča z neuspehom. Potem se nekateri začnejo učiti delati resno, tisti bolj kul pa začnejo iskati krivce. "Niso učili dovolj, niso učili na pravi način" - na splošno niso zagotovili dovolj virov. Draga, si sama veliko vložila? Ali se za vašo neomajno vero v neomejeno moč lastne intuicije ne skriva upanje na priložnost in ... navadna lenoba, nepripravljenost za delo?

Hekersko delo je dnevno delo, rutina in hekersko delo, »kul heker« pa je izjemno nezanesljiva oseba. Brezplačno ali za dober denar, a če se tak človek loti razvoja sistemov, ki niso več igrača, bo resnična škoda nič manjša kot od katerega koli “zlobnega hekerja” (običajno virtualnega). Potem bodo plačali vsi. res. In potem ne bo nikogar več zanimalo.

Bistvo tukaj ni denar sam, pogodbe in drugi artefakti. To so samo simboli družbene pogodbe, znaki zaupanja in dogovorov med ljudmi. Stvari moraš pač zabeležiti za prihodnost, da ne pozabiš preteklosti. Glavni vir je vir človeških odnosov. Če tega ne pomnožite, potem res - kdo potrebuje vso to matematiko? Je dogovor - dogovorjeno?

Upam, da zdaj bolje razumete, na kaj in na koga točno sem računal. To je matematika...


BIBLIOGRAFIJA

1. Grady Booch, James Rambo, Ivar Jacobson - jezik UML. Navodila. Založba DMK Press, 2007, 496 str. Klasika ustvarjalcev UML.

2. Craig Larman - Uporaba UML 2.0 in oblikovalskih vzorcev. Williams Publishing, 2008, 736 str. Odseva današnji prevladujoči inženirski pristop k OO AP.

3. J. Rambo, M. Blaha - UML 2.O. Objektno orientirano modeliranje in razvoj. 2. izd. - Sankt Peterburg: Peter, 2007. - 544 str. Ista stvar, z nekoliko bolj praktičnim pridihom.

4. Rational University – gradiva akademskega programa IBM Corporation (glej http://www.ibm.com/ru/software/info/students/): Essentials of visual modeling, Fundamentals of Rational Rose. Zakladnica primerov, testov in laboratorijev.

Dodatna literatura.

1. Martin Fowler. UML. Osnove. Založba Symbol-Plus, 2006, 192 str. Hitra referenca.

2. Racionalna univerza– gradiva akademskega programa IBM Corporation (glej http://www.ibm.com/ru/software/info/students/): Obvladovanje objektno usmerjene analize in oblikovanja, Upravljanje upravljanja iterativnega razvoja in drugi.

3. Bertrand Meyer. Objektno usmerjeno načrtovanje programskih sistemov. Založba Ruska izdaja 2005, 1204 str. Odseva bolj klasičen pogled na sodobno situacijo. Zahteva dobro matematično pripravo.

Dodatna literatura - za učitelje.

F. Novikov. Opis praktičnega dela študentov (LP) v disciplini "Analiza in načrtovanje na UML" - Oddelek za "Programske tehnologije", St. Petersburg State University of Information Technologies, Mechanics and Optics, St. Petersburg, 2007

Zgoraj se je avtor osredotočil na posameznika priprava. Toda edini zanesljiv način za praktično preverjanje razumevanja zgornjih konceptov OO AP - zlasti "merila 36.6" - je kolektivno, razvoj ekipe. Metodološki razvoj F. Novikova je tukaj dober začetek - v obliki sheme za izvajanje ustreznega laboratorijskega dela. Čeprav bi avtor osebno za njihovo izvedbo priporočal naloge igrive narave, ki se ne pretvarjajo, da so resne. Na primer - šah, dama in druge družabne igre.


Vendar je vredno ponovno prebrati Romeo in Julija, razumeti, da se pravi pomen citata ne nanaša na same vrtnice. Celo - racionalno ali virtualno. Glavna tema tragedije je nakazana že na začetku: Dve enako spoštovani družini v Veroni, kjer nas srečajo dogodki ...

Študenti tega predmeta imajo dostop do licenčnih izdelkov programske opreme IBM-a in Microsofta - za to se obrnite na učitelja predmeta (avtorja tega priročnika)

V mejah, ki jih določa priljubljena šala. Učitelj učitelju: »No, učenci so bili neumni. Razlagal sem in razlagal – vse sem že razumel, oni pa še vedno ne bodo razumeli!«

Rečeno je, da je Newton izgovoril ta slavni stavek v zvezi z razpravo o razdelitvi akademskih ur za pouk tujih jezikov in matematike.

Po učnem načrtu: (- vendar glej spremno besedo J

Terminologija v ruskem jeziku v zvezi z obravnavanimi problemi še ni v celoti vzpostavljena. V primeru težav s prevajanjem avtor v izogib dvoumnemu razumevanju uporablja »pavs papir«. Nepravilno prevajanje tujih realnosti v lastno poraja izjemno težke težave.

Sodelovanje - sodelovanje. V ruščini beseda sodelavec ima negativen pomen, zato pogosto govorijo o diagramih sodelovanja.

Avtorica poglavja je Anastasia Sabirzyanova. Naredil sem le manjše slogovne spremembe - ker mi je všeč njen živahen in iskren slog podajanja razvojnega procesa. Jasno je, da če bi hotela, bi lahko lagala ... Navsezadnje je Anastasia diplomirala na Fakulteti za računalniško matematiko in računalništvo na KSU in ima že precej izkušenj s praktičnim razvojem komercialnih aplikacij. Vendar verjetno zato nisem mogel ... N.B.

Res pa je, da je treba v takih primerih druge dele govora obravnavati kot samostalnike. Spomnimo se primera "Avtorizacija", kjer interpretiramo operacijo pooblasti kot proces. N.B.

Ključne besede: pomen glosar– strnjen seznam osnovnih pojmov, ki opisujejo predmetno področje. Kar zadeva ostalo, se mnenje Anastazije dobro ujema s konceptom OO AP. Model ni samo in ne toliko končni rezultat razvoja. To je trenutni rezultat razumevanja problemov, povezanih z njim. Od tod tudi nujnost in koristnost testov. N.B.

Ne vedno, ne absolutno. Prednost ima opis predmetnega področja - privzeto, če so druge stvari enake. A spomnimo se, da je glavna naloga iterativne metode (bolj ali manj) enakomerno napredovanje vsi vrste dela. Notranji identifikator - na primer primarni ključ tabele baze podatkov - je prav tako mogoče izbrati ne naključno, ampak na podlagi nalog implementacije programske opreme. Lahko si predstavljamo ekstrem izjemno situacija, ko je zaradi težav pri izvedbi potrebno omejiti opis predmetnega področja. Razlika je v tem, da utemeljitve zahtevajo posamezne izjeme, ne splošnih pravil. N.B.

V tem priročniku se nismo dotaknili izjemno uporabnega koncepta oblikovalski vzorec(poleg tega, če sem iskren, se ne spomnim takšne predloge). Zaenkrat - preden ga spoznava skozi literaturo (glej npr.), ga bralec tukaj in naprej lahko bere takole: “ Vodilni razvijalci z bogatimi izkušnjami priporočajo ustvarjanje naslednjega razreda v tej situaciji. N.B.

V preprostih primerih. Na splošno sporočilo nanaša na klic, pri čemer je treba posebej določiti razmerje med sporočili in operacijami. N.B.

Pa tudi želja po preprečevanju morebitnih napak v zgodnejši fazi. N.B.

Ni naključje, kar sem poudaril zgoraj predmetov dejanja. V bistvu se strinjam z Anastazijo v njenem razumevanju bistva pristopa, izraženem prej in v uvodu primera. Vsi razvijalci so subjekti ali preprosto ljudje. Ne bogovi, a tudi ne roboti. In vsaka oseba ima svoj osebni pristop k reševanju problemov, odvisno od teoretičnih kvalifikacij, praktičnih izkušenj in mnogih drugih stvari, ki so izjemno koristne za razumevanje problemov, vendar ne določajo jasno vnaprej rešitev. Življenje je zapleteno - jeziki so preprosti.

Bolezni sodobnega programiranja, ki jih skuša zdraviti UML, prihajajo iz nasprotnega. Ne da bi razumeli probleme, smo pogosto vnaprej prepričani, da je rešitev edinstvena. Vsak je svoj. Zato se temperatura "povprečno v bolnišnici" pogosto dvigne nad normalno 36,6 - N.B.