როგორ გავაკეთოთ uml დიაგრამა. UML ენის ზოგადი მახასიათებლები

UML (Unified Modeling Language) არის გრაფიკული აღწერილობის ენა განვითარების სფეროში ობიექტების მოდელირებისთვის პროგრამული უზრუნველყოფა. UML არის ზოგადი ენა, ღია სტანდარტი, რომელიც იყენებს გრაფიკულ აღნიშვნას სისტემის აბსტრაქტული მოდელის შესაქმნელად, რომელსაც ეწოდება UML მოდელი. UML შეიქმნა ძირითადად პროგრამული სისტემების განსაზღვრის, ვიზუალიზაციის, დიზაინისა და დოკუმენტაციისთვის. UML არ არის პროგრამირების ენა, მაგრამ კოდის გენერირება შესაძლებელია UML მოდელების ინტერპრეტირებული კოდის სახით შესასრულებლად.ვიკიპედია

კომერციული პროდუქტები

Microsoft Visio

ტიპი: კომერციული პროგრამული უზრუნველყოფა

პოპულარული პროგრამული უზრუნველყოფა Microsoft-ისგან, რომელიც საშუალებას გაძლევთ დახაზოთ მდიდარი დიაგრამები, მათ შორის UML:

2010 წლის ვერსიიდან დაწყებული, შესაძლებელი გახდა დიაგრამების გამოქვეყნება ინტერნეტში (SharePoint + Visio Services):

Visio Viewer- უფასო პროგრამა, რომელიც საშუალებას გაძლევთ ნახოთ ადრე შექმნილი Visio დიაგრამები. შეგიძლიათ ჩამოტვირთოთ %D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20.

%0A

Microsoft%20Visual%20Studio%202010

%0A

%D0%A2%D0%B8%D0%BF:%20%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D1%80%D1%87%D0%B5%D1% 81%D0%BA%D0%BE%D0%B5%20%D0%9F%D0%9E%20(%D0%B5%D1%81%D1%82%D1%8C%20%D0%B1%D0 %B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D0%B0%D1%8F%20ექსპრეს%20%D0%B2%D0%B5%D1%80 %D1%81%D0%B8%D1%8F).

%0A

%D0%92%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B9%20%D0%B2%D0 %B5%D1%80%D1%81%D0%B8%D0%B8%20Microsoft%20Visual%20Studio%202010%20%D0%BF%D0%BE%D1%8F%D0%B2%D0%B8%D0 %BB%D1%81%D1%8F%20%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%82%D0%B8%D0%BF%20%D0 %BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%20-%20მოდელირება,%20%D0%BA%D0%BE%D1%82%D0%BE %D1%80%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D1%8F%D0%B5%D1%82 %20%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0 %BB%D0%B8%D1%87%D0%BD%D1%8B%D0%B5%20UML%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0 %D0%BC%D0%BC%D0%B0%20%D0%B8%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1 %82%D1%8C%20%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20 %D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0 %BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5%20%D1%81%20%D0%BD %D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%20%D0%B0%D1%80%D1%85 %D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%BE%D0%B9.

%0A

%D0%9F%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D1%8F%D0%B5%D1%82%20%D0%B3%D0%B5%D0%BD %D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20მიმდევრობა%20დიაგრამა%20%D0%BD%D0%B0 %20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%BA%D0%BE%D0 %B4%D0%B0,%20%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80% D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%81%D0%B2%D1%8F%D0%B7%D0%B8%20%D0%B2%20% D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B5%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83% 20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8, %20%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0%D0%BC%D0%B8%20%D0%B8%20%D1%81%D1%81 %D1%8B%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8%20%D0%B8%20%D1%82.%D0%B4.

%0A

%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20გამოყენება%20საქმე%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80 %D0%B0%D0%BC%D0%BC%D1%8B,%20%D0%BD%D0%B0%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0% B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20Visual%20Studio%202010:

%0A%0A

%D0%9A%D1%80%D0%BE%D0%BC%D0%B5%20%D1%82%D0%BE%D0%B3%D0%BE,%20%D0%B4%D0%BE% D1%81%D1%82%D1%83%D0%BF%D0%B5%D0%BD%20ვიზუალიზაცია%20და%20მოდელირება%20ფუნქცია%20შეფუთვა%20(%D0%B4%D0%BB%D1%8F%20 %D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%BE%D0%B2%20MSDN),%20 %D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE %D0%BB%D1%8F%D0%B5%D1%82:

%0A
  • %D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20 %D0%BA%D0%BE%D0%B4%20%D0%BD%D0%B0%20%D0%B1%D0%B0%D0%B7%D0%B5%20UML%20%D0%B4%D0 %B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%20%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0 %BE%D0%B2
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20UML%20%D0%B4%D0%B8%D0 %B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B8%D0%B7%20%D0%BA%D0%BE%D0%B4 %D0%B0
  • %0A
  • %D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1 %8C%20UML%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%BA%D0 %BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2,%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0% D0%BC%D0%BC%D1%8B%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0% D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9,%20%D0%B4%D0%B8 %D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B2%D0%B0%D1%80%D0%B8%D0%B0 %D0%BD%D1%82%D0%BE%D0%B2%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE %D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%81%20XMI%202.1
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B8%D0%B0 %D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B%20%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8 %D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9%20%D0%B4%D0%BB%D1%8F%20ASP.NET,%20C%20%D0% B8%20C++%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2
  • %0A
  • %D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B8%20%D0%BF%D1 %80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C%20ფენა%20დიაგრამები%20%D0%B4%D0%BB%D1%8F%20C %20%D0%B8%20C++%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2
  • %0A
  • %D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C%20%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2 %D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA %D0%B8%20%D0%B4%D0%BB%D1%8F%20ფენა%20დიაგრამები
  • %0A

%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20ვიზუალიზაცია%20და%20მოდელირება%20ფუნქცია%20პაკეტი%20%D0%BC%D0%BE%D0 %B6%D0%BD%D0%BE%20%D0%BF%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5:%20 http://msdn.microsoft.com/ru-ru/vstudio/ff655021%28en-us%29.aspx.

IBM Rational Rose

შესაძლებლობები:

  • გამოიყენეთ ქეისის დიაგრამა;
  • განლაგების დიაგრამა (ტოპოლოგიის დიაგრამები);
  • Statechart დიაგრამა;
  • აქტივობის დიაგრამა;
  • ურთიერთქმედების დიაგრამა;
  • თანმიმდევრობის დიაგრამა;
  • თანამშრომლობის დიაგრამა;
  • კლასის დიაგრამა;
  • კომპონენტის დიაგრამა.

ეკრანის ანაბეჭდები:

ღია კოდის პროგრამები

StarUML

