Ujenzi wa mfano wa kitu. Upangaji programu unaozingatia utaratibu ni upangaji programu katika lugha ya lazima, ambayo taarifa zinazotekelezwa kwa mpangilio zinaweza kukusanywa katika subroutines, yaani, vitengo vikubwa vya msimbo, kwa kutumia.


UTANGULIZI

Tabia muhimu zaidi za mfumo wowote ni muundo wake na mchakato wa kufanya kazi. Muundo wa mfumo unaeleweka kama seti thabiti ya uhusiano kati ya vitu au sehemu zake. Ni muundo unaounganisha vipengele vyote pamoja na kuzuia mfumo kutoka kutengana katika vipengele tofauti. Muundo wa mfumo unaweza kuakisi mahusiano mbalimbali, ikiwa ni pamoja na kuweka kiota cha vipengele vya mfumo mmoja hadi mwingine. Katika kesi hii, ni kawaida kuiita mfumo mdogo au wa kiota mfumo mdogo. Mchakato wa utendakazi wa mfumo unahusiana kwa karibu na mabadiliko katika mali au tabia yake kwa wakati. Ambapo sifa muhimu ya mfumo ni hali yake, ambayo inaeleweka kama seti ya mali au sifa ambazo kwa kila wakati zinaonyesha sifa muhimu zaidi za tabia ya mfumo. Mali ya kawaida ya mifano yote ni kufanana kwao mfumo wa asili. Umuhimu wa miundo ya kujenga iko katika uwezekano wa kuzitumia kupata taarifa kuhusu mali au tabia ya mfumo wa awali. Katika kesi hii, mchakato wa kujenga na matumizi ya baadae ya mifano ili kupata taarifa kuhusu mfumo wa awali inaitwa modeling. Mfano wa jumla mfumo una baadhi habari muhimu kuhusu vipengele vya utendaji vya mfumo fulani, ambao hutoa wazo la tabia yake zaidi.

Utafiti wa mchakato wa modeli ndio kitu cha kusoma katika kazi hii ya kozi. Ujenzi wa maalum mfano wa kitu, utafiti wa tabia yake utazingatiwa kuwa somo la utafiti. Ili kufikia lengo hili hutumiwa mbinu zifuatazo: utafiti wa maandiko muhimu, kulinganisha, mifano kutoka kwa uzoefu wa maisha Tangu ujenzi wa mfano wa kitu utafanyika kwa kutumia mfano wa huduma ya gari, ni muhimu kujifunza kanuni ya uendeshaji wa shirika hili. Ili kufanya hivyo, inatosha kutembelea tovuti rasmi za huduma mbalimbali za gari. Lakini kusoma kanuni za kuunda kielelezo cha kitu, nilisoma fasihi ya kisayansi ya ndani na nje ya nchi. Ikawa shughuli ya kusisimua sana.

Mwishowe, lengo langu kazi ya kozi ikawa: kujenga mfano wa kitu cha mfumo wa habari wa "Autoservice", kujifunza kanuni ya kujenga mfano wa kitu, kuelezea mchakato wa ujenzi, kuthibitisha umuhimu wa kuwa na ujuzi huu na uwezo wa kuitumia katika mazoezi.

Muundo wa kazi ya kozi ni kama ifuatavyo: kwanza, nadharia ya kujenga mfano wa lengo inasomwa, kisha utekelezaji wa nadharia hujaribiwa kwa kutumia mfano wa vitendo.

  1. Dhana za kimsingi za mbinu inayolenga kitu

Mbinu inayolenga kitu inategemea matumizi ya kimfumo ya mifano. Vitu na dhana zinahusika katika uundaji wa lengo ulimwengu halisi kuhusiana na mfumo wa programu inayotengenezwa. Kwa njia ya mwelekeo wa kitu, vitu hivi na dhana hubadilishwa na mifano yao, i.e. miundo fulani rasmi inayowawakilisha katika mfumo wa programu.

Mfano hauna vipengele vyote na mali ya kitu au dhana inayowakilisha, lakini ni wale tu ambao ni muhimu kwa mfumo wa programu inayotengenezwa. Kwa hivyo, mfano ni rahisi zaidi kuliko kitu (dhana) inayowakilisha. Hii hurahisisha maendeleo na utafiti (uchambuzi) wa mifano na utekelezaji wao kwenye kompyuta. Hasa, asili rasmi ya mifano inaruhusu sisi kupata mfano rasmi wa mfumo wa programu inayotengenezwa kama muundo wa mifano rasmi ya vipengele vyake.

Kwa hivyo, mbinu inayolenga kitu husaidia kukabiliana na shida ngumu kama vile kupunguza ugumu wa programu; kuongeza uaminifu wa programu; kuifanya iwezekane kurekebisha vipengele vya mtu binafsi programu bila kubadilisha vipengele vyake vingine; kuhakikisha uwezekano wa kutumia tena vipengele vya programu binafsi.

Utumiaji wa kimfumo wa mbinu inayolenga kitu huruhusu uundaji wa mifumo ya programu iliyoundwa vizuri, inayotegemewa na iliyorekebishwa kwa urahisi. Hii inaelezea shauku ya watengeneza programu katika mbinu inayolenga kitu. Mbinu inayolenga kitu ni mojawapo ya maeneo yanayoendelea kwa kasi ya programu ya kinadharia na matumizi.

Uendelezaji wa programu inayolenga kitu inahusisha matumizi ya mifano ya kitu katika maendeleo ya mifumo ya programu na vipengele vyake.

Ukuzaji unaolengwa na kitu unaweza kuanza katika hatua ya kwanza kabisa mzunguko wa maisha; haihusiani na lugha ya programu ambayo mfumo wa programu inayotengenezwa unatakiwa kutekelezwa: lugha hii inaweza isielekezwe kwa kitu. Katika hatua ya maendeleo, vitu ni baadhi ya miundo rasmi (kwa mfano, mistatili na pembe za mviringo, kwa msaada ambao wanaonyeshwa kwenye michoro), bado hawajaunganishwa kwa njia yoyote na utekelezaji wao wa baadaye katika mojawapo ya lugha za programu.

