Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

"Isang araw sa buhay ng isang ardilya" o mula sa pagmomodelo ng proseso hanggang sa disenyo ng isang automated na wealth accounting system na "Belka-1.0" (Bahagi 1)

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)
Ginamit ang isang ilustrasyon para sa "The Tale of Tsar Saltan" ni A.S. Pushkin, na inilathala ng Children's Literature, Moscow, 1949, Leningrad, mga guhit ni K. Kuznetsov

Ano ang kinalaman ng "squirrel" dito?

Ipapaliwanag ko kaagad kung ano ang kinalaman ng "squirrel" dito. Nakatagpo ng mga nakakatuwang proyekto sa Internet para sa pag-aaral ng UML batay sa isang paksa na hiniram mula sa mga fairy tale (halimbawa, dito [1]), nagpasya din akong maghanda ng katulad na halimbawa para sa aking mga mag-aaral upang makapag-aral lamang sila ng tatlong uri ng mga diagram upang magsimula sa: Activity Diagram, Use-case Diagram at Class Diagram. Hindi ko sinasadyang isalin ang mga pangalan ng mga diagram sa Russian upang maiwasan ang mga hindi pagkakaunawaan tungkol sa "mga kahirapan sa pagsasalin." Ipapaliwanag ko kung para saan ito mamaya. Sa halimbawang ito gumagamit ako ng Enterprise Architect framework mula sa isang kumpanya sa Australia Sparx System [2] – isang mahusay na tool para sa isang makatwirang presyo. At bilang bahagi ng aking mga sesyon ng pagsasanay ay ginagamit ko Modelio [3], isang mahusay na libreng object-oriented na tool sa disenyo na sumusuporta sa mga pamantayan ng UML2.0 at BPMN, nang walang hindi kinakailangang mga kampanilya at sipol sa mga tuntunin ng visual na kakayahan, ngunit sapat na para sa pag-aaral ng mga pangunahing kaalaman ng wika.

I-automate namin ang aktibidad ng accounting para sa mga materyal na asset, na lumitaw sa mga prosesong ito.

...
Isang isla ang nasa dagat, (E1, E2)
May granizo sa isla (E3, E1)
May mga simbahang may gintong simboryo, (E4)
May mga tore at hardin; (E5, E6)
Ang isang puno ng spruce ay tumutubo sa harap ng palasyo, (E7, E8)
At sa ibaba nito ay isang kristal na bahay; (E9)
Isang maamo na ardilya ang nakatira doon, (A1)
Oo, anong pakikipagsapalaran! (A1)
Ang ardilya ay umaawit ng mga kanta, (P1, A1)
Oo, patuloy siyang nangangagat ng mani, (P2)
Ngunit ang mga mani ay hindi simple, (C1)
Ang lahat ng mga shell ay ginto, (C2)
Ang core ay purong esmeralda; (C3)
Binabantayan ng mga alipin ang ardilya, (P3, A2)
Pinaglilingkuran nila siya bilang iba't ibang lingkod (P4)
At isang klerk ang itinalaga (A3)
Ang isang mahigpit na account ng mga mani ay ang balita; (P5, C1)
Binabati siya ng hukbo; (P6, A4)
Isang barya ang ibinubuhos mula sa mga shell, (P7, C2, C4)
Hayaan silang maglibot sa mundo; (P8)
Ang mga batang babae ay nagbuhos ng esmeralda (P9, A5, C3)
Sa mga kamalig, at sa ilalim ng takip; (E10, E11)
...
(A.S. Pushkin "The Tale of Tsar Saltan, ng kanyang maluwalhati at makapangyarihang bayani na si Prince Guidon Saltanovich at ang magandang Prinsesa Swan", ang gawain sa fairy tale ay nagsimula siguro noong 1822; ang fairy tale ay unang inilathala ni Pushkin sa koleksyon na "Mga Tula ni A. Pushkin" (Bahagi III, 1832, pp. 130-181) β€” 10 taon mula sa konsepto hanggang sa publikasyon, nga pala!)

