UML լեզվի ընդհանուր բնութագրերը. UML. տեսությունից մինչև պրակտիկա UML դիագրամների մշակում

Կարծում եմ, որ բոլորը մանկության տարիներին լսել են այսպիսի ասացվածք. Յոթ անգամ չափել մեկ անգամ կտրելԾրագրավորման մեջ նույնն է: Միշտ ավելի լավ է մտածել իրականացման մասին, նախքան դրա կատարման ժամանակ հատկացնելը: Հաճախ իրականացման ընթացքում պետք է դասեր ստեղծեք, հորինեք դրանց փոխազդեցությունը: Եվ հաճախ դրա տեսողական ներկայացումը կարող է օգնել լուծել խնդիրը: ամենաճիշտ ձևով, ահա թե որտեղ ենք մենք օգնում UML.

Ինչ է UML-ը:

Եթե ​​նայեք նկարները որոնման համակարգեր, պարզ է դառնում, որ UML- սա սխեմաների, սլաքների և քառակուսիների մասին է: Կարևորն այն է, որ UML-ը թարգմանվում է որպես Միասնական մոդելավորման լեզու. Այստեղ կարևոր է Unified բառը։ Այսինքն՝ մեր նկարները կհասկանան ոչ միայն մենք, այլ նաև UML-ին իմացող մյուսները։ Պարզվում է, որ սա գծապատկերներ գծելու միջազգային լեզու է։

Ինչպես ասում է Վիքիպեդիան

UML-ը մշակման փուլում գտնվող օբյեկտների մոդելավորման գրաֆիկական նկարագրության լեզու է ծրագրային ապահովում, բիզնես գործընթացների մոդելավորում, համակարգի նախագծում և կազմակերպչական կառույցների ցուցադրում։
Ամենահետաքրքիրը, որի մասին ոչ բոլորն են մտածում կամ կռահում, այն է, որ UML-ն ունի առանձնահատկություններ: Ավելին, կա նույնիսկ UML2 հստակեցում: Հստակեցման մասին լրացուցիչ տեղեկություններ կարելի է գտնել Object Management Group կայքում: Փաստորեն, այս խումբը զբաղվում է UML բնութագրերի մշակմամբ։ Հետաքրքիր է նաև, որ UML-ը չի սահմանափակվում դասերի կառուցվածքի նկարագրությամբ։ Կան բազմաթիվ տեսակի UML դիագրամներ: UML դիագրամների տեսակների համառոտ նկարագրությունը կարելի է տեսնել նույն Վիքիպեդիայում՝ UML դիագրամներ կամ Թիմուր Բատիրշինովի տեսանյութում։ UML դիագրամների ակնարկ. UML-ը լայնորեն օգտագործվում է նաև տարբեր գործընթացներ նկարագրելու համար, օրինակ՝ այստեղ՝ մեկ մուտք՝ օգտագործելով JWT: Վերադառնալով UML դասի դիագրամների օգտագործմանը, հարկ է նշել Head First. Design Patterns գիրքը, որտեղ օրինաչափությունները պատկերված են նույն UML դիագրամներով: Պարզվում է, որ UML-ն իսկապես օգտագործվում է։ Եվ պարզվում է, որ դրա կիրառումն իմանալն ու հասկանալը բավականին օգտակար հմտություն է։

Դիմում

Տեսնենք, թե ինչպես կարող եք աշխատել հենց այս UML-ի հետ IDE-ից: Որպես IDE, վերցրեք IntelliJ գաղափար. Օգտագործման դեպքում IntelliJ Idea Ultimate, այնուհետև մենք կունենանք plugin-ը տեղադրված «արտադրանքից դուրս» UML աջակցությունԱյն թույլ է տալիս ավտոմատ կերպով ստեղծել գեղեցիկ դասի դիագրամներ: Օրինակ, Ctrl + N կամ ընտրացանկի «Navigate» -> «Class» կետի միջոցով անցեք դասարան: ArrayList. Այժմ, միջոցով համատեքստային մենյուըստ դասի անվան ընտրեք «Diagram» -> «Show diagram popup»: Արդյունքում մենք ստանում ենք գեղեցիկ աղյուսակ.

Բայց ի՞նչ, եթե ցանկանում եք ինքներդ նկարել, և նույնիսկ Գաղափարի վերջնական տարբերակը չկա: Եթե ​​մենք օգտագործում ենք IntelliJ Idea Community Edition-ը, ապա այլ ելք չունենք: Դա անելու համար դուք պետք է հասկանաք, թե ինչպես է աշխատում նման UML սխեման: Նախ պետք է տեղադրենք Graphviz-ը: Դա գրաֆիկի վիզուալիզացիայի կոմունալ ծառայությունների մի շարք է: Այն օգտագործվում է plugin-ի կողմից, որը մենք կօգտագործենք: Տեղադրվելուց հետո անհրաժեշտ է ավելացնել գրացուցակ աղբարկղտեղադրված գրացուցակից graphvizՎ շրջակա միջավայրի փոփոխականմիջավայրը ՈՒՂԻ. Դրանից հետո IntelliJ Idea-ում ընտրացանկից ընտրեք File -> Settings: «Կարգավորումներ» պատուհանում ընտրեք «Plugins» կատեգորիան, սեղմեք «Browse repositories» կոճակը և տեղադրեք PlantUML ինտեգրման հավելվածը: Ինչու է սա այդքան լավը PlantUML? Այն օգտագործում է գրաֆիկի նկարագրության լեզու, որը կոչվում է « կետԵվ դա թույլ է տալիս այն ավելի ունիվերսալ, քանի որ այս լեզուն օգտագործվում է ոչ միայն PlantUML-ի կողմից: Ավելին, մենք կարող ենք անել այն ամենը, ինչ անում ենք ստորև ոչ միայն IDE-ում, այլև առցանց ծառայություն planttext.com. PlantUML plugin-ը տեղադրելուց հետո մենք կկարողանանք ստեղծել UML դիագրամներ «File» -> «New» միջոցով: Եկեք ստեղծենք «UML դասի» դիագրամ: Սրա ընթացքում ինքնաբերաբար ստեղծվում է օրինակով կաղապար։ Եկեք ջնջենք դրա բովանդակությունը և ստեղծենք մեր սեփականը՝ զինված Habr-ից հոդվածով՝ Դասակարգային հարաբերություններ՝ UML-ից մինչև կոդ: Եվ հասկանալու համար, թե ինչպես կարելի է դա պատկերել տեքստում, վերցնենք PlantUML ձեռնարկը՝ plantuml class-diagram : Դրանում, հենց սկզբում, կա մի ափսե, թե ինչպես նկարագրել կապերը.