Utengenezaji wa programu unaolengwa na kitu unahusisha matumizi ya mbinu zinazolenga kitu (teknolojia). Kawaida, mbinu hizi zinazoelekezwa kwa kitu zinaungwa mkono na zana za programu, lakini hata bila zana kama hizo zinafaa, kwani zinaruhusu ufahamu mzuri wa mambo na mali anuwai ya mfumo wa programu inayotengenezwa, ambayo baadaye hurahisisha utekelezaji wake, upimaji, matengenezo, maendeleo ya matoleo mapya na marekebisho muhimu zaidi.

Ubunifu wa mfumo wa programu huanza na uchambuzi wa mahitaji ambayo italazimika kukidhi. Uchambuzi kama huo unafanywa ili kuelewa madhumuni na hali ya uendeshaji wa mfumo wa kutosha kuweza kuteka muundo wake wa awali.

Kwa mbinu inayolenga kitu, uchambuzi wa mahitaji ya mfumo unakuja kwa maendeleo ya mifano ya mfumo huu. Mfano wa mfumo (au kitu kingine chochote au jambo) ni maelezo rasmi ya mfumo, ambayo hubainisha vitu kuu vinavyounda mfumo na uhusiano kati ya vitu hivi. Miundo ya ujenzi ni njia iliyoenea ya kusoma vitu ngumu na matukio. Mfano huo huacha maelezo mengi ambayo hufanya iwe vigumu kuelewa. Modeling imeenea katika sayansi na teknolojia.

Mifano husaidia kuangalia utendaji wa mfumo unaoendelea katika hatua za mwanzo za maendeleo yake, kuwasiliana na mteja wa mfumo, kufafanua mahitaji yake ya mfumo, na kufanya mabadiliko (ikiwa ni lazima) kwa muundo wa mfumo (wote wawili mwanzoni. muundo wake na katika hatua zingine za mzunguko wa maisha).

Miundo iliyotengenezwa na kutatuliwa katika awamu ya kwanza ya mzunguko wa maisha ya mfumo inaendelea kutumika katika awamu zote zinazofuata, kuwezesha upangaji wa mfumo, utatuzi na majaribio, matengenezo na marekebisho zaidi.

Mfano wa kitu unaelezea muundo wa vitu vinavyounda mfumo, sifa zao, shughuli, na uhusiano na vitu vingine. Kielelezo cha kitu kinapaswa kuakisi dhana hizo na vitu vya ulimwengu halisi ambavyo ni muhimu kwa mfumo unaoendelezwa. Muundo wa kitu kimsingi unaonyesha pragmatiki ya mfumo unaoendelezwa, ambayo inaonyeshwa katika matumizi ya istilahi. eneo la maombi kuhusiana na matumizi ya mfumo unaotengenezwa.

Wacha tuzingatie dhana za kimsingi zinazotumiwa katika kuunda mfano wa kitu.

Kitu ni kifupisho au kitu chochote kilicho na mipaka iliyoainishwa wazi ambayo ina mantiki katika muktadha wa shida inayotumika. Kuanzishwa kwa vitu kuna malengo mawili: kuelewa kazi iliyotumiwa (tatizo) na kuanzisha msingi wa utekelezaji kwenye kompyuta.

Madhumuni ya kuunda kielelezo cha kitu ni kuelezea vitu ambavyo kwa pamoja huunda mfumo ulioundwa, na pia kutambua na kuonyesha utegemezi mbalimbali kati ya vitu.

Darasa ni kielezi cha seti ya vitu ambavyo vina sifa sawa. Darasa linaelezea sifa za idadi ya vitu. Kila kitu ni mfano wa darasa moja tu.

Vitu vyote vya darasa moja vina sifa ya seti sawa za sifa. Walakini, mgawanyiko wa vitu katika madarasa hauamuliwa na seti za sifa, lakini kwa semantiki. Kwa hiyo, kwa mfano, vitu vilivyo imara na farasi vinaweza kuwa na sifa sawa: bei na umri. Kwa kuongezea, wanaweza kuwa wa darasa moja ikiwa watazingatiwa kwenye shida kama bidhaa, au kwa madarasa tofauti, ambayo ni ya asili zaidi.

Kuchanganya vitu katika madarasa hukuruhusu kuanzisha uondoaji kwenye shida na kuizingatia katika uundaji wa jumla zaidi. Darasa lina jina (kama vile farasi) ambalo linatumika kwa vitu vyote vya darasa hilo. Kwa kuongeza, darasa lina majina ya sifa ambazo zimefafanuliwa kwa vitu. Kwa maana hii, maelezo ya darasa ni sawa na maelezo ya aina ya muundo (rekodi); Kwa kuongezea, kila kitu kina maana sawa na mfano wa muundo (kigeu au thabiti cha aina inayolingana).

Sifa ya kitu ni thamani inayobainisha kitu katika darasa lake. Mifano ya sifa: kufanya, mwaka wa utengenezaji, rangi (sifa za vitu vya darasa la gari), nk.

Operesheni ni chaguo za kukokotoa (au mabadiliko) ambayo inaweza kutumika kwa vitu vya darasa fulani. Mifano ya shughuli: angalia, ondoa, usakinishe (kwa vitu vya darasa la vipuri).

Vitu vyote vya darasa fulani hutumia mfano sawa wa kila operesheni (yaani, kuongeza idadi ya vitu vya darasa fulani hakuongezi kiwango cha upakiaji. msimbo wa programu) Kitu ambacho operesheni inaitwa hupitishwa kwake kama hoja yake kamili (parameta).

Operesheni hiyo hiyo inaweza kutumika kwa vitu vya madarasa tofauti: operesheni kama hiyo inaitwa polymorphic kwa sababu inaweza kuwa na aina tofauti za madarasa tofauti.

Mategemeo kati ya madarasa ni ya pande mbili: madarasa yote katika utegemezi yana haki sawa. Hii ni kweli hata katika hali ambapo jina la utegemezi linaonekana kuanzisha mwelekeo katika utegemezi. Mategemeo kati ya madarasa yanahusiana na utegemezi kati ya vitu vya madarasa haya. Vitegemezi, kama madarasa, vinaweza kuwa na sifa.

Kibaguzi ni sifa ya aina ya "hesabu" ambayo inaonyesha ni sifa gani za vitu ambazo ujanibishaji fulani umeundwa.