Kaunti tungkol sa mga code na nakasulat sa kanan ng mga linya. Ang ibig sabihin ng "A" (mula sa "Actor") ay naglalaman ng impormasyon ang linya tungkol sa isang kalahok sa proseso. "C" (mula sa "Class") - impormasyon tungkol sa mga bagay ng klase na naproseso sa panahon ng pagpapatupad ng mga proseso. "E" (mula sa "Environment") - impormasyon tungkol sa mga bagay sa klase na nagpapakilala sa kapaligiran para sa pagpapatupad ng mga proseso. "P" (mula sa "Proseso") - impormasyon tungkol sa mga proseso mismo.

Sa pamamagitan ng paraan, ang eksaktong kahulugan ng isang proseso ay inaangkin din na sanhi ng mga pagtatalo sa pamamaraan, kung dahil lamang sa katotohanan na mayroong iba't ibang mga proseso: negosyo, produksyon, teknolohikal, atbp. at iba pa. (maaari mong malaman, halimbawa, dito [4] at dito [5]). Para maiwasan ang kontrobersya, magkasundo tayo Interesado kami sa proseso mula sa punto ng view ng repeatability nito sa paglipas ng panahon at ang pangangailangan para sa automation, ibig sabihin. paglilipat ng pagpapatupad ng anumang bahagi ng mga operasyon ng proseso sa isang automated system.

Mga tala sa paggamit ng Activity diagram

Simulan natin ang pagmomodelo ng ating proseso at gamitin ang Activity diagram para dito. Una, hayaan mo akong ipaliwanag kung paano gagamitin ang mga code sa itaas sa modelo. Mas madaling ipaliwanag gamit ang isang graphic na halimbawa, ngunit sa parehong oras susuriin namin ang ilan (halos lahat ng kailangan namin) na elemento ng Activity diagram.
Suriin natin ang sumusunod na fragment:

...
Ang ardilya ay umaawit ng mga kanta, (P1, A1)
Oo, patuloy siyang nangangagat ng mani, (P2)
Ngunit ang mga mani ay hindi simple, (C1)
Ang lahat ng mga shell ay ginto, (C2)
Ang core ay purong esmeralda; (C3)
...

Mayroon kaming dalawang hakbang sa proseso na P1 at P2, kalahok A1, at mga bagay ng tatlong magkakaibang klase: ang isang bagay ng klase C1 ay input sa hakbang, ang mga bagay ng klase C2 at C3 ay output bilang isang resulta ng aktibidad ng hakbang na ito P2 ng aming proseso. Para sa diagram ginagamit namin ang mga sumusunod na elemento ng pagmomodelo.

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Ang isang fragment ng aming proseso ay maaaring kinakatawan ng isang bagay tulad nito (Figure 1).

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Figure 1. Activity diagram fragment

Upang ayusin ang espasyo at istraktura ang Activity diagram, gagamit kami ng hindi karaniwang diskarte, mula sa punto ng view ng klasikal na paggamit ng UML notation. Ngunit may ilang mga dahilan para dito. Una, bago simulan ang pagmomodelo ay isasama namin ang tinatawag na kasunduan sa pagmomodelo, kung saan itinatala namin ang lahat ng mga tampok ng paggamit ng notasyon. Pangalawa, ang diskarte na ito ay paulit-ulit na matagumpay na nailapat sa yugto ng pagmomodelo ng negosyo sa mga tunay na proyekto upang lumikha ng mga sistema ng software; ang mga resulta ay naitala ng aming maliit na pangkat ng mga may-akda sa kaukulang bagay sa copyright [6], at ginamit din sa isang manwal ng pagsasanay [7] XNUMX]. Para sa Activity diagram, tinutukoy namin na ang field ng diagram ay nakabalangkas gamit ang "swim lane". Ang pangalan ng track ay tumutugma sa uri ng mga elemento ng chart na ilalagay sa track na iyon.

