«Ăks pĂ€ev orava elus» vĂ”i kuidas minna mudeldamisest automatiseeritud varade arvestuse sĂŒsteemi projekteerimisele «Belka-1.0» (Osa 1)

Kuidas see oravaga seotud on?
Selgitan kohe, kuidas see oravaga seotud on. Kootud Internetis lĂ”busate UML-i Ă”piprojektidega, mis toetuvad muinasjutu teemadele (nĂ€iteks, [1]), otsustasin ka oma tudengitele sellise nĂ€ite valmistada, et saaksime alguses Ă”ppida kolme erinevat diagrammi tĂŒĂŒpi: tegevusdiagramm, kasutusjuhtide diagramm ja klasside diagramm. Ma ei tĂ”lgi diagrammide nimetusi eesti keelde, et vĂ€ltida arutelusid âtĂ”lkimise raskustestâ. Mida miski tĂ€histab â selgitan varsti. KĂ€esolevas nĂ€ites kasutan Austraalia ettevĂ”tte Enterprise Architect keskkonda [2] â hea tööriist mĂ”istliku raha eest. Ăppeainetes rakendan [3], mitte halb tasuta objekt-orienteeritud projekteerimise vahend, mis toetab UML2.0 ja BPMN standardeid, ilma liialt kunstiliste vĂ”imalusteta, aga tĂ€iesti piisav keele aluste Ă”ppimiseks.
Me kavatseme automatiseerida varade arvestuse tegevuse, mis tekib jÀrgmistes protsessides.
âŠ
Saare peal mere ÀÀres, (E1, E2)
Linak saarel seisab (E3, E1)
Kuldsed kirikud, (E4)
Kohvikud ja aiad; (E5, E6)
Kuusk kasvab palee ees, (E7, E8)
Ja selle all kristallmaja; (E9)
Seal elab kÀsitööline orav, (A1)
Ja milline nuputaja! (A1)
Orav laulab laule, (P1, A1)
Ja pÀhkleid krÔbistab, (P2)
Ja need pÀhklid pole tavalised, (C1)
KÔik kestad on kuldsed, (C2)
SĂŒdamed on puhtast smaragdist; (C3)
Teenrid hoiavad orava; (P3, A2)
Teenivad teda igasuguste teenustega (P4)
Ja ametisse on mÀÀratud rangete kĂ€skude ĂŒlevaataja (A3)
Sellele pÀhklite tÀhtsusele pööratakse tÀhelepanu; (P5, C1)
Annab talti austust; (P6, A4)
Kestadest valatakse mĂŒnti, (P7, C2, C4)
Ja visatakse ringi maailma; (P8)
TĂŒdrukud puistavad smaragdi (P9, A5, C3)
Ladu moodustavad, ja siis sisse; (E10, E11)
âŠ
(A.S. PuĆĄkin "Muinasjutt Saldani kuningas, tema kuulsast ja tugevaist rikkaist peahĂ€rra Gvidon SaldanovitĆĄist ja kauniste printsess Lebedist", â 10 aastat ideest kuni avaldamiseni, muide!)
Veidi koodidest, mis on kirjutatud ridade paremal poole. "A" (lĂŒhend sĂ”nast "Actor") tĂ€histab, et reas on teave protsessi osalise kohta. "C" (lĂŒhend sĂ”nast "Class") â teave klasside objektide kohta, mida töödeldakse protsesside kĂ€igus. "E" (lĂŒhend sĂ”nast "Environment") â teave klasside objektide kohta, mis iseloomustavad protsesside tĂ€itmise keskkonda. "P" (lĂŒhend sĂ”nast "Process") â teave protsesside enda kohta.
Muuseas, protsessi tĂ€pne mÀÀratlemine on samuti objektiivseks meetodoloogiliseks vaidluste pĂ”hjuseks, vĂ€hemalt kuna protsessid vĂ”ivad olla erinevad: Ă€rilised, tootmis-, tehnoloogilised jne. (vĂ”ite tutvuda nĂ€iteks [4] ja [5]). Vaidluse vĂ€ltimiseks lepime kokku, et protsess huvitab meid ajas kordumise ja automatiseerimise vajaduse kaudu,st. mingisugune osa protsessi operatsioonide tĂ€itmisest pannakse automatiseeritud sĂŒsteemi.
MĂ€rkmed Activity diagrammi rakendamiseks
Alustame meie protsessi modelleerimist ja kasutame selleks Activity diagrammi. Esiteks selgitan, kuidas ĂŒlaltoodud koode mudelis kasutatakse. Selgitamine on lihtsam graafilise nĂ€ite kaudu, samal ajal vaatame ĂŒle mĂ”ned (peaaegu kĂ”ik vajalikud) Activity diagrammi elemendid.
AnalĂŒĂŒsime jĂ€rgmist fragmenti:
âŠ
Orav laulab laule, (P1, A1)
Ja pÀhkleid krÔbistab, (P2)
Ja need pÀhklid pole tavalised, (C1)
KÔik kestad on kuldsed, (C2)
SĂŒdamed on puhtast smaragdist; (C3)
âŠ
Meil on kaks protsessi sammu P1 ja P2, osaline A1 ning kolme erineva klassi objektid: C1 klassi objekt siseneb sammule, S2 ja S3 klassi objektid saadakse vÀljundina, kui meie protsessi samm P2 tegevuse tulemus. Diagrammi jaoks kasutame jÀrgmisi modelleerimise elemente.