Jukumu linafafanua upande mmoja wa utegemezi. Katika utegemezi wa binary, majukumu mawili yanafafanuliwa. Jina la jukumu hutambulisha upande mmoja wa utegemezi kwa njia ya kipekee. Majukumu hufanya iwezekane kuona utegemezi wa binary kama uhusiano kati ya kitu na seti ya vitu tegemezi: kila jukumu ni uteuzi wa kitu au seti ya vitu vilivyounganishwa na utegemezi kwa kitu kwenye ncha nyingine ya utegemezi. Jina la jukumu linaweza kuzingatiwa kama sifa inayotokana ambayo seti ya thamani ni seti ya vitu vinavyohusishwa na jukumu hilo. Katika utegemezi wa binary, jozi ya majina ya jukumu inaweza kutumika kutambua utegemezi huo.

Majina ya jukumu lazima yabainishwe katika hali ambapo utegemezi umeanzishwa kati ya vitu vya darasa moja. Majina ya jukumu lazima yawe ya kipekee kwa sababu hutumiwa kutofautisha vitu vinavyohusika katika utegemezi.

Mhitimu ni sifa inayokuruhusu kupunguza msururu mzuri wa utegemezi. Waliohitimu hutumiwa katika tegemezi za moja kwa nyingi au nyingi hadi nyingi.

Ujumlisho ni utegemezi kati ya darasa la vitu vyenye mchanganyiko na madarasa yanayowakilisha vijenzi vya vitu hivi (uhusiano wa "zima" - "sehemu").

Ujumla na urithi hufanya iwezekanavyo kutambua mlinganisho kati ya madarasa tofauti ya vitu na kuamua uainishaji wa ngazi mbalimbali wa vitu. Kwa hivyo, katika mifumo ya picha kunaweza kuwa na madarasa ambayo huamua taswira ya maumbo anuwai ya kijiometri: vidokezo, mistari (mistari ya moja kwa moja, safu za mviringo na curves zinazofafanuliwa na splines), poligoni, duru, nk.

Kibaguzi ni sifa ya aina ya "hesabu" ambayo inaonyesha ni sifa gani za vitu ambazo ujanibishaji fulani umeundwa.

Ikumbukwe kwamba uainishaji wa kina wa viwango vingi unapaswa kuepukwa kwa sababu tabia ya tabaka ndogo za viwango vya chini vya uainishaji wa viwango vingi inaweza kuwa ngumu kuelewa: sifa nyingi (na mara nyingi zote) za sifa na shughuli za madarasa kama haya zinafafanuliwa. katika madaraja yao makubwa ya viwango mbalimbali. Ikiwa idadi ya viwango vya uainishaji imekuwa kubwa sana, unahitaji kubadilisha kidogo muundo wa mfumo.

Ujumla na urithi hutumiwa sana sio tu katika uchambuzi wa mahitaji ya mifumo ya programu na muundo wao wa awali, lakini pia katika utekelezaji wao.

Wakati mwingine ni muhimu kwa darasa dogo kubatilisha operesheni iliyofafanuliwa katika moja ya darasa lake kuu. Ili kufikia hili, operesheni ambayo inaweza kupatikana kutoka kwa darasa la juu kama matokeo ya urithi pia inafafanuliwa katika darasa ndogo; ufafanuzi huu upya "huficha" ufafanuzi wake katika darasa kuu, ili operesheni iliyobatilishwa katika darasa ndogo, sio ya kurithi, itumike. Kumbuka kwamba kila operesheni inafafanuliwa na saini yake; kwa hivyo, saini ya ubatilishaji wa operesheni lazima ilingane na saini ya operesheni katika darasa la juu ambalo limebatilishwa na operesheni.

Ubatilishaji unaweza kutimiza mojawapo ya madhumuni yafuatayo:

ugani: operesheni mpya huongeza operesheni ya urithi, kwa kuzingatia ushawishi wa sifa za subclass;

kikomo: operesheni mpya ni mdogo kwa kufanya sehemu tu ya vitendo vya operesheni ya urithi, kwa kutumia maalum ya vitu vya subclass;

optimization: kutumia maalum ya vitu vya subclass hukuruhusu kurahisisha na kuharakisha njia inayolingana;

urahisi.

Inashauriwa kuzingatia sheria zifuatazo za semantic za urithi:

shughuli zote za hoja (shughuli zinazotumia maadili ya sifa lakini hazibadilishi) lazima zirithiwe na aina zote ndogo;

shughuli zote zinazobadilisha maadili ya sifa lazima zirithiwe katika upanuzi wao wote;

shughuli zote zinazobadilisha maadili ya sifa zilizozuiliwa au sifa ambazo zinafafanua utegemezi lazima zizuie katika viendelezi vyao vyote;

shughuli hazipaswi kufafanuliwa kimsingi; njia zote za kutekeleza operesheni sawa lazima zifanye ubadilishaji wa sifa sawa;

Shughuli za kurithi zinaweza kusafishwa kwa kuongeza vitendo vya ziada.

Kwa kufuata sheria hizi, ambazo, kwa bahati mbaya, haziungwi mkono na lugha za programu zinazoelekezwa na kitu, unaweza kufanya programu unayounda ieleweke zaidi, rahisi kurekebisha, na isiweze kuathiriwa na makosa na uangalizi mbalimbali.

Darasa la kufikirika haliwezi kuwa na vitu kwa sababu halifafanui shughuli kwenye vitu; vitu lazima viwe vya subclasses halisi za darasa la kufikirika. Madarasa ya muhtasari hutumiwa kubainisha violesura vya utendakazi (mbinu zinazotekeleza shughuli hizi hufafanuliwa baadaye katika vijitabu vya darasa la dhahania). Madarasa ya muhtasari yanafaa wakati wa awamu ya kuchanganua mahitaji ya mfumo, kwa kuwa huturuhusu kutambua mlinganisho katika shughuli zinazoonekana kuwa tofauti zinazofafanuliwa katika mfumo unaochanganuliwa.