"Input at output artifact": Ang track na ito ay maglalaman ng mga elemento ng Objects - mga bagay na ginagamit o resulta ng pagsasagawa ng ilang hakbang sa proseso.
"Mga hakbang sa proseso": Dito namin ilalagay ang mga elemento ng Aktibidad - ang mga aksyon ng mga kalahok sa proseso.
"Mga Kalahok": isang landas para sa mga elemento na magsasaad ng mga tungkulin ng mga gumaganap ng aksyon sa aming proseso; para sa kanila gagamitin namin ang parehong elemento ng pagmomolde na Bagay - isang bagay, ngunit idaragdag namin ang stereotype na "Actor" dito.
Ang susunod na track ay tinatawag "Patakaran sa negosyo" at sa track na ito ilalagay namin sa text form ang mga patakaran para sa pagpapatupad ng mga hakbang ng proseso, at para dito gagamitin namin ang elemento ng pagmomodelo Tandaan - isang tala.
Dito tayo titigil, bagama't maaari rin nating gamitin ang landas "Mga Tool" upang mangolekta ng impormasyon tungkol sa antas ng pag-aautomat ng proseso. Maaaring magamit din ang isang landas "Mga posisyon at dibisyon ng mga kalahok", maaari itong gamitin upang iugnay ang mga tungkulin sa mga posisyon at departamento ng mga kalahok sa proseso.

Lahat ng inilarawan ko ay isang fragment mga kumbensyon sa pagmomodelo, ang bahaging ito ng kasunduan ay may kinalaman sa mga patakaran para sa pag-aayos ng isang diagram at, nang naaayon, ang mga patakaran para sa pagsulat at pagbabasa nito.

"Recipe"

Ngayon isaalang-alang natin ang opsyon ng partikular na pagmomodelo ng system mula sa Activity diagram. Ito ay isa lamang sa mga pagpipilian, tandaan ko na ito ay, siyempre, hindi lamang. Ang Activity diagram ay magiging interesado sa amin mula sa punto ng view ng papel nito sa paglipat mula sa pagmomodelo ng proseso patungo sa disenyo ng isang automated system. Upang gawin ito, susundin namin ang mga rekomendasyong pamamaraan - isang uri ng recipe na binubuo lamang ng limang yugto at nagbibigay para sa pagbuo ng tatlong uri lamang ng mga diagram. Ang paggamit ng recipe na ito ay makakatulong sa amin na makakuha ng pormal na paglalarawan ng prosesong gusto naming i-automate at mangolekta ng data para sa disenyo ng system. At para sa mga mag-aaral sa simula ng pag-aaral ng UML, ito ay isang uri ng life preserver na hindi magpapahintulot sa kanila na malunod sa lahat ng iba't ibang mga visual na paraan at diskarte na matatagpuan sa UML at modernong mga tool sa pagmomodelo.

Narito, sa katunayan, ay ang recipe mismo, at pagkatapos ay sundin ang mga diagram na binuo para sa aming "fairytale" na lugar ng paksa.

Stage 1. Inilalarawan namin ang proseso sa anyo ng isang Activity diagram. Para sa isang proseso na may higit sa 10 hakbang, makatuwirang ilapat ang proseso ng proseso ng proseso ng decomposition na prinsipyo upang mapabuti ang pagiging madaling mabasa ng diagram.

Stage 2. Piliin kung ano ang maaaring awtomatiko (halimbawa, ang mga hakbang ay maaaring i-highlight sa isang diagram).

Stage 3. Ang automated na hakbang ay dapat na nauugnay sa isang function o function ng system (maaaring many-to-many ang relasyon), gumuhit ng Use-case diagram. Ito ang mga function ng aming system.

Stage 4. Ilarawan natin ang panloob na organisasyon ng AS gamit ang isang class diagram - Klase. Ang swimway na "Input and Output Objects (Documents)" sa Activity diagram ay ang batayan para sa pagbuo ng object model at entity-relationship model.

Stage 5. Suriin natin ang mga tala sa track na "Mga Panuntunan sa Negosyo"., nagbibigay sila ng iba't ibang uri ng mga paghihigpit at kundisyon, na unti-unting nababago sa hindi gumaganang mga kinakailangan.
Ang resultang hanay ng mga diagram (Activity, Use-case, Class) ay nagbibigay sa amin ng isang pormal na paglalarawan sa isang medyo mahigpit na notasyon, i.e. ay may hindi malabo na pagbabasa. Ngayon ay maaari kang bumuo ng mga teknikal na pagtutukoy, linawin ang mga pagtutukoy ng mga kinakailangan, atbp.

Magsimula tayo sa pagmomodelo.

