âĂks pĂ€ev orava elusâ ehk protsesside modelleerimisest kuni automatiseeritud varanduse arvestussĂŒsteemi âBelka-1.0â projekteerimiseni (1. osa)

Mis on "oraval" sellega pistmist?
Selgitan kohe, mis "oraval" sellega pistmist on. Olles kohanud Internetis lĂ”busaid projekte UML-i Ă”ppimiseks, mis pĂ”hinevad muinasjuttudest laenatud ainevaldkonnal (nĂ€iteks [1]), otsustasin koostada sarnase nĂ€ite ka oma Ă”pilastele, et nad saaksid alustuseks uurida ainult kolme tĂŒĂŒpi diagramme: tegevusdiagramm, kasutusjuhtude diagramm ja klassiskeem. Ma ei tĂ”lgi teadlikult diagrammide nimesid vene keelde, et vĂ€ltida vaidlusi "tĂ”lkeraskuste" ĂŒle. Selgitan veidi hiljem, milleks see on. Selles nĂ€ites kasutan Austraalia ettevĂ”tte Enterprise Architect raamistikku [2] â hea tööriist mĂ”istliku hinna eest. Ja osana oma treeningutest kasutan [3], hea tasuta objektorienteeritud disainitööriist, mis toetab UML2.0 ja BPMN standardeid, ilma visuaalsete vĂ”imaluste poolest tarbetute kellade ja viledeta, kuid keele pĂ”hitĂ”dede Ă”ppimiseks tĂ€iesti piisav.
Hakkame automatiseerima nendes protsessides tekkivat materiaalse vara arvestust.
...
Meres asub saar, (E1, E2)
Saarel on rahe (E3, E1)
Kuldse kupliga kirikutega (E4)
Tornide ja aedadega; (E5, E6)
Palee ees kasvab kuusk, (E7, E8)
Ja selle all on kristallmaja; (E9)
Seal elab taltsas orav, (A1)
Jah, milline seiklus! (A1)
Orav laulab laule, (P1, A1)
Jah, ta nÀksib pidevalt pÀhkleid, (P2)
Kuid pÀhklid pole lihtsad, (C1)
KÔik kestad on kuldsed, (C2)
Tuum on puhas smaragd; (C3)
Teenindajad valvavad oravat, (P3, A2)
Nad teenivad teda erinevate teenistujatena (P4)
Ja mÀÀrati ametnik (A3)
PĂ€hklite range arvestus on uudis; (P5, C1)
SÔjavÀgi tervitab teda; (P6, A4)
Karpidest valatakse mĂŒnt (P7, C2, C4)
Laske neil minna ĂŒmber maailma; (lk 8)
TĂŒdrukud valavad smaragdi (P9, A5, C3)
Laoruumidesse ja katte alla; (E10, E11)
...
(A.S. PuĆĄkin "Lugu tsaar Saltanist, tema kuulsusrikkast ja vĂ”imsast kangelasest prints Guidon SaltanovitĆĄist ja kaunist printsess Luigest" â 10 aastat ideest avaldamiseni, muide!)
Natuke koodidest, mis on kirjutatud ridadest paremale. "A" (alates "Actor") tĂ€hendab, et rida sisaldab teavet protsessis osaleja kohta. âCâ (alates âClassâ) â teave klassiobjektide kohta, mida protsesside tĂ€itmisel töödeldakse. âEâ (alates âEnvironmentâ) â teave klassiobjektide kohta, mis iseloomustavad protsesside tĂ€itmise keskkonda. âPâ (alates âProtsessâ) â teave protsesside endi kohta.
Muide, protsessi tĂ€pne definitsioon pretendeerib ka metoodiliste vaidluste pĂ”hjuseks, kasvĂ”i juba selle tĂ”ttu, et on erinevaid protsesse: Ă€ri-, tootmis-, tehnoloogilised jne. ja nii edasi. (saate teada nĂ€iteks [4] ja [5]). Vaidluste vĂ€ltimiseks lepime sellega kokku Oleme protsessist huvitatud selle ajas korratavuse ja automatiseerimise vajaduse seisukohast, st. protsessioperatsioonide mis tahes osa tĂ€itmise ĂŒlekandmine automatiseeritud sĂŒsteemi.
MĂ€rkused tegevusskeemi kasutamise kohta
Alustame oma protsessi modelleerimist ja kasutame selleks tegevusskeemi. Esiteks lubage mul selgitada, kuidas ĂŒlaltoodud koode mudelis kasutatakse. Seda on lihtsam selgitada graafilise nĂ€itega, kuid samal ajal analĂŒĂŒsime mĂ”ningaid (peaaegu kĂ”iki vajalikke) tegevusdiagrammi elemente.
AnalĂŒĂŒsime jĂ€rgmist fragmenti:
...
Orav laulab laule, (P1, A1)
Jah, ta nÀksib pidevalt pÀhkleid, (P2)
Kuid pÀhklid pole lihtsad, (C1)
KÔik kestad on kuldsed, (C2)
Tuum on puhas smaragd; (C3)
...
Meil on kaks protsessietappi P1 ja P2, osaleja A1 ning kolme erineva klassi objektid: sammule sisestatakse klassi C1 objekt, klasside C2 ja C3 objektid vÀljastatakse meie selle sammu P2 tegevuse tulemusena. protsessi. Diagrammi jaoks kasutame jÀrgmisi modelleerimiselemente.

