Аппараттық және бағдарламалық қамтамасыз етуді орнату

UML диаграммаларын салуға арналған құралдар. Бірыңғай модельдеу тілінің негіздері uml диаграммалары статистикалық динамика

Менің ойымша, бәрі балалық шағында « Жеті рет өлшеп, бір рет кесіңіз". Бағдарламалауда бұл бірдей. Оны орындауға уақыт жұмсамас бұрын, әрқашан іске асыру туралы ойланған дұрыс. Көбінесе іске асыру кезінде сыныптар құруға, олардың өзара әрекеттесуін ойлап табуға тура келеді. Көбінесе мұның көрнекі көрінісі шешуге көмектеседі. Мәселені ең дұрыс жолмен шешуге көмектесеміз UML.

UML дегеніміз не?

Суреттерге қарасаңыз іздеу жүйелері, бұл анық болады UML- бұл схемалар, көрсеткілер және шаршылар туралы. Ең бастысы, UML ретінде аударылады Бірыңғай модельдеу тілі. Мұнда Unified сөзі маңызды. Яғни, біздің суреттерді біз ғана емес, UML тілін білетін басқалар да түсінетін болады. Бұл диаграммаларды салуға арналған халықаралық тіл екені белгілі болды.

Википедия айтқандай

UML - бұл тіл графикалық сипаттамадамытудағы нысанды модельдеуге арналған бағдарламалық қамтамасыз ету, бизнес-процестерді модельдеу, жүйені жобалау және ұйымдық құрылымдарды көрсету.
Ең қызығы, әркім ойлана бермейтін немесе болжамайтын нәрсе - UML-дің техникалық сипаттамалары бар. Оның үстіне, тіпті UML2 спецификациясы бар. Техникалық сипаттама туралы қосымша ақпаратты Object Management Group веб-сайтынан табуға болады. Іс жүзінде бұл топ UML спецификацияларын әзірлеумен айналысады. Бір қызығы, UML тек сыныптардың құрылымын сипаттаумен шектелмейді. UML диаграммаларының көптеген түрлері бар. UML диаграммаларының түрлерінің қысқаша сипаттамасын сол Википедияда көруге болады: UML диаграммалары немесе Тимур Батыршинов бейнесіндегі бейне UML диаграммаларына шолу. UML сонымен қатар әртүрлі процестерді сипаттауда кеңінен қолданылады, мысалы, мына жерде: JWT арқылы бір рет кіру. UML класс диаграммаларын пайдалануға қайта оралсақ, «Head First: Design Patterns» кітабын атап өткен жөн, онда үлгілер сол UML диаграммаларымен суреттелген. UML шынымен де қолданылып жатқаны белгілі болды. Ал оның қолданылуын білу және түсіну өте пайдалы дағды екені белгілі болды.

Қолдану

IDE-ден дәл осы UML-мен қалай жұмыс істеуге болатынын көрейік. IDE ретінде қабылдаңыз IntelliJ идеясы. Қолданса IntelliJ Idea Ultimate, содан кейін біз плагинді "қораптан тыс" орнатамыз UML қолдауы". Ол әдемі класс диаграммаларын автоматты түрде жасауға мүмкіндік береді. Мысалы, Ctrl + N немесе мәзір пункті "Шарлау" -> "Класс" арқылы сыныпқа өтіңіз Массивтер тізімі. Енді, арқылы контекстік мәзірсынып атауы бойынша «Диаграмма» -> «Диаграмманың қалқымалы терезесін көрсету» таңдаңыз. Нәтижесінде біз әдемі диаграмма аламыз:

Бірақ егер сіз өзіңізді сурет салғыңыз келсе, тіпті идеяның соңғы нұсқасы болмаса ше? Егер біз IntelliJ Idea Community Edition қолданатын болсақ, бізде басқа таңдау жоқ. Мұны істеу үшін мұндай UML схемасы қалай жұмыс істейтінін түсіну керек. Алдымен біз Graphviz орнатуымыз керек. Бұл графикті визуализациялау утилиталарының жиынтығы. Оны біз қолданатын плагин пайдаланады. Орнатқаннан кейін каталогты қосу керек бинорнатылған каталогтан графвизорта айнымалысына ЖОЛ. Осыдан кейін IntelliJ Idea бағдарламасында мәзірден Файл -> Параметрлер тармағын таңдаңыз. «Параметрлер» терезесінде «Плагиндер» санатын таңдап, «Репозиторийлерді шолу» түймесін басып, PlantUML біріктіру плагинін орнатыңыз. Бұл неге сонша жақсы PlantUML? Ол "деп аталатын графикті сипаттау тілін пайдаланады. нүкте« және бұл оның жан-жақты болуына мүмкіндік береді, өйткені берілген тіл PlantUML ғана қолданылмайды. Сонымен қатар, біз төменде жасайтын барлық нәрсені IDE-де ғана емес, сонымен қатар planttext.com онлайн қызметінде де жасай аламыз. PlantUML плагинін орнатқаннан кейін біз «Файл» -> «Жаңа» арқылы UML диаграммаларын жасай аламыз. «UML класы» диаграммасын құрайық. Бұл кезде мысалы бар үлгі автоматты түрде жасалады. Оның мазмұнын жойып, Habr мақаласымен қаруланған өзімізді жасайық: Class Relations - UML-ден кодқа дейін. Мұны мәтінде қалай бейнелеу керектігін түсіну үшін PlantUML нұсқаулығын алайық: plantuml class-diagram . Онда, ең басында, байланыстарды сипаттайтын тақта бар:

Байланыстардың өздері туралы біз әлі де осы жерден көре аламыз: "UML-дегі сыныптар арасындағы қарым-қатынас. Мысалдар". Осы материалдарға сүйене отырып, UML диаграммасын құруды бастайық. Екі сыныпты сипаттайтын келесі мазмұнды қосыңыз: @startuml class ArrayList ( ) класс LinkedList ( ) @enduml Нәтижені Idea ішінде көру үшін "Көру" -> " таңдаңыз. 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 класында сақталған деректерге сілтеме жасайтын Түйін контейнерлері бар екенін көрсеткіміз келеді. Бұл жағдайда түйіндер LinkedList құрамына кіреді және бөлек өмір сүре алмайды. Түйін тікелей сақталатын мазмұн емес, тек оған сілтемені қамтиды. Мысалы, біз LinkedList тізіміне жолды қосқанда, біз осы жолға сілтемені, сондай-ақ алдыңғы және келесі Түйінге сілтемені қамтитын жаңа Түйін қосамыз. Бұл байланыс түрі деп аталады құрамы(композиция). Композитті (бөліктерден тұратын) көрсету үшін толтырылған робик сызылады, оған үздіксіз сызық апарады. Енді мұны мына сілтеменің мәтіндік дисплейі ретінде жазайық: класс Түйін ( ) LinkedList * -- Түйін Ал енді бізге тағы біреуін көрсетуді үйрену керек. маңызды түрікоммуникациялар - тәуелділік(тәуелділік қатынасы). Ол бір сынып екіншісін пайдаланған кезде пайдаланылады, ал сыныпта пайдаланылған сынып жоқ және оның мұрагері болмаса. Мысалы, LinkedList және ArrayList ListIterator жасай алады. Мұны нүктелі көрсеткілер ретінде көрсетейік: ListIterator ListIterator класы< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Сіз қажетінше егжей-тегжейлі бере аласыз. Барлық белгілер осы жерде берілген: "PlantUML - класс диаграммасы". Сонымен қатар, мұндай схеманы салуда табиғаттан тыс ештеңе жоқ, ал тапсырмалармен жұмыс істегенде, оны қолмен тез салуға болады. Бұл қолданба архитектурасының ойлау дағдыларын дамытады және қате үлгіні енгізуге бір күн өткізгеннен кейін емес, сынып құрылымының кемшіліктерін ерте анықтауға көмектеседі. Менің ойымша, бұл оны сынап көруге жақсы себеп пе?)

Автоматтандыру

Сонда бар әртүрлі жолдар PlantUML диаграммаларын автоматты түрде жасау. Мысалы, в идеялар SketchIT плагині бар, бірақ ол оларды дұрыс салмайды. Мысалы, интерфейстерді іске асыру дұрыс емес сызылған (мұрагерлік ретінде көрсетіледі). Сондай-ақ, желіде оны жобаның өмірлік цикліне қалай салуға болатыны туралы мысалдар бар. үшін делік Мэвен uml-java-docklet қолданатын мысал бар. Мұның қалай жасалатынын көрсету үшін Maven жобасын жылдам жасау үшін Maven архетипін қолданайық. Пәрменді орындаймыз: mvn archetype:generate Сүзгіні таңдау мәселесі бойынша ( Санды таңдаңыз немесе сүзгіні қолданыңыз) Enter пернесін басу арқылы әдепкі қалдырыңыз. Ол әрқашан болады» maven-archetype-жылдам бастау". Біз соңғы нұсқаны таңдаймыз. Әрі қарай, сұрақтарға жауап беріп, жобаны құруды аяқтаймыз:

Maven осы мақаланың мақсаты болмағандықтан, Maven туралы сұрақтарыңызға жауаптарды Maven пайдаланушылар орталығынан табуға болады. Жасалған жобада өңдеу үшін жобаның сипаттамасы файлын ашыңыз, pom.xml. Біз мазмұнды uml-java-docklet орнату сипаттамасынан көшіреміз. Сипаттамада пайдаланылған артефакт Maven орталық репозиторийінен табылмады. Бірақ бұл мен үшін жұмыс істеді: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . Яғни, бұл сипаттамада сіз жай ғана ауыстыруыңыз керек groupId"мен info.leadinglight« үстінде » com.chfourie"және нұсқасын қою" 1.0.0 ". Осыдан кейін біз файл орналасқан каталогта орындай аламыз pom.xmlбұл командалар: mvn clean install және mvn javadoc:javadoc . Енді жасалған құжаттаманы ашсақ (explorer target\site\apidocs\index.html), біз UML диаграммаларын көреміз. Айтпақшы, бұл жерде іске асыру дұрыс көрсетілген)

Қорытынды

Көріп отырғаныңыздай, UML қолданбаңыздың құрылымын визуализациялауға мүмкіндік береді. Сондай-ақ, UML мұнымен шектелмейді. UML-ді сипаттау үшін пайдалануға болады әртүрлі процестеркомпанияңызда немесе сіз жазып жатқан функция жұмыс істейтін бизнес процесін сипаттаңыз. UML сіз үшін қаншалықты пайдалы екені сізге байланысты, бірақ уақыт тауып, оны егжей-тегжейлі білу бәрібір пайдалы болады. #Viacheslav Осы жазбаның орысша нұсқасы: CodeGym сайтындағы UML диаграммасы Java

UML (Unified Modeling Language – унификацияланған модельдеу тілі) – бағдарламалық қамтамасыз етуді әзірлеу саласындағы объектіні модельдеуге арналған графикалық сипаттау тілі. UML – жалпы тіл, ол UML моделі деп аталатын жүйенің дерексіз моделін жасау үшін графикалық белгілерді қолданатын ашық стандарт. UML негізінен бағдарламалық жүйелерді анықтау, визуализациялау, жобалау және құжаттау үшін жасалған. UML бағдарламалау тілі емес, бірақ кодты генерациялау UML үлгілері үшін орындалу уақытының құралдарында түсіндірілетін код ретінде мүмкін болады. Wikipedia

Коммерциялық өнімдер

Microsoft Visio

Түрі: коммерциялық бағдарламалық қамтамасыз ету

Танымал бағдарламалық қамтамасыз ету Microsoft-тан, ол сізге бай диаграммаларды салуға мүмкіндік береді, соның ішінде UML:

2010 нұсқасынан бастап диаграммаларды интернетте жариялау мүмкін болды (SharePoint + Visio Services):

Visio қарау құралы- тегін бағдарлама, ол бұрын жасалған 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%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%20D0%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%20D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80D1%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%20D1%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%20D1%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%20D1%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Мүмкіндік%20Pack%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%20D0%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%20D0%BF%D1%80%D0%BE%D0%B2%D0%B5D1%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Мүмкіндік%20Pack%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

Мүмкіндіктер:

  • Қолдану жағдайларының диаграммасы (прецеденттердің диаграммалары);
  • Орналастыру диаграммасы (топология диаграммалары);
  • Күй диаграммасы (күй диаграммалары);
  • Іс-әрекет диаграммасы (әрекет диаграммалары);
  • Өзара әрекеттесу диаграммасы (өзара әрекеттесу диаграммалары);
  • Жүйелілік диаграммасы (әрекеттер реттілігінің диаграммалары);
  • Ынтымақтастық диаграммасы (бірлесу диаграммалары);
  • Класс диаграммасы (сынып диаграммалары);
  • Компонент диаграммасы (компонент диаграммалары).

Скриншоттар:

ашық бастапқы коды бар бағдарламалар

StarUML

Мүмкіндіктер:

  • UML 2.0 қолдауы
  • MDA (үлгіге негізделген архитектура)
  • Plug-in архитектурасы (COM үйлесімді тілдерде жазуға болады: C++, Delphi, C#, VB, ...)

StarUML негізінен Delphi тілінде жазылған, бірақ сіз C/C++, Java, Visual Basic, Delphi, 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 қолдауы
  • Форвард, кері инженерия

Скриншот:

11.1. Бірыңғай модельдеу тілінің құрылымы

Бірыңғай модельдеу тілі (UML) жылы қазіргі уақыттаобъектіге бағытталған жүйелерді жобалау және әзірлеу нәтижелерін сипаттауға (құжаттандыруға) арналған іс жүзінде стандарт болып табылады. UML әзірлеуін 1994 жылы Grady Booch және James Rumbaugh Rational Software компаниясында бастады. 1995 жылдың күзінде оларға Ивар Якобсон қосылды және сол жылдың қазан айында 0,8 Бірыңғай әдістің алдын ала нұсқасы шығарылды. Сол уақыттан бері UML спецификациясының бірнеше нұсқасы шығарылды, олардың екеуі халықаралық стандарт мәртебесіне ие:

UML 1.4.2 - «ISO/IEC 19501:2005. Ақпараттық технологиялар. Ашық таратуды өңдеу. Бірыңғай модельдеу тілі (UML). 1.4.2 нұсқасы" (ағыл. "Ақпараттық технологиялар. Ашық таратылған өңдеу. Бірыңғай модельдеу тілі (UML). 1.4.2 нұсқасы");

UML 2.4.1 - "ISO / IEC 19505-1: 2012. Ақпараттық технологиялар. Бірыңғай нысанды басқару тобын модельдеу тілі (OMG UML). 1-бөлім. Инфрақұрылым" (ағыл. "Ақпараттық технологиялар -- Object Management Group Unified Modeling Language ( OMG)" UML) - 1-бөлім: Инфрақұрылым) және "ISO / IEC 19505-2: 2012. Ақпараттық технологиялар. Бірыңғай нысанды басқару тобын модельдеу тілі (OMG UML). 2-бөлім. Қондырғы" (ағылш. "Ақпараттық технологиялар - Объектілерді басқару тобының бірыңғай модельдеу" Тіл (OMG UML) - 2-бөлім: қондырма»).

Соңғы ресми тіл сипаттамасын www.omg.org сайтынан табуға болады.

UML жалпы құрылымы келесі суретте көрсетілген.

Күріш. 11.1. UML құрылымы

11.2. UML семантикасы және синтаксисі

Семантика - тіл бірліктерінің, ең алдымен оның сөздері мен сөз тіркестерінің мағынасын зерттейтін тіл білімінің бөлімі.

Синтаксис - сөздерді және олардың формаларын сөз тіркесі мен сөйлемге байланыстыру, сөйлемдерді күрделі сөйлемдерге байланыстыру тәсілдері, мәтін бөлігі ретінде мәлімдеме жасау тәсілдері.

Осылайша, UML-ге қатысты семантика мен синтаксис презентация үшін табиғи және формальды тілдерді біріктіретін презентация стилін (модель құру) анықтайды. негізгі ұғымдар(үлгінің элементтері) және оларды кеңейту механизмдері.

11.3. UML белгісі

Белгілеу – семантиканың оның көрнекі түрде бейнеленуі үшін графикалық интерпретациясы.

UML үш анықтайды нысан түрі :

Құрылымдық – концептуалды немесе физикалық объектінің көрінісі болып табылатын абстракция;

Топтастыру – диаграмма элементтерінің кейбір семантикалық ассоциациясы үшін қолданылатын элемент;

Түсіндірме (аннотация) – диаграмма элементіне түсініктеме.

Келесі кестеде көрсетілген қысқаша сипаттамасыграфикалық белгілерде қолданылатын негізгі нысандар және оларды бейнелеудің негізгі тәсілдері.

11.1-кесте. Эссенциялар

А түрі Аты Белгілеу Анықтама (семантика)
Құрылымдық
(сынып)
Көптеген нысандар бар жалпы құрылымжәне мінез-құлық

(нысан)
Нақты анықталған концептуалды шекаралары, даралығы (тұлғасы), күйі және мінез-құлқы бар нақты немесе ойдан шығарылған болмыстың абстракциясы. UML көзқарасы бойынша, нысандар класс даналары (нысан даналары)

(актер)

инженер
жол қызметтері
Жүйемен өзара әрекеттесетін және белгілі бір мақсаттарға жету немесе белгілі бір мәселелерді шешу үшін оның функционалдығын пайдаланатын жүйеден тыс нысан. Осылайша, актер сыртқы ақпарат көзі немесе қабылдаушы болып табылады.

(қолдану жағдайы)
Актер үшін маңызды нәтижеге әкелетін жүйемен орындалатын әрекеттердің сипаттамасы