Meie protsessi fragmenti vÔib esitada umbkaudu nii (Joonis 1).

Joonis 1. Activity diagrammi fragment
Activity diagrammi ruumilise korralduse ja struktureerimise jaoks rakendame natuke mittestandardsed lĂ€henemist, klassikalise UML sĂŒmboolika kasutamise seisukohalt. Kuid sellel on mitmed pĂ”hjused. Esiteks, alustada modelleerimist, koostame nn. modelleerimise kokkuleppe, milles fikseerime kĂ”ik omadused, mis on seotud notaatsiooni kasutamisega. Teiseks on see lĂ€henemine korduvalt edukalt rakendatud Ă€rimudelite koostamise etapis reaalses tarkvarasĂŒsteemide loomise projektis, mille tulemused on fikseeritud meie vĂ€ikese autorkollektsiooni vastavas autoriĂ”iguse objektis [6] ning neid on kasutatud Ă”pikutes [7]. Activity-diagrammi jaoks mÀÀratleme, et diagrammi valdkonda struktuuri viime âujumaantunneliteâ â Swim lanes abil. Teede nimed vastavad diagrammi elementide tĂŒĂŒpidele, mis asuvad selles teedes.
âSisendid ja vĂ€ljundidâ: selles teede paigutatakse elemendid Objects â objektid, mida kasutatakse vĂ”i mis on teatud protsessi sammu tulemus.
âProtsessi sammudâ: siia paneme elemendid Activity â tegevused, milles osalevad protsessi osalised.
âOsalejadâ: teede jaoks, mis tĂ€histavad, kes tegevusi meie protsessis viib, kasutame me taas sama mudelreegli elementi Object â objekt, kuid lisame sellele stereotĂŒĂŒbi âActorâ.
JĂ€rgmine tee on âĂriplaanidâ ja selles teedes paigutame tekstiliselt protsessi sammude tĂ€itmise reeglid kasuks mudelreegli elementi Note â mĂ€rkus.
Siin me peatume, kuigi lisaks vĂ”iks veel kasutada teed âTööriistadâ protsessi automatiseerimise taseme andmete kogumiseks. Veel vĂ”ib osutuda kasulikuks tee âOsalejate ametikohad ja osakonnadâ, mida saab kasutada osalejate rollide seostamiseks ametikohtade ja osakondadega.
KÔik, mida ma just kirjeldasin, on fragment mudelilepingust, see osa lepingust kÀsitleb diagrammi korraldamise reegleid ja vastavalt selle kirjutamise ja lugemise reegleid.
âRetseptâ
NĂŒĂŒd vaatame sĂŒsteemi modelleerimise varianti just Activity-diagrammist. See on ainult ĂŒks variant, kuid see pole muidugi ainus. Activity diagramm huvitab meid oma rolli tĂ”ttu ĂŒleminekuks protsessi modelleerimiselt automatiseeritud sĂŒsteemi projekteerimisele. Selleks jĂ€rgime metodoloogilisi soovitusi â omamoodi retsepti, mis sisaldab vaid viit etappi ja hĂ”lmab kolme erinevat tĂŒĂŒpi diagrammi vĂ€ljatöötamist. Selle retsepti rakendamine aitab saada formaliseeritud kirjelduse protsessist, mida soovime automatiseerida, ning koguda andmeid sĂŒsteemi projekteerimiseks. Ăppijatele UML-i alguses on see omamoodi pÀÀsterĂ”ngas, mis ei luba nende kaduda kĂ”ikide UML-i ja kaasaegse modelleerimise vahendite mitmekesisuses.
Siin on see retsept, edaspidi jÀrgneb diagramme, mis on koostatud meie "muinasjutulise" ainevaldkonna jaoks.
Etapp 1. Kirjeldame protsessi Activity diagrammi kujul. Protsessi puhul, kus on vÀlja toodud rohkem kui 10 sammu, on mÔistlik rakendada protsessi sammude dekomponeerimise pÔhimÔtet, et parandada diagrammi loetavust.
Etapp 2. TÔstame esile seda, mida saab automatiseerida. (sammud vÔivad nÀiteks olla diagrammil esile tÔstetud).
Etapp 3. Automatiseeritavale sammule peab vastama sĂŒsteemi funktsioon vĂ”i funktsioonid. (suhe vĂ”ib olla paljude-ga-paljude), joonistame Use-case diagrammi. Need on meie sĂŒsteemi funktsioonid.
Etapp 4. Kirjeldame ASi siseorganiseerimist klasside diagrammi abil. â Class. 'Sisendid ja vĂ€ljundid (dokumendid)' swimlane'i diagrammi Activity â see on aluseks objektimudeli ja entiteet-suhtemudeli koostamisele.
Etapp 5. Anname ĂŒlevaate 'ĂripĂ”himĂ”tted' lane'idest., need annavad erinevaid piire ja tingimusi, mis jĂ€rk-jĂ€rgult muudetakse mittefunktsionaalseteks nĂ”ueteks.
Saadud diagrammide kogum (Activity, Use-case, Class) annab meile formaliseeritud kirjelduse piisavalt rangeid notaate, st. omab ĂŒheselt mĂ”istetavat tĂ”lgendust. NĂŒĂŒd on vĂ”imalik koostada tehniline ĂŒlesanne, tĂ€psustada nĂ”uete spetsifikatsiooni jne.
Alustame modelleerimisega.
Etapp 1. Kirjeldame protsessi Activity diagrammi kujul.
Tulet me meenutada, et diagrammi vĂ€lja oleme struktureerinud, kasutades "ujumise" radu, kus iga rada sisaldab ĂŒhte tĂŒĂŒpi elemente (Joonis 2). Lisaks ĂŒlaltoodud diagrammi elementidele kasutame ka tĂ€iendavaid elemente, kirjeldame neid allpool.

