Aina ambayo mchoro wa uml ni shughuli. Sifa za jumla za lugha ya UML. UML ni nini

Nadhani kila mtu alisikia katika utoto msemo kama huu " Mara saba kipimo kata mara moja". Katika programu, ni sawa. Daima ni bora kufikiri juu ya utekelezaji kabla ya kutumia muda kutekeleza. Mara nyingi unapaswa kuunda madarasa wakati wa utekelezaji, kuvumbua mwingiliano wao. Na mara nyingi uwakilishi wa kuona wa hii unaweza kusaidia kutatua tatizo. kwa njia sahihi zaidi. Hapa ndipo tunaposaidia UML.

UML ni nini?

Ikiwa unatazama picha katika injini za utafutaji, inakuwa wazi kwamba UML- hii ni kitu kuhusu miradi, mishale na mraba. Kilicho muhimu ni kwamba UML inatafsiri kama Lugha Iliyounganishwa ya Kuiga. Neno Umoja ni muhimu hapa. Hiyo ni, picha zetu zitaeleweka sio sisi tu, bali pia na wengine wanaojua UML. Inabadilika kuwa hii ni lugha ya kimataifa ya kuchora michoro.

Kama Wikipedia inavyosema

UML ni lugha ya maelezo ya mchoro kwa uundaji wa kitu katika nyanja za ukuzaji wa programu, uundaji wa mchakato wa biashara, uhandisi wa mifumo, na muundo wa shirika wa kuchora.
Jambo la kufurahisha zaidi ambalo sio kila mtu anafikiria au kukisia ni kwamba UML ina vipimo. Zaidi ya hayo, kuna hata vipimo vya UML2. Maelezo zaidi kuhusu vipimo yanaweza kupatikana kwenye tovuti ya Kikundi cha Usimamizi wa Kitu. Kwa kweli, kikundi hiki kinajishughulisha na uundaji wa vipimo vya UML. Inafurahisha pia kuwa UML sio mdogo kuelezea muundo wa madarasa. Kuna aina nyingi za michoro za UML. Maelezo mafupi ya aina za michoro ya UML yanaweza kuonekana katika Wikipedia: michoro ya UML au katika video ya Timur Batyrshinov. Muhtasari wa Michoro ya UML. UML pia hutumiwa sana katika kuelezea michakato mbalimbali, kwa mfano hapa: Kuingia mara moja kwa kutumia JWT. Tukirejea kwenye matumizi ya michoro ya darasa la UML, ni vyema kutambua kitabu Kichwa Kwanza: Miundo ya Usanifu, ambamo ruwaza zinaonyeshwa kwa michoro hiyo hiyo ya UML. Inabadilika kuwa UML inatumika kweli. Na inageuka kuwa kujua na kuelewa matumizi yake ni ujuzi muhimu sana.

Maombi

Wacha tuone jinsi unavyoweza kufanya kazi na UML hii kutoka kwa IDE. Kama IDE, chukua Wazo la IntelliJ. Kama matumizi IntelliJ Idea Ultimate, basi tutakuwa na programu-jalizi iliyosanikishwa "nje ya boksi" Usaidizi wa UML". Inakuruhusu kutengeneza michoro nzuri za darasa kiotomatiki. Kwa mfano, kupitia Ctrl + N au kipengee cha menyu "Navigate" -> "Darasa" nenda kwa darasa. Orodha ya Array. Sasa, kupitia menyu ya muktadha kwa jina la darasa, chagua "Mchoro" -> "Onyesha popup ya mchoro". Kama matokeo, tunapata chati nzuri:

Lakini vipi ikiwa unataka kuchora mwenyewe, na hata hakuna toleo la Mwisho la Idea? Ikiwa tunatumia Toleo la Jumuiya ya IntelliJ Idea, basi hatuna chaguo lingine. Ili kufanya hivyo, unahitaji kuelewa jinsi mpango kama huo wa UML unavyofanya kazi. Kwanza tunahitaji kusakinisha Graphviz . Ni seti ya huduma za taswira ya grafu. Inatumiwa na programu-jalizi ambayo tutatumia. Baada ya ufungaji, unahitaji kuongeza saraka bin kutoka kwa saraka iliyosanikishwa graphviz kwa mabadiliko ya mazingira NJIA. Baada ya hayo, katika IntelliJ Idea, chagua Faili -> Mipangilio kutoka kwenye menyu. Katika dirisha la "Mipangilio", chagua kategoria ya "Programu-jalizi", bofya kitufe cha "Vinjari hazina" na usakinishe programu-jalizi ya kuunganisha PlantUML. Mbona huyu ni mzuri sana PlantUML? Inatumia lugha ya maelezo ya grafu inayoitwa " nukta" na hii inaruhusu kuwa zaidi kwa wote, kwa sababu lugha hii haitumiwi tu na PlantUML. Zaidi ya hayo, kila kitu ambacho tutafanya hapa chini kinaweza kufanywa sio tu katika IDE, lakini pia katika huduma ya mtandaoni ya planttext.com. Baada ya kusakinisha Programu-jalizi ya PlantUML, tutaweza kuunda michoro ya UML kupitia "Faili" -> "Mpya". Hebu tuunde mchoro wa aina ya "UML darasa". Wakati huu, kiolezo chenye mfano kinatolewa kiotomatiki. Hebu tufute yaliyomo na kuunda yetu wenyewe, tukiwa na makala kutoka kwa Habr: Class Relations - kutoka UML hadi msimbo... Na ili kuelewa jinsi ya kuonyesha hili katika maandishi, hebu tuchukue mwongozo wa PlantUML: mchoro wa darasa la plantuml... Ndani yake, kwenye mwanzo kabisa, kuna ishara na jinsi ya kuelezea uhusiano:

Kuhusu miunganisho yenyewe, bado tunaweza kuchungulia hapa: "Uhusiano kati ya madarasa katika UML. Mifano". Kulingana na nyenzo hizi, wacha tuanze kuunda mchoro wetu wa UML. Ongeza maudhui yafuatayo yanayoelezea madarasa haya mawili: @startuml class ArrayList ( ) class LinkedList ( ) @enduml Ili kuona matokeo katika Idea, chagua "Angalia" -> "Tool Windows" -> "PlantUML". Tutapata miraba miwili tu inayoashiria madarasa. Kama tunavyojua, madarasa haya yote mawili yanatekeleza kiolesura cha Orodha. Uhusiano huu wa madarasa unaitwa - utekelezaji (utambuzi). Mshale wenye mstari wa nukta hutumiwa kuonyesha uhusiano kama huo. Wacha tuchore: Orodha ya Orodha ya kiolesura< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о kifurushi cha faragha safu ya kipengele: ~ Object elementData Sasa tunataka kuonyesha kwamba ArrayList ina baadhi ya vitu. Katika kesi hii, aina ya uunganisho itakuwa - mkusanyiko(kujumlisha). Jumla katika kesi hii ni ArrayList , kwa sababu ina vitu vingine. Tunachagua kujumlisha kwa sababu vitu vilivyo kwenye orodha vinaweza kuishi bila orodha: sio sehemu zake muhimu. Maisha yao hayafungamani na maisha ya orodha. Sehemu kutoka Kilatini inatafsiriwa kama "imekusanywa", yaani, kitu kilichoundwa na kitu. Kwa mfano, katika maisha, kuna kitengo cha kusukumia, ambacho kina pampu na injini. Kitengo yenyewe kinaweza kutenganishwa, na kuacha baadhi ya vipengele vyake. Kwa mfano, kuuza au kuweka kitengo kingine. Kwa hivyo iko kwenye orodha. Na hii inaonyeshwa kwa namna ya rhombus tupu kwenye kitengo na mstari unaoendelea. Wacha tuiweke hivi: class Object ( ) ArrayList o- Object Sasa tunataka kuonyesha kwamba, tofauti na ArrayList , darasa la LinkedList lina Node - vyombo vinavyorejelea data iliyohifadhiwa. Katika kesi hii, Nodes ni sehemu ya LinkedList yenyewe na haiwezi kuishi tofauti. Nodi haijahifadhiwa moja kwa moja maudhui, lakini ina marejeleo yake tu. Kwa mfano, tunapoongeza safu kwenye Orodha Iliyounganishwa, tunaongeza Node mpya ambayo ina kiungo kwenye safu hiyo, pamoja na kiungo cha Node ya awali na inayofuata. Aina hii ya uunganisho inaitwa utungaji(muundo). Ili kuonyesha mchanganyiko (moja ambayo inajumuisha sehemu), robic iliyojaa hutolewa, mstari unaoendelea unaongoza kwake. Sasa hebu tuandike hili kama onyesho la maandishi la kiungo: Nodi ya darasa ( ) LinkedList * -- Node Na sasa tunahitaji kujifunza jinsi ya kuonyesha aina nyingine muhimu ya kiungo - uraibu(uhusiano wa utegemezi). Inatumika wakati darasa moja linatumia lingine, wakati darasa halina darasa lililotumika na sio mrithi wake. Kwa mfano, LinkedList na ArrayList zinaweza kuunda ListIterator . Wacha tuonyeshe hii kama mishale yenye vitone: darasa ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Unaweza maelezo mengi kama unahitaji. Majina yote yameorodheshwa hapa: "PlantUML - Mchoro wa Hatari". Kwa kuongezea, hakuna kitu kisicho cha kawaida katika kuchora mpango kama huo, na wakati wa kufanya kazi kwenye kazi zako, unaweza kuchora haraka kwa mkono. Hii itakuza ustadi wa kufikiria kupitia usanifu wa programu na kusaidia kutambua dosari za muundo wa darasa mapema, na sio baada ya kuwa tayari umetumia siku kutekeleza mfano mbaya. Nadhani hiyo ni sababu nzuri ya kuijaribu?)