შესაძლებლობები:

  • UML 2.0 მხარდაჭერა
  • MDA (მოდელზე ორიენტირებული არქიტექტურა)
  • Plug-in Architecture (შეგიძლიათ დაწეროთ COM თავსებადი ენებზე: C++, Delphi, C#, VB, ...)

StarUML იწერება ძირითადად Delphi-ში, მაგრამ კომპონენტები შეიძლება დაიწეროს სხვა ენებზეც, მაგალითად C/C++, Java, Visual Basic, დელფი, JScript, VBScript, C#, VB.NET. ქვემოთ მოცემულია რამდენიმე ეკრანის სურათი.

კლასის დიაგრამა:

გამოყენების საქმის დიაგრამა:

ArgoUML

მხარდაჭერილი სქემები:

  • Კლასი
  • სახელმწიფო
  • Გამოყენების შემთხვევაში
  • აქტივობა
  • თანამშრომლობა
  • განლაგება
  • თანმიმდევრობა

შესაძლებლობები:

  • მხარს უჭერს ცხრა UML 1.4 დიაგრამას
  • დამოუკიდებელი პლატფორმა (Java 5+)
  • UML 1.4 სტანდარტული მეტამოდელი
  • XMI მხარდაჭერა
  • ექსპორტი GIF, PNG, PS, EPS, PGML და SVG-ში
  • ენები: EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
  • OCL მხარდაჭერა
  • Forward, Reverse Engineering

სკრინშოტი:

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 გამოყენების შემთხვევაში
კლასის დიაგრამა კლასი კლასი
მანქანის დიაგრამა სახელმწიფო მანქანაან სტმ სახელმწიფო მანქანა
აქტივობის დიაგრამა აქტივობაან იმოქმედოს აქტივობა
თანმიმდევრობის დიაგრამა ურთიერთქმედებაან SD SD
კომუნიკაციის დიაგრამა ურთიერთქმედებაან SD კომ
კომპონენტის დიაგრამა კომპონენტიან სმფ კომპონენტი
განლაგების დიაგრამა განუსაზღვრელი განლაგება
ობიექტის დიაგრამა განუსაზღვრელი ობიექტი
შიდა სტრუქტურის დიაგრამა კლასი კლასიან კომპონენტი
ურთიერთქმედების მიმოხილვის დიაგრამა ურთიერთქმედებაან SD ურთიერთქმედება
დროის დიაგრამა ურთიერთქმედებაან SD დროის განაწილება
პაკეტის დიაგრამა პაკეტიან პკგ პაკეტი
ვფიქრობ, ბავშვობაში ყველას სმენია ასეთი გამონათქვამი, როგორიცაა " შვიდჯერ გავზომოთ დაჭრილი ერთხელ". ასეა პროგრამირებაშიც. ყოველთვის ჯობია დაფიქრდეთ იმპლემენტაციაზე, სანამ მის შესრულებაზე დახარჯავთ დროს. მისი განხორციელებისას ხშირად გიწევთ კლასების შექმნა და მათი ურთიერთქმედება. და ხშირად ამის ვიზუალური წარმოდგენა დაგეხმარებათ. პრობლემის გადაჭრა ყველაზე სწორი გზით არის ის, სადაც ჩვენ გვეხმარება UML.

რა არის UML?

თუ დააკვირდებით სურათებს საძიებო სისტემები, მაშინ გაირკვევა, რომ UML- ეს ეხება დიაგრამებს, ისრებს და კვადრატებს. მთავარია, რომ UML ითარგმნება როგორც უნიფიცირებული მოდელირების ენა. სიტყვა ერთიანი აქ მნიშვნელოვანია. ანუ, ჩვენი სურათები გაიგებს არა მხოლოდ ჩვენ, არამედ სხვებსაც, ვინც 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, მაშინ ჩვენ გვექნება დაინსტალირებული დანამატი „გარეშე“ UML მხარდაჭერა". ის საშუალებას გაძლევთ ავტომატურად შექმნათ ლამაზი კლასის დიაგრამები. მაგალითად, Ctrl+N ან მენიუს ელემენტის "ნავიგაცია" -> "კლასი" გადავდივართ კლასში. ArrayList. ახლა, მეშვეობით კონტექსტური მენიუკლასის სახელის მიხედვით აირჩიეთ „დიაგრამა“ -> „სქემის ამომხტარის ჩვენება“. შედეგად, ჩვენ ვიღებთ ლამაზ დიაგრამას:

მაგრამ რა მოხდება, თუ თქვენ თვითონ გსურთ მისი დახატვა და არ გაქვთ Idea-ს საბოლოო ვერსია? თუ ვიყენებთ IntelliJ Idea Community Edition-ს, მაშინ სხვა არჩევანი არ გვაქვს. ამისათვის თქვენ უნდა გესმოდეთ, თუ როგორ არის სტრუქტურირებული ასეთი UML დიაგრამა. პირველ რიგში, ჩვენ უნდა დავაყენოთ Graphviz. ეს არის კომუნალური საშუალებების ნაკრები გრაფიკების ვიზუალიზაციისთვის. მას იყენებს მოდული, რომელსაც ჩვენ გამოვიყენებთ. ინსტალაციის შემდეგ თქვენ უნდა დაამატოთ დირექტორია ურნადაინსტალირებული დირექტორიადან გრაფვიზიგარემოს ცვლადს ბილიკი. ამის შემდეგ IntelliJ Idea-ში მენიუდან აირჩიეთ File -> Settings. "პარამეტრების" ფანჯარაში აირჩიეთ "Plugins" კატეგორია, დააჭირეთ ღილაკს "Browse repositories" და დააინსტალირეთ PlantUML ინტეგრაციის მოდული. რატომ არის ეს ასე კარგი? PlantUML? იგი იყენებს გრაფიკის აღწერის ენას სახელწოდებით " წერტილი"და ეს საშუალებას აძლევს მას იყოს უფრო უნივერსალური, რადგან... მოცემული ენაგამოიყენება არა მხოლოდ PlantUML. უფრო მეტიც, ყველაფერი, რასაც ქვემოთ ვაკეთებთ, შეიძლება გაკეთდეს არა მხოლოდ IDE-ში, არამედ შიგნითაც ონლაინ სერვისი planttext.com. PlantUML მოდულის დაყენების შემდეგ, ჩვენ შევძლებთ შევქმნათ UML დიაგრამები "ფაილი" -> "ახალი". შევქმნათ "UML კლასის" ტიპის დიაგრამა. ამ პროცესის დროს ავტომატურად წარმოიქმნება შაბლონი მაგალითით. მოდით წავშალოთ მისი შინაარსი და შევქმნათ ჩვენი სტატია Habr-დან: კლასობრივი ურთიერთობები - UML-დან კოდამდე. და იმის გასაგებად, თუ როგორ უნდა გამოვსახოთ ეს ტექსტში, ავიღოთ PlantUML სახელმძღვანელო: plantuml კლასი-დიაგრამა. თავიდანვე არის ნიშანი, რომელიც აჩვენებს, თუ როგორ უნდა იყოს აღწერილი კავშირები:

ჩვენ ასევე შეგვიძლია შევხედოთ თავად კავშირებს აქ: "ურთიერთობები კლასებს შორის UML-ში". ამ მასალებზე დაყრდნობით, დავიწყოთ ჩვენი UML დიაგრამის შექმნა. მოდით დავამატოთ შემდეგი შინაარსი, რომელიც აღწერს ორ კლასს: @startuml class ArrayList ( ) class LinkedList ( ) @enduml Idea-ში შედეგის სანახავად აირჩიეთ "View" -> " ინსტრუმენტი Windows" -> "PlantUML". ჩვენ უბრალოდ მივიღებთ ორ კვადრატს, რომელიც წარმოადგენს კლასებს. როგორც ვიცით, ორივე კლასი ახორციელებს List ინტერფეისს. ეს დამოკიდებულებაკლასებს ეწოდება განხორციელებები. ასეთი კავშირის გამოსახატავად გამოიყენეთ ისარი წერტილოვანი ხაზი. მოდით გამოვსახოთ იგი: ინტერფეისის სიის სია< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о პაკეტი პირადიელემენტების მასივი: ~ Object elementData ახლა ჩვენ გვინდა ვაჩვენოთ, რომ ArrayList შეიცავს რამდენიმე ობიექტს. ამ შემთხვევაში, კავშირის ტიპი იქნება - აგრეგაცია(აგრეგაცია). აგრეგატი ამ შემთხვევაში არის ArrayList, რადგან ის შეიცავს სხვა ობიექტებს. ჩვენ ვირჩევთ აგრეგაციას, რადგან სიის ობიექტებს შეუძლიათ იცხოვრონ სიის გარეშე: ისინი არ არიან მისი განუყოფელი ნაწილები. მათი სიცოცხლე არ არის დაკავშირებული სიის სიცოცხლესთან. აგრეგატი ლათინურიდან ითარგმნება როგორც "აწყობილი", ანუ რაღაცისგან შემდგარი. მაგალითად, ცხოვრებაში არის სატუმბი დანადგარი, რომელიც შედგება ტუმბოსა და ძრავისგან. თავად ერთეული შეიძლება დაიშალა, დატოვოს მისი ნაწილი კომპონენტები. მაგალითად, გაყიდვა ან სხვა ერთეულში ჩასმა. ასეა სიაც. და ეს გამოიხატება ცარიელი ალმასის სახით ერთეულთან და უწყვეტი ხაზით. მოდით გამოვსახოთ იგი შემდეგნაირად: კლასი Object ( ) ArrayList o- Object ახლა გვინდა ვაჩვენოთ, რომ ArrayList-ისგან განსხვავებით, LinkedList კლასი შეიცავს Node - კონტეინერებს, რომლებიც ეხება შენახულ მონაცემებს. ამ შემთხვევაში, კვანძები თავად LinkedList-ის ნაწილია და არ შეუძლიათ ცალკე ცხოვრება. Node პირდაპირ არ ინახავს შინაარსს, არამედ შეიცავს მხოლოდ მის ბმულს. მაგალითად, როდესაც LinkedList-ს ვამატებთ მწკრივს, ვამატებთ ახალ კვანძს, რომელიც შეიცავს ბმულს ამ მწკრივთან, ასევე ბმულს წინა და მომდევნო კვანძთან. ამ ტიპის კავშირი ე.წ შემადგენლობა(კომპოზიცია). კომპოზიტის გამოსატანად (ის, რომელიც შედგება ნაწილებისგან), შედგენილია ფერადი ბრილიანტი, რომელსაც უწყვეტი ხაზი მიდის. მოდით დავწეროთ ეს კავშირის ტექსტური ჩვენების სახით: კლასი Node ( ) LinkedList * -- Node და ახლა ჩვენ უნდა ვისწავლოთ როგორ გამოვაჩინოთ სხვა მნიშვნელოვანი ტიპის კავშირი - დამოკიდებულება(დამოკიდებულების ურთიერთობა). იგი გამოიყენება, როდესაც ერთი კლასი იყენებს მეორეს, მაგრამ კლასი არ შეიცავს გამოყენებულ კლასს და არ არის მისი შთამომავალი. მაგალითად, LinkedList-ს და ArrayList-ს შეუძლიათ შექმნან ListIterator. მოდით გამოვხატოთ ეს ისრების სახით წერტილოვანი ხაზით: class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

შეგიძლიათ იმდენი დეტალი შეხვიდეთ, რამდენიც საჭიროა. ყველა აღნიშვნა ჩამოთვლილია აქ: "PlantUML - კლასის დიაგრამა". გარდა ამისა, ასეთი დიაგრამის დახატვაში არაფერია ზებუნებრივი და დავალებებზე მუშაობისას, შეგიძლიათ სწრაფად დახაზოთ ხელით. ეს განავითარებს თქვენს უნარებს აპლიკაციის არქიტექტურით აზროვნებაში და დაგეხმარებათ კლასის სტრუქტურის ხარვეზების ადრეულ ეტაპზე იდენტიფიცირებაში, და არა მას შემდეგ, რაც დღე გაატარეთ არასწორი მოდელის განხორციელებაში. ვფიქრობ, ეს კარგი მიზეზია სცადოთ?)