Urithi mwingi huruhusu darasa kuwa na zaidi ya darasa moja, kurithi mali (sifa na shughuli) za madarasa yake yote makubwa. Darasa ambalo lina darasa kuu nyingi linaitwa darasa la umoja. Sifa za darasa la mababu zinazoonekana zaidi ya mara moja kwenye grafu ya urithi hurithiwa katika nakala moja tu. Migogoro kati ya fasili sawia huleta utata ambao lazima utatuliwe wakati wa utekelezaji. Kimsingi, utata kama huo au uelewa duni unapaswa kuepukwa hata wakati lugha fulani ya programu iliyochaguliwa kutekeleza mfumo inatoa uwezo wa kutatua kwa kutumia vipaumbele au njia zingine.

Katika muundo unaolenga kitu, tunashughulika na seti za vitu vilivyounganishwa. Kila kitu kinaweza kutibiwa kama kigeugeu au kisichobadilika cha aina ya muundo (kwa njia hii, njia zilizoelezewa kwenye kitu huchukuliwa kama anwani za kazi ambazo zinaruhusiwa kutumika kwa kitu hiki). Kwa hiyo, seti ya vitu ni seti ya data iliyounganishwa, i.e. kitu sawa na hifadhidata. Kwa hivyo, utumiaji wa dhana za hifadhidata mara nyingi ni muhimu katika uchanganuzi unaolenga kitu na muundo unaolenga kitu wa mifumo ya programu ya programu.

Metadata ni data inayoelezea data nyingine. Kwa mfano, ufafanuzi wa darasa ni metadata, kwani darasa linaelezea data nyingine - vitu vya darasa hili. Miundo ni metadata kwa sababu inaelezea vitu vinavyotengenezwa. Mfano mwingine wa metadata ni darasa la kufikirika.

Waigizaji ni majukumu yanayochezwa na vyombo vinavyoingiliana moja kwa moja na mfumo.

Mwigizaji anafafanua jukumu ambalo chombo fulani cha nje hucheza wakati wa kuingiliana moja kwa moja na mfumo fulani. Inaweza kuwakilisha jukumu la mtumiaji au jukumu linalotekelezwa na mfumo mwingine au kipande cha maunzi kinachogusa mipaka ya mfumo.

Nilipenda sana maelezo ya wazo la "muigizaji" katika kazi ya Jim Arlow na Isle Neustadt "UML 2 na Mchakato wa Umoja": "Ili kuelewa waigizaji, ni muhimu kuelewa dhana ya majukumu. Jukumu linaweza kuzingatiwa kama kofia ambayo huvaliwa katika hali fulani." (ukurasa wa 92).

Wakati dhana za msingi zinajulikana, tunaweza kufikiria kujenga mfano yenyewe

  1. Kuunda mfano wa kitu
    1. Kufafanua madarasa

Uchambuzi wa mahitaji ya nje ya mfumo wa programu iliyoundwa huturuhusu kuamua vitu na aina za vitu vinavyohusishwa na shida ya programu ambayo mfumo huu lazima utatue. Unahitaji kuanza kwa kubaini madarasa yanayowezekana kutoka kwa taarifa iliyoandikwa ya shida iliyotumika ( hadidu za rejea na nyaraka zingine zinazotolewa na mteja). Hii ni hatua ngumu sana na inayowajibika ya maendeleo, kwani hatima ya baadaye ya mradi inategemea sana.

Wakati wa kutambua madarasa iwezekanavyo, unapaswa kujaribu kutambua madarasa mengi iwezekanavyo, kuandika jina la kila darasa linalokuja akilini. Hasa, kila nomino inayojitokeza katika taarifa ya awali ya tatizo inaweza kuwa na darasa linalolingana. Kwa hivyo, wakati wa kutambua madarasa yanayowezekana, kila nomino kama hiyo kawaida huhusishwa na darasa linalowezekana.

madarasa yasiyo ya kawaida: ikiwa madarasa mawili au zaidi yanaonyesha habari sawa, moja tu kati yao inapaswa kubakishwa;

darasa zisizo na maana (zisizohusiana moja kwa moja na shida): kwa kila jina la darasa linalowezekana, inapimwa jinsi ilivyo muhimu katika mfumo wa baadaye (mara nyingi ni ngumu sana kutathmini hii); madarasa yasiyofaa yametengwa;

hufafanuliwa bila kufafanua (kutoka kwa mtazamo wa shida inayozingatiwa) madarasa;

sifa: nomino zingine zinalingana zaidi na sifa kuliko madaraja; nomino hizo, kama sheria, huelezea mali ya vitu (kwa mfano, jina, umri, uzito, anwani, nk);

oparesheni: baadhi ya nomino zina uwezekano mkubwa wa kuwa majina ya operesheni kuliko madarasa (kwa mfano, simu_call haiwezekani kumaanisha darasa lolote);

majukumu: baadhi ya nomino hufafanua majina ya jukumu katika modeli ya kitu (kwa mfano, mmiliki, dereva, bosi, mfanyakazi; majina haya yote yanahusishwa na majukumu katika utegemezi wa vitu mbalimbali wa tabaka la mtu);

ujenzi wa utekelezaji: majina yanayohusiana zaidi na programu na vifaa vya kompyuta haipaswi kulinganishwa na madarasa katika hatua hii, kwani hayaonyeshi sifa za mfumo wa maombi iliyoundwa; mifano ya majina kama haya: subroutine, mchakato, algorithm, kukatiza, nk.

Baada ya kuondoa majina ya madarasa yote yasiyo ya lazima (ya kupita kiasi), orodha ya awali ya madarasa ambayo hufanya mfumo ulioundwa itapatikana.

    1. Kutayarisha Kamusi ya Data

Maneno ya mtu binafsi yana tafsiri nyingi sana. Kwa hivyo, ni muhimu mwanzoni mwa kubuni kuandaa kamusi ya data iliyo na ufafanuzi wazi na usio na utata wa vitu vyote (madarasa), sifa, shughuli, majukumu na vyombo vingine vinavyozingatiwa katika mradi huo. Bila kamusi kama hiyo, kujadili mradi na watengenezaji wenzako na wateja wa mfumo hauna maana, kwani kila mtu anaweza kutafsiri maneno yaliyojadiliwa kwa njia yao wenyewe.

2.3. Kufafanua tegemezi