Otomatiki

Kuna njia mbalimbali za kutengeneza michoro ya PlantUML kiotomatiki. Kwa mfano, katika mawazo Kuna programu-jalizi ya SketchIT, lakini haiwachora kwa usahihi. Kwa mfano, utekelezaji wa miingiliano imechorwa vibaya (imeonyeshwa kama urithi). Pia kuna mifano mkondoni ya jinsi ya kuunda hii katika mzunguko wa maisha ya mradi wako. Hebu tuseme kwa Maven kuna mfano kwa kutumia uml-java-docklet . Ili kuonyesha jinsi hii inafanywa, hebu tutumie Maven Archetype kuunda mradi wa Maven haraka. Wacha tutekeleze amri: mvn archetype:generate Kwenye swali la kuchagua kichungi ( Chagua nambari au weka kichujio) acha chaguo-msingi kwa kubonyeza Enter. Itakuwa daima" maven-archetype-quickstart". Tunachagua toleo jipya zaidi. Kisha, jibu maswali na ukamilishe uundaji wa mradi:

Kwa kuwa Maven sio lengo la makala haya, majibu ya maswali yako kuhusu Maven yanaweza kupatikana katika Kituo cha Watumiaji cha Maven. Katika mradi uliotengenezwa, fungua faili ya maelezo ya mradi kwa uhariri, pom.xml. Tutanakili yaliyomo kutoka kwa maelezo ya uml-java-docklet kusakinisha ndani yake. Vizalia vya programu vilivyotumika katika maelezo havikuweza kupatikana katika hazina ya Maven Central. Lakini ilinifanyia kazi na hii: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . Hiyo ni, katika maelezo hayo unahitaji tu kuchukua nafasi kitambulisho cha kikundi Na " info.leadinglight"juu ya" com.chfourie"na kuweka toleo" 1.0.0 ". Baada ya hapo, tunaweza kutekeleza katika saraka ambapo faili iko pom.xml amri hizi ni: mvn clean install na mvn javadoc:javadoc . Sasa, ikiwa tutafungua nyaraka zinazozalishwa (lengo la mchunguzi\tovuti\apidocs\index.html), tutaona michoro za UML. Kwa njia, utekelezaji tayari umeonyeshwa kwa usahihi hapa)

Hitimisho

Kama unavyoona, UML hukuruhusu kuibua muundo wa programu yako. Pia, UML sio mdogo kwa hilo tu. Kwa usaidizi wa UML, unaweza kuelezea michakato mbalimbali ndani ya kampuni yako au kuelezea mchakato wa biashara ambao kipengele unachoandika hufanya kazi. Ni juu yako kuamua ni kiasi gani cha UML kinafaa kwako kibinafsi, lakini itakuwa muhimu kupata wakati na kuifahamu kwa undani zaidi hata hivyo. Toleo la #Viacheslav Kirusi la chapisho hili: mchoro wa UML Java kwenye CodeGym

UML sasa ni nukuu ya kawaida ya uundaji wa mifumo ya kuona ya mifumo ya programu, iliyopitishwa na Kikundi cha Kusimamia Vitu (OMG) katika msimu wa joto wa 1997 na kuungwa mkono na bidhaa nyingi za CASE zinazolenga kitu.

Kiwango cha UML kinatoa seti ifuatayo ya michoro ya modeli:

Tumia mchoro wa kesi (mchoro wa kesi) - kwa kuiga michakato ya biashara ya shirika au biashara na kuamua mahitaji ya mfumo wa habari unaoundwa;

mchoro wa darasa (mchoro wa darasa) - kwa mfano wa muundo wa tuli wa madarasa ya mfumo na uhusiano kati yao;

mchoro wa tabia ya mfumo (michoro ya tabia);

michoro ya mwingiliano;

Michoro ya mlolongo - kwa mfano wa mchakato wa ujumbe kati ya vitu ndani ya kesi moja ya matumizi;

mchoro wa ushirikiano (mchoro wa ushirikiano) - kwa mfano wa mchakato wa ujumbe kati ya vitu ndani ya kesi hiyo ya matumizi;

mchoro wa statechart - kwa mfano wa tabia ya vitu vya mfumo wakati wa mpito kutoka hali moja hadi nyingine;

mchoro wa shughuli - kwa mfano wa tabia ya mfumo ndani ya mfumo wa kesi mbalimbali za matumizi, au shughuli za modeli;

mchoro wa utekelezaji (michoro ya utekelezaji):

Mchoro wa vipengele (michoro ya vipengele) - kwa mfano wa uongozi wa vipengele (mifumo ndogo) ya mfumo wa habari;

mchoro wa kupelekwa (mchoro wa kupelekwa) - kwa mfano wa usanifu wa kimwili wa mfumo wa habari ulioundwa.

Kwenye mtini. 1.1 inatoa modeli iliyojumuishwa ya mfumo wa habari, ikijumuisha michoro kuu zitakazoundwa katika mradi huu wa kozi.

Mchele. 1. Muundo jumuishi wa mfumo wa taarifa katika nukuu ya lugha ya UML

4.2. Tumia mchoro wa kesi

Kesi ya utumiaji ni mlolongo wa vitendo vinavyofanywa na mfumo kujibu tukio lililosababishwa na kitu fulani cha nje (mwigizaji). Kesi ya utumiaji inaelezea mwingiliano wa kawaida kati ya mtumiaji na mfumo. Katika kesi rahisi, kesi ya matumizi imedhamiriwa katika mchakato wa kujadili na mtumiaji kazi ambazo angependa kutekeleza katika mfumo huu wa habari. Katika UML, kesi ya utumiaji inaonyeshwa kama ifuatavyo:

Mtini.2. Tumia Kesi

Muigizaji ni jukumu ambalo mtumiaji anacheza kuhusiana na mfumo. Waigizaji huwakilisha majukumu, si watu mahususi au vyeo vya kazi. Ingawa zinaonyeshwa kama takwimu za wanadamu zilizowekwa mitindo katika michoro ya kesi za utumizi, mwigizaji pia anaweza kuwa mfumo wa taarifa wa nje unaohitaji taarifa fulani kutoka kwa mfumo. Unapaswa tu kuwaonyesha waigizaji kwenye mchoro wakati wanahitaji hali fulani za utumiaji. Katika UML, waigizaji wanawakilishwa kama maumbo:



Mtini.3. Mhusika (muigizaji)

Waigizaji wamegawanywa katika aina kuu tatu:

Watumiaji

mifumo;

Mifumo mingine inayoingiliana na hii;

Wakati unakuwa muigizaji ikiwa kuchochea kwa matukio yoyote kwenye mfumo inategemea.

4.2.1. Mahusiano kati ya Kesi za Matumizi na Watendaji

Katika UML, tumia michoro ya kesi inasaidia aina kadhaa za uhusiano kati ya vipengee vya mchoro:

Mawasiliano (mawasiliano),

Kujumuisha (pamoja na),

ugani (kupanua),

ujumla.

mawasiliano ya mawasiliano ni uhusiano kati ya kesi ya matumizi na mwigizaji. Katika UML, viungo vya mawasiliano vinaonyeshwa kwa kutumia muunganisho wa njia moja (laini thabiti).

Mtini.4. Mfano wa kiungo cha mawasiliano

Uunganisho wa kuingizwa hutumika katika hali ambapo kuna sehemu ya tabia ya mfumo ambayo inarudiwa katika kesi zaidi ya moja ya utumiaji. Kwa msaada wa viungo vile, kazi ya reusable ni kawaida ya mfano.

Uunganisho wa kiendelezi hutumika kuelezea mabadiliko katika tabia ya kawaida ya mfumo. Inaruhusu kesi moja ya utumiaji kutumia utendakazi wa kesi nyingine ya matumizi inapohitajika.

Mtini.5. Mfano wa uhusiano wa ujumuishaji na ugani