(мемлекет)
Нысан өмірінің қандай да бір шартты қанағаттандыратын, қандай да бір әрекетті орындайтын немесе қандай да бір оқиғаның орын алуын күтетін сәтінің сипаттамасы.
Ынтымақтастық
(ынтымақтастық)
Белгілі бір мәселені шешу процесінде субъектілердің, объектілердің және олардың өзара әрекеттесуінің даналарының жиынтығының сипаттамасы

(компонент)
Жүйенің (файлдың) физикалық бөлігі, оның ішінде интерфейстердің дәйекті жиынтығын жүзеге асыруды қамтамасыз ететін жүйелік модульдер

(интерфейс)

iCalculation
Класс немесе құрамдас ұсынатын қызметті (қызметтердің жиынтығын) анықтайтын операциялар жиынтығы

(түйін)
Мәселені шешу үшін ресурстарды қамтамасыз ететін жүйенің физикалық бөлігі (компьютер, принтер және т.б.).
Топтастыру
(пакет)
Элементтерді топтастырудың жалпы механизмі.
Компоненттен айырмашылығы, бума таза концептуалды (абстрактілі) ұғым. Буманың ерекше жағдайлары жүйе және модель болып табылады

(үзінді)
Актер мен объект инстанцияларының спецификалық өзара әрекеттесу аймағы

(әрекеттер бөлімі)
Бір субъекті (актер, объект, құрамдас бөлік, түйін және т.б.) орындайтын операциялар тобы (жауапкершілік саласы).

(үзіліс әрекет аймағы)
Қалыпты орындалу реттілігі әдеттен тыс жағдай нәтижесінде үзілуі мүмкін операциялар тобы
түсіндірме Ескерту
(түсініктеме)
Элемент түсініктемесі. Түсініктеме берілген элементке үзік сызықпен бекітілген

Кейбір көздер, атап айтқанда [ , ], мінез-құлық субъектілерін де ажыратады өзара әрекеттесулержәне мемлекеттік машиналар, бірақ логикалық тұрғыдан олар диаграммалар ретінде жіктелуі керек.

Жоғарыда аталған нысандардың кейбіреулері олардың ыдырау диаграммаларында егжей-тегжейлі сипаттамасын білдіреді. Жоғарғы деңгейдегі диаграммада олар арнайы белгішемен немесе белгімен белгіленген.

Төмендегі кесте әрбір түрді сипаттайды қарым-қатынастар UML нысандар арасындағы қарым-қатынастарды көрсету үшін диаграммаларда қолданылады.

11.3-кесте. Қарым-қатынас

Аты Белгілеу Анықтама (семантика)
Қауымдастық Сипаттайтын қатынас маңызды байланысекі немесе одан да көп субъектілер арасында. Көпшілігі жалпы формасықатынас
Агрегация Бірлестіктің "бөлік"-"тұтас" қатынасын сипаттайтын ішкі түрі, онда "бөлік" "бүтіннен" бөлек болуы мүмкін. Ромб «бүтін» жағынан көрсетілген. Қатынас тек бір түрдегі нысандар арасында ғана көрсетіледі
Құрамы «Бөлшектері» «бүтіннен» бөлек өмір сүре алмайтын біріктірудің кіші түрі. Әдетте, «бөліктер» «бүтінмен» бір мезгілде жасалады және жойылады.
Тәуелділік Бір нысандағы (тәуелсіз) өзгеріс басқа субъектінің (тәуелді) күйіне немесе мінез-құлқына әсер етуі мүмкін екі нысан арасындағы қатынас. Көрсеткі жағында тәуелсіз нысан көрсетілген
Жалпылау Жалпыланған тұлға (ата-ана, ата-ана) мен арнайы тұлға (бала, қыз) арасындағы қатынас. Үшбұрыш ата-ана жағынан көрсетілген. Қатынас тек бір түрдегі нысандар арасында ғана көрсетіледі
Іске асыру Бір ұйым басқа ұйым орындауға міндеттенетін әрекетті көрсететін субъектілер арасындағы қатынас. Қарым-қатынастар екі жағдайда қолданылады: интерфейстер мен сыныптар (немесе құрамдас бөліктер), пайдалану жағдайлары мен бірлескен әрекеттер арасында. Көрсеткі жағы әрекетті анықтайтын нысанды көрсетеді (интерфейс немесе пайдалану жағдайы)

Ассоциация, жинақтау және композиция үшін көрсетуге болады көптік (Ағылшынша мультипликация), ол қатынасқа қатысатын субъектілердің даналарының жалпы санын сипаттайды. Ол, әдетте, сәйкес субъектінің жанында қатынастың әр жағында көрсетіледі. Көпшілікті келесі жолдармен анықтауға болады:

- * - даналардың кез келген саны, оның ішінде ешқайсысы да;

Теріс емес бүтін сан – көбейтіндісі қатаң бекітілген және көрсетілген санға тең (мысалы: 1, 2 немесе 5);

«бірінші сан.. екінші сан» теріс емес бүтін сандар ауқымы (мысалы: 1..5, 2..10 немесе 0..5);

Нақты бастапқы мәннен ерікті соңғы «бірінші сан..*» дейінгі сандар ауқымы (мысалы: 1..*, 5..* немесе 0..*);

Теріс емес бүтін сандарды және үтірмен бөлінген ауқымдарды санау (мысалы: 1, 3..5, 10, 15..*).

Егер көптік көрсетілмесе, онда оның мәні 1 деп қабылданады. Тәуелділікке, жалпылауға және іске асыруға қатысатын нысан даналарының көптігі әрқашан 1 деп қабылданады.

Төмендегі кестеде сипаттама берілген кеңейту механизмдері тұлғалар мен қатынастардың семантикасын нақтылау үшін қолданылады. Жалпы алғанда, кеңейту механизмі жақшаға немесе тырнақшаға алынған мәтін тізбегі болып табылады.

11.4-кесте. Кеңейту механизмдері

Аты Белгілеу Анықтама (семантика)
Стереотип
(стереотип)
« » Белгілеу элементінің семантикасын көрсететін белгілеу (мысалы: «қосу» стереотипі бар тәуелділік қосу қатынасы ретінде қарастырылады, ал «шек» стереотипі бар класс шекаралық класс)
күзет жағдайы
(қорғау жағдайы)
Логикалық шарт (мысалы: немесе [сәйкестендіру орындалды])
Шектеу
(шектеу)
{ } Үлгі элементінің семантикасын шектейтін ереже (мысалы, (орындау уақыты 10 мс-тен аз))
Белгіленген мән
(белгіленген мән)
{ } Жаңа немесе білікті белгілеу элементінің қасиеті (мысалы: (нұсқа = 3.2))

Тырнақшадағы мәтін жолы ретінде көрсетілген стереотиптерден басқа, диаграммаларда графикалық стереотиптерді пайдалануға болады. Төмендегі суретте стандартты және стереотиптік карта жасау мысалдары көрсетілген.

а) стандартты белгілеу б) стандартты белгілеу
мәтін стереотипімен
в) графикалық стереотип

Күріш. 11.2. Стандартты және стереотиптік класс картасының мысалдары

Диаграмма әзірленіп жатқан ақпараттық жүйенің кейбір аспектілерін көрсету үшін белгілеу элементтерінің топтамасы болып табылады. Диаграммалар әдетте байланысқан график болып табылады, онда нысандар төбелер және қатынастар доғалар болып табылады. Келесі кесте береді қысқаша сипаттамасы UML диаграммалары.

11.5-кесте. Диаграммалар

Диаграмма Мақсат
физикалық іске асыру дәрежесіне қарай динамикасын көрсету арқылы көрсетілетін аспект бойынша

(қолдану жағдайы)
Жүйе функцияларын, актерлер мен функциялардың өзара әрекетін көрсетеді логикалық статикалық функционалды

(сынып)
Класстардың, интерфейстердің және олардың арасындағы қатынастардың жиынын көрсетеді Бульдік немесе
физикалық
статикалық Функционалды ақпарат

(пакет)
Бумалар жиынын және олардың қарым-қатынастарын көрсетеді Бульдік немесе
физикалық
статикалық Құрамдас
мінез-құлық
(мінез-құлық)

(мемлекеттік машина)
Нысан күйлерін және өмірлік циклі кезінде олардың арасындағы ауысуларды көрсетеді логикалық Динамикалық мінез-құлық

(белсенділік)
Жүйедегі бизнес-процестерді көрсетеді (мінез-құлық алгоритмдерінің сипаттамасы)
Өзара әрекеттесулер
(өзара әрекеттесу)

(жүйелі)
Объектілер мен актерлер арасында хабар алмасу ретін көрсетеді

(байланыс)
Реттілік диаграммасына ұқсас, бірақ негізгі назар объектілер арасындағы өзара әрекеттесу құрылымына аударылады
Іске асыру
(іске асыру)