Meie protsessi fragmenti saab kujutada umbes nii (joonis 1).

Joonis 1. Tegevusdiagrammi fragment
Aktiivsuskeemi ruumi korrastamiseks ja struktureerimiseks kasutame UML-i tĂ€histuse klassikalise kasutuse seisukohalt mittestandardset lĂ€henemist. Kuid sellel on mitu pĂ”hjust. Esiteks, vahetult enne modelleerimisega alustamist koostame nn modelleerimisleping, millesse salvestame kĂ”ik tĂ€hise kasutamise omadused. Teiseks rakendati seda lĂ€henemisviisi korduvalt edukalt Ă€rimudelite etapis reaalsetes projektides tarkvarasĂŒsteemide loomiseks; tulemused salvestas meie vĂ€ike autorite meeskond vastavasse autoriĂ”iguse objekti [6] ja neid kasutati ka koolitusjuhendis [ 7]. Tegevusdiagrammi jaoks mÀÀratleme, et diagrammi vĂ€li on struktureeritud "ujumisradade" abil. Raja nimi vastab sellele rajale paigutatavate diagrammielementide tĂŒĂŒbile.
"Sisend- ja vĂ€ljundartefaktid": See rada sisaldab elemente Objects â objekte, mida kasutatakse vĂ”i mis on mĂ”ne protsessietapi tĂ€itmise tulemus.
"Protsessi etapid": Siin asetame tegevuse elemendid - protsessis osalejate tegevused.
"Osalejad": elementide tee, mis tĂ€histavad tegevuste sooritajate rolle meie protsessis; nende jaoks kasutame sama modelleerivat elementi Objekt - objekt, kuid lisame sellele stereotĂŒĂŒbi "nĂ€itleja".
JĂ€rgmine lugu on nn "Ărireeglid" ja sellele rajale asetame teksti kujul protsessi etappide tĂ€itmise reeglid ja selleks kasutame modelleerimiselementi MĂ€rkus - mĂ€rkus.
Siin peatume, kuigi vÔiks ka rada kasutada "Tööriistad" koguda teavet protsesside automatiseerimise taseme kohta. Kasuks vÔib tulla ka tee "Osalejate positsioonid ja jaotus", saab seda kasutada rollide sidumiseks protsessis osalejate ametikohtade ja osakondadega.
KĂ”ik, mida ma just kirjeldasin, on fragment modelleerimise kokkulepped, puudutab see lepingu osa ĂŒhe diagrammi korrastamise reegleid ja vastavalt ka selle kirjutamise ja lugemise reegleid.
"Retsept"
NĂŒĂŒd kaalume vĂ”imalust sĂŒsteemi konkreetselt modelleerida tegevusdiagrammist. See on vaid ĂŒks vĂ”imalus, mĂ€rgin, et see pole muidugi ainus. Tegevusdiagramm pakub meile huvi oma rollist protsesside modelleerimiselt automatiseeritud sĂŒsteemi projekteerimisele ĂŒleminekul. Selleks jĂ€rgime metoodilisi soovitusi - omamoodi retsepti, mis koosneb ainult viiest etapist ja nĂ€eb ette ainult kolme tĂŒĂŒpi diagrammide vĂ€ljatöötamise. Selle retsepti kasutamine aitab meil saada ametliku kirjelduse protsessist, mida tahame automatiseerida, ja koguda andmeid sĂŒsteemi kujundamiseks. Ja UML-i Ă”ppimise alguses olevate Ă”pilaste jaoks on see omamoodi pÀÀstevahend, mis ei lase neil uppuda kĂ”igisse UML-i ja kaasaegsete modelleerimisvahendite visuaalsete vahendite ja tehnikate mitmekesisusse.
Siin on tegelikult retsept ise ja seejÀrel jÀrgige meie "muinasjutu" teemavaldkonna jaoks koostatud diagramme.
1. etapp. Kirjeldame protsessi tegevusdiagrammi kujul. Rohkem kui 10 sammuga protsessi puhul on diagrammi loetavuse parandamiseks mÔttekas rakendada protsessietappide lagunemise pÔhimÔtet.
2. etapp. Valige, mida saab automatiseerida (sammud saab nÀiteks diagrammil esile tÔsta).
3. etapp. Automatiseeritud samm peab olema seotud sĂŒsteemi funktsiooni vĂ”i funktsioonidega (seos vĂ”ib olla mitu-mitmele), joonistage kasutusjuhtumi diagramm. Need on meie sĂŒsteemi funktsioonid.
Etapp 4. Kirjeldame AS-i sisemist korraldust klassiskeemi abil - Klass. Tegevusdiagrammi ujumisrada "Sisend- ja vÀljundobjektid (dokumendid)" on objektimudeli ja olemi-suhte mudeli koostamise aluseks.
5. etapp. AnalĂŒĂŒsime âĂrireegliteâ raja mĂ€rkmeid, pakuvad need mitmesuguseid piiranguid ja tingimusi, mis muudetakse jĂ€rk-jĂ€rgult mittefunktsionaalseteks nĂ”ueteks.
Saadud diagrammide komplekt (Activity, Use-case, Class) annab meile formaliseeritud kirjelduse ĂŒsna ranges tĂ€histuses, s.t. on ĂŒhemĂ”tteline nĂ€it. NĂŒĂŒd saate vĂ€lja töötada tehnilisi kirjeldusi, tĂ€psustada nĂ”uete spetsifikatsioone jne.
Alustame modelleerimist.
1. etapp. Kirjeldage protsessi tegevusdiagrammi kujul
Tuletan meelde, et diagrammivĂ€lja struktureerisime ujumisradade abil; iga rada sisaldab sama tĂŒĂŒpi elemente (joonis 2). Lisaks ĂŒlalkirjeldatud diagrammielementidele kasutame tĂ€iendavaid elemente, kirjeldame neid.