Ujumla wa mawasiliano inaonyesha kuwa waigizaji au madarasa kadhaa wana sifa za kawaida.

Mtini.6. Mfano wa uhusiano wa jumla

4.3.



Michoro ya mwingiliano kuelezea tabia ya vikundi vya kuingiliana vya vitu. Kwa kawaida, mchoro wa mwingiliano hufunika tu tabia ya vitu ndani ya kesi moja ya matumizi. Mchoro kama huo unaonyesha idadi ya vitu na ujumbe ambao wanabadilishana.

ujumbe ni njia ambayo kitu cha mtumaji huomba kitu cha mpokeaji kutekeleza mojawapo ya shughuli zake.

Ujumbe wa habari (taarifa). ni ujumbe ambao hutoa kitu kinachopokea na taarifa fulani ili kusasisha hali yake.

Omba ujumbe (wa kuhojiwa) ni ujumbe unaoomba matokeo ya baadhi ya taarifa kuhusu kitu cha mpokeaji.

Ujumbe wa Lazima ni ujumbe unaomtaka mpokeaji kutekeleza kitendo fulani.

Kuna aina mbili za michoro ya mwingiliano: michoro ya mlolongo na michoro ya ushirikiano.

4.3.1. Michoro ya mlolongo

mchoro wa mlolongo huakisi mtiririko wa matukio yanayotokea ndani ya kisa kimoja cha matumizi.

Waigizaji wote (waigizaji, madarasa, au vitu) wanaohusika katika hali fulani (kesi ya utumiaji) wanaonyeshwa juu ya mchoro. Mishale inalingana na ujumbe unaopitishwa kati ya mwigizaji na kitu, au kati ya vitu ili kutekeleza majukumu yanayohitajika.

Katika mchoro wa mfuatano, kitu kinaonyeshwa kama mstatili, ambapo mstari wa wima wenye vitone hutolewa chini. Mstari huu unaitwa mstari wa maisha wa kitu . Ni kipande cha mzunguko wa maisha wa kitu katika mchakato wa mwingiliano.

Kila ujumbe unawakilishwa kama mshale kati ya mistari ya maisha ya vitu viwili. Ujumbe huonekana kwa mpangilio unaoonekana kwenye ukurasa kutoka juu hadi chini. Kila ujumbe umetambulishwa na angalau jina la ujumbe. Kwa hiari, unaweza pia kuongeza hoja na maelezo fulani ya udhibiti. Unaweza kuonyesha kujikabidhi, ujumbe ambao kitu hujituma chenyewe, huku mshale wa ujumbe ukielekeza kwenye njia ile ile ya kuokoa maisha.

Mchele. 7. Mchoro wa Mpangilio Mfano

4.3.2. Mchoro wa ushirikiano

Michoro ya Ushirikiano onyesha mtiririko wa matukio ndani ya hali maalum (kesi ya matumizi). Ujumbe hupangwa kulingana na wakati, ingawa michoro za ushirikiano huzingatia zaidi uhusiano kati ya vitu. Mchoro wa ushirikiano unaonyesha taarifa zote ambazo mchoro wa mlolongo unao, lakini mchoro wa ushirikiano unaelezea mtiririko wa matukio kwa njia tofauti. Kutoka kwake ni rahisi kuelewa uhusiano uliopo kati ya vitu.

Katika mchoro wa ushirikiano, kama katika mchoro wa mfuatano, mishale inawakilisha ujumbe ambao hubadilishwa ndani ya kesi fulani ya matumizi. Mpangilio wao wa wakati unaonyeshwa kwa kuweka nambari za ujumbe.

Mchele. 8. Mfano wa mchoro wa ushirikiano

4.4. mchoro wa darasa

4.4.1. Habari za jumla

mchoro wa darasa inafafanua aina za madarasa ya mfumo na aina mbalimbali za viungo tuli vilivyopo kati yao. Michoro ya darasa pia inaonyesha sifa za darasa, uendeshaji wa darasa, na vikwazo vinavyowekwa kwenye mahusiano kati ya madarasa.

Mchoro wa darasa katika UML ni grafu ambayo nodi zake ni vipengele vya muundo tuli wa mradi (madarasa, miingiliano), na arcs ni uhusiano kati ya nodi (vyama, urithi, utegemezi).

Mchoro wa darasa unaonyesha mambo yafuatayo:

· Mfuko (mfuko) - seti ya vipengele vya mfano, kimantiki kuhusiana na kila mmoja;

· Darasa (darasa) - maelezo ya mali ya kawaida ya kikundi cha vitu sawa;

· Kiolesura (kiolesura) - darasa dhahania linalobainisha seti ya utendakazi ambayo kitu cha darasa kiholela kinachohusishwa na kiolesura fulani hutoa kwa vitu vingine.

4.4.2. Darasa

Darasa ni kundi la vyombo (vitu) ambavyo vina sifa zinazofanana, yaani data na tabia. Mwanachama binafsi wa darasa anaitwa kitu cha darasa, au kitu tu.

Tabia ya kitu katika UML inarejelea sheria zozote za mwingiliano wa kitu na ulimwengu wa nje na data ya kitu chenyewe.

Katika michoro, darasa linaonyeshwa kama mstatili na mpaka thabiti, umegawanywa na mistari mlalo katika sehemu 3:

Sehemu ya juu (sehemu ya jina) ina jina la darasa na mali zingine za jumla (haswa, stereotype).

Sehemu ya kati ina orodha ya sifa

Chini ni orodha ya shughuli za darasa zinazoonyesha tabia yake (vitendo vinavyofanywa na darasa).

Sehemu yoyote ya sifa na uendeshaji inaweza kuonyeshwa (au zote mbili). Kwa sehemu inayokosekana, hauitaji kuteka mstari wa kugawanya na kwa namna fulani unaonyesha uwepo au kutokuwepo kwa vipengele ndani yake.

Sehemu za ziada, kama vile Vighairi, zinaweza kuanzishwa kwa hiari ya utekelezaji fulani.

Mchele. 9. Mchoro wa darasa Mfano

4.4.2.1.Mitindo ya darasa

Ubaguzi wa darasa ni utaratibu wa kuainisha madarasa katika kategoria.

UML inafafanua dhana tatu kuu za darasa:

Mpaka (mpaka);

Chombo (chombo);

Udhibiti (usimamizi).

4.4.2.2.Madarasa ya mipaka

Madarasa ya mipaka ni madarasa hayo ambayo iko kwenye mpaka wa mfumo na mazingira yote. Hizi ni maonyesho, ripoti, violesura vya maunzi (kama vile vichapishi au vichanganuzi), na violesura vya mifumo mingine.

Ili kupata madarasa ya mipaka, unahitaji kuchunguza michoro za kesi za matumizi. Kila mwingiliano kati ya muigizaji na kesi ya utumiaji lazima iwe na angalau darasa moja la mpaka. Ni darasa hili ambalo huruhusu muigizaji kuingiliana na mfumo.

4.4.2.3.Madarasa ya chombo

Madarasa ya huluki yana habari iliyohifadhiwa. Zina maana kubwa zaidi kwa mtumiaji, na kwa hivyo majina yao mara nyingi hutumia maneno kutoka kwa eneo la somo. Kawaida, kwa kila darasa la chombo, jedwali huundwa kwenye hifadhidata.

4.4.2.4.Madarasa ya kudhibiti

Madarasa ya udhibiti yana jukumu la kuratibu vitendo vya madarasa mengine. Kwa kawaida, kila kesi ya utumiaji ina darasa moja la udhibiti ambalo linadhibiti mlolongo wa matukio kwa kesi hiyo ya utumiaji. Darasa la udhibiti linawajibika kwa uratibu, lakini haibebi utendaji wowote yenyewe, kwani madarasa mengine hayatumii idadi kubwa ya ujumbe. Badala yake, yeye mwenyewe hutuma ujumbe mwingi. Darasa la meneja hukabidhi tu jukumu kwa madarasa mengine, ndiyo maana mara nyingi hujulikana kama darasa la meneja.

Kunaweza kuwa na madarasa mengine ya udhibiti katika mfumo ambayo ni ya kawaida kwa matukio kadhaa ya matumizi. Kwa mfano, kunaweza kuwa na darasa la SecurityManager ambalo lina jukumu la kufuatilia matukio yanayohusiana na usalama. Darasa la TransactionManager hushughulikia uratibu wa ujumbe unaohusiana na shughuli za hifadhidata. Kunaweza kuwa na wasimamizi wengine wa kushughulikia vipengele vingine vya uendeshaji wa mfumo, kama vile kushiriki rasilimali, kuchakata data iliyosambazwa, au kushughulikia makosa.

Mbali na stereotypes zilizotajwa hapo juu, unaweza kuunda yako mwenyewe.

4.4.2.5.Sifa