Otsus (Decision) tĂ€histab diagrammil meie protsessi hargnemise punkti, samas kui voogude kokkuliitumine (Merge) on nende taasĂŒhinemise punkt. Ristmikel on ĂŒleminekute tingimused kirjutatud ruudukujulistes sulgudes.
Kahe sĂŒnkroneerija (Fork) vahel nĂ€itame protsessi paralleelseid harusid.
Meie protsessil vĂ”ib olla ainult ĂŒks algus â ĂŒks sisenemispunkt (Initial). Kuid lĂ”petamisi (Final) vĂ”ib olla mitu, kuigi mitte meie konkreetse diagrammi puhul.
Nooli on tĂ”eliselt palju, suure arvu elementide ja sidemete korral vĂ”ib esmalt vĂ€lja tuua protsessi etapid ja seejĂ€rel hakata neid etappe dekompositsioonima. Kuid meie "muinasjutulist" protsessi tahaksin, et nĂ€idatakse visuaalselt ĂŒhel diagrammil, samas on kindlasti oluline saavutada, et nooled "ei sulanduks", et oleks selgelt jĂ€lgitav, mis millega on seotud.

Joonis 2. Activity diagramm â protsessi ĂŒldvaade
Kuna luuletuse ridades on mĂ”ned protsessi detailid vĂ€lja jĂ€etud, tuli need taastada, need on nĂ€idatud valge taustaga elementidega. Need detailid sisaldavad sammu âĂlekandmine/ vastuvĂ”tmine ladustamiseks ja töötlemiseksâ ning mitmeid sisenemis- ja vĂ€ljundartefakte. Tuleb mĂ€rkida, et see samm ei paljasta protsessi tĂ€ielikult, kuna peaksime eraldi mĂ€rkima ĂŒlekande ja vastuvĂ”tu sammu, ja veelgi enam, et koorikutele tuleks lisada eraldi samm, ning samal ajal mĂ”elda, et kĂ”ik need materiaalsed vÀÀrtused peaksid mingil ajal olema kuskil ajutiselt ladustatud jne.
JĂ”uame ka tĂ€hele panna, et kĂŒsimus pĂ€hklite pĂ€ritolu kohta â kust nad tulevad ja kuidas nad orava juurde jĂ”uavad? See kĂŒsimus (toodud punase fontidega mĂ€rkuses â element Note) vajab eraldi kĂ€sitlemist! Nii töötab analĂŒĂŒtik â kogub infot killuke killukese haaval, teeb oletusi ja saab «okei» vĂ”i «mitte-okei» valdkonna ekspertidelt â vĂ€ga olulised ja asendamatud inimesed Ă€ri mudelit arendades sĂŒsteemide loomise etapis.
TĂ€helepanek, et protsessi samm P5 koosneb kahest osast.