ავტომატიზაცია

არსებობს სხვადასხვა გზები ავტომატური თაობა PlantUML დიაგრამები. მაგალითად, in იდეაარსებობს SketchIT მოდული, მაგრამ ის არ ასახავს მათ საკმაოდ სწორად. მაგალითად, ინტერფეისების განხორციელება არასწორად არის დახატული (გამოსახულია მემკვიდრეობით). ასევე არის მაგალითები ინტერნეტში იმის შესახებ, თუ როგორ უნდა ჩართოთ ეს თქვენი პროექტის სასიცოცხლო ციკლში. ვთქვათ ამისთვის მეივენიარსებობს uml-java-docklet-ის გამოყენების მაგალითი. იმის საჩვენებლად, თუ როგორ კეთდება ეს, ჩვენ გამოვიყენებთ Maven Archetype-ს სწრაფი შექმნა Maven პროექტი. მოდით შევასრულოთ ბრძანება: mvn archetype:generate ფილტრის არჩევის შესახებ ( აირჩიეთ ნომერი ან გამოიყენეთ ფილტრი) დატოვეთ ნაგულისხმევი უბრალოდ Enter დაჭერით. ყოველთვის იქნება" maven-archetype-სწრაფი დაწყებააირჩიეთ უახლესი ვერსია. შემდეგ უპასუხეთ კითხვებს და დაასრულეთ პროექტის შექმნა:

ვინაიდან Maven არ არის ამ სტატიის აქცენტი, თქვენს Maven კითხვებზე პასუხები შეგიძლიათ იხილოთ Maven-ის მომხმარებელთა ცენტრში. გენერირებულ პროექტში გახსენით პროექტის აღწერილობის ფაილი რედაქტირებისთვის, pom.xml. მოდით დავაკოპიროთ მასში uml-java-docklet-ის ინსტალაციის აღწერილობის შინაარსი. აღწერილობაში გამოყენებული არტეფაქტი ვერ მოიძებნა Maven Central საცავში. მაგრამ ის მუშაობდა ამით: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. ანუ, თქვენ უბრალოდ უნდა შეცვალოთ ამ აღწერაში ჯგუფის IDთან " info.leadinglight"ზე" www.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 არის აბრევიატურა, რომელიც ნიშნავს ერთიანი მოდელირების ენას. სინამდვილეში, ეს არის ბიზნეს პროცესის მოდელირების ერთ-ერთი ყველაზე პოპულარული ტექნიკა და წარმოადგენს საერთაშორისო სტანდარტის ნოტაციას პროგრამული უზრუნველყოფის განვითარების დაზუსტების, ვიზუალიზაციისა და დოკუმენტაციისთვის. ობიექტების მართვის გუნდის მიერ განსაზღვრული, რამდენიმეს შედეგად გაჩნდა დამატებითი სისტემები UML აღნიშვნებიდა ახლა გახდა ვიზუალური მოდელირების დე ფაქტო სტანდარტი. ნებისმიერი ობიექტზე ორიენტირებული პროგრამირების ფუნდამენტური პრინციპი იწყება მოდელის აგებით.

UML შეიქმნა პროგრამული უზრუნველყოფის შემუშავებისა და დოკუმენტაციის გარშემო არსებული ქაოსის შედეგად. 1990-იან წლებში რამდენიმე იყო სხვადასხვა გზითპროგრამული სისტემების პრეზენტაცია. საჭირო იყო უფრო ერთიანი ვიზუალური UML გზა ამ სისტემების წარმოსაჩენად და შედეგად, ის შეიქმნა 1994-1996 წლებში სამი პროგრამული ინჟინრის მიერ, რომლებიც მუშაობდნენ Rational Software-ში. მოგვიანებით ის სტანდარტად იქნა მიღებული 1997 წელს და ასე რჩება დღესაც, მხოლოდ რამდენიმე განახლებით.

ძირითადად, UML არის მოდელირების ენა ძირითადი მიზანიპროგრამული უზრუნველყოფის შემუშავებაში. თუმცა, მან ახლა იპოვა გზა რამდენიმე ბიზნეს პროცესის ან სამუშაო პროცესის დოკუმენტაციაში, როგორიცაა საქმიანობის დიაგრამები. UML დიაგრამების ტიპი შეიძლება გამოყენებულ იქნას, როგორც ჩანაცვლება flowcharts. ისინი უზრუნველყოფენ სამუშაო ნაკადების მოდელირების უფრო სტანდარტიზებულ გზას და ფუნქციების ფართო სპექტრს წაკითხვისა და ეფექტურობის გასაუმჯობესებლად.

არქიტექტურა დაფუძნებულია მეტა-ობიექტზე, რომელიც განსაზღვრავს UML ენის შექმნის საფუძველს. საკმარისად ზუსტია მთელი აპლიკაციის შესაქმნელად. სრულად შესრულებადი UML შეიძლება განთავსდეს მრავალ პლატფორმაზე გამოყენებით სხვადასხვა ტექნოლოგიებიყველა პროცესთან ერთად პროგრამული უზრუნველყოფის განვითარების მთელი ციკლის განმავლობაში.

UML განკუთვნილია იყოს მომხმარებლის მიერ შემუშავებული ვიზუალური მოდელირების ენა. იგი მხარს უჭერს მაღალი დონის განვითარების კონცეფციებს, როგორიცაა სტრუქტურები, შაბლონები და თანამშრომლობა. UML არის ელემენტების ნაკრები, როგორიცაა:

  1. პროგრამირების ენის განცხადებები.
  2. მსახიობები - აღწერს როლს, რომელსაც ასრულებს მომხმარებელი ან ნებისმიერი სხვა სისტემა, რომელიც ურთიერთქმედებს ობიექტთან.
  3. აქტივობები, რომლებიც უნდა განხორციელდეს სამუშაო ხელშეკრულების შესასრულებლად და წარმოდგენილია დიაგრამებით.
  4. ბიზნეს პროცესი, რომელიც მოიცავს ამოცანების ერთობლიობას, რომელიც ქმნის სპეციფიკურ სერვისს კლიენტებისთვის, ვიზუალიზებული თანმიმდევრული მოქმედებების დიაგრამით.
  5. ლოგიკური და მრავალჯერადი გამოყენების პროგრამული კომპონენტები.

UML დიაგრამები იყოფა ორ კატეგორიად. პირველი ტიპი მოიცავს შვიდი ტიპის დიაგრამას, რომელიც წარმოადგენს სტრუქტურულ ინფორმაციას, მეორე - დანარჩენ შვიდს, რომელიც წარმოადგენს ქცევის ზოგად ტიპებს. ეს დიაგრამები გამოიყენება სისტემების არქიტექტურის დოკუმენტაციისთვის და უშუალოდ მონაწილეობენ სისტემის UML მოდელირებაში.