Sifa ni kipande cha habari kinachohusishwa na darasa. Sifa huhifadhi data ya darasa iliyoambatanishwa.

Kwa sababu sifa zimo ndani ya darasa, zimefichwa kutoka kwa tabaka zingine. Kwa sababu hii, inaweza kuwa muhimu kubainisha ni madarasa gani yana haki ya kusoma na kurekebisha sifa. Sifa hii inaitwa mwonekano wa sifa.

Sifa inaweza kuwa na maadili manne yanayowezekana kwa paramu hii:

Umma (jumla, wazi). Thamani hii ya mwonekano inadhania kuwa sifa hiyo itaonekana kwa madarasa mengine yote. Darasa lolote linaweza kuona au kubadilisha thamani ya sifa. Kwa mujibu wa nukuu ya UML, sifa ya kawaida hutanguliwa na ishara "+".

Binafsi (imefungwa, siri). Sifa inayolingana haionekani kwa darasa lingine lolote. Sifa ya kibinafsi inaonyeshwa na ishara "-" kwa mujibu wa nukuu ya UML.

Imelindwa (iliyolindwa). Sifa kama hiyo inapatikana tu kwa darasa lenyewe na vizazi vyake. Nukuu ya UML ya sifa iliyolindwa ni ishara "#".

Kifurushi au Utekelezaji (bechi). Fikiria kuwa sifa iliyotolewa inashirikiwa, lakini tu ndani ya kifurushi chake. Aina hii ya mwonekano hauonyeshwi na ikoni yoyote maalum.

Kwa msaada wa kufungwa au usalama, inawezekana kuepuka hali wakati thamani ya sifa inabadilishwa na madarasa yote ya mfumo. Badala yake, mantiki ya urekebishaji wa sifa itafungwa katika darasa sawa na sifa yenyewe. Chaguo za mwonekano utakazoweka zitaathiri msimbo uliozalishwa.

4.4.2.6.Uendeshaji

Operesheni hutekeleza tabia inayohusiana na darasa. Operesheni ina sehemu tatu - jina, vigezo na aina ya kurudi.

Vigezo ni hoja ambazo operesheni hupokea kama pembejeo. Aina ya kurudi inarejelea matokeo ya hatua ya operesheni.

Mchoro wa darasa unaweza kuonyesha majina ya shughuli na majina ya shughuli pamoja na vigezo vyao na aina ya kurudi. Ili kupunguza mzigo kwenye mchoro, ni muhimu kuonyesha tu majina ya shughuli kwenye baadhi yao, na saini yao kamili kwa wengine.

Katika UML, shughuli zina nukuu ifuatayo:

Jina la Uendeshaji (hoja: aina ya data ya hoja, hoja2: aina ya data ya hoja,...): aina ya kurudisha

Kuna aina nne tofauti za shughuli za kuzingatia:

Shughuli za utekelezaji;

Shughuli za usimamizi;

Ufikiaji wa shughuli;

Shughuli za msaidizi.

Shughuli za utekelezaji

Shughuli za watekelezaji hutekeleza baadhi ya kazi za biashara. Shughuli hizo zinaweza kupatikana kwa kuchunguza michoro za mwingiliano. Michoro ya aina hii inazingatia kazi za biashara, na kila ujumbe kwenye mchoro unaweza uwezekano mkubwa kuhusishwa na uendeshaji wa utekelezaji.

Kila operesheni ya utekelezaji lazima ifuatiliwe kwa urahisi kwa mahitaji yanayolingana. Hii inafanikiwa katika hatua mbalimbali za simulation. Uendeshaji unatokana na ujumbe katika mchoro wa mwingiliano, ujumbe hutoka kwa maelezo ya kina ya mtiririko wa matukio, ambayo yanazalishwa kulingana na kesi ya matumizi, na ya mwisho kulingana na mahitaji. Kuweza kufuatilia mlolongo huu mzima husaidia kuhakikisha kwamba kila hitaji linatekelezwa katika msimbo, na kila kipande cha msimbo kinatekeleza mahitaji fulani.

Shughuli za usimamizi

Shughuli za meneja husimamia uundaji na uharibifu wa vitu. Wajenzi na waharibifu wa darasa huanguka katika kitengo hiki.

Uendeshaji wa ufikiaji

Sifa kawaida huwa za kibinafsi au zinalindwa. Walakini, madarasa mengine wakati mwingine yanahitaji kutazama au kubadilisha maadili yao. Kuna shughuli za ufikiaji kwa hili. Mbinu hii inafanya uwezekano wa kujumuisha kwa usalama sifa ndani ya darasa, kuzilinda kutokana na madarasa mengine, lakini bado kuruhusu ufikiaji unaodhibitiwa kwao. Kuunda shughuli za Pata na Uweke (kupata na kubadilisha thamani) kwa kila sifa ya darasa ni kiwango.

Shughuli za msaidizi

Usaidizi (shughuli za wasaidizi) ni shughuli za darasa ambazo ni muhimu kwa ajili yake kutekeleza majukumu yake, lakini ambayo madarasa mengine haipaswi kujua chochote. Hizi ni shughuli za darasa za kibinafsi na zinazolindwa.

Ili kutambua miamala, fanya yafuatayo:

1. Jifunze michoro ya mlolongo na michoro ya ushirika. Ujumbe mwingi katika michoro hii ni shughuli za utekelezaji. Ujumbe wa kuakisi utakuwa shughuli za usaidizi.

2. Fikiria shughuli za udhibiti. Huenda ukahitaji kuongeza wajenzi na waharibifu.

3. Zingatia shughuli za ufikiaji. Kwa kila sifa ya darasa ambayo madarasa mengine yatahitaji kufanya kazi nayo, unahitaji kuunda Pata na Uweke shughuli.

4.4.2.7.Viunganishi

Uhusiano ni uhusiano wa kimantiki kati ya madarasa. Hulipa darasa uwezo wa kujifunza kuhusu sifa, utendakazi na mahusiano ya darasa lingine. Kwa maneno mengine, ili darasa moja kutuma ujumbe kwa mwingine katika mlolongo au mchoro wa ushirikiano, lazima kuwe na uhusiano kati yao.

Kuna aina nne za uhusiano ambazo zinaweza kuanzishwa kati ya madarasa: miungano, utegemezi, mijumuisho, na jumla.

Muungano wa mawasiliano

Uhusiano ni uhusiano wa kimaana kati ya madarasa. Zimechorwa kwenye mchoro wa darasa kama mstari wa kawaida.

Mchele. 10. Chama cha mawasiliano

Mashirika yanaweza kuwa ya pande mbili, kama katika mfano, au unidirectional. Katika UML, uhusiano wa pande mbili huchorwa kama mstari rahisi usio na mishale, au kwa mishale pande zote mbili za mstari. Muungano wa unidirectional una mshale mmoja tu unaoonyesha mwelekeo wake.

Mwelekeo wa chama unaweza kuamua kwa kuchunguza michoro za mlolongo na michoro ya ushirika. Ikiwa ujumbe wote juu yao hutumwa na darasa moja tu na kupokea tu na darasa lingine, lakini si kinyume chake, kuna mawasiliano ya unidirectional kati ya madarasa haya. Ikiwa angalau ujumbe mmoja utatumwa kwa mwelekeo tofauti, ushirika lazima uwe wa pande mbili.

Vyama vinaweza kuwa reflexive. Uhusiano wa kutafakari unamaanisha kuwa mfano mmoja wa darasa huingiliana na matukio mengine ya darasa moja.

Uraibu wa mawasiliano

Mahusiano ya utegemezi pia yanaonyesha uhusiano kati ya madarasa, lakini daima ni ya unidirectional na yanaonyesha kuwa darasa moja inategemea ufafanuzi uliofanywa katika mwingine. Kwa mfano, darasa A hutumia mbinu za darasa B. Kisha, wakati darasa B linabadilika, ni muhimu kufanya mabadiliko yanayolingana katika darasa A.

Utegemezi unawakilishwa na mstari wa nukta uliochorwa kati ya vipengee viwili vya mchoro, na kipengele kilichotiwa nanga mwishoni mwa mshale kinasemekana kuwa kinategemea kipengele kilichotiwa nanga mwanzoni mwa mshale huo.

Mchele. 11. Uraibu wa mawasiliano

Wakati wa kuunda msimbo wa madarasa haya, hakuna sifa mpya zitaongezwa kwao. Hata hivyo, viendeshaji lugha mahususi vinavyohitajika kusaidia mawasiliano vitaundwa.

Mkusanyiko wa mawasiliano

