UML diaqramı. UML diaqramlarının növləri. UML dilinin ümumi xarakteristikası UML dilində diaqramların nümunəsi

UML (Unified Modeling Language - vahid modelləşdirmə dili) - proqram təminatının hazırlanması sahəsində obyektlərin modelləşdirilməsi üçün qrafik təsvir dili. UML ümumi məqsədli bir dildir, istifadə edən açıq standartdır qrafik simvollar UML modeli adlanan sistemin abstrakt modelini yaratmaq. UML əsasən proqram sistemlərini müəyyən etmək, vizuallaşdırmaq, dizayn etmək və sənədləşdirmək üçün yaradılmışdır. UML proqramlaşdırma dili deyil, lakin UML modellərini şərh edilmiş kod kimi icra etmək üçün alətlərdə kod yaratmaq mümkündür. Vikipediya

Kommersiya Məhsulları

Microsoft Visio

Növ: kommersiya proqramı

UML daxil olmaqla zəngin diaqramlar çəkməyə imkan verən Microsoft-dan məşhur proqram məhsulu:

2010-cu il versiyasından başlayaraq diaqramları internetdə dərc etmək mümkün oldu (SharePoint + Visio Services):

Visio Viewer- pulsuz proqram, bu, əvvəllər yaradılmış Visio diaqramlarına baxmaq imkanı verir. Siz %D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20 ünvanında yükləyə bilərsiniz.

%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%20Express%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-%20Modelləşdirmə,%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%20D0%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%20Ardıcıllıq%20Diaqram%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İstifadə%20hal%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%20Vizuallaşdırma%20və%20Modelləşdirmə%20Xüsusiyyət%20Paket%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%20layer%20diaqram%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%20D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA %D0%B8%20%D0%B4%D0%BB%D1%8F%20layer%20diaqram
  • %0A

%D0%A1%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20Vizuallaşdırma%20və%20Modelləşdirmə%20Xüsusiyyət%20Paket%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/en-us/vstudio/ff655021%28en-us%29.aspx.

IBM Rational Rose

İmkanlar:

  • İstifadə nümunəsi diaqramı (presedentlərin diaqramları);
  • Yerləşdirmə diaqramı (topologiya diaqramları);
  • Statechart diaqramı (hal diaqramları);
  • Fəaliyyət diaqramı (fəaliyyət diaqramları);
  • Qarşılıqlı təsir diaqramı (qarşılıqlı diaqramlar);
  • Ardıcıllıq diaqramı (hərəkətlərin ardıcıllığının diaqramları);
  • Əməkdaşlıq diaqramı (əməkdaşlıq diaqramları);
  • sinif diaqramı (sinif diaqramları);
  • Komponent diaqramı (komponent diaqramları).

Ekran görüntüləri:

açıq mənbə proqramları

StarUML