(компонент)
Жүйе компоненттерін (бағдарламалар, кітапханалар, кестелер және т.б.) және олардың арасындағы сілтемелерді көрсетеді Физикалық статикалық Құрамдас

(орналастыру)
Желілік түйіндер бойынша компоненттердің орналасуын, сондай-ақ оның конфигурациясын көрсетеді

UML 2.x стандарты сонымен қатар қосымша, жоғары мамандандырылған диаграммаларды анықтайды:

Объект диаграммасы (объект диаграммасы) – ұқсас, бірақ сыныптардың орнына объектілер көрсетіледі;

Уақыт диаграммасы – объектінің уақыт бойынша күйін сипаттайды;

Құрама құрылым диаграммасы - басқа класстармен әрекеттесу үшін кластың порттарын (соның ішінде интерфейстерді) сипаттайды;

Профиль диаграммасы (профиль диаграммасы) - оларға кіретін сыныптардың сипаттамасына ұқсас;

Өзара әрекеттестікке шолу диаграммасы - ұқсас, бірақ жасырын әрекеттесу фрагменттері бар (ref белгісі бар фрагменттер). Бұл контекстік (концептуалды), оның элементтері бөлек декомпозиция диаграммаларында нақтыланатын болады.

Жүйенің ішкі архитектурасының концептуалды көрінісін кеңейту үшін құрылыстың көпшілігі деп аталатындар үшін жақсы бекітілген графикалық стереотиптерді пайдалануға мүмкіндік береді. Мұндай диаграмма 1 деп аталады, бірақ UML стандартымен анықталған диаграммалар тізіміне жатпайды.

Жеке жүйе моделін жасау кезінде диаграммалардың бірнеше түрі құрастырылады. Сонымен қатар, күрделі жүйенің моделін жасау кезінде, әдетте, бір типтегі бірнеше диаграммалар салынады. Сонымен қатар, қажет болмаса, бөлек диаграмма көріністерін жасаудың қажеті жоқ. Мысалы, диаграммалар және бір-бірін алмастыруға болады, олар тек күрделі әрекеті бар нысандар үшін құрастырылған. Келесі кестеде жүйелік модельдер үшін диаграммаларды әзірлеу (нақтылау) қажеттілігі туралы ұсыныстар берілген.

11.6-кесте. Модельдер мен диаграммаларды байланыстыру

Жоғарыда келтірілген кестеде тестілеу үлгісі көрсетілмеген, өйткені оның құрылысы шеңберінде диаграммалар әзірленбеген, бірақ толықтығы мен сәйкестігі тексеріледі (сыналады).

Диаграммалардың бір бөлігі оларды құрастырғаннан кейін келесі үлгіні әзірлеу бөлігі ретінде әзірлеуді және нақтылауды талап етеді ( технологиялық процесс). Мәселен, әзірлеу кезінде нақтылау керек. үлгілерде.

4. «» терминіне анықтама беріңіз.

UML қазір 1997 жылдың күзінде Object Managing Group (OMG) қабылдаған және көптеген объектіге бағытталған CASE өнімдерімен қолдау көрсетілетін бағдарламалық жүйелерді визуалды модельдеудің стандартты белгісі болып табылады.

UML стандарты модельдеу үшін келесі диаграммалар жинағын ұсынады:

Use case диаграммасы (us case diagram) – ұйымның немесе кәсіпорынның бизнес-процестерін модельдеу және құрылатын ақпараттық жүйеге қойылатын талаптарды анықтау үшін;

класс диаграммасы (класс диаграммасы) – жүйе кластарының статикалық құрылымын және олардың арасындағы байланыстарды модельдеу үшін;

жүйелік мінез-құлық диаграммасы (мінез-құлық диаграммалары);

өзара әрекеттесу диаграммалары;

Жүйелілік диаграммалары – бір пайдалану жағдайындағы объектілер арасындағы хабар алмасу процесін модельдеу үшін;

ынтымақтастық диаграммасы (бірлесу диаграммасы) - бір пайдалану жағдайындағы объектілер арасындағы хабар алмасу процесін модельдеу үшін;

statechart диаграммасы – бір күйден екінші күйге өту кезінде жүйе объектілерінің әрекетін модельдеуге арналған;

белсенділік диаграммасы (белсенділік диаграммасы) - шеңбердегі жүйенің әрекетін модельдеуге арналған әртүрлі опцияларпайдалану немесе модельдеу әрекеттері;

іске асыру диаграммасы (іске асыру диаграммалары):

Компоненттік диаграммалар (компоненттік диаграммалар) – ақпараттық жүйенің құрамдас бөліктерінің (ішкі жүйелерінің) иерархиясын модельдеу үшін;

орналастыру диаграммасы (deployment diagram) – жобаланған ақпараттық жүйенің физикалық архитектурасын модельдеу үшін.

Суретте. 1.1 осы курстық жобада әзірленетін негізгі диаграммаларды қамтитын ақпараттық жүйенің біріктірілген моделін ұсынады.

Күріш. 1. UML тілінің нотасындағы ақпараттық жүйенің біріктірілген моделі

4.2. Іс диаграммасын қолданыңыз

Қолдану жағдайы – бұл қандай да бір сыртқы объект (актер) іске қосқан оқиғаға жауап ретінде жүйе орындайтын әрекеттер тізбегі. Пайдалану жағдайы пайдаланушы мен жүйе арасындағы әдеттегі әрекеттесуді сипаттайды. Ең қарапайым жағдайда қолдану жағдайы пайдаланушымен осы ақпараттық жүйеде іске асырғысы келетін функцияларды талқылау процесінде анықталады. UML тілінде пайдалану жағдайы келесідей бейнеленген:

2-сурет. Қолдану жағдайы

Актер – пайдаланушының жүйеге қатысты атқаратын рөлі. Актерлер нақты адамдарды немесе лауазымдарды емес, рөлдерді білдіреді. Олар қолданыс диаграммаларында стильдендірілген адам фигуралары ретінде бейнеленгенімен, актер сыртқы болуы мүмкін. ақпараттық жүйе, ол берілген жүйеден кейбір ақпаратты қажет етеді. Сіз актерлерді диаграммада кейбір пайдалану жағдайлары қажет болғанда ғана көрсетуіңіз керек. UML тілінде актерлер пішіндер ретінде ұсынылған:



3-сурет. Кейіпкер (актер)

Актерлер үш негізгі түрге бөлінеді:

Пайдаланушылар

жүйелер;

Осы жүйемен әрекеттесетін басқа жүйелер;

Жүйедегі кез келген оқиғалардың іске қосылуы соған байланысты болса, уақыт актер болады.

4.2.1. Қолдану жағдайлары мен актерлер арасындағы байланыстар

UML тілінде пайдалану жағдайлары диаграммалары диаграмма элементтері арасындағы байланыстың бірнеше түрін қолдайды:

Байланыс (коммуникация),

Қосылу (қосу),

ұзарту (ұзарту),

жалпылау.

коммуникациялық байланысқолдану жағдайы мен актер арасындағы қатынас болып табылады. UML тілінде байланыс сілтемелері бір жақты байланыс (тұтас сызық) арқылы көрсетіледі.

4-сурет. Байланыс байланысының мысалы

Қосылу байланысыбірнеше пайдалану жағдайында қайталанатын жүйе әрекетінің кейбір бөлігі бар жағдайларда қолданылады. Мұндай сілтемелердің көмегімен әдетте қайта пайдалануға болатын функция модельденеді.

Кеңейтім қосылымыжүйенің қалыпты әрекетіндегі өзгерістерді сипаттау үшін қолданылады. Ол қажет кезде бір пайдалану жағдайына басқа пайдалану жағдайының функционалдығын пайдалануға мүмкіндік береді.

5-сурет. Қосу және кеңейту қатынасының мысалы

Коммуникацияны жалпылаубірнеше актерлердің немесе сыныптардың ортақ қасиеттері бар екенін көрсетеді.

6-сурет. Жалпылау қатынасының мысалы

4.3.



Өзара әрекеттесу диаграммаларыөзара әрекеттесетін объектілер топтарының әрекетін сипаттау. Әдетте, өзара әрекеттесу диаграммасы тек бір пайдалану жағдайындағы нысандардың әрекетін қамтиды. Мұндай диаграмма бірқатар объектілерді және олардың бір-бірімен алмасатын хабарламаларын көрсетеді.

хабаржіберуші объектінің қабылдаушы объектіге өзінің операцияларының бірін орындауды сұрайтын құрал болып табылады.

Ақпараттық (ақпараттық) хабарламақабылдау объектісін оның күйін жаңарту үшін кейбір ақпаратпен қамтамасыз ететін хабарлама болып табылады.

Сұраныс хабарламасы (сұраулы)алушы нысаны туралы кейбір ақпаратты шығаруды сұрайтын хабарлама.

Императивті хабарламақабылдаушыдан қандай да бір әрекетті орындауды сұрайтын хабарлама.