Majumuisho ni aina ngumu zaidi ya ushirika. Ujumlisho ni uhusiano kati ya sehemu nzima na sehemu yake. Kwa mfano, unaweza kuwa na darasa la Gari, pamoja na Injini, madarasa ya matairi, na madarasa ya sehemu zingine za gari. Kama matokeo, kitu cha darasa Gari kitajumuisha kitu cha darasa la Injini, vitu vinne vya Matairi, n.k. Mikusanyiko inaonyeshwa kama mstari na rhombus kwa darasa ambalo ni nambari kamili:

Mchele. 11. Mkusanyiko wa mawasiliano

Kando na ujumlisho rahisi, UML inatanguliza aina thabiti zaidi ya ujumlisho inayoitwa utunzi. Kulingana na muundo, sehemu ya kitu inaweza kuwa ya jumla moja, na, zaidi ya hayo, kama sheria, mzunguko wa maisha wa sehemu unaambatana na mzunguko wa yote: wanaishi na kufa nayo. Uondoaji wowote wa nzima unaenea kwa sehemu zake.

Ufutaji huu wa kuporomoka mara nyingi huchukuliwa kuwa sehemu ya ufafanuzi wa kujumlisha, lakini daima hudokezwa wakati wingi wa jukumu ni 1..1; kwa mfano, ikiwa Mteja anahitaji kufutwa, basi ufutaji huo lazima uenezwe kwa Maagizo (na, kwa upande wake, Njia za Agizo).

UML ni lugha iliyounganishwa ya kielelezo cha picha kwa ajili ya kuelezea, kuibua, kubuni na kuhifadhi mifumo ya OO. UML imeundwa kusaidia mchakato wa uundaji wa PS kulingana na mbinu ya OO, kupanga uhusiano kati ya dhana ya dhana na programu, na kuakisi matatizo ya kuongeza mifumo changamano. Miundo ya UML hutumiwa katika hatua zote za mzunguko wa maisha ya programu, kutoka kwa uchanganuzi wa biashara hadi matengenezo ya mfumo. Mashirika tofauti yanaweza kutumia UML kwa njia yao wenyewe, kulingana na maeneo yao ya shida na teknolojia zinazotumiwa.

Historia fupi ya UML

Kufikia katikati ya miaka ya 1990, njia kadhaa za uundaji wa OO zilipendekezwa na waandishi mbalimbali, ambao kila mmoja alitumia nukuu yake ya picha. Wakati huo huo, mojawapo ya njia hizi zilikuwa na nguvu zake, lakini hazikuruhusu kujenga mfano kamili wa PS, ili kuionyesha "kutoka pande zote", yaani, makadirio yote muhimu (Angalia kifungu cha 1). Kwa kuongeza, ukosefu wa kiwango cha mfano wa OO ulifanya kuwa vigumu kwa watengenezaji kuchagua njia inayofaa zaidi, ambayo ilizuia matumizi makubwa ya njia ya OO ya maendeleo ya programu.

Kwa ombi la Kikundi cha Usimamizi wa Kitu (OMG) - shirika linalohusika na kupitisha viwango katika uwanja wa teknolojia ya kitu na hifadhidata, shida ya haraka ya umoja na viwango ilitatuliwa na waandishi wa njia tatu maarufu za OO - G. Booch. , D. Rambo na A. Jacobson, ambao waliunganisha Juhudi walitengeneza toleo la 1.1 la UML, lililoidhinishwa na OMG mwaka wa 1997 kama kawaida.

UML ni lugha

Lugha yoyote huwa na kamusi na kanuni za kuunganisha maneno ili kutengeneza miundo yenye maana. Kwa hivyo, haswa, lugha za programu zimepangwa, kama vile UML. Sifa yake bainifu ni kwamba msamiati wa lugha huundwa na vipengele vya picha. Kila alama ya picha ina semantiki maalum, kwa hivyo kielelezo kilichoundwa na msanidi mmoja kinaweza kueleweka bila utata na mwingine, na pia kwa zana inayotafsiri UML. Kutoka kwa hili, haswa, inafuata kwamba mfano wa PS uliowasilishwa katika UML unaweza kutafsiriwa kiatomati kwa lugha ya programu ya OO (kama vile Java, C ++, VisualBasic), ambayo ni, na zana nzuri ya uundaji wa kuona inayounga mkono UML, na. kujenga kielelezo , tutapata tupu ya msimbo wa programu unaofanana na mtindo huu.

Inapaswa kusisitizwa kuwa UML ni lugha, si mbinu. Inaelezea ni vipengele gani vya kuunda mifano na jinsi ya kuzisoma, lakini haisemi chochote kuhusu mifano na katika hali gani inapaswa kuendelezwa. Ili kuunda njia kulingana na UML, ni muhimu kuiongezea na maelezo ya mchakato wa maendeleo ya PS. Mfano wa mchakato kama huu ni Mchakato wa Rational Unified, ambao utajadiliwa katika makala zijazo.

Msamiati wa UML

Mfano huo unawakilishwa kwa namna ya vyombo na mahusiano kati yao, ambayo yanaonyeshwa kwenye michoro.

Essences ni vifupisho ambavyo ni vipengele vikuu vya mifano. Kuna aina nne za vyombo - kimuundo (darasa, kiolesura, kijenzi, kesi ya matumizi, ushirikiano, nodi), kitabia (mwingiliano, hali), kambi (vifurushi) na maelezo (maoni). Kila aina ya huluki ina uwakilishi wake wa picha. Vyombo vitajadiliwa kwa kina wakati wa kusoma michoro.

Uhusiano onyesha uhusiano tofauti kati ya vyombo. Aina zifuatazo za mahusiano zimefafanuliwa katika UML:

  • Uraibu inaonyesha uhusiano huo kati ya vyombo viwili, wakati mabadiliko katika mmoja wao - huru - yanaweza kuathiri semantics ya nyingine - tegemezi. Utegemezi unawakilishwa na kishale chenye vitone kinachoelekeza kutoka huluki tegemezi hadi huluki inayojitegemea.
  • Muungano ni uhusiano wa kimuundo unaoonyesha kwamba vitu vya chombo kimoja vinahusiana na vitu vya chombo kingine. Kielelezo, muungano unaonyeshwa kama mstari unaounganisha huluki husika. Mashirika hutumiwa kuelekeza kati ya vitu. Kwa mfano, ushirikiano kati ya madarasa "Agizo" na "Bidhaa" inaweza kutumika kupata bidhaa zote zilizotajwa kwa utaratibu fulani - kwa upande mmoja, au kupata maagizo yote ambayo yana bidhaa hii - kwa upande mwingine. Ni wazi kwamba programu zinazolingana lazima zitekeleze utaratibu ambao hutoa urambazaji kama huo. Ikiwa urambazaji unahitajika katika mwelekeo mmoja tu, unaonyeshwa kwa mshale mwishoni mwa ushirika. Kesi maalum ya ushirika ni mkusanyiko - uhusiano wa fomu "nzima" - "sehemu". Kielelezo, imeangaziwa na rhombus mwishoni karibu na chombo-nzima.
  • Ujumla ni uhusiano kati ya taasisi ya mzazi na taasisi ya mtoto. Kimsingi, uhusiano huu unaonyesha mali ya urithi kwa madarasa na vitu. Ujumla unaonyeshwa kama mstari unaoishia na pembetatu inayoelekeza kwenye huluki kuu. Mtoto hurithi muundo (sifa) na tabia (mbinu) za mzazi, lakini wakati huo huo anaweza kuwa na vipengele vipya vya muundo na mbinu mpya. UML inaruhusu urithi mwingi wakati huluki inahusiana na zaidi ya huluki moja ya mzazi.
  • Utekelezaji- uhusiano kati ya chombo kinachofafanua uainishaji wa tabia (interface) na chombo kinachofafanua utekelezaji wa tabia hii (darasa, sehemu). Uhusiano huu hutumiwa kwa kawaida katika uundaji wa vipengele na utaelezwa kwa undani zaidi katika makala zinazofuata.

Michoro. UML hutoa michoro ifuatayo:

  • Michoro inayoelezea tabia ya mfumo:
    • Michoro ya Jimbo (Michoro ya Jimbo),
    • Michoro ya shughuli,
    • Michoro ya kitu,
    • Michoro ya mlolongo,
    • michoro ya ushirikiano;
  • Michoro inayoelezea utekelezaji wa kimwili wa mfumo:
    • michoro ya vipengele;
    • Michoro ya kupeleka.

Mtazamo wa udhibiti wa mfano. Vifurushi.

Tayari tumesema kwamba ili mfano ueleweke vizuri na mtu, ni muhimu kuipanga kwa hierarchically, na kuacha idadi ndogo ya vyombo katika kila ngazi ya uongozi. UML inajumuisha njia ya kupanga uwakilishi wa daraja la modeli - vifurushi. Mfano wowote una seti ya vifurushi ambavyo vinaweza kuwa na madarasa, kesi za utumiaji, na vyombo vingine na michoro. Kifurushi kinaweza kujumuisha vifurushi vingine, ambavyo hukuruhusu kuunda safu. UML haitoi michoro tofauti za kifurushi, lakini zinaweza kuonekana katika michoro mingine. Kifurushi kinaonyeshwa kama mstatili na kichupo.