Otsus (Decision) tĂ€histab diagrammil meie protsessi hargnemispunkti ja lĂ”imede ĂŒhendamine (Merge) â nende taasĂŒhendamise punkti. Ăleminekutel kirjutatakse ĂŒleminekutingimused nurksulgudesse.
Kahe sĂŒnkronisaatori (Fork) vahel nĂ€itame paralleelseid protsessiharusid.
Meie protsessil vĂ”ib olla ainult ĂŒks algus â ĂŒks sisenemispunkt (esialgne). Kuid vĂ”ib olla mitu lĂ”petamist (lĂ”plik), kuid mitte meie konkreetse diagrammi jaoks.
Nooli on ĂŒsna palju, suure hulga elementide ja ĂŒhendustega saate esmalt tuvastada protsessi etapid ja seejĂ€rel teha need etapid lahti. Kuid selguse huvides tahaksin nĂ€idata meie "muinasjutulist" protsessi tĂ€ielikult ĂŒhel diagrammil, samas kui loomulikult peame tagama, et nooled "ei jÀÀks kokku", oleks vĂ”imalik tĂ€pselt jĂ€lgida, mis on ĂŒhendatud. milleni.

Joonis 2. Tegevusskeem â protsessi ĂŒldvaade
Sest poeetilistes ridades on mĂ”ned protsessi detailid vĂ€lja jĂ€etud, need tuli taastada, neid nĂ€itavad valge taustaga elemendid. Need ĂŒksikasjad hĂ”lmavad salvestamise ja töötlemise jaoks edastamise/vastuvĂ”tmise etappi ning mitmeid sisend- ja vĂ€ljundartefakte. VÀÀrib mĂ€rkimist, et ka see samm ei paljasta protsessi tĂ€ielikult, sest peaksime eraldi mÀÀrama edastuse ja vastuvĂ”tuetapi ning isegi lisama eraldi etapi kestade jaoks ning samuti mĂ”tlema, et kĂ”igepealt tuleks kĂ”ik need materiaalsed vÀÀrtused ajutiselt kuskile hoiule panna jne. ja nii edasi.
MĂ€rkigem ka seda, et vastuseta jÀÀb kĂŒsimus pĂ€hklite pĂ€ritolust - kust nad tulevad ja kuidas oravani jĂ”uavad? Ja see kĂŒsimus (see on mĂ€rkuses punase kirjaga esile tĂ”stetud - element MĂ€rkus) nĂ”uab eraldi uurimist! Nii toimib analĂŒĂŒtik â kogub infot jupphaaval, teeb oletusi ja saab teemaekspertidelt âokeiâ vĂ”i âei-okeiâ â vĂ€ga olulised ja lihtsalt asendamatud inimesed Ă€rimudelite loomise etapis sĂŒsteemide loomisel.
Pange tÀhele, et protsessi samm P5 koosneb kahest osast.