UML დიაგრამები წარმოდგენილია როგორც სტატიკური და დინამიური წარმოდგენები სისტემის მოდელი. სტატიკური ხედი მოიცავს კლასის და კომპოზიციის დიაგრამებს, რომლებიც ხაზს უსვამენ სტატიკური სტრუქტურას. დინამიური ხედი წარმოადგენს ობიექტებს შორის ურთიერთქმედებას და ცვლილებებს ობიექტების შიდა მდგომარეობებში მიმდევრობის, აქტივობისა და მდგომარეობის დიაგრამების გამოყენებით.

მოდელირების გასამარტივებლად ხელმისაწვდომია UML მოდელირების ხელსაწყოების ფართო არჩევანი, მათ შორის IBM Rose, Rhapsody, MagicDraw, StarUML, ArgoUML, Umbrello, BOUML, PowerDesigner და Dia.

UML-ის გამოყენებას აქვს სხვადასხვა სახის როგორც პროგრამული უზრუნველყოფის განვითარების დოკუმენტაციაში, ასევე ბიზნეს პროცესებში:

  1. ესკიზი. ამ შემთხვევაში, UML დიაგრამები გამოიყენება სისტემის სხვადასხვა ასპექტებისა და მახასიათებლების გადმოსაცემად. თუმცა, ეს მხოლოდ სისტემის ზედა დონის ხედია და დიდი ალბათობით არ შეიცავს ყველა საჭირო დეტალს პროექტის ბოლომდე დასასრულებლად.
  2. Forward Design - ესკიზის დიზაინი კეთდება აპლიკაციის კოდირებამდე. ეს კეთდება იმისთვის უკეთესი მიმოხილვასისტემა ან სამუშაო პროცესი, რომლის შექმნასაც მომხმარებელი ცდილობს. მრავალი დიზაინის პრობლემა ან ხარვეზი შეიძლება გამოვლინდეს, რაც გააუმჯობესებს პროექტის მთლიან ჯანმრთელობას და კეთილდღეობას.
  3. საპირისპირო დიზაინი. კოდის დაწერის შემდეგ, UML დიაგრამები ნაჩვენებია, როგორც დოკუმენტაციის ფორმა სხვადასხვა აქტივობებისთვის, როლებისთვის, მონაწილეებისთვის და სამუშაო პროცესებისთვის.
  4. გეგმა. ამ შემთხვევაში, დიაგრამა ემსახურება როგორც სრულ დიზაინს, რომელიც მოითხოვს მხოლოდ სისტემის ან პროგრამული უზრუნველყოფის რეალურ განხორციელებას. ეს ხშირად კეთდება CASE (Computer Aided Software Engineering Tools) ინსტრუმენტების გამოყენებით. CASE ინსტრუმენტების გამოყენების მთავარი მინუსი არის ის, რომ ისინი საჭიროებენ გარკვეულ ცოდნას, მომხმარებლის ტრენინგს, ასევე მენეჯმენტსა და პერსონალს.

UML არ არის დამოუკიდებელი პროგრამირების ენა, როგორიცაა Java, C++ ან Python, მაგრამ სწორი ხელსაწყოებით ის შეიძლება გახდეს ფსევდოპროგრამის ენა UML. ამ მიზნის მისაღწევად, მთელი სისტემა უნდა იყოს დოკუმენტირებული სხვადასხვა დიაგრამებში და სწორი პროგრამული უზრუნველყოფის გამოყენებით, დიაგრამები შეიძლება პირდაპირ გადაითარგმნოს კოდში. ეს მეთოდი შეიძლება იყოს გამოსადეგი მხოლოდ იმ შემთხვევაში, თუ დიაგრამების შედგენაზე დახარჯულ დროს ნაკლები დრო დასჭირდება, ვიდრე რეალური კოდის დაწერა. მიუხედავად იმისა, რომ UML შეიქმნა სისტემების მოდელირებისთვის, მან იპოვა რამდენიმე პროგრამა ბიზნეს სფეროებში.

ქვემოთ მოცემულია UML დიაგრამის მაგალითი ბიზნეს მოდელირებისთვის.

ერთი პრაქტიკული გამოსავალი იქნება ტელეგაყიდვის პროცესის ვიზუალურად წარმოდგენა აქტივობის სქემის მეშვეობით. შეკვეთის შეყვანის მომენტიდან შეკვეთის დასრულებამდე და კონკრეტული გამომავალი მიცემის მომენტამდე.

არსებობს რამდენიმე ტიპის UML დიაგრამები და თითოეული ასრულებს განსხვავებულ დავალებას, იქნება ეს შემუშავებული განხორციელებამდე თუ მის შემდეგ, როგორც დოკუმენტაციის ნაწილი. ორი ყველაზე ფართო კატეგორია, რომელიც მოიცავს ყველა სხვა ტიპს, არის ქცევის დიაგრამა და სტრუქტურის დიაგრამა. როგორც სახელი გვთავაზობს, ზოგიერთი UML დიაგრამა ცდილობს გააანალიზოს და ასახოს სისტემის ან პროცესის სტრუქტურა, ზოგი კი აღწერს სისტემის ქცევას, მის მონაწილეებს და კომპონენტებს.

სხვადასხვა ტიპები იყოფა შემდეგნაირად:

  1. 14-დან ყველა არა სხვადასხვა სახის UML დიაგრამები რეგულარულად გამოიყენება სისტემებისა და არქიტექტურების დოკუმენტირებისას.
  2. პარეტოს პრინციპი ასევე ვრცელდება UML დიაგრამების გამოყენებაზე.
  3. სქემების 20% გამოიყენება დეველოპერების მიერ 80% შემთხვევაში.

პროგრამული უზრუნველყოფის შემუშავებაში ყველაზე ხშირად გამოყენებული ელემენტებია:

  • გამოყენების დიაგრამები;
  • კლასის დიაგრამები;
  • თანმიმდევრობები.

აქტივობის დიაგრამები არის ყველაზე მნიშვნელოვანი UML დიაგრამები ბიზნეს პროცესის მოდელების შესაქმნელად. პროგრამული უზრუნველყოფის შემუშავებისას ისინი გამოიყენება სხვადასხვა აქტივობების ნაკადის აღსაწერად. ისინი შეიძლება იყოს სერიული ან პარალელური. ისინი აღწერენ აქტივობის მიერ გამოყენებულ, მოხმარებულ ან წარმოებულ ობიექტებს და სხვადასხვა აქტივობებს შორის ურთიერთობას.

ყოველივე ზემოაღნიშნული მნიშვნელოვანია ბიზნეს პროცესების მოდელირებისთვის, რომლებიც მიდიან ერთიდან მეორეზე, რადგან ისინი ერთმანეთთან არის დაკავშირებული მკაფიო დასაწყისთან და დასასრულთან. ბიზნეს გარემოში ამას ასევე უწოდებენ ბიზნეს პროცესის რუკებს. მთავარი გმირები არიან ავტორი, რედაქტორი და გამომცემელი. UML-ის მაგალითი შემდეგია. როდესაც მიმომხილველი უყურებს პროექტს და გადაწყვეტს, რომ საჭიროა გარკვეული ცვლილებების შეტანა. ამის შემდეგ ავტორი ამოწმებს პროექტს და ხელახლა აბრუნებს მას მიმოხილვის გასაანალიზებლად.

გამოყენების დიაგრამა

სისტემის ქვაკუთხედი - გამოიყენება სისტემის დონის მოთხოვნების გასაანალიზებლად. ეს მოთხოვნები გამოიხატება სხვადასხვა ვარიანტებიგამოყენება. UML დიაგრამის სამი ძირითადი კომპონენტია:

  1. ფუნქციონალური - წარმოდგენილია გამოყენების შემთხვევები.
  2. ზმნა, რომელიც აღწერს მოქმედებას.
  3. მსახიობები - სისტემასთან ურთიერთობისთვის. მსახიობის როლი შეიძლება იყოს მომხმარებლები, ორგანიზაციები ან გარე აპლიკაცია. მონაწილეებს შორის ურთიერთობა წარმოდგენილია სწორი ისრებით.

მაგალითად, ინვენტარის მართვის სქემისთვის. ამ შემთხვევაში არის მფლობელი, მიმწოდებელი, მენეჯერი, ინვენტარიზაციის სპეციალისტი და ინვენტარიზაციის ინსპექტორი. მრგვალი კონტეინერები წარმოადგენს მსახიობების მიერ შესრულებულ მოქმედებებს. შესაძლო ქმედებები: აქციების შეძენა და გადახდა, მარაგის ხარისხის შემოწმება, ინვენტარის დაბრუნება ან განაწილება.

ამ ტიპის დიაგრამა კარგად შეეფერება სისტემის მონაწილეებს შორის დინამიური ქცევის ჩვენებას, მისი წარმოდგენის გამარტივებას განხორციელების დეტალების ასახვის გარეშე.