UML hutoa nini.

  • maelezo ya kihierarkia ya mfumo mgumu kwa kuangazia vifurushi;
  • urasimishaji wa mahitaji ya kazi kwa mfumo kwa kutumia vifaa vya kesi za utumiaji;
  • maelezo ya mahitaji ya mfumo kwa kuunda michoro ya shughuli na matukio;
  • uteuzi wa madarasa ya data na ujenzi wa mfano wa data ya dhana kwa namna ya michoro za darasa;
  • uteuzi wa madarasa ambayo yanaelezea kiolesura cha mtumiaji, na uundaji wa mpango wa kusogeza kwenye skrini;
  • maelezo ya michakato ya mwingiliano wa vitu katika utendaji wa kazi za mfumo;
  • maelezo ya tabia ya vitu kwa namna ya michoro ya shughuli na majimbo;
  • maelezo ya vipengele vya programu na mwingiliano wao kupitia interfaces;
  • maelezo ya usanifu wa kimwili wa mfumo.

Na ya mwisho…

Licha ya mvuto wote wa UML, itakuwa ngumu kuitumia katika uundaji halisi wa PS bila zana za uundaji wa kuona. Zana kama hizo hukuruhusu kuwasilisha haraka michoro kwenye skrini ya onyesho, kuziandika, kutoa nafasi zilizo wazi za nambari za programu katika lugha tofauti za programu za OO, na kuunda schema za hifadhidata. Wengi wao ni pamoja na uwezekano wa kuunda tena nambari za programu - kurejesha makadirio fulani ya mfano wa PS kwa kuchambua kiatomati nambari za chanzo cha programu, ambayo ni muhimu sana kwa kuhakikisha kuwa mfano na nambari zinalingana na wakati wa kubuni mifumo ambayo hurithi utendaji wa mifumo iliyotangulia. .

Onyesha tabia ya kitu kimoja wakati wa maisha yake, tangu kuundwa kwa kitu hadi uharibifu wake. Kila mchoro wa serikali unawakilisha otomatiki fulani.

Mpango wa utekelezaji

Katika sehemu ya Maelezo, jifunze kuhusu seti ya msingi ya herufi ya statechart inayohitajika ili kuweza kusoma michoro.

Baada ya kusoma sehemu nyingine ("Mfano", "Matumizi"), unaweza kujaribu mkono wako katika kuunda michoro ya hali peke yako.

Vidokezo (maelezo)

Hapa kuna seti kuu ya mhusika michoro ya serikali inahitajika kuweza kusoma mchoro. Baada ya kusoma sehemu nyingine ("Mfano", "Maombi"), utaweza kutunga michoro ya serikali peke yako!

Muda Picha Maelezo
Pseudostate ya awali Hali ya awali ya mfumo
Mpito Mpito maana yake ni kuhama kutoka jimbo moja hadi jingine.
Jimbo Inaashiria vitendo vinavyofanywa na mfumo (vinaweza kujumuisha chaguo zinazowezekana) ambazo husababisha matokeo yaliyozingatiwa na watendaji.
Jimbo
hali ya shughuli
Hatua ngumu katika kesi ya matumizi inaweza kuwakilishwa na kesi nyingine ya matumizi.
Kwa maneno ya UML, tunasema kwamba kesi ya matumizi ya kwanza inajumuisha ya pili.
Mwisho wa hali Inakuruhusu kuteua mipaka ya mifumo au mifumo midogo.
Shughuli za ndani Hali ambapo majimbo yanaweza kujibu matukio bila kufanya mpito, ambapo tukio, ulinzi na shughuli huwekwa ndani ya mstatili wa serikali.
shughuli ya pembejeo Shughuli ya kuingia inatekelezwa wakati wowote unapoingia jimboni
shughuli ya pato Ondoka kwa shughuli - inatekelezwa wakati wowote unapoondoka kwenye jimbo.
serikali kuu
Mara nyingi hutokea kwamba majimbo kadhaa yana mabadiliko ya kawaida na shughuli za ndani. Katika hali kama hizi, unaweza kuzigeuza kuwa substates (substates), na kuhamisha tabia ya jumla kwa serikali kuu (superstate).
Nchi Sambamba
Majimbo yanaweza kugawanywa katika majimbo mengi yanayofuatana ambayo yanaendeshwa kwa wakati mmoja.

Jinsi ya kutumia mbinu ya ubunifu

Michoro ya hali ya UML ni nzuri kwa kuelezea tabia ya kitu kimoja katika visa vingi vya utumiaji. Lakini hazifai sana kwa kuelezea tabia inayoonyeshwa na mwingiliano wa vitu vingi. Kwa hiyo, ni mantiki kutumia teknolojia nyingine kwa kushirikiana na michoro ya serikali. Kwa mfano, michoro ya mwingiliano (Sura ya 4) ni nzuri katika kuelezea tabia ya vitu vingi katika kesi moja ya matumizi, wakati michoro za shughuli za UML. ni nzuri kwa kuonyesha mlolongo kuu wa vitendo vya vitu kadhaa katika matukio kadhaa ya matumizi.

Sio kila mtu anayezingatia michoro ya serikali kuwa ya asili. Tazama jinsi wataalam wanavyofanya kazi nao. Inawezekana kwamba washiriki wa timu yako hawafikirii chati za serikali zinafaa kwa njia yao ya kufanya kazi. Huu sio ugumu mkubwa zaidi; lazima ukumbuke kushiriki mbinu tofauti za kufanya kazi.

Ikiwa unatumia chati za serikali, usijaribu kuzichora kwa kila darasa kwenye mfumo. Njia hii mara nyingi hutumiwa kwa ajili ya ukamilifu rasmi, lakini karibu kila mara ni kupoteza jitihada. Tumia chati za serikali pekee kwa madarasa yanayoonyesha tabia ya kuvutia, ambapo kupanga chati ya serikali hukusaidia kuelewa jinsi mambo yanavyoendelea.

Wataalamu wengi wanaamini hivyo kihariri cha UI na vidhibiti vina utendakazi muhimu wakati unaonyeshwa na statechart.

Jinsi ya kujifunza

Hapa tumejaribu kutoa njia rahisi ya kujifunza Michoro ya hali ya UML.

Kama lugha zingine nyingi, hutumia seti ya wahusika kuelezea. Maana ya alama hizi zinaweza kupatikana katika jedwali katika sehemu ya "Vidokezo (maelezo)". Kila ishara ina jina lake (neno) na tahajia. Pia, kila neno hutolewa kwa maelezo mafupi ili kuelewa haraka kiini chake kikuu.

Ifuatayo, tunapendekeza uende kwenye sehemu ya "Mifano". michoro ya serikali kujaribu mkono wako katika kusoma chati tofauti. Kisha unapaswa kusoma sehemu ya "Matumizi", kwa sababu, ingawa idadi ya aina za michoro katika UML ni ndogo, unaweza kupata manufaa ya juu kwa kuzitumia tu ikiwa unatumia michoro zinazofaa kwa madhumuni yaliyokusudiwa.

Mfano wa matumizi

Michoro ya mashine ya serikali ni mbinu inayojulikana sana ya kuelezea tabia ya mfumo. Michoro ya serikali imekuwepo kwa namna moja au nyingine tangu miaka ya 1960, na katika siku za mwanzo za programu inayolenga kitu, ilitumiwa kuwakilisha tabia ya mfumo. Katika mbinu zenye mwelekeo wa kitu, unachora mchoro wa hali ya darasa moja ili kuonyesha tabia ya kitu kimoja wakati wa uhai wake.

Wakati wowote mashine za hali ya juu zinapoandikwa, mifumo ya udhibiti wa safari za baharini au mashine za uuzaji bila shaka hutajwa kama mifano.
Tuliamua kutumia mtawala wa jopo la kudhibiti siri katika Ngome ya Gothic. Katika ngome hii, tunataka kuficha hazina zetu ili ni vigumu kupata. Ili kupata upatikanaji wa lock ya salama, ni lazima tuondoe mshumaa wa kimkakati kutoka kwa candelabra, lakini lock itaonekana tu ikiwa mlango umefungwa. Baada ya kufuli inaonekana, tunaweza kuingiza ufunguo ndani yake na kufungua salama. Kwa usalama ulioongezwa, tumeifanya ili salama iweze kufunguliwa tu baada ya mshumaa kuondolewa. Iwapo mwizi atashindwa kuzingatia tahadhari hii, basi tutamwachia mnyama mbaya sana ambaye atammeza mwizi.