Ja me lahutame iga osa ja kaalume seda ĂŒksikasjalikumalt (joonis 3, joonis 4), sest nende konkreetsete etappide raames tehtavad tegevused automatiseeritakse.

Joonis 3. Tegevusskeem â detailid (1. osa)

Joonis 4. Tegevusskeem â detailid (2. osa)
2. etapp. Valige, mida saab automatiseerida
Automatiseeritavad sammud on diagrammidel vÀrviliselt esile tÔstetud (vt joonis 3, joonis 4).

KĂ”iki neid teostab ĂŒks protsessis osaleja - ametnik:
- Sisestab avaldusse info pÀhkli kaalu kohta;
- Sisestab vĂ€ljavĂ”ttesse info pĂ€hkli ĂŒlekande kohta;
- Salvestab pÀhkli kooreks ja tuumaks muutumise fakti;
- Sisestab avaldusse info pÀhklituuma kohta;
- Sisestab loendisse teabe pÀhklikoorte kohta.
Tehtud töö analĂŒĂŒs. Mis jĂ€rgmiseks?
Seega oleme teinud palju ettevalmistustööd: kogunud infot protsessi kohta, mida automatiseerime; hakkas modelleerimisel kokkuleppele jĂ”udma (seni ainult Tegevusdiagrammi kasutamise osas); teostas protsessi simulatsiooni ja isegi lahutas mitu selle etappi; Tuvastasime protsessietapid, mille automatiseerime. NĂŒĂŒd oleme valmis liikuma edasi jĂ€rgmiste sammude juurde ning alustama sĂŒsteemi funktsionaalsuse ja sisemise korralduse kujundamist.
Nagu teate, pole teooria ilma praktikata midagi. Kindlasti peaksite proovima oma kĂ€tega "modelleerimist", see on kasulik ka pakutava lĂ€henemisviisi mĂ”istmiseks. NĂ€iteks saab töötada modelleerimiskeskkonnas [3]. Oleme lahti vĂ”tnud vaid osa ĂŒldise protsessi diagrammi etappidest (vt joonis 2). Praktilise ĂŒlesandena vĂ”idakse teil paluda korrata kĂ”iki Modelio keskkonnas olevaid diagramme ja teostada etapi âEdastamine/vastuvĂ”tmine sĂ€ilitamiseks ja töötlemiseksâ dekomponeerimine.
Me ei kaalu veel konkreetsetes modelleerimiskeskkondades töötamist, kuid see vĂ”ib saada sĂ”ltumatute artiklite ja ĂŒlevaadete teemaks.
Artikli teises osas analĂŒĂŒsime etappides 3-5 vajalikke modelleerimis- ja disainitehnikaid, kasutame UML kasutusjuhtumite ja klasside diagramme. JĂ€tkub.
Allikate loetelu
- Veebisait "UML2.ru". AnalĂŒĂŒtikute kogukonna foorum. Ăldine jaotis. NĂ€ited. UML-diagrammidena vormindatud muinasjuttude nĂ€ited. [Elektrooniline ressurss] JuurdepÀÀsureĆŸiim: Internet:
- Sparx Systemsi veebisait. [Elektrooniline ressurss] JuurdepÀÀsureĆŸiim: Internet:
- Modelio veebisait. [Elektrooniline ressurss] JuurdepÀÀsureĆŸiim: Internet:
- Suur entsĂŒklopeediline sĂ”naraamat. Protsess (tĂ”lgendus). [Elektrooniline ressurss] JuurdepÀÀsureĆŸiim: Internet:
- Veebisait "TĂ”husa juhtimise korraldamine". Blogi. Kategooria "Ăriprotsesside juhtimine". Ăriprotsessi definitsioon. [Elektrooniline ressurss] JuurdepÀÀsureĆŸiim: Internet:
- Tunnistus nr 18249 intellektuaalse tegevuse teose registreerimise ja deponeerimise kohta. Alfimov R.V., Zolotukhina E.B., Krasnikova S.A. Ăppevahendi kĂ€sikiri pealkirjaga âAinevaldkonna modelleerimine ettevĂ”tte arhitekti abilâ // 2011.
- Zolotukhina E.B., Vishnya A.S., Krasnikova S.A. Ăriprotsesside modelleerimine. â M.: KURSUS, SIC INFRA-M, EBS Znanium.com. â 2017.
Allikas: www.habr.com