Katika hatua inayofuata ya kujenga mfano wa kitu, utegemezi kati ya madarasa umedhamiriwa. Kwanza kabisa, sifa ambazo ni viungo dhahiri kwa madarasa mengine hazijumuishwi kwenye madarasa; sifa kama hizo hubadilishwa na utegemezi. Hoja ya uingizwaji huu ni kwamba utegemezi unawakilisha uondoaji katika kiwango sawa na madarasa, na kwa hivyo hauna athari ya moja kwa moja kwenye utekelezaji wa siku zijazo (rejeleo la darasa ni njia moja tu ya kutekeleza utegemezi).

Kama vile majina ya madarasa yanayowezekana yalipatikana kutoka kwa nomino zilizopatikana katika taarifa ya awali ya shida ya maombi, majina ya vitegemezi vinavyowezekana yanaweza kupatikana kutoka kwa vitenzi au vishazi vya vitenzi vilivyopatikana katika hati iliyobainishwa. Hivi ndivyo wanavyoelezea kwa kawaida: nafasi ya kimwili (ifuatayo_nyuma, ni_sehemu, imejumuishwa), hatua iliyoelekezwa (inaongoza_kwenye_mwendo), mawasiliano (kuzungumza_kwa), kumiliki (ina, ni_sehemu), nk.

Unapaswa kuondoa utegemezi usio wa lazima au usio sahihi kwa kutumia vigezo vifuatavyo:

utegemezi kati ya madarasa yaliyotengwa lazima uondolewe, au ufanyike upya kulingana na madarasa yaliyobaki;

Utegemezi usio na maana na unaohusiana na utekelezaji unapaswa kuondolewa;

vitendo: utegemezi unapaswa kuelezea mali ya kimuundo ya kikoa cha maombi, na sio matukio yasiyo muhimu;

utegemezi wa trenary: tegemezi nyingi kati ya tatu au idadi kubwa madarasa yanaweza kugawanywa katika utegemezi kadhaa wa binary, kwa kutumia wahitimu ikiwa ni lazima; katika baadhi ya matukio (nadra sana) mtengano huo hauwezi kufanywa; kwa mfano, utegemezi wa trenary "Profesa anafundisha kozi katika chumba 628" hauwezi kugawanywa katika binary bila kupoteza habari;

utegemezi unaotokana: ni muhimu kuwatenga utegemezi ambao unaweza kuonyeshwa kupitia utegemezi mwingine, kwa kuwa ni wa ziada; wakati wa kuwatenga utegemezi wa ziada (unaotokana), unahitaji kuwa mwangalifu sana, kwani sio utegemezi wote wa kurudia kati ya madarasa ni duni; katika baadhi ya matukio, utegemezi mwingine hutuwezesha kuanzisha tu kuwepo kwa utegemezi mwingine unaotokana, lakini usituruhusu kuanzisha wingi wa utegemezi huu.

Baada ya kuondoa utegemezi usiohitajika, unahitaji kufafanua semantiki za utegemezi uliobaki kama ifuatavyo:

vitegemezi vilivyotajwa vibaya: vinapaswa kubadilishwa jina ili maana yao iwe wazi;

majina ya jukumu: unahitaji kuongeza majina ya jukumu inapobidi; jina la jukumu linaelezea jukumu linalochezwa na darasa linalolingana katika utegemezi fulani kutoka kwa mtazamo wa darasa lingine linaloshiriki katika utegemezi huo; ikiwa jina la jukumu liko wazi kutoka kwa jina la darasa, linaweza kuachwa;

wahitimu: kwa kuongeza wahitimu inapobidi, tunatanguliza vipengele vya muktadha, ambavyo hutuwezesha kufikia utambulisho usio na utata wa vitu; wahitimu pia hufanya iwezekane kurahisisha baadhi ya utegemezi kwa kupunguza wingi wao;

kuzidisha: inahitajika kuongeza majina kwa wingi wa utegemezi; Ikumbukwe kwamba wingi wa utegemezi unaweza kubadilika katika mchakato wa uchambuzi zaidi wa mahitaji ya mfumo;

tegemezi zisizohesabiwa lazima zitambuliwe na kuongezwa kwa mfano.

2.4. Uboreshaji wa sifa

Katika hatua inayofuata, mfumo wa sifa unafafanuliwa: sifa za darasa zinarekebishwa, sifa mpya zinaletwa, ikiwa ni lazima. Sifa zinaonyesha sifa za vitu vya darasa linalohusika, au kuamua hali yao ya sasa.

Sifa kwa kawaida hulingana na nomino; kwa mfano, gari_color (mali ya kitu), cursor_position (hali ya kitu). Sifa, kama sheria, zina athari kidogo kwenye muundo wa mfano wa kitu.

Pamoja na sifa za kitu, ni muhimu pia kuingiza sifa za utegemezi kati ya madarasa (mahusiano kati ya vitu).

Wakati wa kutaja sifa, zinaongozwa na vigezo vifuatavyo:

Kubadilisha sifa na vitu. Ikiwa uwepo wa chombo fulani ni muhimu zaidi kuliko thamani yake, basi ni kitu ikiwa maana ni muhimu zaidi, basi hii ni sifa: kwa mfano, bosi ni kitu (haijalishi bosi ni nani, jambo kuu ni kwamba mtu ni), mshahara ni sifa (maana yake ni muhimu sana); mji daima ni kitu, ingawa katika hali nyingine inaweza kuonekana kuwa ni sifa (kwa mfano, jiji kama sehemu ya anwani ya kampuni); katika hali ambapo unataka jiji liwe sifa, unapaswa kufafanua utegemezi (sema, uliopo) kati ya kampuni ya madarasa na jiji.

Waliofuzu. Ikiwa maana ya sifa inategemea muktadha maalum, inapaswa kufanywa kuwa mhitimu.

Majina. Majina kawaida hulinganishwa vyema na wanaohitimu kuliko sifa za vitu; katika hali zote ambapo jina huruhusu mtu kuchagua kutoka kwa vitu vya seti fulani, inapaswa kufanywa kuwa mhitimu.

Vitambulisho. Vitambulisho vya vitu vinahusishwa na utekelezaji wao. Katika hatua za mwanzo za kubuni hazipaswi kuchukuliwa kuwa sifa.

Tabia za viunganisho. Ikiwa mali fulani haiashirii kitu yenyewe, lakini uhusiano wake na kitu kingine (vitu), basi hii ni sifa ya uunganisho, na sio sifa ya kitu.