Կապերի մասին մենք դեռ կարող ենք դիտել այստեղ. «UML-ի դասերի միջև հարաբերությունները. Օրինակներ»: Այս նյութերի հիման վրա եկեք սկսենք ստեղծել մեր UML դիագրամը։ Երկու դասերը նկարագրող հետևյալ բովանդակությունը ավելացրեք՝ @startuml class ArrayList ( ) class LinkedList ( ) @enduml Idea-ում արդյունքը տեսնելու համար ընտրեք «View» -> «Tool Windows» -> «PlantUML»: Մենք կստանանք դասեր նշանակող ընդամենը երկու քառակուսի: Ինչպես գիտենք, այս երկու դասերն էլ իրականացնում են List ինտերֆեյսը: Դասերի այս հարաբերությունը կոչվում է՝ իրականացում (իրականացում): Նման հարաբերությունը պատկերելու համար օգտագործվում է կետավոր գծով սլաք: Եկեք նկարենք այն. ինտերֆեյսի ցուցակի ցուցակ< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о փաթեթ մասնավոր element array: ~ Object elementData Այժմ մենք ցանկանում ենք ցույց տալ, որ ArrayList-ը պարունակում է որոշ օբյեկտներ: Այս դեպքում կապի տեսակը կլինի. ագրեգացիա(ագրեգացիա): Այս դեպքում ագրեգատը ArrayList-ն է, քանի որ այն պարունակում է այլ առարկաներ: Մենք ընտրում ենք ագրեգացիա, քանի որ ցուցակի օբյեկտները կարող են ապրել առանց ցուցակի. դրանք դրա անբաժանելի մասերը չեն: Նրանց կյանքը կապված չէ ցուցակի կյանքի հետ: Լատիներենից միավորը թարգմանվում է որպես «հավաքված», այսինքն՝ ինչ-որ բան կազմված։ Օրինակ, կյանքում կա պոմպային միավոր, որը բաղկացած է պոմպից և շարժիչից: Միավորն ինքնին կարող է ապամոնտաժվել՝ դրանից ինչ-որ բան թողնելով բաղկացուցիչ մասեր. Օրինակ՝ վաճառել կամ տեղադրել մեկ այլ միավոր։ Այսպիսով, այն գտնվում է ցուցակում: Եվ սա արտահայտվում է միավորի դատարկ ռոմբի և շարունակական գծի տեսքով: Եկեք այսպես ձևակերպենք. դասի Object ( ) ArrayList o- Object Այժմ մենք ուզում ենք ցույց տալ, որ, ի տարբերություն ArrayList-ի, LinkedList դասը պարունակում է Node - կոնտեյներներ, որոնք վերաբերում են պահված տվյալներին: Այս դեպքում հանգույցները հենց LinkedList-ի մի մասն են և չեն կարող ապրել առանձին: Հանգույցը ուղղակիորեն պահված բովանդակություն չէ, այլ միայն հղում է պարունակում դրան: Օրինակ, երբ մենք տող ենք ավելացնում LinkedList-ում, մենք ավելացնում ենք նոր հանգույց, որը պարունակում է հղում դեպի այդ շարքը, ինչպես նաև հղում դեպի նախորդ և հաջորդ հանգույց: Այս տեսակի կապը կոչվում է կազմը(կազմը): Կոմպոզիտը (մասից բաղկացած) ցուցադրելու համար գծվում է լցված ռոբիկ, դրան տանում է շարունակական գիծ։ Հիմա եկեք սա գրենք որպես հղման տեքստային ցուցադրում՝ class Node ( ) LinkedList * -- Node Եվ հիմա մենք պետք է սովորենք, թե ինչպես ցուցադրել կապի մեկ այլ կարևոր տեսակ. կախվածություն(կախվածության հարաբերություն): Այն օգտագործվում է, երբ մի դաս օգտագործում է մյուսը, մինչդեռ դասը չի պարունակում օգտագործված դասը և չի հանդիսանում դրա իրավահաջորդը։ Օրինակ, LinkedList-ը և ArrayList-ը կարող են ստեղծել ListIterator: Եկեք սա ցուցադրենք որպես կետավոր սլաքներ՝ class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Դուք կարող եք մանրամասնել այնքան, որքան անհրաժեշտ է: Բոլոր անվանումները թվարկված են այստեղ՝ «PlantUML - Դասի դիագրամ»: Բացի այդ, նման սխեմա գծելու մեջ ոչ մի գերբնական բան չկա, և ձեր առաջադրանքների վրա աշխատելիս կարող եք արագ նկարել այն ձեռքով: Սա կզարգացնի կիրառական ճարտարապետության միջոցով մտածելու հմտությունները և կօգնի բացահայտել դասի կառուցվածքի թերությունները վաղաժամ, և ոչ թե այն բանից հետո, երբ արդեն մեկ օր եք ծախսել սխալ մոդելի ներդրման վրա: Կարծում եմ, դա լավ պատճառ է փորձելու:)

Ավտոմատացում

Ուտել տարբեր ձևերով PlantUML դիագրամների ավտոմատ արտադրություն: Օրինակ՝ մեջ գաղափարներԿա SketchIT plugin, բայց այն ճիշտ չի նկարում դրանք: Օրինակ, ինտերֆեյսերի իրականացումը սխալ է գծված (ցուցադրվում է որպես ժառանգություն): Նաև ինտերնետում կան օրինակներ, թե ինչպես կարելի է սա ներդնել կյանքի ցիկլձեր նախագծի կառուցումները: Ասենք համար Մավենկա Uml-java-docklet-ի օգտագործման օրինակ: Որպեսզի ցույց տանք, թե ինչպես է դա, մենք կօգտագործենք Maven Archetype-ը արագ ստեղծում maven նախագիծը. Եկեք կատարենք հրամանը՝ mvn archetype:generate Զտիչ ընտրելու հարցում ( Ընտրեք թիվ կամ կիրառեք զտիչ) թողնել լռելյայն՝ պարզապես սեղմելով Enter: Դա միշտ կլինի» maven-archetype-quickstartՄենք ընտրում ենք վերջին տարբերակը: Այնուհետև պատասխանեք հարցերին և ավարտեք նախագծի ստեղծումը.

Քանի որ Maven-ը այս հոդվածի ուշադրության կենտրոնում չէ, Maven-ի վերաբերյալ ձեր հարցերի պատասխանները կարող եք գտնել Maven-ի օգտատերերի կենտրոնում: Ստեղծված նախագծում բացեք նախագծի նկարագրության ֆայլը խմբագրման համար, pom.xml. Մենք պատճենելու ենք դրա մեջ տեղադրվող uml-java-docklet-ի նկարագրության բովանդակությունը: Նկարագրության մեջ օգտագործված արտեֆակտը չի գտնվել Maven Central պահեստում: Բայց դա ինձ մոտ աշխատեց հետևյալի հետ՝ https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0: Այսինքն, այդ նկարագրության մեջ դուք պարզապես պետք է փոխարինեք groupIdհետ « info.leadinglight" վրա " com.chfourie«և տեղադրիր տարբերակը» 1.0.0 Դրանից հետո մենք կարող ենք գործարկել այն գրացուցակում, որտեղ գտնվում է ֆայլը pom.xmlայս հրամաններն են՝ mvn clean install և mvn javadoc:javadoc: Այժմ, եթե բացենք ստեղծված փաստաթղթերը (explorer target\site\apidocs\index.html), կտեսնենք UML դիագրամներ։ Ի դեպ, այստեղ իրականացումն արդեն ճիշտ է ցուցադրված)

Եզրակացություն

Ինչպես տեսնում եք, UML-ը թույլ է տալիս պատկերացնել ձեր հավելվածի կառուցվածքը: Բացի այդ, UML-ը չի սահմանափակվում միայն դրանով: UML-ի օգնությամբ դուք կարող եք նկարագրել տարբեր գործընթացներ ձեր ընկերության ներսում կամ նկարագրել բիզնես գործընթացը, որի շրջանակներում գործում է ձեր գրած գործառույթը: Դուք պետք է որոշեք, թե որքանով է UML-ն օգտակար ձեզ համար անձամբ, բայց ամեն դեպքում օգտակար կլինի ժամանակ գտնել և ավելի մանրամասն ծանոթանալ դրան: #Վյաչեսլավ այս գրառման ռուսերեն տարբերակը՝ UML դիագրամ Java CodeGym-ում

Բոլոր UML դիագրամները պայմանականորեն կարելի է բաժանել երկու խմբի, որոնցից առաջինը ընդհանուր դիագրամներն են։ Ընդհանուր դիագրամները գործնականում անկախ են մոդելավորման առարկայից և կարող են օգտագործվել ցանկացած ծրագրային նախագծում՝ հաշվի չառնելով թեմայի տարածքը, որոշումների տարածքը և այլն:

1.5.1. Օգտագործման դիագրամ

Օգտագործման դիագրամ(օգտագործման դեպքի դիագրամ) համակարգի գործառական նպատակի ամենաընդհանուր ներկայացումն է:

Օգտագործման դիագրամը նախատեսված է պատասխանելու հիմնական մոդելավորման հարցին՝ ի՞նչ է անում համակարգը արտաքին աշխարհում:

Օգտագործման դիագրամում օգտագործվում են երկու տեսակի հիմնական սուբյեկտներ՝ օգտագործման դեպքեր 1 և դերասաններ 2, որոնց միջև հաստատվում են հարաբերությունների հետևյալ հիմնական տեսակները.

  • Գործողի և օգտագործման դեպքի միջև կապը 3;
  • ընդհանրացում դերակատարների միջև 4;
  • ընդհանրացում օգտագործման դեպքերի միջև 5;
  • կախվածություն (տարբեր տեսակի) օգտագործման դեպքերի միջև 6.

Օգտագործման դիագրամը, ինչպես ցանկացած այլ, կարող է ունենալ մեկնաբանություններ 7: Ավելին, խստորեն խորհուրդ է տրվում դա անել գծապատկերների ընթեռնելիությունը բարելավելու համար:

Օգտագործման դիագրամում օգտագործված նշման հիմնական տարրերը ներկայացված են ստորև: Մանրամասն նկարագրությունը տրված է 2.2 բաժնում:

1.5.2. դասի դիագրամ

դասի դիագրամ(դասի դիագրամ) համակարգի կառուցվածքը նկարագրելու հիմնական միջոցն է։

Սա զարմանալի չէ, քանի որ UML-ը հիմնականում օբյեկտ-կողմնորոշված ​​լեզու է, և դասերը հիմնական (եթե ոչ միակ) շինանյութն են:

Դասի դիագրամում օգտագործվում է միավորների մեկ հիմնական տեսակ՝ դասեր 1 (ներառյալ դասերի բազմաթիվ հատուկ դեպքեր՝ միջերեսներ, պարզունակ տիպեր, ասոցիացիայի դասեր և շատ ուրիշներ), որոնց միջև հաստատվում են հարաբերությունների հետևյալ հիմնական տեսակները.

  • 2-րդ դասերի միջև կապը (շատ լրացուցիչ մանրամասներով);
  • ընդհանրացում 3-րդ դասերի միջև;
  • կախվածություններ (տարբեր տեսակների) 4-րդ դասերի և դասերի և միջերեսների միջև:

Դասի դիագրամում օգտագործվող նշագրման որոշ տարրեր ներկայացված են ստորև: Մանրամասն նկարագրությունը տրված է 3-րդ գլխում:

1.5.3. ավտոմատ դիագրամ

ավտոմատ դիագրամ(պետական ​​մեքենայի դիագրամ) UML-ում վարքագիծը մանրամասն նկարագրելու եղանակներից մեկն է՝ հիմնված վիճակների հստակ տեղաբաշխման և վիճակների միջև անցումների նկարագրության վրա:

Ըստ էության, ավտոմատ դիագրամները, ինչպես ենթադրում է անունը, վիճակի անցումային գրաֆիկ են (տե՛ս Գլուխ 4), որը բեռնված է բազմաթիվ լրացուցիչ մանրամասներով և մանրամասներով:

Ավտոմատ դիագրամում օգտագործվում է մեկ հիմնական տեսակի սուբյեկտներ՝ վիճակներ 1, և հարաբերությունների մեկ տեսակ՝ անցումներ 2, սակայն երկուսի համար էլ սահմանվում են բազմաթիվ սորտեր, հատուկ դեպքեր և լրացուցիչ նշումներ։ Նրանց բոլորը ներածական ակնարկի մեջ թվարկելն իմաստ չունի:

Ավտոմատների գծապատկերների բոլոր տատանումների մանրամասն նկարագրությունը տրված է 4.2 բաժնում, և հետևյալ նկարը ցույց է տալիս ավտոմատի գծապատկերում օգտագործվող նշման միայն հիմնական տարրերը:

1.5.4. գործունեության դիագրամ

գործունեության դիագրամ(գործունեության դիագրամ) - վարքագիծը նկարագրելու միջոց, որը հիմնված է վերահսկողության հոսքերի և տվյալների հոսքերի ցուցումների վրա:

Գործունեության դիագրամը վարքագիծը նկարագրելու ևս մեկ միջոց է, որը տեսողականորեն նման է հին լավ սխեմայի: Այնուամենայնիվ, արդիականացված նշագրման շնորհիվ, որը համապատասխանում է օբյեկտի վրա հիմնված մոտեցմանը, և ամենակարևորը, նոր իմաստային բաղադրիչի (Petri ցանցերի ազատ մեկնաբանման) շնորհիվ UML գործունեության դիագրամը հզոր գործիք է համակարգի վարքագիծը նկարագրելու համար:

Գործունեության դիագրամում օգտագործվում է սուբյեկտների մեկ հիմնական տեսակ՝ գործողություն 1, իսկ հարաբերությունների մեկ տեսակ՝ անցումներ 2 (վերահսկողության և տվյալների փոխանցումներ): Օգտագործվում են նաև այնպիսի կոնստրուկցիաներ, ինչպիսիք են պատառաքաղները, միաձուլումները, միացումները, ճյուղերը 3, որոնք նման են սուբյեկտներին, բայց իրականում դրանք չեն, այլ ներկայացնում են. գրաֆիկական ճանապարհբազմատեղ հարաբերությունների որոշ հատուկ դեպքերի պատկերներ։ Գործունեության դիագրամի տարրերի իմաստաբանությունը մանրամասն քննարկված է 4-րդ գլխում: Գործունեության դիագրամում օգտագործված նշման հիմնական տարրերը ներկայացված են ստորև:

1.5.5. հաջորդականության դիագրամ

հաջորդականության դիագրամ(հաջորդականության դիագրամ) համակարգի վարքագիծը նկարագրելու եղանակ է՝ հիմնված փոխանցվող հաղորդագրությունների հաջորդականության ցուցման վրա։

Փաստորեն, հաջորդականության դիագրամը համակարգի որոշակի նստաշրջանի արձանագրության գրառումն է (կամ նման արձանագրության մի հատված): Օբյեկտ-կողմնորոշված ​​ծրագրավորման մեջ ամենակարևորը գործարկման ժամանակ հաղորդագրությունների փոխանցումն է համագործակցող օբյեկտների միջև: Հաղորդագրությունների ուղարկման հաջորդականությունն է, որը ցուցադրվում է այս գծապատկերում, այստեղից էլ՝ անվանումը:

Հերթական դիագրամում օգտագործվում է միավորների մեկ հիմնական տեսակ՝ փոխազդող դասակարգիչների օրինակներ 1 (հիմնականում դասեր, բաղադրիչներ և դերակատարներ), և փոխհարաբերությունների մեկ տեսակ՝ կապեր 2, որոնց միջոցով հաղորդագրությունները փոխանակվում են 3: Կան մի քանի ուղիներ հաղորդագրություններ ուղարկելը, որոնք գրաֆիկական նշումով տարբերվում են կապին համապատասխանող սլաքի տեսքով։

Հերթական դիագրամի կարևոր ասպեկտը ժամանակի ընթացքի բացահայտ ցուցադրումն է: Ի տարբերություն այլ տեսակի դիագրամների, բացառությամբ, հավանաբար, համաժամացման դիագրամների, հաջորդականության դիագրամում կարևոր է ոչ միայն տարրերի միջև գրաֆիկական կապերի առկայությունը, այլև տարրերի հարաբերական դիրքը դիագրամի վրա: Մասնավորապես, համարվում է, որ գոյություն ունի (անտեսանելի) ժամանակի առանցք, որը լռելյայնորեն ուղղված է վերևից ներքև, և ներքևում գծված է այն հաղորդագրությունը, որն ուղարկվում է ավելի ուշ։

Ժամանակի առանցքը կարող է ուղղվել հորիզոնական, որի դեպքում համարվում է, որ ժամանակը հոսում է ձախից աջ:

Հետևյալ նկարը ցույց է տալիս հաջորդականության գծապատկերում օգտագործվող նշման հիմնական տարրերը: Ինքնին փոխազդող օբյեկտները նշանակելու համար օգտագործվում է ստանդարտ նշում՝ ուղղանկյուն դասակարգիչի օրինակի անունով: Կետավոր գիծ, դրանից դուրս գալը կոչվում է կյանքի գիծ (փրկարար գիծ) 4 ։ Սա մոդելում փոխհարաբերությունների նշանակում չէ, այլ գրաֆիկական մեկնաբանություն, որը նախատեսված է դիագրամի ընթերցողին ճիշտ ուղղությամբ ցույց տալու համար: Կյանքի գծի վրա դրված նեղ շերտերի տեսքով թվերը նույնպես սիմուլյացված սուբյեկտների պատկերներ չեն: Սա գրաֆիկական մեկնաբանություն է, որը ցույց է տալիս, թե որքան ժամանակ է օբյեկտը տիրապետում կատարման երևույթին 5 կամ այլ կերպ ասած՝ տեղի է ունենում օբյեկտի ակտիվացում: Համակցված փոխազդեցության քայլերը (համակցված հատված) 6 թույլ են տալիս հաջորդականության դիագրամին արտացոլել փոխազդեցության արձանագրության ալգորիթմական կողմերը: Տե՛ս Գլուխ 4-ը հաջորդականության գծապատկերների նշագրման վերաբերյալ լրացուցիչ մանրամասների համար:

1.5.6. Հաղորդակցության դիագրամ

Հաղորդակցության դիագրամ(հաղորդակցման դիագրամ) - վարքագծի նկարագրության միջոց, որը իմաստային առումով համարժեք է հաջորդականության դիագրամին:

Փաստորեն, սա դասակարգիչների փոխազդեցության դեպքերի հաղորդագրությունների փոխանակման հաջորդականության նույն նկարագրությունն է, որն արտահայտված է միայն այլ կերպ. գրաֆիկական միջոցներ. Ավելին, գործիքների մեծ մասը կարող է ավտոմատ կերպով փոխակերպել հաջորդականության դիագրամները կապի դիագրամների և հակառակը:

Այսպիսով, հաղորդակցության դիագրամում, ինչպես նաև հաջորդականության գծապատկերում, օգտագործվում է մեկ հիմնական տեսակի սուբյեկտներ՝ փոխազդող դասակարգիչների օրինակներ 1 և հարաբերությունների մեկ տեսակ՝ կապեր 2: Սակայն այստեղ շեշտը դրվում է ոչ թե ժամանակի, այլ կոնկրետ ատյանների փոխհարաբերությունների կառուցվածքի վրա։

Նկարը ցույց է տալիս կապի գծապատկերում օգտագործված նշման հիմնական տարրերը: Ինքնին փոխազդող օբյեկտները նշանակելու համար օգտագործվում է ստանդարտ նշում՝ ուղղանկյուն դասակարգիչի օրինակի անունով: Համագործակցության գծապատկերում տարրերի փոխադարձ դիրքը կարևոր չէ. կարևոր են միայն կապերը (առավել հաճախ ասոցիացիաների դեպքերը), որոնց միջոցով հաղորդագրություններ են փոխանցվում 3: Հաղորդագրությունների հերթականությունը ժամանակին ցուցադրելու համար օգտագործվում է հիերարխիկ տասնորդական համարակալում։

1.5.7. Բաղադրիչի դիագրամ

Բաղադրիչի դիագրամ(բաղադրիչ դիագրամ) - ցույց է տալիս մոդուլների (տրամաբանական կամ ֆիզիկական) հարաբերությունները, որոնք կազմում են մոդելավորված համակարգը:

Բաղադրիչի գծապատկերում սուբյեկտների հիմնական տեսակն իրենք են բաղադրիչները 1 , ինչպես նաև միջերեսները 2 , որոնց միջոցով նշվում է բաղադրիչների միջև կապը։ Բաղադրիչի դիագրամում կիրառվում են հետևյալ հարաբերությունները.

  • իրականացումներ բաղադրիչների և ինտերֆեյսների միջև (բաղադրիչն իրականացնում է ինտերֆեյսը);
  • կախվածություն բաղադրիչների և ինտերֆեյսների միջև (բաղադրիչն օգտագործում է ինտերֆեյս) 3.

Նկարը ցույց է տալիս բաղադրիչի դիագրամում օգտագործված նշման հիմնական տարրերը: Մանրամասն նկարագրությունը տրված է 3-րդ գլխում:

1.5.8. Տեղադրման դիագրամ

Տեղադրման դիագրամ(տեղակայման սխեման), համակարգի տարրերի կազմը և հարաբերությունները ցուցադրելու հետ մեկտեղ, ցույց է տալիս, թե ինչպես են դրանք ֆիզիկապես տեղադրվում հաշվողական ռեսուրսների վրա կատարման ընթացքում:

Այսպիսով, տեղաբաշխման դիագրամում, բաղադրիչի դիագրամի համեմատ, ավելացվում են երկու տեսակի սուբյեկտներ՝ արտեֆակտ 1, որը բաղադրիչ 2-ի և 3-րդ հանգույցի իրականացումն է (կարող է լինել կամ հանգույցի տեսակը նկարագրող դասակարգիչ կամ կոնկրետ օրինակ), ինչպես նաև 4-րդ հանգույցների միջև ասոցացման հարաբերությունը, որը ցույց է տալիս, որ հանգույցները ֆիզիկապես կապված են գործարկման ժամանակ:

Նկարը ցույց է տալիս տեղադրման դիագրամում օգտագործված նշման հիմնական տարրերը: Ցույց տալու համար, որ մի էությունը մյուսի մի մասն է, կա՛մ օգտագործվում է «տեղակայման» կախվածության հարաբերություն 5, կա՛մ մի էության ձևը տեղադրվում է մեկ այլ էության ձևի ներսում 6 : Դիագրամի մանրամասն նկարագրությունը տրված է 3-րդ գլխում:

UML կամ Unified Modeling Language-ը ծրագրային ապահովման մշակման ոլորտում օբյեկտների մոդելավորման գրաֆիկական նկարագրության լեզու է: Բայց UML-ի օգտագործումը չի սահմանափակվում ՏՏ-ով, մեկ այլ մեծ տարածքով գործնական կիրառություն UML - բիզնես գործընթացների մոդելավորում, համակարգի նախագծում և կազմակերպչական կառույցների ցուցադրում: UML-ը հնարավորություն է տալիս ծրագրային ապահովման մշակողներին համաձայնեցնել գրաֆիկական կոնվենցիաները՝ ներկայացնելու ընդհանուր հասկացությունները և կենտրոնանալ դիզայնի և մշակման վրա:

UML-ի առավելությունները

  • UML-ն օգտագործում է գրաֆիկական նշաններ մոդելավորվող համակարգի տարրերի համար, և UML դիագրամները բավականին հեշտ են հասկանալի.
  • UML-ը հնարավորություն է տալիս համակարգերը նկարագրել գրեթե բոլոր հնարավոր տեսանկյունից՝ հաշվի առնելով տարբեր ասպեկտներ.
  • UML-ը օբյեկտ-կողմնորոշված ​​է. նրա վերլուծության և կառուցման մեթոդները իմաստային առումով մոտ են ժամանակակից OOP լեզուներում օգտագործվող ծրագրավորման մեթոդներին.
  • UML-ը բաց ստանդարտ է: Ստանդարտը զարգանում և զարգանում է տարբերակից տարբերակ՝ բավարարելով համակարգերի նկարագրման ամենաժամանակակից պահանջները.
  • պարունակում է ընդլայնման մեխանիզմ, որը թույլ է տալիս ներմուծել լրացուցիչ տեքստային և գրաֆիկական տեսակներ, ինչը հնարավորություն է տալիս օգտագործել UML-ը ոչ միայն ՏՏ ոլորտում:

UML դիագրամների տեսակները

UML-ում կա 14 դիագրամի տեսակ: Դրանք կարելի է բաժանել 2 կատեգորիայի.

  • կառուցվածքային, տեղեկատվական կառուցվածքը ներկայացնող;
  • վարքային, որը ներկայացնում է համակարգի վարքագիծը և փոխազդեցության տարբեր ասպեկտները: Վարքագծի դիագրամների առանձին ենթատեսակներ են փոխազդեցության դիագրամներ.

UML դիագրամների տեսակների հիերարխիա, ներկայացված է դասի դիագրամով

Կառուցվածքային դիագրամներ

  1. դասի դիագրամօբյեկտ-կողմնորոշված ​​մոդելավորման հիմնական տարրն է: Այս դիագրամի օգնությամբ (իրականում, միջոցով դասեր, նրանց հատկանիշները, մեթոդներըև դասերի միջև կախվածությունը) նկարագրում է տիրույթի մոդելը և մոդելավորված համակարգի կառուցվածքը։
  2. Բաղադրիչի դիագրամցուցադրում է միջնորմ ծրագրի կոդըմեծ բլոկների մեջ (կառուցվածքային բաղադրիչներ) և ցույց է տալիս կախվածություններնրանց միջեւ. Բաղադրիչները կարող են լինել փաթեթներ, մոդուլներ, գրադարաններ, ֆայլեր և այլն:
  3. օբյեկտի դիագրամցույց է տալիս մոդելավորված համակարգի ամբողջական կամ մասնակի կտրվածքը ժամանակի տվյալ պահին: Այն ներկայացնում է դասերի (օբյեկտների), նրանց վիճակը (ներկայիս հատկանիշի արժեքները) և նրանց միջև հարաբերությունները:
  4. Կոմպոզիտային կառուցվածքի դիագրամցույց է տալիս դասերի ներքին կառուցվածքը և, հնարավորության դեպքում, փոխազդեցությունը այս կառուցվածքի տարրերի միջև:
  5. Փաթեթի դիագրամցույց է տալիս փաթեթները և նրանց միջև փոխհարաբերությունները: Այս տիպի դիագրամը ծառայում է մոդելի կառուցվածքի պարզեցմանը (և, համապատասխանաբար, աշխատել դրա հետ)՝ մոդելի տարրերը խմբերի մեջ միավորելով՝ ըստ որոշակի չափանիշների։
  6. Տեղակայման դիագրամմոդելների տեղակայում ծրագրային բաղադրիչներ (արտեֆակտներ) հաշվողական ռեսուրսների/ապարատային բաղադրիչների վերաբերյալ ( հանգույցներ).
  7. Պրոֆիլի դիագրամնկարագրում է ընդարձակելիության մեխանիզմ, որը թույլ է տալիս UML-ին հարմարեցնել տարբեր առարկայական ոլորտներին և գործունեության ոլորտներին:

UML դասի դիագրամի օրինակ

Վարքագծի դիագրամներ

  1. գործունեության դիագրամցույց է տալիս գործողություններ ( գործողություններ) որոնցից որոշակի գործունեություն ( գործունեություն) Գործունեության դիագրամներն օգտագործվում են բիզնես գործընթացների մոդելավորման համար, տեխնոլոգիական գործընթացներ, հաջորդական և զուգահեռ հաշվարկներ:
  2. Օգտագործեք դեպքի դիագրամ(կամ օգտագործման դեպքերի դիագրամ) նկարագրում է սիմուլյացված համակարգի դերակատարների (դերասանների) և օգտագործման դեպքերի փոխհարաբերությունները (դրա հնարավորությունները): Դիագրամի հիմնական նպատակն է լինել ունիվերսալ գործիք հաճախորդների, մշակողների և վերջնական օգտագործողների համար, որի օգնությամբ հնարավոր կլինի համատեղ քննարկել համակարգը՝ նրա հնարավորություններն ու վարքագիծը։
  3. Պետական ​​դիագրամպատկերում է սուբյեկտի դինամիկ վարքագիծը՝ ցույց տալով, թե ինչպես է այս կառույցը, կախված իր ներկայիս վիճակից, արձագանքում տարբեր իրադարձություններին: Իրականում սա ատոմների տեսության վիճակի դիագրամ է։
  4. Հաղորդակցության դիագրամվաղ տարբերակները համագործակցության դիագրամ) ցույց է տալիս կոմպոզիտային կառուցվածքի մասերի և համագործակցության դերերի փոխազդեցությունները: Դիագրամը հստակորեն ցույց է տալիս տարրերի (օբյեկտների) փոխհարաբերությունները:
  5. հաջորդականության դիագրամօգտագործվում է օբյեկտների փոխազդեցությունների հաջորդականությունը պատկերացնելու համար: Ցույց է տալիս տվյալ օբյեկտի կյանքի ցիկլը և դերակատարների (դերասանների) փոխազդեցությունը որոշ օգտագործման դեպքում, հաղորդագրությունների հաջորդականությունը, որ նրանք փոխանակում են:
  6. Փոխազդեցության ընդհանուր գծապատկերներառում է հաջորդականության դիագրամի և հսկիչ հոսքի կառուցվածքի մի մասը: Օգնում է դիտարկել առարկաների փոխազդեցությունը տարբեր տեսանկյուններից:
  7. Ժամկետային դիագրամ- փոխազդեցության դիագրամների առանձին ենթատեսակ, որը մասնագիտանում է ժամանակի մեջ: Այս տեսակի դիագրամները օգտագործվում են որոշակի ժամանակահատվածում առարկաների վարքագիծը ուսումնասիրելու համար:

UML դիագրամը մասնագիտացված գրաֆիկական նկարագրության լեզու է, որը նախատեսված է տարբեր ծրագրերի մշակման մեջ օբյեկտների մոդելավորման համար: Այս լեզուն ունի լայն պրոֆիլև բաց ստանդարտ է, որն օգտագործում է տարբեր գրաֆիկական նշանակումներ՝ վերացական համակարգի մոդել ստեղծելու համար: UML-ը ստեղծվել է բոլոր տեսակի ծրագրային համակարգերի սահմանումը, վիզուալիզացումը, փաստաթղթավորումը և ձևավորումը հնարավորություն տալու համար: Հարկ է նշել, որ UML դիագրամն ինքնին ծրագրավորման լեզու չէ, սակայն նախատեսում է դրա հիման վրա առանձին կոդ ստեղծելու հնարավորություն։

Ինչու է նա պետք:

UML-ի օգտագործումը չի ավարտվում բոլոր տեսակի ծրագրերի մոդելավորմամբ: Նաև այս լեզուն այսօր ակտիվորեն օգտագործվում է տարբեր բիզնես գործընթացների մոդելավորման, համակարգի նախագծման, ինչպես նաև կազմակերպչական կառուցվածքների ցուցադրման համար:

UML-ի օգնությամբ ծրագրային ապահովման մշակողները կարող են ապահովել ամբողջական համաձայնություն գրաֆիկական նշումներում, որոնք օգտագործվում են ընդհանուր հասկացությունները ներկայացնելու համար, ինչպիսիք են՝ բաղադրիչ, ընդհանրացում, դաս, վարքագիծ և համախմբում: Սա հասնում է ավելի մեծ կենտրոնացման ճարտարապետության և դիզայնի վրա:

Հարկ է նաև նշել, որ նման գծապատկերների մի քանի տեսակներ կան.

դասի դիագրամ

UML դասի դիագրամը ստատիկ կառուցվածքի դիագրամ է, որը նախատեսված է նկարագրելու համակարգի կառուցվածքը, ինչպես նաև ցույց տալու ատրիբուտները, մեթոդները և կախվածությունը մի քանի տարբեր դասերի միջև:

Հարկ է նշել այն փաստը, որ նման դիագրամների կառուցման վերաբերյալ կան մի քանի տեսակետներ, կախված այն բանից, թե ինչպես են դրանք օգտագործվելու.

  • Հայեցակարգային. Այս դեպքում, UML դասի դիագրամը նկարագրում է որոշակի առարկայական տարածքի մոդելը, և այն տրամադրում է միայն կիրառական օբյեկտների դասեր:
  • Կոնկրետ. Դիագրամը օգտագործվում է տարբեր տեղեկատվական համակարգերի նախագծման գործընթացում:
  • Իրականացում. Դասի դիագրամը ներառում է բոլոր տեսակի դասեր, որոնք ուղղակիորեն օգտագործվում են ծրագրի կոդում:

Բաղադրիչի դիագրամ

UML բաղադրիչի դիագրամը լիովին ստատիկ կառուցվածքի դիագրամ է: Այն նախատեսված է ցույց տալու որոշակի մասի բաժանումը ծրագրային համակարգտարբեր կառուցվածքային բաղադրիչների, ինչպես նաև դրանց միջև կապերի մեջ: UML բաղադրիչի դիագրամը կարող է օգտագործել բոլոր տեսակի մոդելներ, գրադարաններ, ֆայլեր, փաթեթներ, գործարկվողներ և շատ այլ տարրեր որպես այդպիսին:

Կոմպոզիտ/կոմպոզիտ կառուցվածքի դիագրամ

UML կոմպոզիտային/կոմպոզիտային կառուցվածքի դիագրամը նույնպես ստատիկ կառուցվածքի դիագրամ է, բայց այն օգտագործվում է դասերի ներքին կառուցվածքը ցույց տալու համար։ Հնարավորության դեպքում այս դիագրամը կարող է նաև ցույց տալ տարրերի փոխազդեցությունը, որոնք գտնվում են դասի ներքին կառուցվածքում:

Դրանց ենթատեսակներից է UML համագործակցության դիագրամը, որն օգտագործվում է տարբեր դասերի դերերն ու փոխազդեցությունները համագործակցության շրջանակներում ցուցադրելու համար: Նրանք բավականին հարմար են, եթե դուք պետք է մոդելավորեք դիզայնի նախշեր:

Հարկ է նշել, որ UML դասի դիագրամները և կոմպոզիտային կառուցվածքային դիագրամները կարող են օգտագործվել միաժամանակ:

Տեղակայման դիագրամ