Өзара әрекеттесу диаграммаларының екі түрі бар: реттілік диаграммалары және ынтымақтастық диаграммалары.

4.3.1. Тізбек диаграммалары

реттілік диаграммасыбір пайдалану жағдайында орын алатын оқиғалар ағынын көрсетеді.

Берілген сценарийге (пайдалану жағдайына) қатысатын барлық актерлер (актерлер, сыныптар немесе нысандар) диаграмманың жоғарғы жағында көрсетілген. Көрсеткілер актер мен нысан арасында немесе қажетті функцияларды орындау үшін нысандар арасында жіберілетін хабарламаларға сәйкес келеді.

Реттілік диаграммасында нысан тіктөртбұрыш ретінде бейнеленген, одан нүктелі тік сызық төмен қарай тартылады. Бұл сызық деп аталады объектінің өмірлік сызығы . Бұл өзара әрекеттесу процесіндегі объектінің өмірлік циклінің фрагменті.

Әрбір хабарлама екі нысанның өмірлік сызықтары арасындағы көрсеткі ретінде көрсетіледі. Хабарламалар бетте жоғарыдан төменге қарай пайда болу ретімен көрсетіледі. Әрбір хабар кем дегенде хабарлама атымен белгіленеді. Қосымша түрде дәлелдер мен кейбір басқару ақпаратын қосуға болады. Өзін-өзі тапсыруды, нысан өзіне жіберетін хабарды, хабар көрсеткісі сол өмір сызығын көрсетеді.

Күріш. 7. Тізбек диаграммасының мысалы

4.3.2. Ынтымақтастық диаграммасы

Ынтымақтастық диаграммаларынақты сценарийдегі оқиғалар ағынын көрсету (пайдалану жағдайы). Бірлескен жұмыс диаграммалары нысандар арасындағы қарым-қатынастарға көбірек назар аударғанымен, хабарлар уақыт бойынша реттелген. Ынтымақтастық диаграммасы реттілік диаграммасы бар барлық ақпаратты көрсетеді, бірақ бірлесіп жұмыс істеу диаграммасы оқиғалар ағынын басқа жолмен сипаттайды. Одан объектілер арасындағы байланыстарды түсіну оңайырақ.

Ынтымақтастық диаграммасында, реттілік диаграммасындағы сияқты, көрсеткілер берілген пайдалану жағдайында алмасатын хабарларды білдіреді. Олардың уақыт реті хабарламаларды нөмірлеу арқылы көрсетіледі.

Күріш. 8. Ынтымақтастық диаграммасының мысалы

4.4. сынып диаграммасы

4.4.1. Негізгі ақпарат

сынып диаграммасыЖүйе класстарының түрлерін және олардың арасында бар статикалық байланыстардың әртүрлі түрлерін анықтайды. Класс диаграммалары сонымен қатар класс атрибуттарын, сынып операцияларын және сыныптар арасындағы қатынастарға қойылған шектеулерді көрсетеді.

UML тіліндегі класс диаграммасы – бұл график, оның түйіндері жобаның статикалық құрылымының элементтері (сыныптар, интерфейстер), ал доғалар түйіндер арасындағы байланыстар (ассоциациялар, мұрагерлік, тәуелділіктер).

Сынып диаграммасы келесі элементтерді көрсетеді:

· Пакет (пакет) – бір-бірімен логикалық байланысқан модель элементтерінің жиынтығы;

· Класс (класс) – ұқсас объектілер тобының ортақ қасиеттерін сипаттау;

· Интерфейс (интерфейс) – берілген интерфейспен байланысқан ерікті класс объектісі басқа объектілерге беретін операциялар жиынтығын анықтайтын абстрактілі класс.

4.4.2. Сынып

Сыныпұқсас қасиеттері бар нысандар (нысандар) тобы, атап айтқанда деректер мен мінез-құлық. Класстың жеке мүшесі класс объектісі немесе жай ғана объект деп аталады.

UML тіліндегі нысанның әрекеті нысанның өзара әрекеттесуінің кез келген ережелерін білдіреді сыртқы әлемжәне объектінің деректерімен.

Диаграммаларда сынып көлденең сызықтармен 3 бөлікке бөлінген тұтас шекарасы бар тіктөртбұрыш ретінде бейнеленген:

Жоғарғы бөлімде (атау бөлімі) сынып атауы және басқа да жалпы сипаттар (атап айтқанда, стереотип) бар.

Ортаңғы бөлімде атрибуттар тізімі бар

Төменгі жағында оның тәртібін көрсететін сынып операцияларының тізімі (сынып орындайтын әрекеттер).

Төлсипат пен операция бөлімдерінің ешқайсысы көрсетілмеуі мүмкін (немесе екеуі де). Жетіспейтін бөлім үшін бөлу сызығын салудың қажеті жоқ және қандай да бір түрде ондағы элементтердің бар немесе жоқтығын көрсету керек.

Ерекшеліктер сияқты қосымша бөлімдер белгілі бір іске асырудың қалауы бойынша енгізілуі мүмкін.

Күріш. 9. Класс диаграммасының мысалы

4.4.2.1.Сынып стереотиптері

Класстарды стереотиптеу – класстарды категорияларға бөлу механизмі.

UML үш негізгі класс стереотиптерін анықтайды:

шекара (шекара);

Субъект (субъект);

Бақылау (басқару).

4.4.2.2.Шекаралық сыныптар

Шекаралық класстар - бұл жүйенің және бүкіл ортаның шекарасында орналасқан сыныптар. Бұл дисплейлер, есептер, аппараттық құралдармен интерфейстер (принтерлер немесе сканерлер сияқты) және басқа жүйелермен интерфейстер.

Шекаралық сыныптарды табу үшін пайдалану жағдайлары диаграммаларын зерттеу керек. Актер мен пайдалану жағдайының арасындағы әрбір әрекеттестікте кем дегенде бір шекаралық класс болуы керек. Дәл осы класс актердің жүйемен әрекеттесуіне мүмкіндік береді.

4.4.2.3.Нысан сыныптары

Нысан кластары сақталған ақпаратты қамтиды. Олар пайдаланушы үшін ең үлкен мағынаға ие, сондықтан олардың атаулары көбінесе тақырыптық аймақтағы терминдерді пайдаланады. Әдетте, әрбір нысан класы үшін дерекқорда кесте жасалады.

4.4.2.4.Бақылау сабақтары

Бақылау сыныптары басқа сыныптардың әрекеттерін үйлестіруге жауапты. Әдетте, әрбір пайдалану жағдайында сол пайдалану жағдайына арналған оқиғалар тізбегін басқаратын бір басқару класы болады. Басқару класы үйлестіру үшін жауап береді, бірақ басқа сыныптар оны жібермейтіндіктен, өз бетінше ешқандай функционалдылықты қамтамасыз етпейді. үлкен санхабарлар. Оның орнына өзі көп хабарлама жібереді. Менеджер класы жай ғана жауапкершілікті басқа сыныптарға береді, сондықтан оны жиі менеджерлер класы деп атайды.

Жүйеде бірнеше пайдалану жағдайларына ортақ басқа басқару сыныптары болуы мүмкін. Мысалы, қауіпсіздікке қатысты оқиғаларды бақылауға жауапты SecurityManager сыныбы болуы мүмкін. TransactionManager сыныбы дерекқор транзакцияларына қатысты хабарларды үйлестіруді өңдейді. Ресурстарды ортақ пайдалану, таратылған деректерді өңдеу немесе қателерді өңдеу сияқты жүйе жұмысының басқа элементтерімен айналысатын басқа менеджерлер болуы мүмкін.

Жоғарыда айтылған стереотиптерден басқа, сіз өзіңізді жасай аласыз.

4.4.2.5.Атрибуттар

Атрибут класспен байланысты ақпарат бөлігі болып табылады. Атрибуттар инкапсуляцияланған класс деректерін сақтайды.

Атрибуттар сынып ішінде болғандықтан, олар басқа сыныптардан жасырылады. Осыған байланысты қандай сыныптардың атрибуттарды оқуға және өзгертуге құқығы бар екенін көрсету қажет болуы мүмкін. Бұл сипат атрибуттың көрінуі деп аталады.

Атрибуттың осы параметр үшін төрт мүмкін мәні болуы мүмкін:

Қоғамдық (жалпы, ашық). Бұл көріну мәні төлсипат барлық басқа сыныптарға көрінетін болады деп болжайды. Кез келген класс атрибуттың мәнін көре немесе өзгерте алады. Белгіге сәйкес UML жалпыатрибуттың алдында «+» белгісі қойылады.

Жеке (жабық, құпия). Сәйкес төлсипат ешбір басқа сыныпқа көрінбейді. Жеке атрибут UML белгісіне сәйкес «-» белгісімен белгіленеді.

Қорғалған (қорғалған). Мұндай атрибут тек сыныптың өзіне және оның ұрпақтарына ғана қолжетімді. Қорғалған төлсипатқа арналған UML белгісі «#» таңбасы болып табылады.