Maadili ya ndani. Sifa zinazofafanua tu hali ya ndani ya kitu, kisichoonekana nje ya kitu, zinapaswa kutengwa na kuzingatiwa.

Maelezo yasiyo muhimu. Inashauriwa kuacha sifa ambazo haziathiri utekelezaji wa shughuli nyingi.

2.5. Kutengwa kwa mifumo ndogo

Mfumo wa maombi ni seti ya vitu vinavyotegemeana. Kila kitu kina sifa ya seti ya sifa, maadili ambayo huamua hali ya kitu, na seti ya shughuli ambazo zinaweza kutumika kwa kitu hiki. Wakati wa maendeleo mifumo ya maombi ni rahisi kudhani kuwa sifa zote za vitu ni za kibinafsi (yaani, hazipatikani nje ya kitu, na ili kujua thamani ya sifa ya kitu kingine katika kitu, au kuibadilisha, ni muhimu tumia moja ya shughuli za umma za kitu hiki, isipokuwa, bila shaka, operesheni kama hiyo imefafanuliwa). Uendeshaji wa kitu unaweza kuwa wa umma au wa faragha.

Kwa hivyo, kila kitu kina kiolesura kilichofafanuliwa madhubuti, i.e. seti ya shughuli za umma ambazo zinaweza kutumika kwa kitu hiki. Vitu vyote vya darasa moja vina kiolesura sawa. Kiolesura cha darasa (na, kwa hiyo, cha kila kitu cha darasa hili) kinatajwa na orodha ya saini za shughuli zake za wazi (za umma) (na mbinu zinazozitekeleza); saini za shughuli zilizofungwa hazijumuishwa kwenye kiolesura cha vitu vya darasa linalolingana.


na kadhalika.................

Mfumo wa maombi inawakilisha seti ya vitu vinavyotegemeana. Kila kitu kina sifa ya seti ya mali, maadili ambayo huamua hali ya kitu, na seti ya shughuli ambazo zinaweza kutumika kwa kitu hiki.

Wakati wa kuendeleza mifumo ya maombi, ni rahisi kudhani kuwa mali zote za vitu ni za kibinafsi (yaani, hazipatikani nje ya kitu). Uendeshaji wa kitu unaweza kuwa wa umma au wa faragha.

Kwa hivyo, kila kitu kina kiolesura kilichofafanuliwa madhubuti, i.e. seti ya shughuli za umma ambazo zinaweza kutumika kwa kitu hiki. Vitu vyote vya darasa moja vina kiolesura sawa.

Kielelezo cha kitu kinawakilisha muundo wa takwimu wa mfumo ulioundwa (mfumo mdogo). Walakini, maarifa muundo tuli haitoshi kuelewa na kutathmini mfumo mdogo wa roboti. Inahitajika kuwa na njia za kuelezea mabadiliko yanayotokea na vitu na viunganisho vyao wakati wa uendeshaji wa mfumo mdogo.

Moja ya njia hizi ni mtindo wa nguvu mifumo midogo. Imejengwa baada ya kielelezo cha kifaa cha mfumo mdogo kujengwa na kukubaliwa hapo awali na kutatuliwa. Muundo unaobadilika wa mfumo mdogo una michoro ya hali ya vitu vyake vya mfumo mdogo.

Hali ya sasa ya kitu inaonyeshwa na seti ya maadili ya sasa ya sifa na uhusiano wake. Wakati wa uendeshaji wa mfumo, vitu vyake vinavyohusika vinaingiliana, kama matokeo ya ambayo majimbo yao yanabadilika. Kitengo cha ushawishi ni tukio: kila tukio husababisha mabadiliko katika hali ya kitu kimoja au zaidi katika mfumo, au kwa tukio la matukio mapya. Uendeshaji wa mfumo una sifa ya mlolongo wa matukio yanayotokea ndani yake.

Tukio hutokea kwa wakati fulani. Mifano ya matukio: uzinduzi wa roketi, kuanza kwa mbio za mita 100, kuanza kwa wiring, utoaji wa fedha, nk. Tukio halina muda (kwa usahihi zaidi, inachukua muda usio na maana).

Ikiwa matukio hayana uhusiano wa sababu (yaani ni huru kimantiki), huitwa kujitegemea(sambamba). Matukio kama haya hayaathiri kila mmoja. Hakuna maana katika kuagiza matukio ya kujitegemea, kwa kuwa yanaweza kutokea kwa utaratibu wowote. Mfano mfumo uliosambazwa lazima lazima iwe na matukio na shughuli huru.

Mlolongo wa matukio huitwa script. Baada ya matukio kuendelezwa na kuchambuliwa, vitu vinavyozalisha na kupokea kila tukio la kisa huamuliwa.

Wakati tukio linatokea, sio tu mabadiliko ya kitu kwa hali mpya, lakini pia hatua inayohusishwa na tukio hili inafanywa. Kitendo ni operesheni ya papo hapo inayohusishwa na tukio.

Mchakato wa kuunda mfano wa kitu ni pamoja na hatua zifuatazo:

Ufafanuzi wa vitu na madarasa;

Kutayarisha kamusi ya data:

Kuamua utegemezi kati ya vitu;

Kuamua mali ya vitu na viunganisho;

Kuandaa na kurahisisha madarasa wakati wa kutumia urithi;

Utafiti zaidi na uboreshaji wa modeli.

Mfano wa kitu biashara iliyopo inaonyesha jinsi gani na kutokana na yale yaliyotangulia yanatekelezwa. Mfano huu inaonyesha shirika la ndani biashara, yaani: ni aina gani za rasilimali zinazotumiwa kutekeleza utangulizi na jinsi zinavyoingiliana. Maelezo ya mfano wa kitu ni msingi wa dhana ya "kitu". Vitu vinawakilisha washiriki wa mchakato na aina mbalimbali za vyombo (bidhaa za kumaliza, utaratibu, nk).

Vitu vya kiolesura vya mchakato wa biashara unaochunguzwa:

  • 1. Meneja wa huduma kwa wateja. Sifa: jina kamili, nafasi, mshahara. Majukumu: huingiliana na wateja, huweka maagizo, hupokea malipo kutoka kwa wateja kwa maagizo.
  • 2. Mtunza duka anayewajibika kifedha. Sifa: jina kamili, nafasi, mshahara. Majukumu: kuingiliana na wasambazaji, kukubali nyenzo na ankara za saini.
  • 3. Dereva wa utoaji. Sifa: jina kamili, nafasi, mshahara. Majukumu: Uwasilishaji wa bidhaa iliyokamilishwa kwa mteja.