Այս դիագրամն օգտագործվում է գործող հանգույցների մոդելավորման համար, ինչպես նաև դրանց վրա տեղակայված բոլոր տեսակի արտեֆակտները: UML 2-ում արտեֆակտները տեղակայվում են տարբեր հանգույցներում, մինչդեռ առաջին տարբերակում տեղակայվում էին միայն բաղադրիչները: Այսպիսով, UML-ի տեղակայման դիագրամը հիմնականում օգտագործվում է երկրորդ տարբերակի համար:

Արտեֆակտի և այն բաղադրիչի միջև ձևավորվում է դրսևորման կախվածություն:

Օբյեկտի դիագրամ

Այս տեսքը թույլ է տալիս տեսնել ամբողջական կամ մասնակի պատկեր: ստեղծված համակարգժամանակի որոշակի կետում: Այն ամբողջությամբ ցուցադրում է որոշակի համակարգի դասերի բոլոր օրինակները՝ նշելով ընթացիկ արժեքներըդրանց պարամետրերը, ինչպես նաև նրանց միջև փոխհարաբերությունները:

Փաթեթի դիագրամ

Այս դիագրամն իր բնույթով կառուցվածքային է, և դրա հիմնական բովանդակությունը բոլոր տեսակի փաթեթներն են, ինչպես նաև նրանց միջև փոխհարաբերությունները: Այս դեպքում մի քանի կառուցվածքային դիագրամների միջև չկա խիստ տարանջատում, ինչի արդյունքում դրանց օգտագործումը առավել հաճախ օգտագործվում է բացառապես հարմարության համար և չի կրում որևէ իմաստային նշանակություն: Հարկ է նշել, որ տարբեր տարրեր կարող են տրամադրել այլ UML դիագրամներ (օրինակ՝ փաթեթներ և փաթեթների դիագրամներ):

Դրանց օգտագործումն իրականացվում է որոշակի հատկանիշի համաձայն մի քանի տարրերի խմբերի կազմակերպումն ապահովելու, կառուցվածքը պարզեցնելու, ինչպես նաև այս համակարգի մոդելի հետ աշխատանքը կազմակերպելու համար:

գործունեության դիագրամ

UML գործունեության դիագրամը ցույց է տալիս որոշակի գործունեության տարրալուծումը մի քանի բաղադրիչ մասերի: Տվյալ դեպքում «գործունեություն» հասկացությունը վերաբերում է որոշակի կատարվող վարքագծի հստակեցմանը զուգահեռ, ինչպես նաև տարբեր ենթակայության տարրերի համակարգված հաջորդական կատարման տեսքով՝ գործունեության ներկառուցված տեսակներ և տարբեր գործողություններ, որոնք միավորված են հոսքերից դուրս եկող հոսքերով: որոշակի հանգույցի ելքերը մյուսի մուտքերին:

UML գործունեության դիագրամը հաճախ օգտագործվում է տարբեր բիզնես գործընթացների, զուգահեռ և հաջորդական հաշվարկների մոդելավորման համար: Ի թիվս այլ բաների, նրանք մոդելավորում են բոլոր տեսակի տեխնոլոգիական ընթացակարգերը:

ավտոմատ դիագրամ

Այս տեսակետը կոչվում է և փոքր-ինչ այլ կերպ՝ UML վիճակի դիագրամ: Այն ունի ներկայացված վիճակային մեքենա՝ պարզ և կոմպոզիտային վիճակներով, ինչպես նաև անցումներով։

պետական ​​մեքենատարբեր վիճակների հաջորդականության հստակեցում է, որով անցնում է որոշակի առարկա, կամ փոխազդեցություն՝ ի պատասխան իր կյանքի որոշ իրադարձությունների, ինչպես նաև օբյեկտի արձագանքը նման իրադարձություններին: Վիճակի մեքենան, որն օգտագործում է UML վիճակի դիագրամը, կցվում է սկզբնական տարրին և օգտագործվում է դրա ատյանների վարքը սահմանելու համար։

Այսպես կոչված վիշապի դիագրամները կարող են օգտագործվել որպես նման դիագրամների անալոգներ:

Օգտագործեք դեպքերի դիագրամներ

UML Օգտագործման դեպքերի դիագրամը ցուցադրում է բոլոր հարաբերությունները, որոնք տեղի են ունենում դերակատարների միջև, ինչպես նաև օգտագործման տարբեր դեպքեր: Դրա հիմնական խնդիրն է ապահովել լիարժեք միջոցներ, որոնց միջոցով հաճախորդը, վերջնական օգտագործողը կամ որոշ մշակողները կարող են համատեղ քննարկել որոշակի համակարգի վարքագիծն ու ֆունկցիոնալությունը:

Եթե ​​UML-ի օգտագործման դեպքերի դիագրամն օգտագործվում է համակարգի մոդելավորման գործընթացում, ապա վերլուծաբանը պատրաստվում է.

  • Հստակորեն առանձնացրեք մոդելավորվող համակարգը իր միջավայրից:
  • Բացահայտել դերակատարներին, այս համակարգի հետ նրանց փոխգործակցության ուղիները, ինչպես նաև դրա սպասվող ֆունկցիոնալությունը:
  • Բառարանում որպես առարկայական սահմանել տարբեր հասկացություններ, որոնք վերաբերում են մանրամասն նկարագրությունայս համակարգի ֆունկցիոնալությունը:

Եթե ​​UML-ում մշակվում է օգտագործման դիագրամ, ապա ընթացակարգը սկսվում է տեքստային նկարագրությամբ, որը ստացվում է հաճախորդի հետ աշխատելիս: Միևնույն ժամանակ, հարկ է նշել այն փաստը, որ օգտագործման դեպքերի մոդելի կազմման գործընթացում իսպառ բացակայում են տարբեր ոչ գործառական պահանջներ, և դրանց համար արդեն կձևավորվի առանձին փաստաթուղթ։

Հաղորդակցություններ

Հաղորդակցման դիագրամը, ինչպես UML հաջորդականության դիագրամը, անցողիկ է, այսինքն՝ արտահայտում է փոխազդեցությունը, բայց միևնույն ժամանակ ցուցադրում է այն։ տարբեր ճանապարհներ, և անհրաժեշտության դեպքում, անհրաժեշտ աստիճանի ճշգրտությամբ, կարող եք փոխարկել մեկը մյուսին:

Հաղորդակցման դիագրամը արտացոլում է փոխազդեցությունները, որոնք տեղի են ունենում կոմպոզիտային կառուցվածքի տարբեր տարրերի միջև, ինչպես նաև համագործակցության դերերը: Նրա հիմնական տարբերությունը հաջորդականության դիագրամից այն է, որ այն հստակ ցույց է տալիս մի քանի տարրերի միջև փոխհարաբերությունները, և ժամանակը չի օգտագործվում որպես առանձին հարթություն:

Այս տեսակըտարբերվում է մի քանի օբյեկտների և հարաբերությունների պատվիրման բացարձակ ազատ ձևաչափով, ինչպես դա արվում է օբյեկտի դիագրամում: Եթե ​​այս անվճար ձևաչափով հաղորդագրությունների հերթականությունը պահպանելու անհրաժեշտություն կա, դրանք համարակալվում են ժամանակագրական կարգով: Այս դիագրամի ընթերցումը սկսվում է սկզբնական հաղորդագրությամբ 1.0, և այնուհետև շարունակվում է այն ուղղությամբ, որով հաղորդագրությունները փոխանցվում են մի օբյեկտից մյուսը:

Մեծ մասամբ, նման դիագրամները ցույց են տալիս ճիշտ նույն տեղեկատվությունը, որը մեզ տալիս է հաջորդականության դիագրամը, բայց քանի որ այն օգտագործում է տեղեկատվության ներկայացման այլ եղանակ, մի դիագրամում որոշ բաներ շատ ավելի հեշտ է դառնում որոշել, քան մյուսում: Հարկ է նաև նշել, որ հաղորդակցման դիագրամն ավելի հստակ ցույց է տալիս, թե որ տարրերի հետ է փոխազդում յուրաքանչյուր առանձին տարր, մինչդեռ հաջորդականության դիագրամն ավելի հստակ ցույց է տալիս, թե ինչ հերթականությամբ են փոխազդեցությունները կատարվում:

հաջորդականության դիագրամ