Kwenye mtini. 10.1 imeonyeshwa mchoro wa serikali darasa la mtawala ambalo linasimamia mfumo wangu wa usalama usio wa kawaida. Mchoro wa hali huanza na hali ya kitu cha mtawala kinachoundwa: majimbo Subiri. Hii imeonyeshwa kwenye mchoro na pseudostate ya awali, ambayo si hali, lakini ina mshale unaoelekeza kwenye hali ya awali.
Mchoro unaonyesha kuwa kidhibiti kinaweza kuwa katika moja ya majimbo matatu: Subiri (Kusubiri), Funga (Funga) na Fungua (Imefunguliwa). Mchoro pia unaonyesha sheria kulingana na ambayo mtawala hupita kutoka hali moja hadi nyingine. Sheria hizi zinawakilishwa kama mpito - mistari inayounganisha majimbo.

Mpito maana yake ni kuhama kutoka jimbo moja hadi jingine. Kila mpito ina lebo yake, ambayo ina sehemu tatu:
kitambulisho cha kichochezi [ulinzi]/shughuli (sahihi ya kichochezi / shughuli). Zote ni za hiari. Kwa kawaida, kitambulisho cha kichochezi ni tukio pekee ambalo linaweza kusababisha mabadiliko ya hali.

Mlinzi, ikiwa imebainishwa, ni hali ya kimantiki ambayo lazima izingatiwe ili mpito ufanyike. Shughuli ni baadhi ya tabia ya mfumo wakati wa mpito. Inaweza kuwa usemi wowote wa tabia. Fomu kamili ya kianzisha kitambulisho inaweza kujumuisha matukio na vigezo vingi. Mpito kutoka kwa hali ya Kusubiri (Mchoro 10.1) hadi hali nyingine inaweza kusomeka kama "Katika hali ya Kusubiri, ikiwa mshumaa utaondolewa, utaona kufuli na uende kwa hali ya Kufunga."

Sehemu zote tatu za maelezo ya mpito ni za hiari. Kuruka shughuli kunamaanisha kuwa hakuna kinachotokea wakati wa mpito. Ruka walinzi inamaanisha kuwa mpito hutekelezwa kila wakati ikiwa tukio la kuchochea litatokea. Kitambulisho cha kichochezi hakikosekani mara chache, lakini hutokea. Hii ina maana kwamba mpito hutokea mara moja, ambayo inaweza kuzingatiwa hasa katika majimbo ya kazi.

Wakati tukio linatokea katika hali fulani, basi mpito mmoja tu unaweza kufanywa kutoka kwa hali hii, kwa mfano, katika hali ya Lock (Mchoro 10.1), ulinzi lazima uwe wa kipekee. Tukio likitokea na hakuna mabadiliko yanayoruhusiwa—kwa mfano, kufunga sefu katika hali ya Kungoja, au kuondoa mshumaa wakati mlango uko wazi—tukio hilo linapuuzwa.

Hali ya mwisho ( hali ya mwisho) inamaanisha kuwa mashine ya serikali imemaliza kufanya kazi, ambayo husababisha kitu cha mtawala kufutwa. Kwa hivyo kwa wale ambao hawakuwa waangalifu vya kutosha kuanguka kwenye mtego, wakati kitu cha kudhibiti kinakoma kuwapo, tunalazimika kumrudisha sungura kwenye ngome yake, kunyoosha sakafu, na kuwasha tena mfumo.

Kumbuka kwamba mashine za serikali zinaweza tu kuonyesha vitu ambavyo vinazingatiwa moja kwa moja au kutekelezwa. Kwa hivyo ingawa unaweza kutarajia sisi kuweka kitu ndani au kuchukua kitu nje ya salama wakati mlango umefunguliwa, hatukuweka alama kwenye mchoro kwa sababu kidhibiti hakiwezi kutuambia chochote kukihusu.

Wakati watengenezaji wanazungumza juu ya vitu, mara nyingi hurejelea hali ya vitu, kumaanisha mchanganyiko wa data zote zilizomo kwenye uwanja wa kitu. Hata hivyo, hali katika mchoro wa mashine ya serikali ni dhana dhahania ya hali; Jambo ni kwamba hali tofauti huashiria njia tofauti za kujibu matukio.

Shughuli za ndani katika chati ya serikali

Mataifa yanaweza kujibu matukio bila kufanya mabadiliko kwa kutumia shughuli za ndani (shughuli za ndani), ambapo tukio, ulinzi, na shughuli huwekwa ndani ya mstatili wa serikali.

Kwenye mtini. Mchoro 10.2 unaonyesha hali na shughuli za ishara za ndani na usaidizi wa matukio ya mfumo ambayo unaweza kuona katika sehemu za maandishi za mhariri. UI. Shughuli ya ndani ni kama mpito binafsi - mpito unaorudi katika hali ile ile. Syntax ya shughuli za ndani hujengwa kulingana na mpango huo wa kimantiki wa matukio, ulinzi na taratibu.

Kwenye mtini. 10.2 pia inaonyesha shughuli maalum: shughuli za pembejeo na pato. shughuli ya pembejeo kutekelezwa wakati wowote unapoingia jimboni; shughuli ya pato- wakati wowote unapoondoka jimboni. Walakini, shughuli za ndani hazijaanza shughuli ya pembejeo na pato; hii ndio tofauti kati ya shughuli za ndani namabadiliko ya kibinafsi .

Shughuli inasema katika chati ya serikali

Katika majimbo ambayo tumeelezea kufikia sasa, kitu kiko kimya na kinasubiri tukio linalofuata kabla ya kufanya chochote. Walakini, majimbo yanawezekana ambayo kitu kinaonyesha shughuli fulani.

Jimbo Inatafuta katika mtini. 10.3 ni hali kama hiyo hali ya shughuli: shughuli inayoendelea inaonyeshwa na ishara fanya/; kwa hivyo neno fanya shughuli (kuwa hai). Baada ya utafutaji kukamilika, mabadiliko bila shughuli yoyote hufanywa, kama vile kuonyesha vifaa vipya (Onyesha Vifaa Vipya). Ikiwa tukio la kughairi litatokea wakati wa shughuli ( ghairi), Hiyo fanya-shughuli inaingiliwa tu na tunarudi jimboni Sasisha Dirisha la Vifaa.

Shughuli zote mbili na shughuli za kawaida zinawakilisha udhihirisho wa tabia fulani. Tofauti muhimu kati ya hizi mbili ni kwamba shughuli za kawaida hutokea "papo hapo" na haziwezi kuingiliwa na matukio ya kawaida, wakati shughuli za dozi zinaweza kukimbia kwa muda mfupi na zinaweza kukatizwa, kama inavyoonyeshwa kwenye Mchoro 2. 10.3. Instantaneity kwa mifumo tofauti inatafsiriwa tofauti; kwa mifumo ya muda halisi, hii inaweza kuchukua maagizo kadhaa ya mashine, na kwa programu ya kompyuta, inaweza kuchukua sekunde kadhaa.

KATIKA UML 1 shughuli za kawaida zilionyeshwa na neno kitendo(kitendo) na neno shughuli(shughuli) ilitumika tu kwa fanya shughuli.

Majimbo makubwa

Mara nyingi hutokea kwamba majimbo kadhaa yana mabadiliko ya kawaida na shughuli za ndani. Katika hali kama hizi, unaweza kuzigeuza kuwa substates (substates), na kuhamisha tabia ya jumla kwa serikali kuu (superstate), kama inavyoonyeshwa kwenye Mtini. 10.4. Bila serikali kuu, tungelazimika kuchora mpito ghairi(ghairi) kwa majimbo yote matatu ndani ya jimbo Ingiza Maelezo ya Muunganisho.

Nchi Sambamba

Majimbo yanaweza kugawanywa katika majimbo mengi yanayofuatana ambayo yanaendeshwa kwa wakati mmoja. Kwenye mtini. Mchoro 10.5 unaonyesha saa rahisi ya kengele inayoweza kuwasha CD au redio na kuonyesha saa ya sasa au muda wa mawimbi.

Chaguo za CD/redio na saa ya sasa/saa ya kengele ni sambamba. Ikiwa ungetaka kuwakilisha hii na mchoro wa hali isiyolingana, ungeishia na mchoro mchafu kwani majimbo yanahitaji kuongezwa. Kugawanya tabia hizi mbili katika michoro mbili za serikali hufanya iwe wazi zaidi.

Mchele. 10.5 inajumuisha pia hali ya awali(historia pseudostate). Hii ina maana kwamba saa inapowashwa, chaguo la redio/CD hubadilika kuwa hali ambayo saa ilikuwa wakati imezimwa. Mshale unaotoka kwenye historia unaonyesha ni hali gani ilikuwepo awali wakati hapakuwa na historia.

Utekelezaji wa chati za serikali