Пакет немесе іске асыру (пакет). Берілген төлсипат ортақ, бірақ тек оның бумасында ғана деп есептейік. Көрінудің бұл түрі ешқандай арнайы белгішемен көрсетілмейді.

Жабық немесе қауіпсіздік көмегімен атрибут мәнін жүйенің барлық кластары өзгертетін жағдайды болдырмауға болады. Оның орнына атрибутты өзгерту логикасы атрибуттың өзі сияқты сыныпқа оралады. Сіз орнатқан көріну опциялары жасалған кодқа әсер етеді.

4.4.2.6.Операциялар

Операциялар сыныпқа қатысты мінез-құлықты жүзеге асырады. Операция үш бөліктен тұрады - атау, параметрлер және қайтару түрі.

Параметрлер операция кіріс ретінде алатын аргументтер болып табылады. Қайтару түрі операция әрекетінің нәтижесіне сілтеме жасайды.

Класс диаграммасы амалдардың атауларын да, олардың параметрлері мен қайтару түрін де көрсете алады. Диаграммадағы жүктемені азайту үшін олардың кейбіреулерінде тек операциялардың атауларын, ал басқаларында олардың толық қолтаңбасын көрсету пайдалы.

UML тілінде операциялар келесі белгілерге ие:

Операция атауы (аргумент: аргумент деректер түрі, аргумент2: аргумент2 деректер түрі,...): қайтару түрі

Төртеу бар әртүрлі түрлеріоперациялар:

Іске асыру операциялары;

Басқару операциялары;

Қол жеткізу операциялары;

Көмекші операциялар.

Іске асыру операциялары

Орындаушы операциялар кейбір бизнес функцияларын орындайды. Мұндай операцияларды өзара әрекеттесу диаграммаларын зерттеу арқылы табуға болады. Осы түрдегі диаграммалар іскери функцияларға бағытталған және диаграммадағы әрбір хабарлама, ең алдымен, іске асыру әрекетімен байланысты болуы мүмкін.

Әрбір іске асыру операциясы сәйкес талапқа оңай қадағалануы керек. Бұл модельдеудің әртүрлі кезеңдерінде қол жеткізіледі. Операция әрекеттесу диаграммасындағы хабарламадан алынады, хабарламалар одан келеді егжей-тегжейлі сипаттамапайдалану жағдайына негізделген оқиғалар ағыны, ал соңғысы талаптарға негізделген. Осы бүкіл тізбекті қадағалай алу әрбір талаптың кодта орындалатынын және кодтың әрбір бөлігі кейбір талаптарды орындайтынын қамтамасыз етуге мүмкіндік береді.

Басқару операциялары

Менеджер операциялары объектілерді құру мен жоюды басқарады. Класс құрастырушылар мен деструкторлар осы санатқа жатады.

Қол жеткізу операциялары

Атрибуттар әдетте жеке немесе қорғалған. Дегенмен, басқа сыныптар кейде өз мәндерін қарауы немесе өзгертуі қажет. Бұл үшін кіру операциялары бар. Бұл тәсіл класс ішіндегі атрибуттарды қауіпсіз инкапсуляциялауға мүмкіндік береді, оларды басқа сыныптардан қорғайды, бірақ әлі де оларға басқарылатын қол жеткізуге мүмкіндік береді. Сыныптың әрбір төлсипаты үшін Get және Set әрекеттерін жасау (мәнді алу және өзгерту) стандарт болып табылады.

Көмекші операциялар

Көмекші (көмекші операциялар) - бұл сыныптың өз міндеттерін орындауы үшін қажетті, бірақ басқа сыныптар туралы ештеңе білмеуі керек операциялар. Бұл жеке және қорғалған класс операциялары.

Транзакцияларды анықтау үшін келесі әрекеттерді орындаңыз:

1. Тізбектік диаграммаларды және кооперативтік диаграммаларды оқу. Бұл диаграммалардағы хабарламалардың көпшілігі іске асыру операциялары болып табылады. Рефлексиялық хабарламалар көмекші операциялар болады.

2. Басқару операцияларын қарастырыңыз. Конструкторлар мен деструкторларды қосу қажет болуы мүмкін.

3. Қол жеткізу операцияларын қарастырыңыз. Басқа сыныптар жұмыс істеуі қажет әрбір сынып атрибуты үшін Get және Set әрекеттерін жасау керек.

4.4.2.7.Қосылымдар

Қарым-қатынас дегеніміз – таптар арасындағы мағыналық қатынас. Ол сыныпқа басқа сыныптың атрибуттары, әрекеттері және қарым-қатынастары туралы білуге ​​мүмкіндік береді. Басқаша айтқанда, бір сынып екіншісіне хабарламаны реттілікпен немесе кооперативтік диаграммада жіберу үшін олардың арасында байланыс болуы керек.

Сыныптар арасында орнатуға болатын қарым-қатынастардың төрт түрі бар: ассоциациялар, тәуелділіктер, жинақтаулар және жалпылау.

Коммуникациялық бірлестік

Ассоциация – бұл таптар арасындағы мағыналық қатынас. Олар класс диаграммасында кәдімгі сызық ретінде сызылады.

Күріш. 10. Коммуникациялық бірлестік

Ассоциациялар мысалдағыдай екі жақты немесе бір бағытты болуы мүмкін. UML тілінде екі жақты ассоциациялар көрсеткілері жоқ немесе сызықтың екі жағындағы көрсеткілері бар қарапайым сызық ретінде сызылады. Бір бағытты қауымдастықта оның бағытын көрсететін бір ғана көрсеткі болады.

Бірлестіктің бағытын реттілік диаграммалары мен кооперативтік диаграммаларды зерттеу арқылы анықтауға болады. Егер олардағы барлық хабарламаларды тек бір класс жіберіп, тек басқа класс қабылдайтын болса, бірақ керісінше болмаса, бұл кластар арасында бір бағытты байланыс болады. Кем дегенде бір хабарлама қарама-қарсы бағытта жіберілсе, байланыс екі жақты болуы керек.

Ассоциациялар рефлексивті болуы мүмкін. Рефлексиялық ассоциация класстың бір данасы бір сыныптың басқа даналарымен әрекеттесетінін білдіреді.

Қарым-қатынасқа тәуелділік

Тәуелділік қатынастары сыныптар арасындағы қатынасты да көрсетеді, бірақ олар әрқашан бір бағытты болады және бір класс басқасында жасалған анықтамаларға тәуелді екенін көрсетеді. Мысалы, А класы В класының әдістерін қолданады. Содан кейін В класы өзгерген кезде, А класына сәйкес өзгерістер енгізу қажет.

Тәуелділік екі диаграмма элементтері арасында сызылған үзік сызықпен көрсетіледі және көрсеткінің соңында бекітілген элемент сол көрсеткінің басында бекітілген элементке тәуелді деп айтылады.

Күріш. 11. Қарым-қатынасқа тәуелділік

Осы сыныптар үшін кодты жасау кезінде оларға ешқандай жаңа атрибуттар қосылмайды. Дегенмен, байланысты қолдау үшін қажетті тілге тән операторлар құрылады.

Коммуникацияны біріктіру

Агрегациялар қауымдастықтың неғұрлым қатаң нысаны болып табылады. Агрегация – бүтін мен оның бөлігі арасындағы байланыс. Мысалы, сізде Автокөлік сыныбы, сонымен қатар Қозғалтқыш, Шина сыныптары және басқа көлік бөлшектеріне арналған сыныптар болуы мүмкін. Нәтижесінде Car класының нысаны Engine класының объектісінен, Тирлердің төрт нысанынан және т.б. тұрады. Агрегациялар бүтін класс үшін ромбпен сызық ретінде бейнеленген:

Күріш. 11. Коммуникацияларды біріктіру

Қарапайым біріктіруден басқа, UML композиция деп аталатын біріктірудің күшті түрін енгізеді. Құрамы бойынша объект-бөлік біртұтас бүтінге ғана тиесілі болуы мүмкін, сонымен қатар, әдетте, бөліктердің өмірлік циклі тұтастың циклімен сәйкес келеді: олар онымен бірге өмір сүреді және өледі. Тұтастың кез келген жойылуы оның бөліктеріне таралады.

Бұл каскадты жою жиі біріктіру анықтамасының бөлігі болып саналады, бірақ ол рөлдердің көптігі 1..1 болғанда әрқашан тұспалданады; мысалы, егер Тұтынушыны жою қажет болса, онда бұл жою Тапсырыстарға (және, өз кезегінде, Тапсырыс жолдары) таралуы керек.

Бір объектінің өмір сүру уақытындағы әрекетін, объектіні жасаудан бастап оның жойылуына дейін көрсетіңіз. Әрбір күй диаграммасы кейбір автоматтарды көрсетеді.

Әрекет ету жоспары

Сипаттама бөлімінде диаграммаларды оқу мүмкіндігіне қажет негізгі күй диаграммасының таңбалар жиыны туралы біліңіз.