UML հաջորդականության դիագրամը ցույց է տալիս մի քանի օբյեկտների փոխազդեցությունները, որոնք դասավորված են ըստ դրանց առաջացման ժամանակի։ Նման դիագրամը ցույց է տալիս մի քանի օբյեկտների միջև ժամանակային կարգով փոխազդեցություն: Մասնավորապես, այն ցուցադրում է փոխազդեցությանը մասնակցող բոլոր օբյեկտները, ինչպես նաև նրանց կողմից փոխանակված հաղորդագրությունների ամբողջական հաջորդականությունը։

Հիմնական տարրերն այս դեպքում տարբեր օբյեկտների նշանակումներն են, ինչպես նաև ուղղահայաց գծեր, որը ներկայացնում է ժամանակի ընթացքը և ուղղանկյունները, որոնք ներկայացնում են որոշակի օբյեկտի գործունեությունը կամ նրա կողմից որևէ գործառույթի կատարումը:

Համագործակցության դիագրամ

Այս տեսակի դիագրամը թույլ է տալիս ցույց տալ մի քանի օբյեկտների փոխազդեցությունները՝ վերացական հաղորդագրությունների թարգմանության հաջորդականությունից: Այս տեսակի դիագրամները կոմպակտ ձևով ցուցադրում են որոշակի օբյեկտի բացարձակապես բոլոր փոխանցված և ստացված հաղորդագրությունները, ինչպես նաև այդ հաղորդագրությունների ձևաչափերը:

Քանի որ հաջորդականության դիագրամները և հաղորդակցության դիագրամները պարզապես նույն ընթացակարգերի տարբեր տեսակետներ են, Ռացիոնալ վարդապահովում է դիագրամից կամ հակառակը հաղորդակցման հաջորդականություն ստեղծելու հնարավորություն, ինչպես նաև կատարում է դրանց լիովին ավտոմատ համաժամացումը:

Փոխազդեցության ընդհանուր գծապատկերներ

Սրանք UML դիագրամներ են, որոնք պատկանում են գործունեության դիագրամների մի տեսակին և ներառում են և՛ հաջորդականության տարրեր, և՛ հսկիչ հոսքի կառուցվածքներ:

Հարկ է նշել այն փաստը, որ տրված ձևաչափովհամատեղում է Համագործակցության և հաջորդականության դիագրամը, որը հնարավորություն է տալիս դիտարկել ձևավորվող համակարգի մի քանի օբյեկտների փոխազդեցությունը տարբեր տեսակետներից:

Ժամկետային դիագրամ

Ներկայացնում է Այլընտրանքային տարբերակհաջորդականության դիագրամ, որը հստակ ցույց է տալիս որոշակի ժամանակային մասշտաբով կյանքի գծի վիճակի փոփոխությունը: Կարող է բավականին օգտակար լինել տարբեր հավելվածներիրական ժամանակ.

Որո՞նք են օգուտները:

Հարկ է նշել մի քանի առավելություններ, որոնք առանձնացնում են UML օգտագործման դիագրամը և այլն.

  • Լեզուն օբյեկտ-կողմնորոշված ​​է, որի արդյունքում իրականացված վերլուծության և նախագծման արդյունքները նկարագրելու տեխնոլոգիաները իմաստաբանորեն մոտ են ծրագրավորման մեթոդներին ժամանակակից տեսակի բոլոր տեսակի օբյեկտ-կողմնորոշված ​​լեզուներով:
  • Օգնությամբ տրված լեզունհամակարգը կարելի է նկարագրել գրեթե ցանկացած հնարավոր տեսանկյունից, և նրա վարքագծի տարբեր ասպեկտներ նկարագրված են նույն կերպ:
  • Բոլոր դիագրամները համեմատաբար հեշտ են կարդալ նույնիսկ դրա շարահյուսությանը համեմատաբար արագ ծանոթանալուց հետո:
  • UML-ը թույլ է տալիս ընդլայնել, ինչպես նաև ներկայացնել ձեր սեփական գրաֆիկական և տեքստային կարծրատիպերը, ինչը նպաստում է դրա օգտագործմանը ոչ միայն ծրագրային ապահովման ոլորտում:
  • Լեզուն բավականին լայն տարածում է գտել, և նույնպես բավականին ակտիվ զարգանում է։

Թերություններ

Չնայած այն հանգամանքին, որ UML դիագրամների կառուցումն ունի իր շատ առավելություններ, դրանք հաճախ քննադատվում են հետևյալ թերությունների համար.

  • ավելորդություն. Դեպքերի ճնշող մեծամասնությունում քննադատներն ասում են, որ UML-ը չափազանց մեծ է և բարդ, և հաճախ դա անհիմն է: Այն ներառում է բավականին շատ ավելորդ կամ համարյա անպետք կոնստրուկցիաներ և գծապատկերներ, և ամենից հաճախ նման քննադատությունը վերաբերում է երկրորդ տարբերակին, և ոչ թե առաջինին, քանի որ նոր վերանայումներում ավելի շատ են «հանձնաժողովի կողմից մշակված» փոխզիջումները։
  • Տարբեր անճշտություններ իմաստաբանության մեջ. Քանի որ UML-ը սահմանվում է իր, անգլերենի և OCL-ի համադրությամբ, այն չունի կոշտություն, որը բնորոշ է լեզուներին, որոնք հստակորեն սահմանված են պաշտոնական նկարագրության տեխնիկայով: Որոշ իրավիճակներում OCL-ի, UML-ի և անգլերենի վերացական շարահյուսությունը սկսում է հակասել միմյանց, մինչդեռ այլ դեպքերում դրանք թերի են: Լեզվի նկարագրության անճշտությունն ինքնին ազդում է ինչպես օգտագործողների, այնպես էլ գործիքների մատակարարների վրա՝ ի վերջո հանգեցնելով գործիքների անհամատեղելիության՝ տարբեր բնութագրերի հետ կապված յուրահատուկ ձևի պատճառով:
  • Իրականացման և ուսումնասիրության գործընթացում առկա խնդիրները. Վերոնշյալ բոլոր խնդիրները որոշակի դժվարություններ են ստեղծում UML-ի ներդրման և ուսուցման գործընթացում, և դա հատկապես ճիշտ է, երբ ղեկավարությունը ստիպում է ինժեներներին օգտագործել այն, երբ նրանք չունեն նախնական հմտություններ:
  • Կոդն արտացոլում է կոդը: Մեկ այլ կարծիք էլ այն է, որ կարևոր են ոչ թե գեղեցիկ և գրավիչ մոդելները, այլ ուղղակիորեն աշխատող համակարգերը, այսինքն՝ կոդը նախագիծն է։ Այս տեսակետին համահունչ՝ ավելի շատ զարգանալու կարիք կա արդյունավետ մեթոդգրելու ծրագրակազմ։ UML-ը գնահատվում է այն մոտեցումներում, որոնք կազմում են մոդելներ՝ վերածնելու doable or աղբյուր կոդը. Բայց իրականում դա կարող է բավարար չլինել, քանի որ լեզվին զուրկ են Թյուրինգի ամբողջականության հատկությունները, և յուրաքանչյուր գեներացված կոդ, ի վերջո, կսահմանափակվի նրանով, թե ինչ կարող է ենթադրել կամ որոշել UML մեկնաբանման գործիքը:
  • Բեռի անհամապատասխանություն: Այս տերմինըբխում է համակարգերի վերլուծության տեսությունից՝ որոշելու որոշակի համակարգի մուտքի անկարողությունը՝ ընկալելու մյուսի արդյունքը: Ինչպես ցանկացած ստանդարտ համակարգերնշումով, UML-ը կարող է որոշ համակարգեր ներկայացնել ավելի արդյունավետ և ամփոփումհամեմատ մյուսների հետ։ Այսպիսով, մշակողն ավելի հակված է այն լուծումներին, որոնք ավելի հարմար են բոլորին միահյուսելու համար ուժեղ կողմերը UML, ինչպես նաև ծրագրավորման այլ լեզուներ։ Այս խնդիրըավելի ակնհայտ է, եթե զարգացման լեզուն չի համապատասխանում օբյեկտի վրա հիմնված ուղղափառ վարդապետության հիմնական սկզբունքներին, այսինքն՝ չի փորձում աշխատել OOP-ի սկզբունքներին համապատասխան:
  • Փորձում է լինել բազմակողմանի: UML-ը մոդելավորման լեզու է հիմնական նպատակ, գլխավոր նպատակ, որը փորձում է ապահովել այսօր գոյություն ունեցող ցանկացած մշակող լեզվի հետ համատեղելիությունը։ Կոնկրետ նախագծի համատեքստում, որպեսզի դիզայներական թիմը հասնի վերջնական նպատակին, անհրաժեշտ է ընտրել այս լեզվի կիրառելի հատկանիշները: Բացի այդ հնարավոր ուղիներըորոշներում UML-ի օգտագործման շրջանակի սահմանափակումները որոշակի տարածքանցնել ֆորմալիզմի միջով, որն ամբողջությամբ ձևակերպված չէ, բայց ինքնին քննադատության առարկա է։