Kudhibiti vitu vya mchakato wa biashara chini ya utafiti:

  • 1. Mbunifu. Sifa: jina kamili, nafasi, mshahara. Majukumu: muundo wa bidhaa, usimamizi wa mradi, udhibiti.
  • 2. Opereta uhasibu otomatiki. Sifa: jina kamili, nafasi, mshahara. Majukumu: kudumisha rekodi za kiotomatiki, kufanya kazi na hifadhidata.
  • 3. Furniture master (Assembler). Sifa: jina kamili, nafasi, mshahara. Majukumu: Utengenezaji wa bidhaa kulingana na mradi.

Vitu vya shirika vya mchakato wa biashara unaojifunza:

  • 1. Angalia - hati iliyotolewa juu ya malipo ya utaratibu.
  • 2. Katalogi - hati inayoonyesha anuwai ya bidhaa.
  • 3. Fomu ya kuagiza - hati inayojumuisha nambari ya agizo, tarehe ya kuagiza, habari ya mteja, aina iliyochaguliwa, mchoro wa bidhaa, matakwa ya mteja.
  • 4. Muundo wa bidhaa - muundo wa samani zilizoagizwa.
  • 5. Maombi ya vifaa - hati yenye sifa vifaa muhimu na juzuu zao.
  • 6. Database - programu ambayo inakuwezesha kudumisha rekodi za nyenzo katika kampuni.
  • 7. Vifaa - muhimu kwa ajili ya uzalishaji wa bidhaa desturi.
  • 8. Ankara - hati iliyosainiwa juu ya usafirishaji wa vifaa.
  • 9. Bidhaa ya kumaliza ni matokeo ya uzalishaji, yenye sifa ya mali ya utaratibu wowote.

Jedwali 5.1 linatoa maelezo ya uhusiano wa vitu na kila mmoja.

Jedwali 5.1 Maelezo ya jinsi vitu vinavyoingiliana

Vitu vya mawasiliano

Aina ya mawasiliano

Mteja - Meneja wa Akaunti

mtazamo wa mawasiliano

Mteja huwasiliana na meneja ili kuweka agizo la utengenezaji wa samani

Meneja - Mteja

mtazamo wa mawasiliano

Meneja hutoa mteja orodha ya michoro zinazowezekana za bidhaa

Mteja - Katalogi

uwiano wa matumizi

Mteja huchagua mchoro unaofaa

Meneja wa mteja

mtazamo wa mawasiliano

Mteja anaonyesha chaguo na matakwa yake

Meneja - Mteja

mtazamo wa mawasiliano

Meneja anaelezea masharti na masharti

Meneja wa mteja

mtazamo wa mawasiliano

Mteja hulipa agizo

Meneja - Angalia

uwiano wa matumizi

Meneja akichapisha hundi

Meneja - Mteja

mtazamo wa mawasiliano

Meneja anatoa hundi kwa mteja

Meneja - Fomu ya Kuagiza

uwiano wa matumizi

Meneja huunda fomu ya agizo

Meneja - Mbuni

mtazamo wa mawasiliano

Meneja huchukua fomu ya kuagiza kwa mbunifu katika idara ya muundo

Muumbaji - Fomu ya Kuagiza

uwiano wa matumizi

Muumbaji anakubali fomu ya utaratibu

uwiano wa matumizi

Mbuni huendeleza mradi

Mbuni - Ubunifu wa Bidhaa

uwiano wa matumizi

Mbuni anatathmini mradi

Mbuni - Ombi la vifaa

uwiano wa matumizi

Muumbaji huunda ombi la vifaa

Mbuni - Opereta wa uhasibu otomatiki

mtazamo wa mawasiliano

Mbuni huwasilisha ombi la vifaa kwa mwendeshaji wa uhasibu wa kiotomatiki

Opereta wa uhasibu otomatiki - Ombi la nyenzo

uwiano wa matumizi

Opereta wa uhasibu otomatiki anakubali maombi ya nyenzo

Opereta wa uhasibu otomatiki - Hifadhidata

uwiano wa matumizi

Opereta wa uhasibu wa kiotomatiki huangalia upatikanaji wa vifaa muhimu na vifaa vinavyopatikana

Mtunza duka anayewajibika kifedha - Wasambazaji

mtazamo wa mawasiliano

Mwenye duka anayewajibika ipasavyo anaagiza vifaa muhimu kutoka kwa wasambazaji

Wasambazaji - Mtunza duka anayewajibika kifedha

mtazamo wa mawasiliano

Utoaji wa nyenzo

Mtunza duka anayewajibika kifedha - Nyenzo

uwiano wa matumizi

Mapokezi ya vifaa

Mtunza duka anayewajibika kifedha - ankara

uwiano wa matumizi

Inatia saini ankara

Mtunza duka anayewajibika kifedha - Mtozaji

mtazamo wa mawasiliano

Ujumbe kuhusu upatikanaji wa vifaa kwenye ghala

Mbuni - Mkusanyaji

mtazamo wa mawasiliano

Kuhamisha muundo wa bidhaa kwa mkusanyaji

Assembler - Ubunifu wa Bidhaa

uwiano wa matumizi

Mkusanyaji wa samani hupokea na kujifunza muundo wa bidhaa

Assembler - Bidhaa iliyokamilishwa

uwiano wa matumizi

Mkusanyaji hufanya bidhaa

Assembler - Mbuni

mtazamo wa mawasiliano

Mkusanyaji huita mbuni ili kudhibiti ubora wa bidhaa

Mbuni - Bidhaa iliyokamilishwa

uwiano wa matumizi

Udhibiti wa ubora wa bidhaa

Mbuni - Mkusanyaji

mtazamo wa mawasiliano

Muumbaji anatoa tathmini ya ubora wa bidhaa

Assembler - Bidhaa iliyokamilishwa

uwiano wa matumizi

Marekebisho ya kasoro katika bidhaa iliyokamilishwa