Басқа бөлімдерді («Мысал», «Қолдану») оқығаннан кейін, күй диаграммаларын өз бетіңізше құруға тырысуға болады.

Ескертулер (сипаттама)

Міне, басты кейіпкерлер жиынтығы күй диаграммаларыдиаграмманы оқи білу керек. Басқа бөлімдерді («Мысал», «Қолданба») оқығаннан кейін сіз құрастыра аласыз күй диаграммаларыөз бетінше!

Мерзімі Сурет Сипаттама
Бастапқы псевдостат Жүйенің бастапқы күйі
Өтпелі Өту дегеніміз бір күйден екінші күйге көшу.
Мемлекет Жүйе орындайтын әрекеттерді көрсетеді (мүмкін ықтимал опциялар) актерлер бақылаған нәтижелерге әкеледі.
Мемлекет
белсенділік жағдайы
Қолдану жағдайындағы қиын қадам басқа пайдалану жағдайымен ұсынылуы мүмкін.
UML терминдерінде біз бірінші қолдану жағдайына екіншісі кіреді деп айтамыз.
Соңғы күй Жүйелердің немесе ішкі жүйелердің шекараларын белгілеуге мүмкіндік береді.
Ішкі әрекеттер Күйлер оқиғаларға ауысусыз жауап бере алатын жағдай, бұл жағдайда оқиға, күзет және белсенділік күй тіктөртбұрышының ішіне орналастырылады.
енгізу әрекеті Енгізу әрекеті күйге кірген сайын орындалады
шығару қызметі Шығу әрекеті – штаттан шыққан сайын орындалады.
супермемлекет
Бірнеше мемлекеттердің ортақ ауысулары мен ішкі әрекеттері жиі кездеседі. Мұндай жағдайларда сіз оларды қосалқы күйге (қосалқы күйге) айналдыра аласыз және жалпы әрекетті суперкүйге (жоғарғы күйге) ауыстыра аласыз.
Параллель мемлекеттер
Күйлерді бір уақытта жұмыс істейтін бірнеше қатарлас күйлерге бөлуге болады.

Шығармашылық техниканы қалай қолдануға болады

UML күй диаграммалары бірнеше пайдалану жағдайларында бір нысанның әрекетін сипаттау үшін жақсы. Бірақ олар көптеген объектілердің өзара әрекеттесуімен сипатталатын мінез-құлықты сипаттау үшін өте қолайлы емес. Сондықтан күй диаграммаларымен бірге басқа технологияларды қолданудың мәні бар. Мысалы, өзара әрекеттесу диаграммалары (4-тарау) бір пайдалану жағдайында бірнеше нысандардың әрекетін сипаттауда тамаша, ал UML әрекет диаграммалары бірнеше пайдалану жағдайында бірнеше объектілердің негізгі әрекеттер тізбегін көрсету үшін жақсы.

Күй диаграммаларын барлығы табиғи деп санамайды. Сарапшылардың олармен қалай жұмыс істейтінін қараңыз. Сіздің командаңыздың мүшелері штат диаграммалары олардың жұмыс істеу тәсіліне сәйкес келмейді деп санауы мүмкін. Бұл ең үлкен қиындық емес; әртүрлі жұмыс әдістерімен бөлісуді есте сақтау керек.

Күй диаграммаларын пайдалансаңыз, оларды жүйедегі әрбір сынып үшін салуға тырыспаңыз. Бұл тәсіл формальды қатаң толықтық үшін жиі қолданылады, бірақ бұл әрқашан дерлік күш-жігерді босқа жұмсайды. Күй диаграммаларын тек қызықты мінез-құлық көрсететін сыныптар үшін пайдаланыңыз, мұнда күй диаграммасын құру істердің қалай жүріп жатқанын түсінуге көмектеседі.

Көптеген сарапшылар бұған сенеді UI өңдегіші мен басқару нысандары күй диаграммасымен көрсетілген кезде пайдалы функционалдылыққа ие.

Қалай үйренуге болады

Мұнда біз үйренудің ең оңай жолын беруге тырыстық UML күй диаграммалары.

Көптеген басқа тілдер сияқты, ол сипаттау үшін таңбалар жинағын пайдаланады. Бұл белгілердің мағынасын «Ескертулер (сипаттама)» тарауындағы кестеден табуға болады. Әрбір белгінің өз атауы (термині) және емлесі бар. Сондай-ақ әрбір терминге оның негізгі мәнін тез түсіну үшін қысқаша түсіндірме беріледі.

Әрі қарай, біз «Мысалдар» бөліміне өтуді ұсынамыз күй диаграммаларыәртүрлі диаграммаларды оқуда қолыңызды сынап көру. Содан кейін сіз «Қолдану» бөлімін оқып шығуыңыз керек, өйткені UML-де диаграмма түрлерінің саны аз болғанымен, оларды мақсатқа сай сәйкес диаграммаларды пайдаланған жағдайда ғана оларды пайдаланудан максималды пайда алуға болады.

Қолдану мысалы

Күйлік машина диаграммаларыжүйенің әрекетін сипаттаудың белгілі әдістемесі болып табылады. Статистика диаграммалары 1960 жылдардан бері бір немесе басқа пішінде болды және объектіге бағытталған бағдарламалаудың алғашқы күндерінде олар жүйенің әрекетін көрсету үшін пайдаланылды. Нысанға-бағытталған тәсілдерде сіз оның қызмет ету уақытындағы бір нысанның әрекетін көрсету үшін бір сыныптың күй диаграммасын саласыз.

Ақырғы күй машиналары туралы жазылған кезде, круиздік бақылау жүйелері немесе сауда автоматтары сөзсіз мысал ретінде келтіріледі.
Біз Готикалық сарайдағы құпия басқару панелінің контроллерін пайдалануды шештік. Бұл құлыпта біз қазыналарымызды табу қиын болатындай етіп жасырғымыз келеді. Сейфтің құлпына қол жеткізу үшін біз шырағданнан стратегиялық шамды суырып алуымыз керек, бірақ құлып есік жабық болса ғана пайда болады. Құлып пайда болғаннан кейін біз оған кілтті салып, сейфті аша аламыз. Үшін қосымша қауіпсіздікбіз оны сейфті шырақ алып тастағаннан кейін ғана ашуға болатындай етіп жасадық. Егер ұры бұл сақтықты орындамаса, біз ұрыны жұтып қоятын сұмдық құбыжықты босатып жібереміз.

Суретте. 10.1 көрсетілген күй диаграммасыменің ерекше қауіпсіздік жүйемді басқаратын контроллер класы. Күй диаграммасы құрылатын контроллер нысанының күйінен басталады: күйлер Күте тұрыңыз. Бұл диаграммада көрсетілген бастапқы псевдостат, ол күй емес, бірақ бастапқы күйді көрсететін көрсеткі бар.
Диаграмма контроллердің үш күйдің бірінде болуы мүмкін екенін көрсетеді: Күту (күту), құлыптау (құлыптау) және ашу (ашылған). Диаграмма сонымен қатар контроллер бір күйден екінші күйге ауысатын ережелерді көрсетеді. Бұл ережелер ауысулар - күйлерді байланыстыратын сызықтар ретінде ұсынылған.

Өту дегеніміз бір күйден екінші күйге көшу. Әрбір ауысудың үш бөліктен тұратын өз белгісі бар:
триггер-идентификатор [қорғау]/белсенділік (триггер-қолтаңба /белсенділік). Олардың барлығы міндетті емес. Ереже бойынша, триггер идентификаторыкүйдің өзгеруін тудыруы мүмкін жалғыз оқиға.

Күзет, егер көрсетілген болса, көшу орын алуы үшін орындалуы керек логикалық шарт болып табылады. Белсенділік – жүйенің ауысу кезіндегі кейбір әрекеті. Бұл кез келген мінез-құлық көрінісі болуы мүмкін. Идентификатор триггерінің толық пішіні бірнеше оқиғалар мен параметрлерді қамтуы мүмкін. Күту күйінен (10.1-сурет) басқа күйге өтуді «Күту күйінде шам жойылса, сіз құлыпты көресіз және Құлыптау күйіне өтесіз» деп оқуға болады.

Өтпелі кезең сипаттамасының барлық үш бөлігі міндетті емес. Әрекетті өткізіп жіберу ауысу кезінде ештеңе болмайтынын білдіреді. Skip guards, егер іске қосу оқиғасы орын алса, көшу әрқашан орындалатынын білдіреді. Триггер идентификаторы сирек жоғалады, бірақ ол орын алады. Бұл негізінен белсенді күйлерде байқалуы мүмкін ауысудың бірден болатынын білдіреді.

Оқиға белгілі бір күйде болған кезде, бұл күйден тек бір ғана өтуге болады, мысалы, Құлыптау күйінде (10.1-сурет), қорғаныстар өзара ерекше болуы керек. Оқиға орын алса және рұқсат етілген ауысулар болмаса (мысалы, күту күйінде сейфті жабу немесе есік ашық кезде шамды алу) оқиға еленбейді.