დროებითი

UML დროის დიაგრამები გამოიყენება ობიექტების ურთიერთობების წარმოსაჩენად, სადაც ფოკუსი დროზეა დამოკიდებული. საინტერესო არ არის, როგორ ურთიერთქმედებენ ან ცვლიან ობიექტები ერთმანეთს, მაგრამ მომხმარებელს სურს წარმოიდგინოს, როგორ მოქმედებენ ობიექტები და საგნები დროის ხაზოვანი ღერძის გასწვრივ.

თითოეული ცალკეული მონაწილე წარმოდგენილია სამაშველო ხაზით, რომელიც არსებითად არის ხაზი, რომელიც ქმნის ეტაპებს, როდესაც ინდივიდუალური მონაწილე გადადის ერთი ეტაპიდან მეორეზე. აქცენტი კეთდება მოვლენების დროის ხანგრძლივობაზე და მის მიხედვით მომხდარ ცვლილებებზე.

დროის დიაგრამის ძირითადი კომპონენტებია:

  1. Lifeline არის ინდივიდუალური წევრი.
  2. მდგომარეობის ვადები - ერთი ცხოვრების გზა შეიძლება გაიაროს სხვადასხვა მდგომარეობებში პროცესის ფარგლებში.
  3. ხანგრძლივობის შეზღუდვა არის დროის ინტერვალის შეზღუდვა, რომელიც წარმოადგენს შეზღუდვის დასაკმაყოფილებლად საჭირო ხანგრძლივობას.
  4. დროის ლიმიტი - დროის ინტერვალის შეზღუდვა, რომლის განმავლობაშიც რაღაც უნდა შესრულდეს მონაწილემ.
  5. განადგურების გაჩენა - შეტყობინების გამოჩენა, რომელიც ანადგურებს ცალკეულ მონაწილეს და წარმოადგენს ამ მონაწილის სიცოცხლის ციკლის დასასრულს.

ჰორიზონტალური დიაგრამები, რომელსაც ასევე უწოდებენ მდგომარეობის დიაგრამებს, გამოიყენება სისტემის კომპონენტების სხვადასხვა მდგომარეობის აღსაწერად. იგი იღებს სასრულ სახელების ფორმატს, რადგან დიაგრამა არსებითად არის მანქანა, რომელიც აღწერს ობიექტის მრავალ მდგომარეობას და როგორ იცვლება ის შიდა და გარე მოვლენებზე დაყრდნობით.

მანქანის ძალიან მარტივი მდგომარეობის დიაგრამა ჭადრაკის თამაშს ჰგავს. ტიპიური ჭადრაკის თამაში შედგება თეთრის და შავის სვლებისგან. თეთრს აქვს პირველი ნაბიჯი, რაც ამით იწყებს თამაშს. თამაშის დასასრული შეიძლება მოხდეს იმისდა მიუხედავად, მოიგებს თეთრი თუ შავი. თამაში შეიძლება დასრულდეს მატჩით, ლეიოვერით ან ფრედ (სხვადასხვა მანქანის მდგომარეობა). Statecharts ძირითადად გამოიყენება UML-ის წინა და საპირისპირო დიზაინში. სხვადასხვა სისტემები.

თანმიმდევრული

ამ ტიპის დიაგრამა არის ყველაზე მნიშვნელოვანი UML დიაგრამა არა მხოლოდ კომპიუტერული მეცნიერების საზოგადოებაში, არამედ როგორც დიზაინის დონის მოდელი ბიზნეს აპლიკაციების განვითარებისთვის. ისინი პოპულარულია ბიზნეს პროცესების აღწერისას მათი ვიზუალურად აშკარა ბუნების გამო. როგორც სახელი გვთავაზობს, დიაგრამები აღწერს შეტყობინებების და ურთიერთქმედების თანმიმდევრობას, რომელიც ხდება საგნებსა და ობიექტებს შორის. აქტორებს ან ობიექტებს შეუძლიათ აქტიური იყვნენ მხოლოდ საჭიროების შემთხვევაში ან როცა სხვა ობიექტს სურს მათთან კომუნიკაცია. ყველა კომუნიკაცია წარმოდგენილია ქრონოლოგიური თანმიმდევრობით.

მეტის მისაღებად სრული ინფორმაცია, შეგიძლიათ განიხილოთ UML მიმდევრობის დიაგრამის მაგალითი ქვემოთ.

როგორც მაგალითიდან ჩანს, სტრუქტურის დიაგრამები გამოიყენება სისტემის სტრუქტურის საჩვენებლად. უფრო კონკრეტულად, ენა გამოიყენება პროგრამული უზრუნველყოფის შემუშავებაში, რათა წარმოაჩინოს სისტემის არქიტექტურა და როგორ არის ერთმანეთთან დაკავშირებული სხვადასხვა კომპონენტები.

UML კლასის დიაგრამა არის დიაგრამის ყველაზე გავრცელებული ტიპი პროგრამული უზრუნველყოფის დოკუმენტაციისთვის. ვინაიდან დღეს შექმნილი პროგრამების უმეტესობა ჯერ კიდევ ეფუძნება ობიექტზე ორიენტირებულ პროგრამირების პარადიგმას, პროგრამული უზრუნველყოფის დოკუმენტაციისთვის კლასის დიაგრამების გამოყენება საღი აზრია. ეს იმიტომ ხდება, რომ OOP დაფუძნებულია UML კლასებზე და მათ შორის ურთიერთობებზე. მოკლედ, დიაგრამები შეიცავს კლასებს, მათ ატრიბუტებთან ერთად, რომლებსაც ასევე უწოდებენ მონაცემთა ველებს და მათ ქცევას, რომელსაც წევრის ფუნქციებს უწოდებენ.

უფრო კონკრეტულად, თითოეულ კლასს აქვს 3 ველი: სახელი ზევით, ატრიბუტები მხოლოდ სახელის ქვემოთ, ოპერაციები/ქცევები ბოლოში. ურთიერთობა სხვადასხვა კლასებს შორის (გამოსახულია დამაკავშირებელი ხაზით) ქმნის კლასის დიაგრამას. ზემოთ მოყვანილი მაგალითი გვიჩვენებს ძირითადი კლასის დიაგრამას.

ობიექტები

UML სტრუქტურის დიაგრამების განხილვისას საჭიროა ჩავუღრმავდეთ კომპიუტერული მეცნიერების კონცეფციებს. პროგრამული უზრუნველყოფის ინჟინერიაში კლასები განიხილება, როგორც აბსტრაქტული მონაცემთა ტიპები, ხოლო ობიექტები არის ინსტანციები, მაგალითად, თუ არსებობს "Car", რომელიც არის ზოგადი აბსტრაქტული ტიპი, მაშინ კლასის "Car" მაგალითი იქნება "Audi".

UML ობიექტების დიაგრამები ეხმარება პროგრამული უზრუნველყოფის დეველოპერებს შეამოწმონ, წარმოადგენს თუ არა გენერირებული აბსტრაქტული სტრუქტურა სიცოცხლისუნარიან სტრუქტურას პრაქტიკაში დანერგვისას, ანუ, როდესაც ობიექტების ინსტანცია ხდება. ზოგიერთი დეველოპერი ამას მიიჩნევს სიზუსტის შემოწმების მეორად დონედ. ის აჩვენებს კლასების მაგალითებს. უფრო ზუსტად, ზოგად კლასს "კლიენტს" ახლა ჰყავს ფაქტობრივი კლიენტი, მაგალითად, "ჯეიმსი". ჯეიმსი უფრო ზოგადი კლასის მაგალითია და აქვს იგივე ატრიბუტები, თუმცა მოცემული მნიშვნელობებით. იგივე გაკეთდა ანგარიში"ანგარიშები და დანაზოგი". ისინი ორივე მათი შესაბამისი კლასის ობიექტებია.

განლაგება

განლაგების დიაგრამები გამოიყენება პროგრამულ უზრუნველყოფასა და აპარატურას შორის ურთიერთობის ვიზუალიზაციისთვის. უფრო კონკრეტულად რომ ვთქვათ, განლაგების დიაგრამებით, შეგიძლიათ შექმნათ ფიზიკური მოდელი, თუ როგორ ხდება პროგრამული უზრუნველყოფის კომპონენტები (არტეფაქტები) განლაგებული აპარატურულ კომპონენტებზე, რომლებიც ცნობილია როგორც კვანძები.