Mtoza - Dereva wa usambazaji

mtazamo wa mawasiliano

Kukabidhi fomu ya agizo na bidhaa iliyokamilishwa kwa dereva wa usambazaji

Delivery driver - Mteja

mtazamo wa mawasiliano

Uhamisho wa bidhaa iliyokamilishwa

Kumbuka: Ikiwa vifaa muhimu viko kwenye hisa, basi aya ya 18, 19, 20, 21 ya meza hii imerukwa.

Muundo unaobadilika wa mwingiliano kati ya idara na mteja katika utangulizi wa "Kuuza bidhaa maalum" umeonyeshwa kwenye Mchoro 5.1 Muundo wa maingiliano kati ya idara, mfanyakazi na mteja katika kielelezo cha "Kuagiza" umeonyeshwa kwenye Mchoro 5.2 Muundo unaobadilika. ya mwingiliano kati ya idara, wafanyikazi na mteja katika kitangulizi cha "Kubuni" imeonyeshwa kwenye Mchoro 5.3. Mfano wa nguvu wa mwingiliano wa wafanyikazi, katika kielelezo cha "Utengenezaji" umeonyeshwa kwenye Mchoro 5.4.

Mchoro 5.1 Mchoro wa mfuatano wa kesi ya matumizi ya Uuzaji wa Bidhaa Maalum

Mchoro 5.2 Mchoro wa mpangilio wa kesi ya matumizi ya "Weka agizo".

Mchoro 5.3 Mchoro wa Mfuatano wa Usanifu wa Matumizi

Mchoro 5.4 Mchoro wa mpangilio wa kesi ya matumizi ya Utengenezaji

Msingi wa dhana ya mbinu inayolengwa na kitu ni kielelezo cha kitu. Kanuni kuu za ujenzi wake ni:

· uondoaji;

· encapsulation;

· modularity;

· uongozi.

Muhtasari ni uteuzi wa sifa muhimu zaidi, muhimu za kitu fulani, ambacho hukitofautisha na aina zingine zote za vitu na, kwa hivyo, kufafanua wazi mipaka yake ya kidhana kutoka kwa mtazamo wa kuzingatia na uchanganuzi zaidi, na kupuuza sio muhimu sana au isiyo na maana. maelezo.

Abstraction inakuwezesha kusimamia utata wa mfumo kwa kuzingatia mali muhimu ya kitu. Abstraction inazingatia umakini vipengele vya nje kitu na hukuruhusu kutenganisha sifa muhimu zaidi za tabia yake kutoka kwa maelezo ya utekelezaji wao. Chaguo seti sahihi vifupisho kwa fulani eneo la somo inawakilisha kazi kuu muundo unaolenga kitu. Ufupisho unategemea kikoa na mtazamo - ni nini muhimu katika muktadha mmoja inaweza kuwa sio muhimu katika mwingine. Vitu na madarasa ni vifupisho vya msingi vya kikoa.

Ujumuishaji ni ujanibishaji halisi wa mali na tabia ndani ya uondoaji mmoja (unaozingatiwa "kisanduku cheusi"), ukificha utekelezaji wake nyuma ya kiolesura cha umma.

Encapsulation ni mchakato wa kujitenga kutoka kwa kila mmoja vipengele vya mtu binafsi kitu ambacho huamua muundo na tabia yake. Ufungaji hutumika kutenga kiolesura cha kitu, ambacho huakisi tabia yake ya nje, kutoka kwa utekelezaji wa ndani wa kitu. Mtazamo wa kitu unadhani kuwa rasilimali asilia, ambazo zinaweza kubadilishwa tu na utendakazi wa kitu chenyewe, zimefichwa kutoka. mazingira ya nje. Uondoaji na usimbaji ni nyongeza: uondoaji hulenga umakini kwenye sifa za nje za kitu, huku usimbaji (au kuzuia ufikiaji) huzuia vipengee vya watumiaji kutambua muundo wa ndani wa kitu.

Ufungaji ni sawa na dhana ya kuficha habari. Huu ni uwezo wa kuficha maelezo mengi ya kitu kutoka kwa ulimwengu wa nje. Ulimwengu wa nje kitu ni kila kitu kilicho nje yake, ikiwa ni pamoja na wengine wa mfumo. Kuficha habari hutoa faida sawa na ujumuishaji: kubadilika.

Modularity ni sifa ya mfumo unaohusishwa na uwezekano wa mtengano wake katika idadi ya mifumo midogo iliyounganishwa kwa ndani, lakini iliyounganishwa dhaifu (moduli).

Ukawaida hupunguza utata wa mfumo kwa kuruhusu uundaji huru wa moduli za kibinafsi. Ujumuishaji na ustahimilivu huunda vizuizi kati ya uondoaji.

Hierarkia ni mfumo ulioorodheshwa au ulioamriwa wa vifupisho, mpangilio wao kwa viwango.

Aina kuu za miundo ya kihierarkia kuhusiana na mifumo tata ni muundo wa madarasa (hierarkia kwa nomenclature) na muundo wa vitu (hierarkia kwa muundo). Mifano ya uongozi wa darasa ni rahisi na urithi nyingi(darasa moja hutumia sehemu ya kimuundo au kazi, mtawalia, ya darasa moja au zaidi), na madaraja ya vitu ni mkusanyiko.

Madarasa yanaweza kupangwa kama muundo wa kihierarkia, ambayo kwa mujibu wa mwonekano inafanana na mpango wa uainishaji katika mantiki ya dhana. Msimamo wa dhana umeundwa kama ifuatavyo. Wazo la jumla au kategoria inachukuliwa kuwa dhana ambayo ina ujazo mkubwa na, ipasavyo, yaliyomo ndogo zaidi. Hii ndiyo zaidi ngazi ya juu vifupisho kwa daraja fulani. Kisha kupewa dhana ya jumla imebainishwa, yaani, ujazo wake hupungua na maudhui yake yanaongezeka. Dhana ndogo ya jumla inaonekana, ambayo katika mchoro wa uongozi itakuwa iko ngazi moja chini ya ile ya awali. Utaratibu huu wa dhana za ujumuishaji unaweza kuendelea hadi ngazi ya chini dhana haitapatikana, ubainifu zaidi ambao katika muktadha huu hauwezekani au hauwezekani.