Соңғы күй ( соңғы күй) күй машинасының жұмысын аяқтағанын білдіреді, бұл контроллер нысанының жойылуына әкеледі. Осылайша, тұзаққа түсіп кетуден сақтық танытпағандар үшін контроллер объектісі өмір сүруін тоқтатқан кезде, біз қоянды өз торына қайта салып, еденді сүртіп, жүйені қайта жүктеуге мәжбүр болдық.

Күй машиналары тек тікелей бақыланатын немесе әрекет ететін нысандарды көрсете алатынын есте сақтаңыз. Сондықтан есік ашық кезде сейфке бірдеңе саламыз немесе бірдеңе аламыз деп күтуіңіз мүмкін болса да, біз оны диаграммада белгілемедік, өйткені контроллер бұл туралы бізге ештеңе айта алмайды.

Әзірлеушілер нысандар туралы айтқанда, олар көбінесе нысандардың күйіне сілтеме жасайды, бұл нысан өрістеріндегі барлық деректердің комбинациясын білдіреді. Дегенмен, күйдің машиналық диаграммасындағы күй - күйдің абстрактілі түсінігі; Мәселе мынада: әртүрлі күйлер оқиғаларға әсер етудің әртүрлі тәсілдерін білдіреді.

Күй диаграммасындағы ішкі әрекеттер

Мемлекеттер оқиғаларға көшусіз жауап бере алады ішкі әрекеттер (ішкі әрекеттер), бұл жағдайда оқиға, күзет және белсенділік күй тіктөртбұрышының ішіне орналастырылады.

Суретте. 10.2-суретте редактордың мәтіндік өрістерінде байқауға болатын ішкі таңба әрекеттері мен анықтамалық жүйе оқиғалары бар күй көрсетілген. UI. Ішкі белсенділік өзіндік ауысу сияқты – сол күйге қайтатын ауысу. Ішкі әрекеттердің синтаксисі оқиғалардың, қорғаулардың және процедуралардың бірдей логикалық схемасына сәйкес құрылады.

Суретте. 10.2 сондай-ақ арнайы әрекеттерді көрсетеді: енгізу және шығару әрекеттері. енгізу әрекетімемлекетке кірген сайын орындалады; шығару қызметі– мемлекеттен шыққан сайын. Дегенмен, ішкі әрекеттер басталмайды енгізу және шығару қызметі; арасындағы айырмашылық осы ішкі қызмет жәнеөздігінен ауысулар .

Күй диаграммасындағы әрекет күйлері

Біз осы уақытқа дейін сипаттаған күйлерде нысан үнсіз және ештеңе жасамас бұрын келесі оқиғаны күтеді. Дегенмен, объект белгілі бір белсенділікті көрсететін күйлер болуы мүмкін.

Мемлекет Іздеукүріште. 10.3 - осындай күй белсенділік жағдайы: ағымдағы әрекет таңбамен көрсетіледі істеу/; сондықтан термин әрекет жасау (белсенді болыңыз). Іздеу аяқталғаннан кейін жаңа жабдықты көрсету сияқты белсенділіксіз ауысулар орындалады (Жаңа жабдықты көрсету). Егер әрекет кезінде бас тарту оқиғасы орын алса ( бас тарту), содан кейін іс-әрекетжай ғана үзіліп, біз мемлекетке ораламыз Жабдықты жаңарту терезесі.

Іс-әрекеттер де, тұрақты әрекеттер де кейбір мінез-құлықтың көрінісін білдіреді. Екеуінің арасындағы маңызды айырмашылық қалыпты әрекеттер «бірден» орын алады және қалыпты оқиғалармен үзілмейді, ал әрекеттер 2-суретте көрсетілгендей белгілі бір шектеулі уақытқа орындалады және үзілуі мүмкін. 10.3. Әртүрлі жүйелер үшін лездік әртүрлі түсіндіріледі; нақты уақыттағы жүйелер үшін бұл бірнеше құрылғы нұсқауларын алуы мүмкін, ал жұмыс үстеліндегі бағдарламалық құрал үшін бірнеше секунд кетуі мүмкін.

В UML 1кәдімгі әрекеттер терминімен белгіленді әрекет(әрекет) және термин белсенділік(белсенділік) үшін ғана қолданылды іс-әрекеттер.

Суперстандар

Бірнеше мемлекеттердің ортақ ауысулары мен ішкі әрекеттері жиі кездеседі. Мұндай жағдайларда сіз оларды қосалқы күйге (қосалқы күйге) айналдыра аласыз және жалпы әрекетті 2-суретте көрсетілгендей суперкүйге (жоғарғы күйге) ауыстыра аласыз. 10.4. Егер супермемлекет болмаса, біз өтпелі кезеңді сызуымыз керек еді бас тартуштат ішіндегі барлық үш мемлекет үшін (болдырмау). Қосылым мәліметтерін енгізіңіз.

Параллель мемлекеттер

Күйлерді бір уақытта жұмыс істейтін бірнеше қатарлас күйлерге бөлуге болады. Суретте. 10.5-суретте ықшам дискіні немесе радионы қоса алатын және ағымдағы уақытты немесе сигнал уақытын көрсете алатын қарапайым оятқыш көрсетілген.

CD/радио опциялары мен ағымдағы уақыт/дабыл уақыты параллель. Егер сіз мұны параллель емес күй диаграммасымен көрсеткіңіз келсе, күйлерді қосу қажет болғандықтан, сіз шатастырылған диаграммаға ие боласыз. Екі әрекетті екі күй диаграммасына бөлу оны әлдеқайда анық етеді.

Күріш. 10.5, сондай-ақ қамтиды тарихқа дейінгі мемлекет(тарихтың псевдостаты). Бұл сағат қосулы кезде радио/CD опциясы сағат өшірілген кездегі күйге өзгеретінін білдіреді. Тарихтан шыққан жебе тарих болмаған кезде қандай мемлекеттің болғанын көрсетеді.

Мемлекеттік диаграммаларды енгізу

Күй диаграммасын үш негізгі жолмен жүзеге асыруға болады: кірістірілген коммутатор операторын, күй үлгісін және күй кестесін пайдалану. Күй диаграммаларымен жұмыс істеудің ең тікелей тәсілі 1-суреттегі сияқты кірістірілген коммутатор операторы болып табылады. 10.6.

Бұл әдіс тікелей алға қойылғанымен, бұл қарапайым жағдай үшін де өте ұзақ. Сонымен қатар, бұл тәсілмен бақылауды жоғалту өте оңай, сондықтан оны қарапайым жағдайларда да пайдалануды ұсынбаймыз.
Күй үлгісі күй тәртібін өңдеуге арналған күй класстарының иерархиясын білдіреді. Күй диаграммасындағы әрбір штаттың өзінің күй ішкі сыныбы бар. Контроллерде жай күй класына қайта бағытталатын әрбір оқиғаға арналған әдістер бар. Күріш диаграммасы суретте көрсетілген. 10.1-суретте көрсетілген сыныптар арқылы жүзеге асырылуы мүмкін. 10.7.

Иерархияның жоғарғы бөлігі оқиғаларды өңдейтін, бірақ іске асырылмайтын барлық әдістердің сипаттамасын қамтитын дерексіз класс болып табылады.
Әрбір нақты күй үшін күйден өтуді бастайтын нақты оқиғаның өңдеуші әдісін қайта жазу жеткілікті.
Күй кестесі күй диаграммасын деректер ретінде көрсетеді.

Сонымен, суреттегі диаграмма. 10.1 кесте түрінде ұсынылуы мүмкін. 10.1.
Содан кейін біз бағдарламаны орындау кезінде күй кестесін пайдаланатын интерпретаторды немесе осы кесте негізінде класстарды генерациялайтын код генераторын құрастырамыз.

Әлбетте, күй кестесіндегі жұмыстың көпшілігі бір рет орындалады, бірақ кейін оны күйге қатысты мәселені шешу қажет болғанда қолдануға болады. Орындалу уақыты күйінің кестесін қайта құрастырусыз өзгертуге болады, бұл біршама ыңғайлы. Күй үлгісін құрастыру оңайырақ және әрбір күй жеке классты қажет етсе де, жазылуы керек код мөлшері өте аз.

Берілген енгізулер дерлік аз, бірақ олар қалай қолдану керектігі туралы түсінік береді күй диаграммалары. Әрбір жағдайда, күй үлгілерін іске асыру жеткілікті стереотиптік бағдарламаға әкеледі, сондықтан әдетте бұл үшін кодты генерациялаудың қандай да бір түрін қолданған дұрыс.

Сайт жаңалықтарына жазылыңыз, жазылу формасын сайттың оң жақ бағанынан таба аласыз.

Фрилансты кәсіби түрде үйренгіңіз келсе, біз сізді «» курсына шақырамыз.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!