Ja dekomponeerime iga osa ja vaatame neid lÀhemalt (Joonis 3, Joonis 4), kuna kÀigus toimuv tegevus automatiseeritakse.

Joonis 3. Activity diagramm â detailimine (osa 1)

Joonis 4. Activity diagramm â detailimine (osa 2)
Etapp 2. TÔstame esile seda, mida saab automatiseerida.
Automatiseerimiseks ettenÀhtud sammud on joonistel esile toodud vÀrviga (vt Joonis 3, Joonis 4).

KĂ”iki neid teeb ĂŒks protsessi osaleja â Diak commander:
- Kandmine teabe kohta pÀhkli kaalust arvestusse;
- Kandmine teabe kohta pÀhkli edastamisest arvestusse;
- Fikseerimine pÀhkli muundumise faktist kestadeks ja tuumaks;
- Kandmine teabe kohta pÀhkli tuuma arvestusse;
- Kandmine teabe kohta pÀhkli kestade arvestusse.
Tehtud töö analĂŒĂŒs. Mis edasi?
Nii oleme teinud suure ettevalmistustööd: kogunud teavet protsessi kohta, mida kavatseme automatiseerida; alustanud kokkuleppe koostamisega modelleerimise kohta (praegu ainult Activity diagrammi kasutamise osas); teostanud protsessi modelleerimist ja isegi dekomponeerinud mitmeid selle samme; esile tĂ”stnud protsessi samme, mille me automatiseerime. NĂŒĂŒd oleme valmis liikuma jĂ€rgmiste etappide juurde ja alustama sĂŒsteemi funktsioonide projekteerimist ning selle sisemise organisatsiooni loomist.
Nagu teada, on teooria ilma praktikata â ei midagi. On oluline proovida 'modelleerimist' omal kĂ€el, see on kasulik ka pakutud lĂ€henemise mĂ”istmiseks. NĂ€iteks vĂ”ib töötada modelleerimise keskkonnas [3]. Oleme dekomponeerinud ainult osa ĂŒldise protsessi diagrammi sammudest (vt Joonis 2). Praktilise ĂŒlesandena vĂ”ib soovitada kordama kĂ”iki diagramme keskkonnas Modelio ja teostama etapi "Edastamine/ vastuvĂ”tmine ladustamiseks ja töötlemiseks" dekompositsiooni.
Konkreetsetes modelleerimiskeskkondades me hetkel ei kĂ€sitle, kuid see vĂ”ib olla iseseisvate artiklite ja ĂŒlevaatuste teema.
Artikli teises osas kÀsitleme modelleerimise ja projekteerimise tehnikaid, mis on vajalikud 3-5 etapis, kasutame UML diagramme Use-case ja Class. JÀtkub.
Viidatud allikad
- Veebileht âUML2.ruâ. AnalĂŒĂŒtikute kogukonna foorum. Ăldosa. NĂ€idised. NĂ€idised muinasjuttudest, esitatud UML diagrammidena. [Elektrooniline allikas] LigipÀÀsu reĆŸiim: Internet:
- Sait Sparx Systems. [Elektrooniline ressurss] LigipÀÀs: Internet:
- Veebileht Modelio. [Elektrooniline allikas] LigipÀÀsu reĆŸiim: Internet:
- Suure EntsĂŒklopeedia, Protsess (tĂ”lgendus). [Aktiivne ressurss] LigipÀÀs: Internet:
- Saidi "TĂ”husat Juhtimist" Blogi. Rubriik "Ăriprotsesside Juhtimine". Ări protsessi mÀÀratlemine. [Aktiivne ressurss] LigipÀÀs: Internet:
- Tunnistus nr 18249 autoriĂ”iguse registreerimise ja deponeerimise kohta. Alfimov R.V., Zolotukhina E.B., Krasnikova S.A. Ăpikute vĂ€ljaande kĂ€sikiri pealkirjaga "Ala modelleerimine, kasutades Enterprise Architect" \/\/ 2011.
- Zolotukhina E.B., Vishnya A.S., Krasnikova S.A. Ări protsesside modelleerimine. â M.: KURS, NIK INFRA-M, EBS Znanium.com. â 2017.
Allikas: habr.com