İmkanlar:

  • UML 2.0 dəstəyi
  • MDA (Model Əsaslı Arxitektura)
  • Plug-in Arxitekturası (COM-da yaza bilərsiniz uyğun dillər: C++, Delphi, C#, VB, ...)

StarUML əsasən Delphi-də yazılmışdır, lakin komponentlər C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET kimi digər dillərdə də əlavə edilə bilər. Aşağıda bəzi ekran görüntüləri var.

Sinif diaqramı:

İstifadə vəziyyəti diaqramı:

ArgoUML

Dəstəklənən qrafiklər:

  • sinif
  • dövlət
  • istifadə halları
  • Fəaliyyət
  • Əməkdaşlıq
  • Yerləşdirmə
  • Ardıcıllıq

İmkanlar:

  • Doqquz UML 1.4 diaqramı üçün dəstək
  • Platforma müstəqil (Java 5+)
  • UML 1.4 Standart Metamodel
  • XMI dəstəyi
  • GIF, PNG, PS, EPS, PGML və SVG-yə ixrac edin
  • Dillər: EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
  • OCL dəstəyi
  • İrəli, Tərs Mühəndislik

Ekran görüntüsü:

UML OO sistemlərini təsvir etmək, vizuallaşdırmaq, layihələndirmək və sənədləşdirmək üçün vahid qrafik modelləşdirmə dilidir. UML OO yanaşmasına əsaslanan PS modelləşdirmə prosesini dəstəkləmək, konseptual və proqram konsepsiyaları arasında əlaqəni təşkil etmək və mürəkkəb sistemlərin miqyasının artırılması problemlərini əks etdirmək üçün nəzərdə tutulmuşdur. UML modelləri proqram təminatının həyat dövrünün bütün mərhələlərində, biznesin təhlilindən tutmuş sistemin texniki xidmətinə qədər istifadə olunur. Fərqli təşkilatlar öz problem sahələrindən və istifadə olunan texnologiyalardan asılı olaraq UML-dən istifadə edə bilərlər.

UML-in Qısa Tarixi

1990-cı illərin ortalarına qədər müxtəlif müəlliflər tərəfindən bir neçə onlarla OO modelləşdirmə metodu təklif edildi, hər biri öz qrafik qeydindən istifadə etdi. Eyni zamanda, bu üsullardan hər hansı birinin güclü tərəfləri var idi, lakin kifayət qədər tikinti aparmağa imkan vermirdi tam model PS, onu "hər tərəfdən", yəni bütün lazımi proqnozları göstərin (1-ci maddəyə baxın). Bundan əlavə, OO modelləşdirmə standartının olmaması tərtibatçılar üçün ən uyğun metodu seçməkdə çətinlik yaratdı və bu, proqram təminatının hazırlanmasında OO yanaşmasının geniş yayılmasının qarşısını aldı.

Obyektlərin İdarə Edilməsi Qrupunun (OMG) - obyekt texnologiyaları və verilənlər bazaları sahəsində standartların qəbuluna cavabdeh olan bir təşkilatın tələbi ilə unifikasiya və standartlaşdırmanın aktual problemi üç ən məşhur OO metodunun müəllifləri - G. Booch tərəfindən həll edildi. , Efforts-u birləşdirən D. Rambo və A. Jacobson 1997-ci ildə OMG tərəfindən standart olaraq təsdiq edilmiş UML 1.1 versiyasını yaratdılar.

UML bir dildir

İstənilən dil lüğətdən və mənalı konstruksiyalar yaratmaq üçün sözləri birləşdirən qaydalardan ibarətdir. Beləliklə, xüsusilə, proqramlaşdırma dilləri təşkil edilmişdir, UML belədir. Onun fərqləndirici xüsusiyyəti dilin lüğət tərkibinin qrafik elementlərlə formalaşmasıdır. Hər bir qrafik simvol müəyyən bir semantikaya uyğundur, buna görə də bir tərtibatçı tərəfindən yaradılmış bir model digəri tərəfindən birmənalı şəkildə başa düşülə bilər və həmçinin proqram aləti UML tərcüməsi. Buradan, xüsusən də belə çıxır ki, UML-də təqdim olunan PS modeli avtomatik olaraq OO proqramlaşdırma dilinə (Java, C++, VisualBasic kimi), yəni UML-i dəstəkləyən yaxşı vizual modelləşdirmə vasitəsi ilə tərcümə oluna bilər. bir model qurmaq , biz də bu modelə uyğun proqram kodunun blankını alacağıq.

Vurğulamaq lazımdır ki, UML metod deyil, dildir. O, hansı elementlərdən modellər yaratmağı və onları necə oxumağı izah edir, lakin hansı modellərin və hansı hallarda işlənib hazırlanmalı olduğu barədə heç nə demir. UML əsasında metod yaratmaq üçün onu PS inkişaf prosesinin təsviri ilə əlavə etmək lazımdır. Belə bir prosesə misal olaraq sonrakı məqalələrdə müzakirə ediləcək Rasional Vahid Prosesdir.

UML lüğəti

Model, diaqramlarda göstərilən varlıqlar və onlar arasındakı əlaqələr şəklində təmsil olunur.

Esanslar modellərin əsas elementləri olan abstraksiyalardır. Dörd növ varlıq var - struktur (sinif, interfeys, komponent, istifadə nümunəsi, əməkdaşlıq, qovşaq), davranış (qarşılıqlı əlaqə, vəziyyət), qruplaşdırma (paketlər) və annotativ (şərhlər). Hər bir qurumun özünəməxsus növü var qrafik təmsil. Diaqramları öyrənərkən obyektlər ətraflı müzakirə olunacaq.

Münasibət varlıqlar arasında müxtəlif əlaqələri göstərir. UML-də aşağıdakı əlaqələr növləri müəyyən edilir:

  • Asılılıq iki varlıq arasında belə bir əlaqəni göstərir, o zaman onlardan birində - müstəqil - digərinin semantikasına təsir edə bilər - asılı. Asılılıq asılı qurumdan müstəqil quruma işarə edən nöqtəli ox ilə təmsil olunur.
  • Assosiasiya bir varlığın obyektlərinin digərinin obyektləri ilə əlaqəli olduğunu göstərən struktur əlaqədir. Qrafik olaraq assosiasiya əlaqəli obyektləri birləşdirən xətt kimi göstərilir. Assosiasiyalar obyektlər arasında hərəkət etmək üçün istifadə olunur. Məsələn, "Sifariş" və "Məhsul" sinifləri arasındakı assosiasiya müəyyən bir qaydada göstərilən bütün məhsulları tapmaq üçün istifadə edilə bilər - bir tərəfdən və ya bu məhsulu ehtiva edən bütün sifarişləri tapmaq üçün - digər tərəfdən. Aydındır ki, müvafiq proqramlar belə naviqasiyanı təmin edən mexanizm tətbiq etməlidir. Əgər naviqasiya yalnız bir istiqamətdə tələb olunursa, bu, birləşmənin sonundakı oxla göstərilir. Birləşmənin xüsusi halı aqreqasiyadır - "bütün" - "hissə" formasının əlaqəsidir. Qrafik olaraq, bütün obyektin yanında sonunda romb ilə vurğulanır.
  • Ümumiləşdirməəsas müəssisə ilə uşaq müəssisə arasındakı münasibətdir. Əsasən, bu əlaqə siniflər və obyektlər üçün miras xüsusiyyətini əks etdirir. Ümumiləşdirmə əsas obyektə yönələn üçbucaqla bitən xətt kimi göstərilir. Uşaq valideynin strukturunu (atributlarını) və davranışını (metodlarını) miras alır, lakin eyni zamanda onun yeni struktur elementləri və yeni üsulları ola bilər. Müəssisə birdən çox əsas müəssisə ilə əlaqəli olduqda UML çoxlu mirasa icazə verir.
  • İcra- davranışın spesifikasiyasını (interfeys) müəyyən edən subyektlə bu davranışın həyata keçirilməsini müəyyən edən subyekt (sinif, komponent) arasındakı əlaqə. Bu əlaqə adətən komponentlərin modelləşdirilməsində istifadə olunur və sonrakı məqalələrdə daha ətraflı təsvir ediləcəkdir.

Diaqramlar. UML aşağıdakı diaqramları təqdim edir:

  • Sistemin davranışını təsvir edən diaqramlar:
    • Vəziyyət diaqramları (Dövlət diaqramları),
    • Fəaliyyət diaqramları,
    • Obyekt diaqramları,
    • Ardıcıllıq diaqramları,
    • Əməkdaşlıq diaqramları;
  • Sistemin fiziki icrasını təsvir edən diaqramlar:
    • Komponent diaqramları;
    • Yerləşdirmə diaqramları.

Modelə nəzarət görünüşü. Paketlər.

Artıq dedik ki, bir modelin insan tərəfindən yaxşı başa düşülməsi üçün onu iyerarxiyanın hər səviyyəsində az sayda subyekt buraxaraq iyerarxik şəkildə təşkil etmək lazımdır. UML-ə bir modelin iyerarxik təqdimatını təşkil etmək üçün bir vasitə - paketlər daxildir. İstənilən model siniflər, istifadə halları və digər obyektlər və diaqramlardan ibarət paketlər dəstindən ibarətdir. Paketə iyerarxiyalar yaratmağa imkan verən başqa paketlər də daxil ola bilər. UML ayrıca paket diaqramlarını təqdim etmir, lakin onlar digər diaqramlarda görünə bilər. Paket nişanı olan düzbucaqlı şəklində göstərilir.

UML nə təmin edir.

  • paketləri vurğulamaqla mürəkkəb sistemin iyerarxik təsviri;
  • istifadə halları aparatından istifadə etməklə sistemə funksional tələblərin rəsmiləşdirilməsi;
  • fəaliyyətlərin diaqramlarını və ssenarilərini qurmaqla sistemə olan tələbləri təfərrüatlandırmaq;
  • verilənlər siniflərinin seçilməsi və sinif diaqramları şəklində konseptual verilənlər modelinin qurulması;
  • istifadəçi interfeysini təsvir edən siniflərin seçilməsi və ekran naviqasiya sxeminin yaradılması;
  • sistem funksiyalarının yerinə yetirilməsi zamanı obyektlərin qarşılıqlı əlaqəsi proseslərinin təsviri;
  • fəaliyyət və vəziyyətlərin diaqramları şəklində obyektlərin davranışının təsviri;
  • proqram komponentlərinin təsviri və onların interfeyslər vasitəsilə qarşılıqlı əlaqəsi;
  • sistemin fiziki arxitekturasının təsviri.

Və sonuncu…

UML-nin bütün cəlbediciliyinə baxmayaraq, vizual modelləşdirmə alətləri olmadan onu real PS modelləşdirməsində istifadə etmək çətin olardı. Belə alətlər displey ekranında diaqramları tez təqdim etməyə, onları sənədləşdirməyə, müxtəlif OO proqramlaşdırma dillərində proqram kodlarının blanklarını yaratmağa və verilənlər bazası sxemlərini yaratmağa imkan verir. Onların əksəriyyəti proqram kodlarının yenidən qurulması imkanlarını əhatə edir - proqramların mənbə kodlarının avtomatik təhlili yolu ilə PS modelinin müəyyən proqnozlarının bərpası, bu, model və kodların uyğunluğunu təmin etmək və sələf sistemlərinin funksionallığını miras alan sistemləri dizayn edərkən çox vacibdir. .

Annotasiya: Bu kursun mövzusu UML - Vahid Modelləşdirmə Dilidir. Əvvəlki mühazirəmizdə UML-nin nə olduğu, onun tarixi, məqsədi, dildən istifadə yolları, onun tərifinin strukturu, terminologiyası və notasiyası haqqında danışmışdıq. Qeyd edilmişdir ki, UML modeli diaqramlar toplusudur. Bu mühazirədə belə sualları nəzərdən keçirəcəyik: bir neçə növ diaqrama nə üçün ehtiyacımız var; diaqramların növləri; OOP və ardıcıllığın diaqramlaşdırılması

Bu mühazirənin əsas materialının müzakirəsinə keçməzdən əvvəl gəlin ümumiyyətlə hər hansı diaqramların niyə qurulmasından danışaq. İstənilən sistemin modelinin hazırlanması (yalnız proqram təminatı deyil) həmişə onun yaradılmasından və ya yenilənməsindən əvvəl olur. Bu, ən azı problemin həll olunduğunu daha aydın təsəvvür etmək üçün lazımdır. Düşünülmüş modellər həm inkişaf komandası daxilində qarşılıqlı əlaqə, həm də müştəri ilə qarşılıqlı anlaşma üçün çox vacibdir. Axı, bu, kodda həyata keçirilməzdən əvvəl layihənin "arxitektura uyğunluğuna" əmin olmağa imkan verir.

Mürəkkəb sistemlərin modellərini qururuq, çünki onları tam təsvir edə bilmirik, "onlara bir baxışda baxın". Buna görə də biz sistemin yalnız müəyyən tapşırıq üçün vacib olan xassələrini ayırırıq və onun bu xassələri əks etdirən modelini qururuq. Obyekt yönümlü analiz metodu real mürəkkəb sistemləri ən adekvat şəkildə təsvir etməyə imkan verir. Lakin sistemlər mürəkkəbləşdikcə yaxşı simulyasiya texnologiyasına ehtiyac yaranır. Əvvəlki mühazirədə dediyimiz kimi, belə bir “standart” texnologiya kimi vahid sistemdən istifadə olunur. modelləşdirmə dili Sistemlərin spesifikasiyası, vizuallaşdırılması, dizaynı və sənədləşdirilməsi üçün qrafik dil olan (Unified Modeling Language, UML). UML-dən istifadə edərək, yaradılan sistemin təkcə onun konsepsiyasını deyil, həm də spesifik icra xüsusiyyətlərini əks etdirən ətraflı modelini hazırlaya bilərsiniz. UML modeli çərçivəsində sistem haqqında bütün təsvirlər diaqram adlanan xüsusi qrafik konstruksiyalar şəklində sabitlənir.

Qeyd. Biz hamısını yox, yalnız bəzi diaqram növlərini nəzərdən keçirəcəyik. Məsələn, komponent diaqramı bu mühazirədə əhatə olunmur, yalnız ümumi baxış qrafiklərin növləri. Üçün diaqram növlərinin sayı xüsusi model tətbiqlər heç bir şəkildə məhdudlaşdırılmır. üçün sadə tətbiqlər istisnasız olaraq bütün növ diaqramların qurulmasına ehtiyac yoxdur. Onlardan bəziləri sadəcə itkin ola bilər və bu fakt səhv sayılmayacaq. Müəyyən bir növün diaqramlarının mövcudluğunun müəyyən bir layihənin xüsusiyyətlərindən asılı olduğunu başa düşmək vacibdir. Digər (burada müzakirə edilməyən) diaqram növləri haqqında məlumat UML standartında tapıla bilər.

Niyə bir neçə növ diaqrama ehtiyacınız var

Əvvəlcə terminologiyanı müəyyənləşdirək. Bu mühazirənin ön sözündə biz sistem, model və diaqram anlayışlarından dəfələrlə istifadə etdik. Müəllif əmindir ki, hər birimiz bu anlayışların mənasını intuitiv şəkildə başa düşürük, lakin bunu tam aydınlaşdırmaq üçün yenidən lüğətə nəzər salaq və aşağıdakıları oxuyaq:

Sistem- ümumi fəaliyyət məqsədi ilə birləşən bir-biri ilə əlaqəli idarə olunan alt sistemlər toplusu.

Bəli, çox məlumatlandırıcı deyil. O zaman alt sistem nədir? Vəziyyəti aydınlaşdırmaq üçün klassiklərə müraciət edək:

sistemi Müəyyən bir məqsədə çatmaq üçün təşkil edilmiş və bir sıra modellərdən istifadə etməklə təsvir edilmiş alt sistemlər toplusunu, ola bilsin, müxtəlif nöqteyi-nəzərdən adlandırın.

Yaxşı, edə biləcəyiniz heç bir şey yoxdur, alt sistemin tərifini axtarmaq lazımdır. Orada da deyir ki altsistem bəziləri digər elementlərin davranışını təyin edən elementlər toplusudur. Ian Sommerville konsepsiyanı belə izah edir:

Alt sistem işləməsi digər altsistemlərin xidmətlərindən asılı olmayan sistemdir. Proqram təminatı sistemi nisbətən müstəqil alt sistemlər toplusu kimi qurulmuşdur. Alt sistemlər arasında qarşılıqlı əlaqə də müəyyən edilir.

Həm də çox aydın deyil, amma daha yaxşıdır. “İnsan” dilində danışsaq, sistem nisbətən özünü təmin edən daha sadə varlıqlar toplusu kimi təmsil olunur. Bunu proqramın hazırlanması prosesində necə qurduğumuzla müqayisə etmək olar GUI standart "kublardan" - vizual komponentlərdən və ya proqramın mətninin özünün də funksional əsaslara görə birləşdirilmiş alt proqramları ehtiva edən modullara necə bölünməsi və onlardan aşağıdakı proqramlarda təkrar istifadə edilə bilər.

Sistem anlayışını anlayın. Dizayn prosesində sistem nəzərə alınır müxtəlif nöqteyi-nəzərdən müxtəlif təsvirləri diaqram şəklində görünən modellərin köməyi ilə. Yenə də oxucunun anlayışların mənası ilə bağlı sualları ola bilər modellərdiaqramlar. Gözəl, lakin çox aydın olmayan bir tərif düşünürük modelləri semantik qapalı sistem abstraksiya kimiçətin ki, vəziyyəti aydınlaşdırsın, ona görə də gəlin “öz sözlərimizlə” izah etməyə çalışaq.

Model- bu, bu tapşırıq üçün sistemin yalnız ən əhəmiyyətli xüsusiyyətlərini göstərən müəyyən (maddi və ya olmayan) bir obyektdir. Modellər müxtəlifdir - maddi və qeyri-maddi, süni və təbii, dekorativ və riyazi...

Bir neçə misal verək. Uşaqlıqda belə ehtirasla oynadığımız, hamımıza tanış olan plastik oyuncaq avtomobillər bundan başqa bir şey deyil. material süni dekorativ real avtomobil modeli. Təbii ki, belə bir "maşında" mühərrik yoxdur, onun çənini benzinlə doldurmuruq, sürət qutusu işləmir (üstəlik, ümumiyyətlə yoxdur), amma model olaraq bu oyuncaq öz funksiyalarını tam yerinə yetirir. : uşağa avtomobil haqqında təsəvvür yaradır, çünki onun xarakterik xüsusiyyətləri dörd təkərin, kuzovun, qapıların, pəncərələrin olması, sürmə qabiliyyəti və s.

Tibbi tədqiqatlarda heyvanlar üzərində sınaqlar çox vaxt insanlarda dərmanların klinik sınaqlarından əvvəl aparılır. Bu vəziyyətdə heyvan kimi çıxış edir material təbii insan modelləri.

Yuxarıda göstərilən tənlik də bir modeldir, lakin bu, riyazi modeldir və cazibə qüvvəsinin təsiri altında maddi nöqtənin hərəkətini təsvir edir.

Yalnız bir diaqramın nə olduğunu söyləmək qalır. Diaqram elementlər toplusunun qrafik təsviridir. Adətən təpələri (obyektləri) və kənarları (əlaqələri) olan bir qrafik kimi təsvir olunur. Diaqramların bir çox nümunəsi var. Bu, məktəb illərindən hamımıza tanış olan blok diaqramdır və istifadəçi təlimatlarında görə biləcəyimiz müxtəlif avadanlıqların quraşdırma diaqramları və diskdə işləməklə görə biləcəyimiz fayl və kataloqlar ağacıdır. Windows konsolları ağac əmri və daha çox şey. Gündəlik həyatda diaqramlar bizi hər tərəfdən əhatə edir, çünki şəkil bizim üçün mətndən daha asandır...

Ancaq proqram dizaynına qayıt (və təkcə deyil). O vaxtdan bu sənayedə diaqramlardan istifadə edərək sistemi müxtəlif nöqteyi-nəzərdən görüntüləyə bilərsiniz. Diaqramlardan biri, məsələn, istifadəçinin sistemlə qarşılıqlı əlaqəsini, digəri - onun işləməsi zamanı sistemin vəziyyətlərinin dəyişməsini, üçüncüsü - sistemin elementləri arasında qarşılıqlı əlaqəni və s. kompleksi təsvir edə bilər. sistem kiçik və demək olar ki, müstəqil modellər - diaqramlar toplusu kimi təqdim edilə bilər və göstərilməlidir və onların heç biri sistemi təsvir etmək və onun tam təsvirini əldə etmək üçün kifayət deyil, çünki onların hər biri sistemin fəaliyyətinin müəyyən bir aspektinə diqqət yetirir və fərqli ifadə edir abstraksiya səviyyəsi. Başqa sözlə desək, hər bir model layihələndirilən sistemə hansısa konkret, xüsusi baxış nöqtəsinə uyğun gəlir.

Əvvəlki paraqrafda model anlayışı ilə çox boş olmağımıza baxmayaraq, yuxarıdakı təriflər kontekstində başa düşülməlidir ki, heç biri ayrı diaqram model deyil. Diaqramlar yalnız modeli vizuallaşdırmaq üçün bir vasitədir və ikisini bir-birindən ayırmaq lazımdır. Yalnız diaqramlar toplusu sistem modelini təşkil edir və onu ən dolğun şəkildə təsvir edir, lakin kontekstdən çıxarılan bir diaqram deyil.

Qrafiklərin növləri

UML 1.5 müəyyən edilmişdir on iki növ qrafiküç qrupa bölünür:

  • dörd növ diaqram tətbiqin statik strukturunu təmsil edir;
  • beşi sistemin davranış aspektlərini təmsil edir;
  • üçü sistemin işinin fiziki aspektlərini təmsil edir (həyata keçirmə diaqramları).

UML 2.1-in cari versiyası çox dəyişiklik etməyib. Diaqramların görünüşü bir qədər dəyişdi (çərçivələr və digər vizual təkmilləşdirmələr meydana çıxdı), qeydlər bir qədər yaxşılaşdı, bəzi diaqramlar yeni adlar aldı.

Ancaq dəqiq rəqəm kanonik diaqramlar bizim üçün tamamilə əhəmiyyətsizdir, çünki biz onların hamısını nəzərdən keçirməyəcəyik, ancaq bəzilərini - müəyyən bir tətbiqin müəyyən bir modeli üçün diaqram növlərinin sayının ciddi şəkildə müəyyən edilməməsi səbəbindən. Sadə tətbiqlər üçün istisnasız olaraq bütün diaqramları qurmağa ehtiyac yoxdur. Məsələn, yerli proqram üçün yerləşdirmə diaqramını qurmaq lazım deyil. Diaqramların siyahısının hazırlanmaqda olan layihənin xüsusiyyətlərindən asılı olduğunu və tərtibatçının özü tərəfindən müəyyən edildiyini başa düşmək vacibdir. Maraqlı oxucu hələ də bütün UML diaqramları haqqında bilmək istəyirsə, biz onu UML standartına (http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML) yönləndirəcəyik. Xatırladaq ki, bu kursun məqsədi UML-nin tamamilə bütün imkanlarını təsvir etmək deyil, yalnız bu dili tanıtmaq, bu texnologiya haqqında ilkin təsəvvür yaratmaqdır.

Beləliklə, bu cür qrafiklərə qısaca baxacağıq:

  • istifadə diaqramı;
  • sinif diaqramı;
  • obyekt diaqramı;
  • ardıcıllıq diaqramı;
  • qarşılıqlı əlaqə diaqramı;
  • dövlət diaqramı;
  • fəaliyyət diaqramı;
  • yerləşdirmə diaqramı.

Bu diaqramlardan bəziləri haqqında növbəti mühazirələrdə daha ətraflı danışacağıq. Bu vaxt biz təfərrüatlara diqqət yetirməyəcəyik, ancaq oxucuya diaqramların növlərini heç olmasa vizual olaraq ayırmağı, əsas diaqram növlərinin məqsədi haqqında ilkin təsəvvür yaratmağı öyrətməyi qarşımıza məqsəd qoyuruq. . Beləliklə, başlayaq.

Case Diaqramından istifadə edin

İstənilən (proqram da daxil olmaqla) sistemlər iş zamanı insanlar tərəfindən istifadə olunacağı və/və ya digər sistemlərlə qarşılıqlı əlaqədə olacağı nəzərə alınmaqla tərtib edilir. Sistemin iş prosesində qarşılıqlı əlaqədə olduğu subyektlər adlanır aktyorlar, və hər bir aktyor sistemin ciddi şəkildə müəyyən edilmiş, proqnozlaşdırıla bilən şəkildə davranmasını gözləyir. Ektorun daha ciddi tərifini verməyə çalışaq. Bunun üçün biz UML üçün gözəl vizual lüğətdən istifadə edirik Zicom Mentoru:

Hektor (aktyor)- bu, presedentlər və ya obyektlər (sistem, alt sistem və ya sinif) ilə qarşılıqlı əlaqə zamanı yerinə yetirilən məntiqi əlaqəli rolların məcmusudur. Aktyor şəxs və ya varlıqdan kənar bir şeyi təmsil edən başqa sistem, alt sistem və ya sinif ola bilər.

Qrafik olaraq vektor ya təsvir edilmişdir " Cırtdan", uşaqlıqda çəkdiyimiz, ailəmizin üzvlərini təsvir etdiyimiz və ya müvafiq stereotipi olan sinif simvolu, şəkildə göstərildiyi kimi. Təqdimatın hər iki forması eyni məna daşıyır və diaqramlarda istifadə edilə bilər. “Stereotipli” forma daha çox sistem aktyorlarını təmsil etmək üçün və ya aktyorun nümayiş etdirilməli olan xassələrə malik olduğu hallarda istifadə olunur (şək. 2.1).

Diqqətli oxucu dərhal sual verə bilər: Niyə hektor aktyor deyil?? Razılaşırıq, “ektor” sözü rus adamının qulağını bir az kəsir. Bunu deməyimizin səbəbi sadədir - ektor sözdən əmələ gəlir hərəkət, tərcümədə deməkdir hərəkət. "ektor" sözünün hərfi tərcüməsi - aktyor- çox uzun və istifadə etmək narahatdır. Ona görə də belə deməyə davam edəcəyik.


düyü. 2.1.

Eyni diqqətli oxucu ektorun tərifində “presedent” sözünün yandığını görə bilərdi. Bu nədir? İndi haqqında danışdığımızı xatırlasaq, bu sual bizi daha da maraqlandıracaq istifadə diaqramı. Belə ki,

Presedent (istifadə halı)- istifadəçi nöqteyi-nəzərindən sistemin davranışının müəyyən aspektinin təsviri (Butch).

Tərif olduqca başa düşüləndir və hərtərəflidir, lakin eyni istifadə edərək daha da dəqiqləşdirilə bilər Zicom Mentoru"om:

istifadə halı- aktyorun müşahidə etdiyi nəticəyə gətirib çıxaran sistem tərəfindən yerinə yetirilən ardıcıl hadisələr toplusunun (variantları da daxil olmaqla) təsviri. İstifadə nümunəsi, aktyorlar və sistem arasındakı qarşılıqlı əlaqəni təsvir etməklə bir obyektin davranışını təmsil edir. Presedent müəyyən bir nəticənin "necə" əldə edildiyini deyil, yalnız "nə" olduğunu göstərir.

Presedentlər çox sadə şəkildə - ellips şəklində göstərilir, onun içərisində adı göstərilir. İstifadə halları və aktyorlar xətlərlə bağlıdır. Tez-tez xəttin bir ucunda düyü təsvir olunur. 2.3

  • layihələndirilən sistemin davranışına ümumi tələblərin formalaşdırılması;
  • sistemin sonradan detallaşdırılması üçün konseptual modelinin işlənib hazırlanması;
  • müştərilər və sistemin istifadəçiləri ilə qarşılıqlı əlaqə üçün sənədlərin hazırlanması.
  • UML dili proqram sistemlərinin inkişafı zamanı yaradılmış bütün artefaktların spesifikasiyası, vizuallaşdırılması, dizaynı və sənədləşdirilməsi üçün ümumi təyinatlı qrafik modelləşdirmə dilidir.

    UML haqqında ətraflı təsvir edən çoxlu yaxşı kitablar var (bəzən hətta çox təfərrüatlı), tez xatırlamaq üçün diaqramlar, obyektlər və onlar arasındakı əlaqələr haqqında əsas anlayışları bir yerə toplamaq istərdim, fırıldaqçı vərəq kimi bir şey.

    Qeyd kitablardan materiallardan istifadə edir: İvanov D. Yu., Novikov F. A. Vahid modelləşdirmə dili UMLLeonenkov. UML Dərsliyi.

    Redaktordan başlayaq. Linux altında müxtəlif UML redaktorlarını sınadım, ən çox UMLet xoşuma gəldi, Java-da yazılsa da, çox tez hərəkət edir və varlıq blanklarının çoxu ondadır. Java-da da yazılmış, funksional cəhətdən zəngin, lakin daha çox yavaşlayan ArgoUML çarpaz platformalı UML redaktoru da var.

    dayandım UMLet, altında quraşdırın Arch Linux ubuntu:

    # altında Arch Linux yaourt -S umlet # Ubuntu altında sudo apt-get install umlet

    UML-də bütün obyektləri aşağıdakı növlərə bölmək olar:

    • struktur;
    • davranış;
    • qruplaşdırma;
    • annotasiya;

    UML dörd əsas əlaqə növündən istifadə edir:

    Asılılıq- müstəqil subyektin dəyişdirilməsinin asılı olan subyektə müəyyən mənada təsir etdiyini göstərir. Qrafik olaraq, asılılıq əlaqəsi asılı obyektdən müstəqil quruma işarə edən ox ilə nöqtəli xətt kimi təsvir olunur.

    Assosiasiya- bir varlıq digəri ilə birbaşa əlaqəli olduqda baş verir (və ya digərləri ilə - assosiasiya yalnız ikili ola bilməz). Qrafik olaraq, assosiasiya əlaqəli obyektləri birləşdirən müxtəlif əlavələrlə möhkəm bir xətt kimi təsvir edilmişdir.

    Ümumiləşdirmə biri digərinin xüsusi (ixtisaslaşdırılmış) halı olan iki subyekt arasında münasibətdir. Qrafik olaraq ümumiləşdirmə xüsusi (alt sinifdən) ümumiyə (üst sinif) yönəldilmiş sonunda üçbucaqlı doldurulmamış ox olan bir xətt kimi təsvir edilmişdir.

    Tətbiqlər- icra əlaqəsi bir qurumun digərinin həyata keçirilməsi olduğunu göstərir. Qrafik olaraq həyata keçirmə icraçı qurumdan həyata keçirilən birinə yönəldilmiş sonunda üçbucaqlı doldurulmamış ox ilə nöqtəli xətt kimi təsvir edilmişdir.

    IN UML 2 müəyyən edilmişdir 13 qrafik növləri. Standartlara görə, hər bir diaqramın yuxarı sol küncündə düzbucaqlı (aşağı sağ künc əyilmiş) olan çərçivə olmalıdır ki, bu da diaqramın ID (teq) və başlığını göstərir.

    Sistemin strukturunu təsvir etmək üçün diaqramlar:

    • Komponent diaqramı (komponent diaqramı, etiket komponent);
    • Yerləşdirmə diaqramı (yerləşdirmə diaqramı, etiket yerləşdirmə);
    • Sinif diaqramı (sinif diaqramı, etiket sinif);
    • Obyekt diaqramı (obyekt diaqramı, etiket obyekt);
    • Daxili struktur diaqramı (kompozit struktur diaqramı, etiket sinif);

    Sistemin davranışını təsvir etmək üçün diaqramlar:

    • Sinxronizasiya diaqramı (qarşılıqlı diaqram, etiket vaxtlama);
    • Fəaliyyət diaqramı (fəaliyyət diaqramı, etiket fəaliyyət);
    • ardıcıllıq diaqramı (ardıcıllıq diaqramı, etiket sd);
    • Ünsiyyət diaqramı (rabitə diaqramı, etiket comm);
    • Avtomat diaqramı (dövlət maşın diaqramı, etiket dövlət maşını);
    • Qarşılıqlı əlaqə diaqramı, etiket qarşılıqlı əlaqə);

    Qrafiklər fərqlənir:

    • İstifadə vəziyyəti diaqramı (istifadə halı diaqramı, istifadə işi etiketi);
    • Paket diaqramı (paket diaqramı, etiket paket);

    İstifadə diaqramı

    İstifadə diaqramı(istifadə halının diaqramı) ən çox ümumi fikir sistemin funksional məqsədi.

    İstifadə vəziyyəti diaqramını sistemin modeli kimi nəzərə alsaq, onu qara qutu modeli ilə əlaqələndirmək olar. Hər bir istifadə halı müvafiq aktorla qarşılıqlı əlaqədə olan zaman tərtib edilmiş sistem tərəfindən yerinə yetirilməli olan hərəkətlərin ardıcıllığını müəyyən edir.

    İstifadə diaqramı iki növ əsas obyektdən istifadə edir: istifadə halları və aktyorlar, bunlar arasında aşağıdakı əsas əlaqələr növləri qurulur.

    assosiasiya əlaqəsi- Bu əlaqə istifadə halının bir nümunəsi ilə qarşılıqlı əlaqədə olduqda aktyorun hansı xüsusi rol oynadığını müəyyənləşdirir. Assosiasiya əlaqəsi aktyor və istifadə halı arasında möhkəm xətt ilə göstərilir. Bu xətt əlavə simvollara malik ola bilər, məsələn, ad və çoxluq.

    Uzatma əlaqəsi- xassələri bu misalların birləşdirilməsi yolu əsasında müəyyən edilən daha ümumi istifadə halı ilə vahid istifadə halının nümunələrinin əlaqəsini müəyyən edir. Beləliklə, əgər A istifadə halından B istifadə halına genişlənmə münasibəti varsa, bu o deməkdir ki, B istifadə halının nümunəsinin xüsusiyyətləri A genişləndirilmiş istifadə halında xüsusiyyətlərin olması səbəbindən əlavə edilə bilər.

    İstifadə halları arasındakı genişləndirmə əlaqəsi, orijinal istifadə halının uzantısı olan istifadə halından uzağa işarə edən ox (asılılıq əlaqəsi halı) ilə kəsik-kəsik xətt ilə göstərilir.

    Ümumiləşdirmə əlaqəsi bəzi istifadə hallarının A-nın B istifadə halı üçün ümumiləşdirilə biləcəyini göstərməyə xidmət edir. Bu halda A istifadə halı B istifadə halının ixtisaslaşması olacaq. Bu halda B A-nın əcdadı və ya valideyni adlanır və istifadə A, V istifadəsinin B istifadəsinin nəslindəndir.

    Qrafik olaraq, bu əlaqə əsas istifadə vəziyyətinə işarə edən açıq üçbucaq oxu ilə möhkəm bir xətt ilə təmsil olunur.

    İstifadə halları arasında ümumiləşdirmə əlaqəsi uşaq istifadəsi hallarının valideyn istifadə hallarının bütün atributlarına və davranışlarına malik olduğunu qeyd etmək lazım olduqda istifadə olunur.

    Daxil olma əlaqəsi iki istifadə halı arasında bir istifadə halı üçün müəyyən edilmiş bəzi davranışın digər istifadə halının davranış ardıcıllığına komponent kimi daxil edildiyini göstərir.

    İstifadə halı A-dan B istifadə halına qədər daxilolma əlaqəsi göstərir ki, A istifadə halının hər bir nümunəsi B istifadə halı üçün müəyyən edilmiş funksional xassələri ehtiva edir.

    Qrafik olaraq, bu əlaqə əsas istifadə vəziyyətindən daxil edilmiş istifadə halına işarə edən ox (asılılıq əlaqəsi variantı) ilə nöqtəli xətt ilə təmsil olunur.

    sinif diaqramı

    sinif diaqramı(sinif diaqramı) - sistemin statik strukturunu təsvir etməyin əsas yolu.

    Sinif diaqramı obyektlərin bir əsas növündən istifadə edir: siniflər (o cümlədən siniflərin çoxsaylı xüsusi halları: interfeyslər, primitiv tiplər, assosiasiya sinifləri və s.), bunlar arasında aşağıdakı əsas əlaqələr növləri qurulur: asılılıqlar, assosiasiyalar, ümumiləşdirmələr, həyata keçirmələr.

    Asılılıq əlaqəsiümumiyyətlə iki model elementi və ya bu cür elementlərin iki dəsti arasında assosiasiya, ümumiləşdirmə və ya icra əlaqəsi olmayan bəzi semantik əlaqəni göstərir. Asılılıq əlaqəsi bir model elementindəki bəzi dəyişikliklərin digər asılı model elementində dəyişiklik tələb edə biləcəyi vəziyyətdə istifadə olunur.

    Asılılıq əlaqəsi qrafik olaraq, asılılığın müştəri sinfindən müstəqil və ya mənbə sinfinə işarə edən bir ucunda ox olan müvafiq elementlər arasında kəsikli xətt ilə təmsil olunur.

    Xüsusi açar sözlər (stereotiplər) oxun üstündə yerləşdirilə bilər:

    • "giriş" - müştəri sinifləri üçün mənbə sinfinin ictimai atributlarının və əməliyyatlarının mövcudluğunu göstərməyə xidmət edir;
    • "bağlamaq" - müştəri sinfi sonrakı parametrləşdirmə üçün bəzi şablondan istifadə edə bilər;
    • "almaq" - müştəri sinfinin atributları mənbə sinfinin atributlarından hesablana bilər;
    • "import" - mənbə sinfinin ictimai atributları və əməliyyatları müştəri sinfinin bir hissəsinə çevrilir, sanki bilavasitə orada elan edilmişdir;
    • "zərifləşdirmək" - layihə üzərində iş zamanı əlavə məlumat əldə edildikdə, müştəri sinfinin tarixi səbəblərə görə mənbə sinfinin təkmilləşdirilməsi kimi xidmət etdiyini göstərir.

    assosiasiya əlaqəsi siniflər arasında müəyyən əlaqənin mövcudluğuna uyğundur. Bu əlaqə müəyyən bir birləşmənin fərdi xüsusiyyətlərini xarakterizə edən əlavə xüsusi simvollarla möhkəm bir xətt ilə göstərilir. Əlavə olaraq xüsusi simvollar assosiasiyanın adından, habelə birliyin rol siniflərinin adlarından və çoxluğundan istifadə edilə bilər. Assosiasiyanın adı onun təyin edilməsinin isteğe bağlı elementidir.

    Aqreqasiya əlaqəsi siniflərdən biri digər obyektləri komponentlər kimi daxil edən obyektdirsə, bir neçə sinif arasında baş verir. O, "hissə-bütöv" tipli sistem əlaqələrini təmsil etmək üçün istifadə olunur.

    Kompozisiya əlaqəsi aqreqasiya əlaqəsinin xüsusi halıdır. Bu əlaqə tərkib hissələrin müəyyən mənada bütövlükdə olduğu hissə-bütöv əlaqənin xüsusi formasını vurğulamağa xidmət edir. Aralarındakı əlaqənin spesifikliyi ondadır ki, hissələrin bütövdən təcrid olunmuş şəkildə fəaliyyət göstərə bilməməsi, yəni bütövün məhv edilməsi ilə onun bütün tərkib hissələri də məhv olur.

    Ümumiləşdirmə əlaqəsi daha ümumi element (valideyn və ya əcdad) ilə daha spesifik və ya xüsusi element (övlad və ya nəsil) arasındakı əlaqədir. Sinif diaqramına tətbiq edildiyi kimi, bu əlaqə siniflərin iyerarxik quruluşunu və onların xassələrinin və davranışlarının irsiyyətini təsvir edir. Bu, nəsil sinfinin əcdad sinfinin bütün xassələrinə və davranışlarına malik olduğunu, həmçinin əcdad sinfində olmayan öz xassələrinə və davranışına malik olduğunu nəzərdə tutur.

    avtomat diaqramı

    avtomat diaqramı(dövlət maşınının diaqramı) və ya dövlət diaqramı UML 1-də (dövlət diaqramı) davranışı UML-də ətraflı təsvir etməyin bir yoludur. Əslində, avtomat diaqramları, adından da göründüyü kimi, bir çox əlavə detal və detallarla yüklənmiş sonlu avtomatın vəziyyətlərinin və keçidlərinin qrafikidir.

    Vəziyyət diaqramı yalnız bir sinfin, daha doğrusu, müəyyən bir sinfin bir nümunəsinin vəziyyətlərinin dəyişdirilməsi prosesini təsvir edir, yəni müəyyən bir obyektin vəziyyətindəki bütün mümkün dəyişiklikləri modelləşdirir. Bu zaman obyektin vəziyyətində dəyişiklik digər obyektlərdən və ya xaricdən gələn xarici təsirlər nəticəsində baş verə bilər. Obyektin belə xarici təsirlərə reaksiyasını təsvir etmək üçün vəziyyət diaqramlarından istifadə olunur.

    Avtomat diaqramında bir əsas varlıq növü istifadə olunur - vəziyyətlər və bir əlaqə növü - keçidlər, lakin hər ikisi üçün bir çox növ, xüsusi hallar və əlavə təyinatlar var. Avtomat, təpələri vəziyyətlərə, qövsləri isə keçidlərə uyğun gələn istiqamətlənmiş qrafik şəklində simulyasiya edilmiş sistemin dinamik tərəflərini təmsil edir.

    İlkin vəziyyət heç bir daxili hərəkətləri (psevdo-dövlətləri) ehtiva etməyən dövlətin xüsusi halıdır. Obyekt ilkin vaxtda standart olaraq bu vəziyyətdədir. Vəziyyətlərin dəyişdirilməsi prosesinin başladığı qrafik sahəsinin vəziyyət diaqramında göstərilməyə xidmət edir.

    Final (final) dövlət heç bir daxili hərəkətləri (psevdo-dövlətlər) ehtiva etməyən dövlətin xüsusi halıdır. Obyekt son vaxtda avtomatın tamamlanmasından sonra standart olaraq bu vəziyyətdə olacaq.

    fəaliyyət diaqramı

    Layihələndirilən və ya təhlil edilən sistemin davranışını modelləşdirərkən təkcə onun vəziyyətlərinin dəyişdirilməsi prosesini təqdim etmək deyil, həm də sistemin yerinə yetirdiyi əməliyyatların alqoritmik və məntiqi həyata keçirilməsinin xüsusiyyətlərini təfərrüatlı şəkildə göstərmək zərurəti yaranır.

    fəaliyyət diaqramı(fəaliyyət diaqramı) vizual olaraq alqoritmin yaxşı köhnə axın sxeminə bənzəyən davranışı təsvir etməyin başqa bir yoludur. Əməliyyatların yerinə yetirilməsi prosesini simulyasiya etmək üçün istifadə olunur.

    Fəaliyyət diaqramlarından istifadənin əsas istiqaməti, onların icrası üçün alqoritmləri təqdim etmək lazım olduqda, sinif əməliyyatlarının həyata keçirilməsinin xüsusiyyətlərini vizuallaşdırmaqdır.

    Fəaliyyət diaqramında subyektlərin bir əsas növü istifadə olunur - fəaliyyət və bir əlaqə növü - keçidlər (nəzarətin ötürülməsi). Çəngəllər, birləşmələr, birləşmələr, budaqlar kimi konstruksiyalar da istifadə olunur. Ad kimi tövsiyə olunur sadə hərəkət izahlı sözlərlə feldən istifadə edin.

    ardıcıllıq diaqramı

    ardıcıllıq diaqramı(ardıcıllıq diaqramı) sistemin davranışını "nümunələrlə" təsvir etmək üsuludur.

    Əslində, ardıcıllıq diaqramı sistemin müəyyən bir sessiyasının protokolunun qeydidir (və ya belə bir protokolun bir parçası). Obyekt yönümlü proqramlaşdırmada iş zamanı ən vacib şey əməkdaşlıq edən obyektlər arasında mesajların ötürülməsidir. Bu diaqramda göstərilən mesajların göndərilməsi ardıcıllığıdır, buna görə də ad.

    Ardıcıllıq diaqramında obyektlərin bir əsas növü istifadə olunur - qarşılıqlı təsir göstərən təsnifatçıların nümunələri (əsasən siniflər, komponentlər və aktorlar) və bir əlaqə növü - mesajların mübadiləsinin aparıldığı keçidlər.

    Mümkün mesaj növləri (şəkil larin.in saytından götürülmüşdür):

    Ünsiyyət diaqramı

    Ünsiyyət diaqramı(rabitə diaqramı) - semantik olaraq ardıcıllıq diaqramına ekvivalent olan davranışı təsvir etmək üsulu. Əslində, bu, yalnız digər qrafik vasitələrlə ifadə edilən təsnifatlandırıcıların qarşılıqlı əlaqə nümunələrinin mesaj mübadiləsi ardıcıllığının eyni təsviridir.

    Beləliklə, rabitə diaqramında, eləcə də ardıcıllıq diaqramında bir əsas tip varlıqdan - qarşılıqlı təsir göstərən təsnifatçıların nümunələrindən və bir növ əlaqə növündən - əlaqələrdən istifadə olunur. Bununla belə, burada diqqət zamana deyil, konkret instansiyalar arasında əlaqələrin strukturuna yönəldilir.

    Komponent diaqramı

    Komponent diaqramı(komponent diaqramı) - simulyasiya edilmiş sistemi təşkil edən modullar (məntiqi və ya fiziki) arasındakı əlaqəni göstərir.

    Komponent diaqramındakı əsas obyekt növü komponentlərin özləri, eləcə də komponentlər arasında əlaqənin göstərildiyi interfeyslərdir. Komponent diaqramında aşağıdakı əlaqələr tətbiq olunur:

    • komponentlər və interfeyslər arasında həyata keçirmələr (komponent interfeysi həyata keçirir);
    • komponentlər və interfeyslər arasında asılılıqlar (komponent interfeysdən istifadə edir);

    Yerləşdirmə diaqramı

    Yerləşdirmə diaqramı(yerləşdirmə diaqramı), sistem elementlərinin tərkibini və əlaqələrini göstərməklə yanaşı, icra zamanı onların hesablama resurslarına fiziki olaraq necə yerləşdirildiyini göstərir.

    Yerləşdirmə diaqramında, komponent diaqramı ilə müqayisədə, iki növ obyekt əlavə olunur: komponentin həyata keçirilməsi olan artefakt və düyün (bu, ya qovşaq növünü, ya da müəyyən bir nümunəni təsvir edən təsnifatlandırıcı ola bilər), həmçinin qovşaqlar arasında assosiasiya əlaqəsi, qovşaqların işləmə zamanı fiziki olaraq bağlı olduğunu göstərir.

    Obyekt diaqramı

    Obyekt diaqramı(obyekt diaqramı) - sinif diaqramının nümunəsidir.

    Obyekt diaqramında obyektlərin bir əsas növü istifadə olunur: obyektlər (sinif nümunələri), onların arasında xüsusi əlaqələr göstərilir (əksər hallarda assosiasiya nümunələri). Obyekt diaqramları köməkçi xarakter daşıyır - əslində bunlar sistemin işində hansısa konkret məqamda hansı obyektlərin mövcud olduğunu və onlar arasındakı əlaqələri göstərən nümunələrdir (demək olar ki, yaddaş zibilləri).

    Daxili quruluşun diaqramı(kompozit struktur diaqramı) struktur təsnifatlandırıcıların, ilk növbədə siniflərin və komponentlərin daha ətraflı təqdimatı üçün istifadə olunur.

    Struktur təsnifatlandırıcı yuxarıda təsnifatçının adı olan düzbucaqlı şəklində göstərilir. İçəridə hissələr var. Bir neçə hissə ola bilər. Parçalar bir-biri ilə qarşılıqlı əlaqədə ola bilər. Bu bağlayıcılarla işarələnir müxtəlif növlər. Bağlayıcının qoşulduğu hissənin xarici kənarındakı yerə port deyilir. Limanlar həmçinin struktur təsnifatçının xarici sərhəddində yerləşir.

    Qarşılıqlı Baxış Diaqramı(qarşılıqlı baxış diaqramı) genişləndirilmiş sintaksisi olan bir növ fəaliyyət diaqramıdır: ümumi qarşılıqlı əlaqə diaqramının elementləri kimi, ardıcıllıq diaqramları ilə müəyyən edilmiş qarşılıqlı əlaqələrə (qarşılıqlı əlaqədən istifadə) keçidlər fəaliyyət göstərə bilər.

    Vaxt qrafiki

    Vaxt qrafiki(vaxt diaqramı) ardıcıllıq diaqramının xüsusi formasıdır ki, burada təsnifatçıların müxtəlif instansiyalarının vəziyyətlərinin dəyişməsinə və onların vaxt sinxronizasiyasına xüsusi diqqət yetirilir.

    Paket diaqramı

    Paket diaqramı(paket diaqramı) modelin özünün mürəkkəbliyini idarə etməyə imkan verən yeganə vasitədir.

    Qeydin əsas elementləri müxtəlif stereotiplərə malik paketlər və asılılıqlardır.

    Müəssisə-münasibət modeli (ER-modeli)

    analoq sinif diaqramları(UML) ola bilər ER modeli, verilənlər bazalarının dizaynında istifadə olunur (relational model).

    Müəssisə-münasibət modeli (ER-modeli) mövzu sahəsinin konseptual sxemlərini təsvir etməyə imkan verən verilənlər modelidir. ER modeli yüksək səviyyəli (konseptual) verilənlər bazası dizaynında istifadə olunur. Onun köməyi ilə siz əsas obyektləri vurğulaya və bu qurumlar arasında qurula biləcək əlaqələri təyin edə bilərsiniz. vikipediya

    Mövzu sahəsinin hər hansı bir fraqmenti arasında müəyyən əlaqələr dəsti olan obyektlər toplusu kimi təqdim edilə bilər.

    Əsas anlayışlar:

    mahiyyət(müəssisə) onu digər müəssisələrdən fərqləndirən bir şəkildə müəyyən edilə bilən bir qurumdur, məsələn, MÜŞTƏRİ 777. Müəssisə əslində atributlar toplusudur.

    Müəssisə dəsti(varlıq dəsti) - eyni tipli (eyni xassələrə malik olan) obyektlər toplusu.

    Əlaqə(münasibət) çoxlu subyektlər arasında qurulan assosiasiyadır.

    Domen(domen) - atributun dəyərlər toplusu (domen).

    İkili əlaqənin üç növü var:

    • birə-bir- bir sinfə aid obyektin tək nümunəsi digər sinif obyektinin tək nümunəsi ilə əlaqələndirilir, məsələn, HEAD - DEPARTMENT;
    • 1-dən N və ya birdən çoxlarına- bir sinif obyektinin tək nümunəsi digər sinif obyektinin bir çox nümunələri ilə əlaqələndirilir, məsələn, BÖLÜM - İŞÇİ;
    • N-dən M və ya çoxdan çoxlarına- bir sinif obyektinin bir çox nümunələri digər sinif obyektinin bir çox nümunələri ilə əlaqələndirilir, məsələn, İŞÇİ - LAYİHƏ;
    • UML-də əsas anlayışların lüğəti

      obyekt- unikallığı olan və hal və davranışı əhatə edən varlıq.

      sinif- vəziyyəti müəyyən edən ümumi atributları olan obyektlər toplusunun və davranışı müəyyən edən əməliyyatların təsviri.

      interfeys- istehlakçı tərəfindən tələb oluna bilən və xidmət təminatçısı tərəfindən təqdim edilə bilən xidmətlər toplusunu müəyyən edən əməliyyatların adlandırılmış dəsti.

      Əməkdaşlıq- müəyyən məqsədə çatmaq üçün qarşılıqlı əlaqədə olan obyektlər toplusu.

      Aktyor- modelləşdirilmiş sistemdən kənarda olan və onunla birbaşa qarşılıqlı əlaqədə olan varlıq.

      komponent- tələb olunan və təmin edilmiş interfeyslərin dəqiq müəyyən edilmiş dəsti ilə sistemin modul hissəsi.

      Artefakt- proqram təminatının hazırlanması prosesində istifadə olunan və ya yaradılan məlumat elementi. Başqa sözlə, artefakt model elementindən (məsələn, sinif və ya komponentdən) əldə edilən fiziki həyata keçirmə vahididir.

      Düyün- artefaktların yerləşdirildiyi və lazım gəldikdə icra olunduğu hesablama resursu.

      Davranış varlıqları davranışı təsvir etmək məqsədi daşıyır. Yalnız iki əsas davranış varlığı var: dövlət və fəaliyyət.

      dövlət- obyektin həyat dövrünün müəyyən bir şərti ödədiyi və öz fəaliyyətini yerinə yetirdiyi və ya hər hansı bir hadisənin baş verməsini gözlədiyi bir dövr.

      hərəkət- primitiv atom hesablaması.

      Maşın sonlu sayda vəziyyət və keçidlərə malik diskret fəza kimi modelləşdirilmiş obyektin davranışını təmsil etmək üçün zəruri olan anlayışlar toplusunu müəyyən edən paketdir.

      təsnifatçı eyni tipli obyektlər toplusunun deskriptorudur.

      Əlavə oxu

      • Fowler M. UML. Əsaslar, 3-cü nəşr
      • Butch G., Rambo D., Jacobson I. UML dili. İstifadəçi təlimatı

    Bir obyektin yaradılmasından tutmuş məhv edilməsinə qədər onun həyatı boyu davranışını göstərin. Hər bir vəziyyət diaqramı bəzi avtomatları təmsil edir.

    Hərəkət planı

    Təsvir bölməsində diaqramları oxumaq üçün lazım olan əsas dövlət diaqramı simvol dəsti haqqında məlumat əldə edin.

    Digər bölmələri ("Nümunə", "İstifadə") oxuduqdan sonra özünüz vəziyyət diaqramlarını yaratmağa cəhd edə bilərsiniz.

    Qeydlər (təsvir)

    Budur əsas xarakter dəsti dövlət diaqramları diaqramı oxumağı bacarmaq lazımdır. Digər bölmələri ("Nümunə", "Tətbiq") oxuduqdan sonra siz tərtib edə biləcəksiniz dövlət diaqramları tək başına!

    Müddət Şəkil Təsvir
    İlkin psevdostat Sistemin ilkin vəziyyəti
    Keçid Keçid bir vəziyyətdən digərinə keçmək deməkdir.
    dövlət Aktyorlar tərəfindən müşahidə edilən nəticələrə gətirib çıxaran sistem tərəfindən həyata keçirilən hərəkətləri (mümkün variantları ehtiva edə bilər) ifadə edir.
    dövlət
    fəaliyyət vəziyyəti
    İstifadə vəziyyətində çətin bir addım başqa bir istifadə halı ilə təmsil oluna bilər.
    UML baxımından deyirik ki, birinci istifadə halı ikincini ehtiva edir.
    Son vəziyyət Sistemlərin və ya alt sistemlərin sərhədlərini təyin etməyə imkan verir.
    Daxili fəaliyyətlər Dövlətlərin keçid etmədən hadisələrə reaksiya verə bildiyi hal, bu halda hadisə, mühafizə və fəaliyyət dövlət düzbucağının içərisinə yerləşdirilir.
    giriş fəaliyyəti Siz dövlətə daxil olduğunuz zaman giriş fəaliyyəti həyata keçirilir
    çıxış fəaliyyəti Çıxış fəaliyyəti - dövləti tərk etdiyiniz zaman həyata keçirilir.
    super dövlət
    Tez-tez olur ki, bir neçə dövlətin ümumi keçidləri və daxili fəaliyyətləri olur. Belə hallarda, siz onları alt dövlətlərə (alt dövlətlərə) çevirə və ümumi davranışı super dövlətə (superstate) köçürə bilərsiniz.
    Paralel dövlətlər
    Dövlətlər eyni vaxtda işləyən bir neçə paralel dövlətlərə bölünə bilər.

    Yaradıcılıq texnikasını necə tətbiq etmək olar

    UML dövlət diaqramları birdən çox istifadə halında bir obyektin davranışını təsvir etmək üçün yaxşıdır. Lakin onlar bir çox obyektlərin qarşılıqlı təsiri ilə xarakterizə olunan davranışı təsvir etmək üçün çox uyğun deyil. Buna görə də vəziyyət diaqramları ilə birlikdə digər texnologiyalardan istifadə etmək məntiqlidir. Məsələn, qarşılıqlı əlaqə diaqramları (Fəsil 4) bir istifadə vəziyyətində birdən çox obyektin davranışını təsvir etmək üçün əladır, UML fəaliyyət diaqramları isə bir neçə istifadə vəziyyətində bir neçə obyektin əsas hərəkət ardıcıllığını göstərmək üçün yaxşıdır.

    Hər kəs vəziyyət diaqramlarını təbii hesab etmir. Mütəxəssislərin onlarla necə işlədiyinə baxın. Ola bilsin ki, komanda üzvləriniz dövlət cədvəllərinin onların iş tərzinə uyğun olmadığını düşünürlər. Bu ən böyük çətinlik deyil; müxtəlif iş üsullarını paylaşmağı unutmayın.

    Əgər dövlət diaqramlarından istifadə edirsinizsə, onları sistemdəki hər sinif üçün çəkməyə çalışmayın. Bu yanaşma formal olaraq ciddi tamlıq naminə tez-tez istifadə olunur, lakin demək olar ki, həmişə səy itkisidir. Vəziyyət cədvəllərini yalnız maraqlı davranış nümayiş etdirən siniflər üçün istifadə edin, burada vəziyyət cədvəlinin tərtib edilməsi işlərin necə getdiyini anlamağa kömək edir.

    Bir çox mütəxəssis buna inanır UI redaktoru və nəzarət obyektləri dövlət diaqramı ilə göstərildikdə faydalı funksiyaya malikdir.

    Necə öyrənmək olar

    Burada öyrənməyin ən asan yolunu təqdim etməyə çalışdıq UML vəziyyət diaqramları.

    Bir çox digər dillər kimi, təsvir etmək üçün bir sıra simvollardan istifadə edir. Bu simvolların mənası ilə "Qeydlər (təsvir)" bölməsindəki cədvəldə tanış olmaq olar. Hər işarənin öz adı (termin) və yazılışı var. Həmçinin, onun əsas mahiyyətini tez başa düşmək üçün hər bir terminə qısa izahat verilir.

    Sonra "Nümunələr" bölməsinə keçməyi məsləhət görürük dövlət diaqramları müxtəlif qrafikləri oxumaqda əlinizi sınayın. Daha sonra siz “İstifadə” bölməsini öyrənməlisiniz, çünki UML-də diaqram növlərinin sayı az olsa da, siz onlardan yalnız təyinatı üzrə müvafiq diaqramlardan istifadə etdikdə maksimum fayda əldə edə bilərsiniz.

    İstifadə nümunəsi

    Dövlət maşın diaqramları sistemin davranışını təsvir etmək üçün məşhur texnikadır. Dövlət diaqramları bu və ya digər formada 1960-cı illərdən bəri mövcuddur və obyekt yönümlü proqramlaşdırmanın ilk günlərində sistemin davranışını təmsil etmək üçün istifadə olunurdu. Obyekt yönümlü yanaşmalarda, bir obyektin ömrü boyu davranışını göstərmək üçün bir sinifin vəziyyət diaqramını çəkirsiniz.

    Sonlu dövlət maşınları haqqında yazılan zaman qaçılmaz olaraq kruiz-kontrol sistemləri və ya satış avtomatları nümunə kimi göstərilir.
    Biz Gothic Castle-də gizli idarəetmə panelinin nəzarətçisindən istifadə etmək qərarına gəldik. Bu qalada biz xəzinələrimizi gizlətmək istəyirik ki, onları tapmaq çətin olsun. Seyfin kilidinə daxil olmaq üçün şamdandan strateji şam çıxartmalıyıq, lakin kilid yalnız qapı bağlı olduqda görünəcək. Kilid göründükdən sonra açarı ona daxil edib seyfi aça bilərik. Əlavə təhlükəsizlik üçün biz bunu elə etdik ki, seyf ancaq şam çıxarıldıqdan sonra açılsın. Əgər oğru bu tədbirə məhəl qoymasa, o zaman oğrunu udacaq iyrənc bir canavar buraxacağıq.

    Əncirdə. 10.1 göstərilmişdir dövlət diaqramı qeyri-adi təhlükəsizlik sistemimi idarə edən nəzarətçi sinfi. Vəziyyət diaqramı yaradılan nəzarətçi obyektinin vəziyyəti ilə başlayır: vəziyyətlər Gözləmək. Bu, diaqramda göstərilir ilkin psevdostat, dövlət deyil, ilkin vəziyyətə işarə edən oxu var.
    Diaqram göstərir ki, nəzarətçi üç vəziyyətdən birində ola bilər: Gözləyin (Gözləyir), Kilidləyin (Kilidləyin) və Açın (Açıq). Diaqram həmçinin nəzarətçinin bir vəziyyətdən digərinə keçdiyi qaydaları göstərir. Bu qaydalar keçidlər - dövlətləri birləşdirən xətlər kimi təmsil olunur.

    Keçid bir vəziyyətdən digərinə keçmək deməkdir. Hər keçidin üç hissədən ibarət öz etiketi var:
    tətik identifikatoru [qoruma]/fəaliyyət (tətik imzası / fəaliyyət). Onların hamısı isteğe bağlıdır. Adətən, trigger-id vəziyyət dəyişikliyinə səbəb ola biləcək yeganə hadisədir.

    Mühafizə, göstərildiyi təqdirdə, keçidin baş verməsi üçün yerinə yetirilməli olan məntiqi şərtdir. Fəaliyyət keçid zamanı sistemin bəzi davranışıdır. Hər hansı bir davranış ifadəsi ola bilər. ID tetikleyicisinin tam formasına çoxsaylı hadisələr və parametrlər daxil ola bilər. Gözləmə vəziyyətindən (Şəkil 10.1) başqa vəziyyətə keçidi “Gözləmə vəziyyətində, şam çıxarılarsa, siz kilid görürsünüz və Kilid vəziyyətinə keçirsiniz” kimi oxuna bilər.

    Keçid təsvirinin hər üç hissəsi isteğe bağlıdır. Fəaliyyətin atlanması keçid zamanı heç nə baş verməməsi deməkdir. Skip mühafizəçiləri o deməkdir ki, tetikleyici hadisə baş verərsə, keçid həmişə yerinə yetirilir. Tətik identifikatoru nadir hallarda yoxdur, lakin bu baş verir. Bu o deməkdir ki, keçid dərhal baş verir, bu, əsasən aktiv vəziyyətlərdə müşahidə edilə bilər.

    Müəyyən bir vəziyyətdə hadisə baş verdikdə, bu vəziyyətdən yalnız bir keçid edilə bilər, məsələn, Kilid vəziyyətində (şək. 10.1), qorunmalar bir-birini istisna etməlidir. Hadisə baş verərsə və icazə verilən keçidlər yoxdursa, məsələn, Gözləmə vəziyyətində seyfi bağlamaq və ya qapı açıq olan zaman şamı çıxarmaq - hadisə nəzərə alınmır.

    Son vəziyyət ( son vəziyyət) dövlət maşınının işləməsini başa çatdırdığını bildirir, bu da nəzarətçi obyektinin silinməsinə səbəb olur. Beləliklə, tələyə düşmək üçün kifayət qədər diqqətli olmayanlarınız üçün, nəzarətçi obyekti mövcud olmağı dayandırdıqca, biz dovşanı yenidən qəfəsə qoymaq, döşəməni silmək və sistemi yenidən işə salmaq məcburiyyətindəyik.

    Unutmayın ki, dövlət maşınları yalnız birbaşa müşahidə olunan və ya hərəkət edilən obyektləri göstərə bilər. Beləliklə, siz qapı açıq olan zaman seyfdən nəsə qoymağımızı və ya nəyisə çıxarmağımızı gözlədiyiniz halda, biz onu diaqramda qeyd etmədik, çünki nəzarətçi bu barədə bizə heç nə deyə bilməz.

    Tərtibatçılar obyektlər haqqında danışarkən, çox vaxt obyektlərin vəziyyətinə istinad edirlər, yəni obyektin sahələrində olan bütün məlumatların birləşməsidir. Bununla belə, dövlət maşın diaqramındakı vəziyyət vəziyyətin daha mücərrəd anlayışıdır; Məsələ ondadır ki, müxtəlif dövlətlər hadisələrə müxtəlif reaksiya yollarını nəzərdə tutur.

    Dövlət cədvəlində daxili fəaliyyətlər

    Dövlətlərdən istifadə edərək keçid etmədən hadisələrə reaksiya verə bilər daxili fəaliyyətlər (daxili fəaliyyətlər), bu halda hadisə, qarovul və fəaliyyət dövlət düzbucağının içərisinə yerləşdirilir.

    Əncirdə. Şəkil 10.2 redaktorun mətn sahələrində müşahidə edə biləcəyiniz daxili simvol fəaliyyətləri və yardım sistemi hadisələri ilə vəziyyəti göstərir. UI. Daxili fəaliyyət öz-özünə keçid kimidir - eyni vəziyyətə qayıdan keçid. Daxili fəaliyyətlərin sintaksisi hadisələrin, qorunmaların və prosedurların eyni məntiqi sxeminə uyğun olaraq qurulur.

    Əncirdə. 10.2 həmçinin xüsusi fəaliyyətləri göstərir: giriş və çıxış fəaliyyətləri. giriş fəaliyyəti dövlətə girdiyiniz zaman edam edilir; çıxış fəaliyyəti- dövləti tərk etdiyiniz zaman. Ancaq daxili fəaliyyətlər başlamır giriş və çıxış fəaliyyəti; arasındakı fərq budur daxili fəaliyyətlər vəöz-özünə keçidlər .

    Fəaliyyət dövlət diaqramında göstərilir

    İndiyə qədər təsvir etdiyimiz ştatlarda obyekt səssizdir və bir şey etməzdən əvvəl növbəti hadisəni gözləyir. Bununla belə, obyektin müəyyən aktivlik nümayiş etdirdiyi dövlətlər mümkündür.

    dövlət Axtarılırşək. 10.3 belə bir vəziyyətdir fəaliyyət vəziyyəti: davam edən fəaliyyət simvolu ilə göstərilir et/; buna görə də termin fəaliyyətlə məşğul olmaq (aktiv olun). Axtarış tamamlandıqdan sonra yeni avadanlıqların göstərilməsi kimi heç bir fəaliyyəti olmayan keçidlər həyata keçirilir (Yeni Hardware göstərin). Fəaliyyət zamanı ləğv hadisəsi baş verərsə ( ləğv edin), Yəni fəaliyyət göstərmək sadəcə olaraq kəsilir və biz dövlətə qayıdırıq Avadanlıq Pəncərəsini Yeniləyin.

    Həm görülən fəaliyyətlər, həm də normal fəaliyyətlər bəzi davranışların təzahürüdür. İkisi arasındakı həlledici fərq ondan ibarətdir ki, normal fəaliyyətlər "dərhal" baş verir və normal hadisələr tərəfindən kəsilə bilməz, halbuki fəaliyyətlər Şəkil 2-də göstərildiyi kimi müəyyən müddət ərzində davam edə bilər və kəsilə bilər. 10.3. Üçün ani müxtəlif sistemlər fərqli şərh olunur; real vaxt sistemləri üçün bu, bir neçə maşın təlimatını, masaüstü proqram təminatı üçün isə bir neçə saniyə çəkə bilər.

    IN UML 1 adi fəaliyyətlər termini ilə qeyd olunurdu hərəkət(hərəkət) və müddət fəaliyyət(fəaliyyət) yalnız üçün istifadə edilmişdir fəaliyyətlər.

    Super dövlətlər

    Tez-tez olur ki, bir neçə dövlətin ümumi keçidləri və daxili fəaliyyətləri olur. Belə hallarda, siz onları alt dövlətlərə (alt dövlətlərə) çevirə və Şəkil 1-də göstərildiyi kimi ümumi davranışı super dövlətə (superstate) köçürə bilərsiniz. 10.4. Superdövlət olmasaydı, biz keçidi çəkməli olardıq ləğv edin bir dövlət daxilində hər üç dövlət üçün (ləğv et). Bağlantı Detallarını daxil edin.

    Paralel dövlətlər

    Dövlətlər eyni vaxtda işləyən bir neçə paralel dövlətlərə bölünə bilər. Əncirdə. Şəkil 10.5 CD və ya radionu yandıra bilən və ya cari vaxtı, ya da siqnal vaxtını göstərə bilən sadə zəngli saatı göstərir.

    CD/radio seçimləri və cari vaxt/siqnal vaxtı paraleldir. Əgər siz bunu qeyri-paralel vəziyyət diaqramı ilə təmsil etmək istəsəniz, vəziyyətləri əlavə etmək lazım olduğu üçün qarışıq bir diaqramla nəticələnəcəksiniz. İki davranışı iki vəziyyət diaqramına bölmək onu daha aydın edir.

    düyü. 10.5 də daxildir tarixdən əvvəlki dövlət(tarix psevdostatı). Bu o deməkdir ki, saat yandırıldıqda radio/CD seçimi saatın söndürüldüyü vəziyyətə keçir. Tarixdən çıxan ox, tarix olmadığı zaman hansı dövlətin mövcud olduğunu göstərir.

    Dövlət qrafiklərinin həyata keçirilməsi

    Vəziyyət diaqramı üç əsas yolla həyata keçirilə bilər: iç-içə keçid ifadəsi, Dövlət nümunəsi və vəziyyət cədvəlindən istifadə etməklə. Dövlət diaqramları ilə işləmək üçün ən birbaşa yanaşma Şəkil 1-dəki kimi iç-içə keçid bəyanatıdır. 10.6.

    Bu üsul düz olsa da, hətta bu sadə iş üçün çox uzundur. Bundan əlavə, bu yanaşma ilə nəzarəti itirmək çox asandır, buna görə də elementar hallarda istifadə etməyi məsləhət görmürük.
    Dövlət nümunəsi dövlət davranışını idarə etmək üçün dövlət siniflərinin iyerarxiyasını təmsil edir. Dövlət qrafikindəki hər bir ştatın öz dövlət alt sinfi var. Nəzarətçinin hər bir hadisə üçün sadəcə dövlət sinfinə yönləndirən üsulları var. Şəkildə göstərilən vəziyyət diaqramı. 10.1 Şəkildə göstərilən siniflərdən istifadə etməklə həyata keçirilə bilər. 10.7.

    İyerarxiyanın yuxarı hissəsi hadisələri idarə edən, lakin həyata keçirməyən bütün metodların təsvirini ehtiva edən mücərrəd sinifdir.
    Hər bir konkret vəziyyət üçün vəziyyətdən keçidi başlatan konkret hadisənin idarəedici metodunu yenidən yazmaq kifayətdir.
    Vəziyyət cədvəli vəziyyət diaqramını məlumat kimi təqdim edir.

    Beləliklə, Şəkildəki diaqram. 10.1 cədvəl şəklində təqdim edilə bilər. 10.1.
    Sonra proqramın icrası zamanı vəziyyət cədvəlindən istifadə edən tərcüməçi və ya bu cədvəl əsasında siniflər yaradan kod generatoru qururuq.

    Aydındır ki, dövlət masası üzərində işlərin çoxu bir dəfə edilir, lakin sonra dövlətlə bağlı problemi həll etmək lazım olduqda istifadə edilə bilər. İş vaxtı vəziyyət cədvəli yenidən tərtib edilmədən dəyişdirilə bilər, bu bir qədər rahatdır. Dövlət şablonunu yığmaq daha asandır və hər bir dövlət ayrıca sinif tələb etsə də, yazılmalı olan kodun miqdarı kifayət qədər azdır.

    Verilən tətbiqlər demək olar ki, minimaldır, lakin necə tətbiq olunacağına dair fikir verir dövlət diaqramları. Hər bir halda dövlət modellərinin həyata keçirilməsi kifayət qədər stereotipik proqramla nəticələnir, ona görə də adətən bunun üçün kod generasiyasının hansısa formasından istifadə etmək daha yaxşıdır.

    Sayt xəbərlərinə abunə olun, abunə formasını saytın sağ sütununda tapa bilərsiniz.

    Əgər siz peşəkar şəkildə sərbəst işləməyi öyrənmək istəyirsinizsə, sizi "" kursuna dəvət edirik.