Mchoro wa hali unaweza kutekelezwa kwa njia tatu kuu: kwa kutumia taarifa ya kubadili iliyofungwa, muundo wa Jimbo, na jedwali la serikali. Mbinu ya moja kwa moja ya kufanya kazi na statecharts ni taarifa ya kubadili kiota, kama ile iliyo kwenye Kielelezo 1. 10.6.

Ingawa njia hii ni moja kwa moja mbele, ni ndefu sana hata kwa kesi hii rahisi. Kwa kuongeza, kwa njia hii ni rahisi sana kupoteza udhibiti, kwa hiyo hatupendekeza kuitumia hata katika hali ya msingi.
Mchoro wa Jimbo unawakilisha safu ya tabaka za serikali kwa kushughulikia tabia ya serikali. Kila jimbo katika chati ya serikali ina hali yake ndogo. Kidhibiti kina mbinu kwa kila tukio ambazo zinaelekeza upya kwa tabaka la serikali. Mchoro wa hali iliyoonyeshwa kwenye Mtini. 10.1 inaweza kutekelezwa kwa kutumia madarasa yaliyoonyeshwa kwenye Mtini. 10.7.

Sehemu ya juu ya uongozi ni darasa la dhahania ambalo lina maelezo ya njia zote zinazoshughulikia matukio, lakini hakuna utekelezaji.
Kwa kila hali mahususi, inatosha kuandika upya njia ya kidhibiti cha tukio maalum ambalo huanzisha mpito kutoka kwa serikali.
Jedwali la serikali linawakilisha mchoro wa serikali kama data.

Kwa hivyo, mchoro kwenye Mtini. 10.1 inaweza kuwasilishwa kwa namna ya jedwali. 10.1.
Kisha tunaunda mkalimani anayetumia jedwali la serikali wakati wa utekelezaji wa programu, au jenereta ya msimbo ambayo hutoa madarasa kulingana na jedwali hili.

Kwa wazi, kazi nyingi kwenye meza ya serikali hufanyika mara moja, lakini basi inaweza kutumika wakati wowote unahitaji kutatua tatizo linalohusiana na serikali. Jedwali la hali ya wakati wa kukimbia linaweza kubadilishwa bila kurudisha, ambayo ni rahisi. Kiolezo cha serikali ni rahisi kukusanyika, na ingawa kila jimbo linahitaji darasa tofauti, idadi ya nambari ambayo lazima iandikwe ni ndogo sana.

Utekelezaji uliotolewa ni mdogo sana, lakini unatoa wazo la jinsi ya kuomba michoro ya serikali. Katika kila kisa, utekelezwaji wa mifano ya serikali husababisha programu isiyo ya kawaida, kwa hivyo ni bora kutumia aina fulani ya utengenezaji wa msimbo kwa hili.

Jiandikishe kwa habari za tovuti, unaweza kupata fomu ya usajili kwenye safu wima ya kulia ya tovuti.

Ikiwa unataka kujifunza jinsi ya kujitegemea kitaaluma, tunakualika kwenye kozi "".

UML au Lugha Iliyounganishwa ya Kuiga ni lugha ya maelezo ya kielelezo ya uundaji wa kitu katika nyanja ya ukuzaji wa programu. Lakini utumiaji wa UML sio tu kwa IT, eneo lingine kubwa la utumiaji wa vitendo wa UML ni muundo wa mchakato wa biashara, muundo wa mfumo na uchoraji wa ramani wa miundo ya shirika. UML inawawezesha wasanidi programu kukubaliana kuhusu kanuni za picha ili kuwakilisha dhana zinazofanana na kuzingatia usanifu na ukuzaji.

Faida za UML

  • UML hutumia alama za picha kwa vipengele vya mfumo unaoigwa, na michoro ya UML ni rahisi kueleweka;
  • UML inafanya uwezekano wa kuelezea mifumo kutoka karibu kila hatua inayowezekana ya maoni, kwa kuzingatia vipengele mbalimbali;
  • UML ina mwelekeo wa kitu: mbinu zake za uchanganuzi na ujenzi ziko karibu na njia za upangaji zinazotumiwa katika lugha za kisasa za OOP;
  • UML ni kiwango wazi. Kiwango kinakua na kubadilika kutoka toleo hadi toleo, kukidhi mahitaji ya kisasa zaidi ya kuelezea mifumo;
  • ina utaratibu wa upanuzi unaokuruhusu kutambulisha maandishi ya ziada na aina za michoro, ambayo inafanya uwezekano wa kutumia UML sio tu katika uwanja wa IT.

Aina za michoro za UML

Kuna aina 14 za michoro katika UML. Wanaweza kugawanywa katika vikundi 2:

  • ya kimuundo, inayowakilisha muundo wa habari;
  • kitabia, inayowakilisha tabia ya mfumo na vipengele mbalimbali vya mwingiliano. Aina ndogo tofauti za michoro ya tabia ni michoro ya mwingiliano.

Uongozi wa aina za mchoro wa UML, kuwakilishwa na mchoro wa darasa

Michoro ya miundo

  1. mchoro wa darasa ni kipengele muhimu katika uundaji unaolenga kitu. Kwa msaada wa mchoro huu (kwa kweli, kupitia madarasa, wao sifa, mbinu na tegemezi kati ya madarasa) inaelezea modeli ya kikoa na muundo wa mfumo wa kielelezo.
  2. Mchoro wa kipengele inaonyesha mgawanyiko wa msimbo wa programu katika vitalu vikubwa (vipengele vya kimuundo) na maonyesho tegemezi kati yao. Vipengele vinaweza kuwa vifurushi, moduli, maktaba, faili, nk.
  3. mchoro wa kitu inaonyesha kata kamili au sehemu ya mfumo wa kuigiza kwa wakati fulani. Inawakilisha mifano ya madarasa (vitu), hali yao (thamani za sifa za sasa) na uhusiano kati yao.
  4. Mchoro wa muundo wa mchanganyiko inaonyesha muundo wa ndani wa madarasa na, ikiwa inawezekana, mwingiliano kati ya vipengele vya muundo huu.
  5. Mchoro wa kifurushi inaonyesha vifurushi na uhusiano kati yao. Aina hii ya mchoro hutumikia kurahisisha muundo wa mfano (na, ipasavyo, kufanya kazi nayo) kwa kuchanganya vipengele vya mfano katika vikundi kulingana na vigezo fulani.
  6. Mchoro wa Usambazaji mifano ya upelekaji wa vipengele vya programu ( mabaki) kwenye rasilimali za kompyuta/vijenzi vya vifaa ( nodi).
  7. Mchoro wa wasifu inaelezea utaratibu wa upanuzi ambao unaruhusu UML kubadilishwa kwa anuwai ya maeneo na nyanja za shughuli.

Mfano wa Mchoro wa Darasa la UML

Michoro ya Tabia

  1. mchoro wa shughuli inaonyesha vitendo ( Vitendo) ambapo baadhi ya shughuli ( shughuli) Michoro ya shughuli hutumiwa kuiga michakato ya biashara, michakato ya kiteknolojia, kompyuta ya mfululizo na sambamba.
  2. Tumia mchoro wa kesi(au tumia mchoro wa kesi) inaelezea uhusiano kati ya watendaji (watendaji) na kesi za matumizi ya mfumo wa kuigiza (uwezo wake). Kusudi kuu la mchoro ni kuwa chombo cha ulimwengu kwa wateja, watengenezaji na watumiaji wa mwisho, kwa msaada wa ambayo itawezekana kujadili kwa pamoja mfumo - uwezo wake na tabia.
  3. Mchoro wa serikali inaonyesha tabia inayobadilika ya huluki, ikionyesha jinsi huluki hii, kulingana na hali yake ya sasa, hutenda kwa matukio mbalimbali. Kwa kweli, hii ni mchoro wa hali kutoka kwa nadharia ya atomi.
  4. Mchoro wa Mawasiliano(katika matoleo ya awali mchoro wa ushirikiano) huonyesha mwingiliano kati ya sehemu za muundo wa mchanganyiko na majukumu ya ushirikiano. Mchoro unaonyesha wazi uhusiano kati ya vipengele (vitu).
  5. mchoro wa mlolongo hutumika kuibua mlolongo wa mwingiliano wa kitu. Huonyesha mzunguko wa maisha wa kitu fulani na mwingiliano wa waigizaji (waigizaji) katika hali fulani ya matumizi, mlolongo wa ujumbe ambao wanabadilishana.
  6. Mchoro wa Muhtasari wa Mwingiliano inajumuisha sehemu ya mchoro wa mpangilio na muundo wa mtiririko wa udhibiti. Husaidia kuzingatia mwingiliano wa vitu kutoka kwa maoni tofauti.
  7. Chati ya saa- subspecies tofauti ya michoro ya mwingiliano, maalumu kwa muda. Michoro ya aina hii hutumiwa kusoma tabia ya vitu kwa muda fulani.