ტიპიური გამარტივებული განლაგების სქემა ვებ აპლიკაციისთვის მოიცავს:

  1. კვანძები (აპლიკაციის სერვერი და მონაცემთა ბაზის სერვერი).
  2. კლიენტის აპლიკაციისა და მონაცემთა ბაზის არტეფაქტების სქემა.

პაკეტის დიაგრამა მსგავსია მაკროკოლექციისა UML განლაგების დიაგრამებისთვის, რომელიც ზემოთ ავხსენით. სხვადასხვა პაკეტები შეიცავს კვანძებს და არტეფაქტებს. ისინი აჯგუფებენ დიაგრამებს და აყალიბებენ კომპონენტებს ჯგუფებად, ისევე როგორც სახელთა სივრცე მოიცავს სხვადასხვა სახელებს, რომლებიც გარკვეულწილად დაკავშირებულია. საბოლოო ჯამში, პაკეტი ასევე შეიძლება შეიქმნას რამდენიმე სხვა პაკეტზე, რათა წარმოადგინოს უფრო რთული სისტემები და ქცევა.

პაკეტის დიაგრამის მთავარი მიზანია აჩვენოს ურთიერთობები სხვადასხვა დიდ კომპონენტებს შორის, რომლებიც ქმნიან რთულ სისტემას. პროგრამისტები პოულობენ ამ აბსტრაქციის ფუნქციას კარგი უპირატესობაპაკეტის დიაგრამების გამოყენებისთვის, განსაკუთრებით მაშინ, როდესაც ზოგიერთი დეტალი შეიძლება გამოირიცხოს საერთო სურათიდან.

როგორც ნებისმიერი სხვა რამ ცხოვრებაში, რაღაცის სწორად გასაკეთებლად გჭირდებათ სწორი იარაღები. ინსტრუმენტები, რომლებიც გვთავაზობენ UML ანოტაციებს და დიაგრამის შაბლონებს, გამოიყენება პროგრამული უზრუნველყოფის, პროცესების ან სისტემების დოკუმენტაციისთვის. არსებობს სხვადასხვა დოკუმენტაციის ინსტრუმენტი პროგრამული უზრუნველყოფა, რომელიც დაგეხმარებათ დიაგრამის დახატვაში.

ისინი ჩვეულებრივ იყოფა შემდეგ ძირითად კატეგორიებად:

  1. ქაღალდი და კალამი მარტივია. აიღეთ ქაღალდი და კალამი, გახსენით UML სინტაქსის კოდი ინტერნეტიდან და დახაზეთ ნებისმიერი ტიპის დიაგრამა, რომელიც გჭირდებათ.
  2. ონლაინ ინსტრუმენტები - არსებობს რამდენიმე ონლაინ აპლიკაცია, რომელიც შეგიძლიათ გამოიყენოთ სქემის შესაქმნელად. მათი უმეტესობა გვთავაზობს ფასიანი გამოწერაან დიაგრამების შეზღუდული რაოდენობა თავისუფალ დონეზე.
  3. უფასო ონლაინ ინსტრუმენტები თითქმის იგივეა, რაც ფასიანი. მთავარი განსხვავება ისაა, რომ ფასიანებიც გვთავაზობენ სასწავლო საშუალებებიდა მზა შაბლონები კონკრეტული დიაგრამებისთვის.
  4. დესკტოპის აპლიკაცია - ტიპიური დესკტოპის პროგრამა, რომელიც გამოიყენება დიაგრამებისთვის და თითქმის ნებისმიერი სხვა დიაგრამისთვის, არის Microsoft Visio. ის გთავაზობთ მოწინავე ფუნქციებს და ფუნქციონირებას. ერთადერთი მინუსი არის ის, რომ თქვენ უნდა გადაიხადოთ იგი.

ამრიგად, სრულიად ნათელია, რომ UML არის მნიშვნელოვანი ასპექტი, რომელიც დაკავშირებულია ობიექტზე ორიენტირებული პროგრამული უზრუნველყოფის შემუშავებასთან. იგი იყენებს გრაფიკულ აღნიშვნას სისტემური პროგრამების ვიზუალური მოდელების შესაქმნელად.

Ანოტაცია: ამ კურსის საგანია UML - ერთიანი მოდელირების ენა. წინა ლექციაზე საუბარი იყო იმაზე, თუ რა არის UML, მისი ისტორია, მიზანი, ენის გამოყენების გზები, მისი განმარტების სტრუქტურა, ტერმინოლოგია და აღნიშვნა. აღინიშნა, რომ UML მოდელი არის დიაგრამების ნაკრები. ამ ლექციაში განვიხილავთ შემდეგ კითხვებს: რატომ არის საჭირო რამდენიმე ტიპის დიაგრამა; დიაგრამების ტიპები; OOP და დიაგრამების თანმიმდევრობა

სანამ ამ ლექციის ძირითადი მასალის განხილვაზე გადავიდოდეთ, მოდით ვისაუბროთ იმაზე, თუ რატომ გვჭირდება საერთოდ რაიმე დიაგრამის აგება. ნებისმიერი სისტემის (არა მხოლოდ პროგრამული უზრუნველყოფის) მოდელის შემუშავება ყოველთვის წინ უსწრებს მის შექმნას ან განახლებას. ეს აუცილებელია მინიმუმ იმისთვის, რომ უფრო ნათლად წარმოვიდგინოთ პრობლემა მოგვარებული. კარგად გააზრებული მოდელები ძალიან მნიშვნელოვანია როგორც განვითარების გუნდში ურთიერთობისთვის, ასევე მომხმარებელთან ურთიერთგაგებისთვის. საბოლოო ჯამში, ეს უზრუნველყოფს დიზაინის "არქიტექტურულად თანმიმდევრულობას", სანამ ის კოდირებული იქნება.

ჩვენ ვაშენებთ რთული სისტემების მოდელებს, რადგან არ შეგვიძლია მათი სრულად აღწერა, „შეხედეთ მათ“. ამიტომ, ჩვენ ხაზს ვუსვამთ სისტემის მხოლოდ იმ თვისებებს, რომლებიც აუცილებელია კონკრეტული ამოცანისთვის და ვქმნით მის მოდელს, რომელიც აჩვენებს ამ თვისებებს. ობიექტზე ორიენტირებული ანალიზის მეთოდი საშუალებას გვაძლევს აღვწეროთ რეალური რთული სისტემები ყველაზე ადეკვატური გზით. მაგრამ როდესაც იზრდება სისტემების სირთულე, ჩნდება კარგი მოდელირების ტექნოლოგიის საჭიროება. როგორც წინა ლექციაში უკვე ვთქვით, ერთიანი მოდელირების ენა(Unified Modeling Language, UML), რომელიც არის გრაფიკული ენა სისტემების დაზუსტების, ვიზუალიზაციის, დიზაინისა და დოკუმენტაციისთვის. UML-ის გამოყენებით შეგიძლიათ განავითაროთ დეტალური მოდელიშექმნილი სისტემის, რომელიც ასახავს არა მხოლოდ მის კონცეფციას, არამედ მისი განხორციელების სპეციფიკურ მახასიათებლებს. UML მოდელის ფარგლებში, სისტემის შესახებ ყველა იდეა ჩაწერილია სპეციალური გრაფიკული სტრუქტურების სახით, რომელსაც ეწოდება დიაგრამები.

შენიშვნა. ჩვენ განვიხილავთ არა ყველა, არამედ მხოლოდ რამდენიმე ტიპის დიაგრამას. მაგალითად, კომპონენტის დიაგრამა არ არის დაფარული ამ ლექციაში, რაც მხოლოდ მოკლე მიმოხილვადიაგრამების ტიპები. დიაგრამის ტიპების რაოდენობა ამისთვის კონკრეტული მოდელიგანაცხადები არანაირად არ არის შეზღუდული. ამისთვის მარტივი აპლიკაციებიარ არის საჭირო ყველა ტიპის დიაგრამების აგება გამონაკლისის გარეშე. ზოგიერთი მათგანი შეიძლება უბრალოდ აკლია და ეს ფაქტი შეცდომად არ ჩაითვლება. მნიშვნელოვანია გვესმოდეს, რომ გარკვეული ტიპის დიაგრამების ხელმისაწვდომობა დამოკიდებულია კონკრეტული პროექტის სპეციფიკაზე. ინფორმაცია სხვა ტიპის დიაგრამების შესახებ (აქ არ არის განხილული) შეგიძლიათ იხილოთ UML სტანდარტში.

რატომ გჭირდებათ რამდენიმე ტიპის დიაგრამა