Stage 1. Ilarawan ang proseso sa anyo ng Activity diagram

Ipaalala ko sa iyo na inayos namin ang field ng diagram gamit ang mga "swimming" lane; ang bawat lane ay naglalaman ng mga elemento ng parehong uri (Figure 2). Bilang karagdagan sa mga elemento ng diagram na inilarawan sa itaas, gagamit tayo ng mga karagdagang elemento, ilarawan natin ang mga ito.

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Ang Desisyon (Desisyon) ay nagsasaad ng sumasanga na punto ng aming proseso sa diagram, at ang pagsasama-sama ng mga thread (Pagsamahin) - ang punto ng kanilang muling pagsasama-sama. Ang mga kundisyon ng paglipat ay nakasulat sa mga square bracket sa mga transition.

Sa pagitan ng dalawang synchronizer (Fork) magpapakita kami ng mga parallel na sangay ng proseso.
Ang aming proseso ay maaaring magkaroon lamang ng isang simula - isang entry point (Initial). Ngunit maaaring may ilang mga pagkumpleto (Final), ngunit hindi para sa aming partikular na diagram.

Mayroong napakaraming mga arrow; na may malaking bilang ng mga elemento at koneksyon, maaari mo munang matukoy ang mga yugto ng proseso, at pagkatapos ay magsagawa ng agnas ng mga yugtong ito. Ngunit para sa kalinawan, nais kong ipakita ang aming proseso ng "fairy-tale" nang buo sa isang diagram, habang, siyempre, kailangan naming tiyakin na ang mga arrow ay "hindi magkakadikit", posible na tumpak na subaybayan kung ano ang konektado. sa ano.

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Figure 2. Activity diagram - pangkalahatang view ng proseso

kasi sa mga patula na linya, ang ilang mga detalye ng proseso ay tinanggal, sila ay kailangang ibalik, ang mga ito ay ipinapakita ng mga elemento na may puting background. Kasama sa mga detalyeng ito ang hakbang sa Paglipat/Pagtanggap para sa Pag-iimbak at Pagproseso at ilang input at output artifact. Ito ay nagkakahalaga ng noting na ang hakbang na ito ay hindi rin ganap na ibunyag ang proseso, dahil kailangan nating hiwalay na italaga ang hakbang ng paghahatid at ang hakbang sa pagtanggap, at magdagdag pa ng isang hiwalay na hakbang para sa mga shell, at isipin din na ang lahat ng mga materyal na halaga na ito ay dapat na pansamantalang maiimbak sa isang lugar, atbp. at iba pa.
Tandaan din natin na ang tanong tungkol sa pinagmulan ng mga mani ay nananatiling hindi nasasagot - saan sila nanggaling at paano sila napupunta sa ardilya? At ang tanong na ito (ito ay naka-highlight sa pulang font sa tala - ang elemento ng Tala) ay nangangailangan ng hiwalay na pag-aaral! Ganito gumagana ang isang analyst - paunti-unti ang pagkolekta ng impormasyon, paggawa ng mga pagpapalagay at pagtanggap ng "okay" o "hindi-okay" mula sa mga eksperto sa paksa - napakahalaga at simpleng hindi mapapalitang mga tao sa yugto ng pagmomodelo ng negosyo kapag gumagawa ng mga system.

Tandaan din na ang proseso ng hakbang P5 ay binubuo ng dalawang bahagi.

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

At aagnas namin ang bawat bahagi at isaalang-alang ito nang mas detalyado (Larawan 3, Larawan 4), dahil ang mga aktibidad na ginagawa sa loob ng mga partikular na hakbang na ito ay magiging awtomatiko.

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Figure 3. Activity diagram - nagdedetalye (part 1)

Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Figure 4. Activity diagram - nagdedetalye (part 2)

Stage 2. Piliin kung ano ang maaaring awtomatiko

Ang mga hakbang na gagawing awtomatiko ay naka-highlight sa kulay sa mga diagram (tingnan ang Figure 3, Figure 4).
Mula sa pagmomodelo ng proseso hanggang sa automated na disenyo ng system (Bahagi 1)