Այսպիսով, այս լեզվի օգտագործումը տեղին չէ բոլոր իրավիճակներում:

UML մոդել(UML մոդելը) լեզվական կոնստրուկտների վերջավոր հավաքածուի մի շարք է, որոնցից հիմնականը սուբյեկտներն են և նրանց միջև հարաբերությունները:

Մոդելի սուբյեկտներն ու հարաբերություններն իրենք մետամոդելի մետա դասերի օրինակներ են:

Դիտարկելով UML մոդելը ամենաընդհանուր դիրքերից՝ կարող ենք ասել, որ այն գրաֆիկ է (ավելի ճիշտ՝ բեռնված բազմապատկված հիպերդիգրաֆ), որում բեռնված են գագաթները և եզրերը։ լրացուցիչ տեղեկությունև կարող է ունենալ բարդ ներքին կառուցվածք: Այս գրաֆիկի գագաթները կոչվում են սուբյեկտներ, իսկ ծայրերը՝ հարաբերություններ։. Բաժնի մնացած մասը տրամադրում է արագ (նախնական), բայց ամբողջական ակնարկ առկա կազմակերպությունների տեսակների և հարաբերությունների վերաբերյալ: Բարեբախտաբար, դրանք շատ չեն: Գրքի հաջորդ գլուխներում բոլոր սուբյեկտներն ու հարաբերությունները կրկին դիտարկվում են ավելի մանրամասն և օրինակներով:

1.4.1. Էություններ

Ընդհանուր ակնարկի հարմարության համար UML-ի սուբյեկտները կարելի է բաժանել չորս խմբի.

  • կառուցվածքային;
  • վարքային;
  • խմբավորում;
  • անոտացիոն.

Կառուցվածքային սուբյեկտները, ինչպես կարող եք կռահել, նախատեսված են կառուցվածքը նկարագրելու համար: Սովորաբար, կառուցվածքային սուբյեկտները ներառում են հետևյալը.

Օբյեկտ(օբյեկտ) 1-ը մի էություն է, որն ունի եզակիություն և ներառում է վիճակը և վարքագիծը:

Դասարան(դաս) 2 - ընդհանուր ատրիբուտներով օբյեկտների մի շարք նկարագրություն, որոնք սահմանում են վիճակը և գործողությունները, որոնք սահմանում են վարքագիծը:

Ինտերֆեյս(ինտերֆեյս) 3-ը գործողությունների անվանված շարք է, որը սահմանում է ծառայությունների մի շարք, որոնք կարող են պահանջվել սպառողի կողմից և տրամադրվել ծառայություններ մատուցողի կողմից:

Համագործակցություն(համագործակցություն) 4 - օբյեկտների մի շարք, որոնք փոխազդում են ինչ-որ նպատակի հասնելու համար:

Դերասան(գործող) 5-ը միավոր է, որը մոդելավորված համակարգից դուրս է և ուղղակիորեն փոխազդում է դրա հետ:

∇ Նման հարաբերություն, անշուշտ, գոյություն ունի, որն արտահայտված է Նկ. Դիագրամի տիպի հիերարխիա UML 1-ի համարորպես կախվածության հարաբերություն «զտել» կարծրատիպի հետ:

∇∇ UML 1-ում կար ակամա միություն համագործակցության դիագրամի և նույնանուն կազմի միջև, որը լիովին ճիշտ չէր և երբեմն ապակողմնորոշիչ:

∇∇∇ UML 2-ում վիճակի դիագրամի շարահյուսական և իմաստային ծանրաբեռնվածությունն այնքան է փոխվել, որ անվանումն այլևս չի արտացոլում բովանդակությունը։

Այս գրքում ընդունված նոր դիագրամների և դրանց անունների ցանկը տրված է ստորև:

  • Դիագրամ ներքին կառուցվածքը(կոմպոզիտային կառուցվածքի դիագրամ)
  • Փաթեթի դիագրամ
  • Պետական ​​մեքենայի դիագրամ
  • Հաղորդակցման դիագրամ
  • Փոխազդեցության ընդհանուր գծապատկեր
  • Ժամկետային դիագրամ

Նկ. Դիագրամի տիպի հիերարխիա UML 2-ի համար (մաս 1 և 2)դասի դիագրամ, որը ցույց է տալիս դիագրամների փոխհարաբերությունները UML 2-ում:

Ավելի ուշ այս գլխում մենք շատ հակիրճ կնկարագրենք բոլոր տասներեք կանոնական դիագրամները, որպեսզի ունենանք որոշակի ենթատեքստ և բառապաշար հետևյալի համար: Մանրամասները ներկայացված են գրքի մնացած գլուխներում:

Բայց նախքան հաջորդ բաժնին անցնելը, եկեք մի բան անենք. փոքր շեղումայն մասին, թե ինչպես է ստանդարտը պահանջում գծապատկերների ձևաչափումը: Ընդհանուր աղյուսակի ներկայացման ձևանմուշը տրված է ստորև:

Դիզայնի երկու հիմնական տարր կա՝ արտաքին շրջանակ և գծապատկերի անվանումով պիտակ: Եթե ​​շրջանակի հետ ամեն ինչ պարզ է, դա ուղղանկյուն է, որը սահմանում է այն տարածքը, որտեղ պետք է տեղակայվեն գծապատկերի տարրերը, ապա դիագրամի անվանումը գրված է հատուկ ձևաչափով, որը ցույց է տրված Նկ. Գծապատկերի նշում.

Այս բարդ ներդիրի ձևը չի աջակցվում բոլոր գործիքների կողմից: Այնուամենայնիվ, դա անհրաժեշտ չէ, քանի որ իմաստաբանությունը առաջնային է, իսկ նշումը երկրորդական է: Հետևյալում մենք օգտագործում ենք ուղղանկյուն՝ որպես գծապատկեր, և դա չպետք է թյուրիմացություն առաջացնի:

Գծապատկերների հնարավոր պիտակները (տեսակները) ներկայացված են հետևյալ աղյուսակում: Ստանդարտով առաջարկվող պիտակները գրված են երկրորդ սյունակում: Այնուամենայնիվ, ինչպես ցույց է տվել պրակտիկան, ստանդարտով առաջարկվող կանոնները միշտ չէ, որ հարմար և տրամաբանորեն հիմնավորված են, հետևաբար աղյուսակի երրորդ սյունակը մեր կարծիքով պարունակում է ողջամիտ այլընտրանք:

Ներդիր Գծապատկերների տեսակները և պիտակները

Գծապատկերի անվանումը Պիտակ (ստանդարտ) Պիտակ (առաջարկվում է)
Օգտագործման դիագրամ օգտագործման դեպքըկամ uc օգտագործման դեպքը
դասի դիագրամ դաս դաս
ավտոմատ դիագրամ պետական ​​մեքենակամ ստմ պետական ​​մեքենա
գործունեության դիագրամ գործունեությունկամ գործել գործունեություն
հաջորդականության դիագրամ փոխազդեցությունկամ սդ սդ
Հաղորդակցության դիագրամ փոխազդեցությունկամ սդ comm
Բաղադրիչի դիագրամ բաղադրիչկամ սմ բաղադրիչ
Տեղադրման դիագրամ անորոշ տեղակայում
Օբյեկտի դիագրամ անորոշ օբյեկտ
Ներքին կառուցվածքի դիագրամ դաս դասկամ բաղադրիչ
Փոխազդեցության ընդհանուր գծապատկեր փոխազդեցությունկամ սդ փոխազդեցություն
Ժամկետային դիագրամ փոխազդեցությունկամ սդ ժամանակացույցը
Փաթեթի դիագրամ փաթեթկամ pkg փաթեթ