პირველ რიგში, მოდით განვსაზღვროთ ტერმინოლოგია. ამ ლექციის შესავალში არაერთხელ გამოვიყენეთ სისტემის, მოდელისა და დიაგრამის ცნებები. ავტორი დარწმუნებულია, რომ თითოეულ ჩვენგანს ინტუიციურად ესმის ამ ცნებების მნიშვნელობა, მაგრამ ამის სრულად გასაგებად, მოდით კიდევ ერთხელ გადავხედოთ ლექსიკონს და წავიკითხოთ შემდეგი:

სისტემა- ურთიერთდაკავშირებულთა ნაკრები კონტროლირებადი ქვესისტემები, გაერთიანებულია ფუნქციონირების საერთო მიზნით.

დიახ, არც ისე ინფორმატიული. მაშინ რა არის ქვესისტემა? სიტუაციის გასარკვევად, მოდით მივმართოთ კლასიკას:

სისტემაეხება ქვესისტემების ერთობლიობას, რომლებიც ორგანიზებულია კონკრეტული მიზნის მისაღწევად და აღწერილია მოდელების ნაკრების გამოყენებით, შესაძლოა სხვადასხვა თვალსაზრისით.

ისე, არაფრის გაკეთება არ შეგიძლიათ, თქვენ უნდა მოძებნოთ ქვესისტემის განმარტება. იქაც ასე წერია ქვესისტემაარის ელემენტების კრებული, რომელთაგან ზოგიერთი განსაზღვრავს სხვა ელემენტების ქცევას. იან სომერვილი ამ კონცეფციას ასე განმარტავს:

ქვესისტემაარის სისტემა, რომლის ფუნქციონირება არ არის დამოკიდებული სხვა ქვესისტემების სერვისებზე. პროგრამული სისტემა სტრუქტურირებულია, როგორც შედარებით დამოუკიდებელი ქვესისტემების კოლექცია. ასევე განსაზღვრულია ქვესისტემებს შორის ურთიერთქმედება.

ეს ასევე არ არის ძალიან ნათელი, მაგრამ უკეთესია. „ადამიანური“ ენით საუბრისას, სისტემა წარმოდგენილია როგორც უფრო მარტივი ერთეულების ერთობლიობა, რომლებიც შედარებით თვითკმარია. ეს შეიძლება შევადაროთ იმას, თუ როგორ, პროგრამის შემუშავების პროცესში, ვაშენებთ გრაფიკულ ინტერფეისს სტანდარტული „კუბებისგან“ - ვიზუალური კომპონენტებიდან, ან როგორ იყოფა თავად პროგრამის ტექსტი ასევე მოდულებად, რომლებიც შეიცავს ქვეპროგრამებს, გაერთიანებულს ფუნქციონალობით და ისინი. შესაძლებელია ხელახლა გამოყენება შემდეგ პროგრამებში.

ჩვენ გვესმის სისტემის კონცეფცია. დიზაინის პროცესში განიხილება სისტემა თან სხვადასხვა წერტილებიხედვამოდელების დახმარებით, რომელთა სხვადასხვა გამოსახულებები დიაგრამების სახით ჩანს. კიდევ ერთხელ, მკითხველს შეიძლება ჰქონდეს შეკითხვები ცნებების მნიშვნელობის შესახებ მოდელებიდა დიაგრამები. ჩვენ ვფიქრობთ, რომ ეს არის ლამაზი, მაგრამ არა ძალიან მკაფიო განმარტება მოდელები, როგორც სისტემის სემანტიკურად დახურული აბსტრაქციასიტუაციის გარკვევა ნაკლებად სავარაუდოა, ამიტომ ჩვენ შევეცდებით ავხსნათ "ჩვენი სიტყვებით".

მოდელი- ეს არის გარკვეული (მატერიალური თუ არა) ობიექტი, რომელიც აჩვენებს სისტემის მხოლოდ ყველაზე მნიშვნელოვან მახასიათებლებს მოცემული ამოცანისთვის. მოდელები განსხვავებულია - მატერიალური და არამატერიალური, ხელოვნური და ბუნებრივი, დეკორატიული და მათემატიკური...

მოვიყვანოთ რამდენიმე მაგალითი. ჩვენთვის ნაცნობი პლასტმასის სათამაშო მანქანები, რომლებითაც ბავშვობაში ასეთი მღელვარებით ვთამაშობდით, სხვა არაფერია თუ არა მასალა ხელოვნური დეკორატიულინამდვილი მანქანის მოდელი. რა თქმა უნდა, ასეთ "მანქანას" არ აქვს ძრავა, ჩვენ არ ვავსებთ მის ავზს ბენზინით და გადაცემათა კოლოფი არ მუშაობს (რა თქმა უნდა, გადაცემათა კოლოფი საერთოდ არ არის), მაგრამ, როგორც მოდელი, ეს სათამაშო სრულად ასრულებს თავის ფუნქციებს. : ის აძლევს ბავშვს წარმოდგენას ავტომობილის შესახებ, ვინაიდან ავლენს მის დამახასიათებელ მახასიათებლებს ოთხი ბორბლის არსებობა, კორპუსი, კარები, ფანჯრები, მართვის უნარი და ა.შ.

სამედიცინო კვლევებში ცხოველებზე ტესტირება ხშირად წინ უსწრებს ადამიანის კლინიკურ კვლევებს. ამ შემთხვევაში ცხოველი მოქმედებს როგორც მასალა ბუნებრივიადამიანის მოდელები.

ზემოთ გამოსახული განტოლება ასევე მოდელია, მაგრამ ეს არის მათემატიკური მოდელი და აღწერს მატერიალური წერტილის მოძრაობას გრავიტაციის გავლენის ქვეშ.

რჩება მხოლოდ იმის თქმა, თუ რა არის დიაგრამა. დიაგრამა- ეს გრაფიკული გამოსახულებაბევრი ელემენტი. ჩვეულებრივ გამოსახულია გრაფიკის სახით წვეროებით (ერთეულებით) და კიდეებით (ურთიერთობებით). დიაგრამების მრავალი მაგალითი არსებობს. ეს არის სკოლის წლებიდან ჩვენთვის ნაცნობი ბლოკ-სქემა და სხვადასხვა აღჭურვილობის ინსტალაციის სქემები, რომლებიც ჩვენ შეგვიძლია დავინახოთ მომხმარებლის სახელმძღვანელოებში და დისკზე არსებული ფაილებისა და დირექტორიების ხე, რომელიც შეგვიძლია დავინახოთ შესრულებით. Windows კონსოლიხის ბრძანება და მრავალი სხვა. IN Ყოველდღიური ცხოვრებისდიაგრამები ყველა მხრიდან გვახვევს, რადგან ნახატებს უფრო ადვილად აღვიქვამთ, ვიდრე ტექსტს...

მაგრამ მოდით დავუბრუნდეთ პროგრამული უზრუნველყოფის დიზაინს (და მეტს). ამ ინდუსტრიაში ერთად დიაგრამები შეიძლება გამოყენებულ იქნას სისტემის ვიზუალიზაციისთვის სხვადასხვა პერსპექტივიდან. მაგალითად, ერთ დიაგრამას შეუძლია აღწეროს მომხმარებლის ურთიერთქმედება სისტემასთან, მეორეს შეუძლია აღწეროს სისტემის მდგომარეობის ცვლილება მისი მუშაობის დროს, მესამეს შეუძლია აღწეროს სისტემის ელემენტების ურთიერთქმედება ერთმანეთთან და ა.შ. რთული სისტემა. შეიძლება და უნდა იყოს წარმოდგენილი როგორც პატარა და თითქმის დამოუკიდებელი მოდელების - დიაგრამების ერთობლიობა და არცერთი მათგანი არ არის საკმარისი სისტემის აღწერისთვის და მისი სრული სურათის მისაღებად, რადგან თითოეული მათგანი ყურადღებას ამახვილებს სისტემის ფუნქციონირების კონკრეტულ ასპექტზე და გამოხატავს განსხვავებული აბსტრაქციის დონე. სხვა სიტყვებით რომ ვთქვათ, თითოეული მოდელი შეესაბამება გარკვეულ, კონკრეტულ თვალსაზრისს შემუშავებულ სისტემაზე.

იმისდა მიუხედავად, რომ წინა აბზაცში ჩვენ ძალიან თავისუფლად განვიხილეთ მოდელის კონცეფცია, უნდა გვესმოდეს, რომ ზემოაღნიშნული განმარტებების კონტექსტში არც ერთი ინდივიდუალური დიაგრამა არ არის მოდელი. დიაგრამები მხოლოდ მოდელის ვიზუალიზაციის საშუალებაა და ეს ორი ცნება უნდა განვასხვავოთ. მხოლოდ დიაგრამების ნაკრები ქმნის სისტემის მოდელსდა აღწერს მას ყველაზე სრულად, მაგრამ არა მხოლოდ ერთი დიაგრამა, რომელიც ამოღებულია კონტექსტიდან.