Lahat ng mga ito ay ginagampanan ng isang kalahok sa proseso - ang Clerk:

  • Naglalagay ng impormasyon tungkol sa bigat ng nut sa pahayag;
  • Nagpasok ng impormasyon tungkol sa paglipat ng nut sa pahayag;
  • Itinatala ang katotohanan ng pagbabago ng isang nut sa isang shell at isang kernel;
  • Naglalagay ng impormasyon tungkol sa nut kernel sa statement;
  • Naglalagay ng impormasyon tungkol sa mga nut shell sa listahan.

Pagsusuri ng gawaing ginawa. Anong susunod?

Kaya, gumawa kami ng maraming gawaing paghahanda: nakolekta namin ang impormasyon tungkol sa proseso na aming isa-automate; nagsimulang bumuo ng isang kasunduan sa pagmomodelo (sa ngayon lamang sa mga tuntunin ng paggamit ng Activity diagram); nagsagawa ng simulation ng proseso at nabulok pa ang ilan sa mga hakbang nito; Natukoy namin ang mga hakbang sa proseso na aming isa-automate. Handa na kaming magpatuloy sa mga susunod na hakbang at simulan ang pagdidisenyo ng functionality ng system at panloob na organisasyon.

Tulad ng alam mo, ang teorya na walang kasanayan ay wala. Dapat mong tiyak na subukan ang "pagmomodelo" gamit ang iyong sariling mga kamay, ito ay kapaki-pakinabang din para sa pag-unawa sa iminungkahing diskarte. Halimbawa, maaari kang magtrabaho sa isang kapaligiran sa pagmomolde Modelio [3]. Nabulok lamang namin ang bahagi ng mga hakbang ng pangkalahatang diagram ng proseso (tingnan ang Larawan 2). Bilang isang praktikal na gawain, maaaring hilingin sa iyong ulitin ang lahat ng mga diagram sa kapaligiran ng Modelio at magsagawa ng agnas ng hakbang na "Paglipat/Pagtanggap para sa Imbakan at Pagproseso."
Hindi pa namin isinasaalang-alang ang pagtatrabaho sa mga partikular na kapaligiran sa pagmomodelo, ngunit maaari itong maging paksa ng mga independiyenteng artikulo at pagsusuri.

Sa ikalawang bahagi ng artikulo, susuriin namin ang mga diskarte sa pagmomodelo at disenyo na kinakailangan sa mga yugto 3-5; gagamitin namin ang UML Use-case at Class diagram. Itutuloy.

Listahan ng mga mapagkukunan

  1. Website na "UML2.ru". Forum ng Komunidad ng Analyst. Pangkalahatang seksyon. Mga halimbawa. Mga halimbawa ng mga fairy tale na naka-format bilang mga diagram ng UML. [Electronic na mapagkukunan] Access mode: Internet: http://www.uml2.ru/forum/index.php?topic=486.0
  2. Website ng Sparx Systems. [Electronic na mapagkukunan] Access mode: Internet: https://sparxsystems.com
  3. Website ng Modelio. [Electronic na mapagkukunan] Access mode: Internet: https://www.modelio.org
  4. Malaking Encyclopedic Dictionary. Proseso (interpretasyon). [Electronic na mapagkukunan] Access mode: Internet: https://dic.academic.ru/dic.nsf/enc3p/246322
  5. Website na "Organisasyon ng Epektibong Pamamahala". Blog. Kategorya "Pamamahala ng Proseso ng Negosyo". Kahulugan ng isang proseso ng negosyo. [Electronic na mapagkukunan] Access mode: Internet: https://rzbpm.ru/knowledge/pochemu-processy-stali-s-pristavkoj-biznes.html
  6. Sertipiko No. 18249 sa pagpaparehistro at pagdeposito ng isang gawain ng intelektwal na aktibidad. Alfimov R.V., Zolotukhina E.B., Krasnikova S.A. Manuskrito ng tulong sa pagtuturo na pinamagatang "Pagmomodelo ng isang paksa gamit ang Enterprise Architect" // 2011.
  7. Zolotukhina E.B., Vishnya A.S., Krasnikova S.A. Pagmomodelo ng proseso ng negosyo. β€” M.: KURSO, SIC INFRA-M, EBS Znanium.com. β€” 2017.

Pinagmulan: www.habr.com

Magdagdag ng komento