სქემების ტიპები

განსაზღვრულია UML 1.5 თორმეტი სქემის ტიპიდაყოფილია სამ ჯგუფად:

  • ოთხი ტიპის დიაგრამა წარმოადგენს განაცხადის სტატიკური სტრუქტურას;
  • ხუთი წარმოადგენს სისტემის ქცევით ასპექტებს;
  • სამი წარმოადგენს სისტემის მუშაობის ფიზიკურ ასპექტებს (განხორციელების დიაგრამები).

UML 2.1-ის მიმდინარე ვერსიას არ შეუტანია ძალიან ბევრი ცვლილება. დიაგრამები ოდნავ შეიცვალა გარეგნულად (გამოჩნდა ჩარჩოები და სხვა ვიზუალური გაუმჯობესება), აღნიშვნა ოდნავ გაუმჯობესდა და ზოგიერთ დიაგრამას ახალი სახელები აქვს.

თუმცა, ზუსტი რიცხვი კანონიკური დიაგრამებიჩვენთვის ეს აბსოლუტურად უმნიშვნელოა, რადგან განვიხილავთ არა ყველა მათგანს, არამედ მხოლოდ ზოგიერთს - იმ მიზეზით, რომ დიაგრამების ტიპების რაოდენობა კონკრეტული აპლიკაციის კონკრეტული მოდელისთვის არ არის მკაცრად დაფიქსირებული. მარტივი აპლიკაციებისთვის არ არის საჭირო თითოეული დიაგრამის აგება. მაგალითად, ლოკალური აპლიკაციისთვის არ არის აუცილებელი განლაგების დიაგრამის აგება. მნიშვნელოვანია გვესმოდეს, რომ დიაგრამების სია დამოკიდებულია შემუშავებული პროექტის სპეციფიკაზე და განისაზღვრება თავად დეველოპერის მიერ. თუ ცნობისმოყვარე მკითხველს მაინც სურს იცოდეს ყველა UML დიაგრამა, ჩვენ მას მივმართავთ UML სტანდარტს (http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML). შეგახსენებთ, რომ კურსის მიზანი არ არის UML-ის აბსოლუტურად ყველა შესაძლებლობის აღწერა, არამედ მხოლოდ ამ ენის დანერგვა და ამ ტექნოლოგიის თავდაპირველი წარმოდგენის მიცემა.

ასე რომ, ჩვენ მოკლედ განვიხილავთ დიაგრამების ისეთ ტიპებს, როგორიცაა:

  • გამოყენების შემთხვევაში დიაგრამა;
  • კლასის დიაგრამა;
  • ობიექტის დიაგრამა;
  • თანმიმდევრობის დიაგრამა;
  • ურთიერთქმედების დიაგრამა;
  • მდგომარეობის დიაგრამა;
  • აქტივობის დიაგრამა;
  • განლაგების დიაგრამა.

ზოგიერთ ამ დიაგრამაზე უფრო დეტალურად ვისაუბრებთ მომავალ ლექციებში. ამ დროისთვის, ჩვენ არ გავამახვილებთ ყურადღებას დეტალებზე, მაგრამ დასახულ მიზანს დავსახავთ მკითხველს ვასწავლოთ მინიმუმ ვიზუალურად განასხვავოთ დიაგრამების ტიპები და მივცეთ საწყისი წარმოდგენა დიაგრამების ძირითადი ტიპების მიზნის შესახებ. მაშ ასე, დავიწყოთ.

გამოიყენეთ საქმის დიაგრამა

ნებისმიერი (მათ შორის პროგრამული) სისტემა შექმნილია იმის გათვალისწინებით, რომ მათი ფუნქციონირებისას გამოიყენებენ ადამიანებს და/ან ურთიერთობენ სხვა სისტემებთან. ერთეულებს, რომლებთანაც სისტემა ურთიერთქმედებს მისი მოქმედების დროს, ეწოდება მსახიობებიდა თითოეული აქტორი მოელის, რომ სისტემა მოიქცეს მკაცრად განსაზღვრული, პროგნოზირებადი გზით. შევეცადოთ მივცეთ ექტორის უფრო მკაცრი განმარტება. ამისათვის ჩვენ გამოვიყენებთ შესანიშნავ ვიზუალურ ლექსიკონს UML-ისთვის ზიკომ მენტორი:

ექტორი (მსახიობი)- ეს არის ლოგიკურად დაკავშირებული როლების ერთობლიობა, რომელიც შესრულებულია პრეცედენტებთან ან ერთეულებთან (სისტემა, ქვესისტემა ან კლასი) ურთიერთობისას. აქტორი შეიძლება იყოს ადამიანი ან სხვა სისტემა, ქვესისტემა ან კლასი, რომელიც წარმოადგენს რაღაც ობიექტს გარეთ.

გრაფიკულად, ექტორი გამოსახულია ან " პატარა კაცი“, მსგავსი, რაც ჩვენ ბავშვობაში დავხატეთ, ჩვენი ოჯახის წევრების გამოსახულებით, ან კლასის სიმბოლო შესაბამისი სტერეოტიპით, როგორც ეს სურათზეა ნაჩვენები. წარმოდგენის ორივე ფორმას აქვს იგივე მნიშვნელობა და შეიძლება გამოყენებულ იქნას დიაგრამებში. „სტერეოტიპული“ ფორმა უფრო ხშირად გამოიყენება სისტემის აქტორების წარმოსადგენად ან იმ შემთხვევებში, როდესაც აქტორს აქვს თვისებები და მათი ჩვენებაა საჭირო (ნახ. 2.1).

ყურადღებიანმა მკითხველმა შეიძლება დაუყოვნებლივ იკითხოს: რატომ მსახიობი და არა მსახიობი? ვეთანხმებით, სიტყვა "ექტორ" ცოტა უხეშია რუსი ხალხის ყურზე. მიზეზი, რის გამოც ჩვენ ვამბობთ, მარტივია - ექტორი მომდინარეობს სიტყვიდან მოქმედება, რაც თარგმნილი ნიშნავს მოქმედება. სიტყვა "ექტორის" პირდაპირი თარგმანი არის მსახიობი- ძალიან გრძელი და არასასიამოვნო გამოსაყენებლად. ამიტომ, ჩვენ გავაგრძელებთ ამ გზით საუბარს.


ბრინჯი.

2.1. იგივე ყურადღებიანმა მკითხველმა შეიძლება შეამჩნია სიტყვა „პრეცედენტი“, რომელიც ჟღერს ექტორის განმარტებაში. Რა არის ეს? ეს კითხვა კიდევ უფრო გვაინტერესებს, თუ გავიხსენებთ, რაზეც ახლა ვსაუბრობთგამოყენების შემთხვევაში დიაგრამა

. Ისე,Გამოყენების შემთხვევაში

- სისტემის ქცევის ცალკეული ასპექტის აღწერა მომხმარებლის თვალსაზრისით (ბუჩი). ზიკომ მენტორიგანმარტება საკმაოდ ნათელი და ყოვლისმომცველია, მაგრამ მისი შემდგომი გარკვევა შესაძლებელია იმავეს გამოყენებით

"om:Გამოყენების შემთხვევაში

- სისტემის მიერ შესრულებული თანმიმდევრული მოვლენების (მათ შორის ოფციების) ერთობლიობის აღწერა, რაც იწვევს მსახიობის მიერ დაკვირვებულ შედეგს. გამოყენების შემთხვევა წარმოადგენს ერთეულის ქცევას, რომელიც აღწერს ურთიერთქმედებას აქტორებსა და სისტემას შორის. გამოყენების შემთხვევა არ აჩვენებს „როგორ“ მიიღწევა გარკვეული შედეგი, მხოლოდ „რა“ მიიღწევა. პრეცედენტები აღინიშნება ძალიან მარტივი გზით - ელიფსის სახით, რომლის შიგნით მისი სახელია მითითებული.გამოყენების შემთხვევები და მსახიობები დაკავშირებულია ხაზების გამოყენებით

  • . ხშირად ფიგურა დახატულია ხაზის ერთ ბოლოში. 2.3
  • დაპროექტებული სისტემის ქცევის ზოგადი მოთხოვნების ფორმირება;
  • სისტემის კონცეპტუალური მოდელის შემუშავება მისი შემდგომი დეტალებისთვის;
  • მომხმარებლებთან და სისტემის მომხმარებლებთან ურთიერთობისთვის დოკუმენტაციის მომზადება.