UML – Диаграми

Тема 2: Диаграми на случаите на употреба (Use Case Diagrams)


Use Case диаграмите са основен компонент на Unified Modeling Language (UML), използвани за визуализиране на функционалните изисквания на системата. Те представят взаимодействието между потребителите (актьори) и системата чрез описване на различни случаи на употреба (use cases).
Основни компоненти на Use Case диаграмите
Актьори: Външни обекти (потребители, системи или организации), които взаимодействат със системата.
Актьорите могат да бъдат:
Основни актьори: Тези, които започват взаимодействието със системата.
Поддържащи актьори: Тези, които помагат за изпълнението на use cases.
Use Cases: Специфични функции или действия, които системата трябва да изпълни. Те описват целта на взаимодействието между актьора и системата.
Връзки: Взаимодействия между актьорите и use cases, показващи кой актьор участва в кой use case.
Те могат да бъдат:
Асоциации: Основна връзка между актьор и use case.
Включвания (Include): Показва, че use case включва функционалността на друг use case.
Разширения (Extend): Показва, че use case може да бъде разширен с допълнителна функционалност.
Пример на Use Case Диаграма
Стъпки за създаване на Use Case диаграма:
Идентифициране на актьорите: Разберете кои са потребителите или системите, които ще взаимодействат със системата.
Определяне на use cases: Идентифицирайте основните функции или действия, които системата трябва да изпълни.
Начертаване на връзките: Свържете актьорите с подходящите use cases чрез асоциации.
Примерен сценарий
Да вземем за пример онлайн магазин. Нека разгледаме как ще изглежда use case диаграмата за този случай. Актьори: Клиент, Администратор
Use Cases:
Разглеждане на продукти
Правене на поръчка
Обработване на плащане
Управление на инвентара
Връзки:
Клиентът може да разглежда продукти и да прави поръчки.
Клиентът може да обработва плащане след като направи поръчка.
Администраторът може да управлява инвентара.
Цели:
Да се разбере концепцията и предназначението на диаграмите на случаите на употреба.
Да се научи как да се създават и интерпретират тези диаграми.
Съдържание:
Какво е диаграма на случаите на употреба?

Определение и предназначение:
Диаграмите на случаите на употреба показват взаимодействията между актьорите (потребителите или други системи) и системата.
Те описват функционалните изисквания към системата. Външни обекти, които взаимодействат със системата. Случаи на употреба: Действия или сценарии, които системата изпълнява. Лица или обекти, които взаимодействат със системата.
Use case – Потребителски сценарии
Основни компоненти:
Актьори: Представя част от функционалността на системата, която е логически завършена – има начало и
край.
Основни предназначения на диаграмата: • За моделиране на съдържанието на системата • За моделиране на изискванията към системата. Един use case описва една от функционалностите на системата
Състои се от:
• Уникално име
• Свързан е с актьори
• Има входни условия
• Съдържа поток от действия (процес)
• Има изходни условия
• Може да има и други изисквания
Създаване на диаграма на случаите на употреба:
Use-case текстово описание
Име: Клиентът дава поръчка:
Актьори: Клиент, Сервитьор, Готвач
Входни условия:
• Клиентът е гладен
• Клиентът има пари
Изходни условия
• Клиентът е доволно нахранен
Поток от действия (описание на процеса):
1. Клиентът избира ресторант
2. Клиентът влиза в ресторанта
3. Сервитьорът дава меню на клиента
4. Клиентът поръчва
5. Сервитьорът записва поръчката
Релация «extends»
«extends» представя изключение или рядко възникващ случай. Процесът за обработка на изключителна ситуация е извън основния случай на употреба.
Релация «includes» • «includes» е поведение, извадено извън даден use case • Позволява преизползване на споделена функционалност
Идентифициране на актьори и случаи на употреба:
Идентифициране на всички външни обекти, които ще взаимодействат със системата. Определяне на основните функционалности, които системата трябва да предоставя.
Връзки между актьорите и случаите на употреба:
Определяне на връзките между актьорите и случаите на употреба (асоциации, включвания, разширения). Използване на UML нотации за представяне на тези връзки.

Примери и практическо упражнение:
Пример за диаграма на случаите на употреба.
Практическо упражнение за създаване на диаграма на случаите на употреба за дадена система:
Интерпретация на диаграмите на случаите на употреба:
Анализ на връзките и взаимодействията:
Разглеждане на връзките между актьорите и случаите на употреба:
Определяне на обхвата на системата и нейните функционалности.
Практически приложения:
Как диаграмите на случаите на употреба се използват в софтуерните проекти: Обсъждане на ролята на диаграмите на случаите на употреба в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.
Заключение
Use Case диаграмите са мощен инструмент за описване на функционалните изисквания и взаимодействията между потребителите и системата. Те помагат на разработчиците и заинтересованите страни да разберат как системата ще бъде използвана и какви са основните функционалности, които трябва да бъдат реализирани.

Тема 3: Диаграми на класовете (Class Diagrams)
Въведение
Диаграмите на класовете са основен елемент на Unified Modeling Language (UML) и се използват за представяне на структурата на система, като показват класовете, техните атрибути, методи и връзките между тях. Те са полезни за планиране и документация на софтуерни системи, като предоставят визуално представяне на обектно-ориентираните компоненти на системата.
Основни компоненти на диаграмите на класовете
Класове: Представят основните обекти в системата. Всеки клас има следните части:
Име на класа: Уникален идентификатор за класа.
Атрибути: Свойствата или характеристиките на класа.
Методи: Функциите или операциите, които класът може да изпълнява.
Връзки: Показват взаимоотношенията между класовете. Основните типове връзки включват:
Асоциации: Връзки между класове, които показват, че обектите от един клас взаимодействат с обектите от друг клас.
Наследяване (Generalization): Показва йерархия и наследяване на свойства и методи от един клас към друг.
Агрегация: Специален вид асоциация, която показва част-цяло връзка.
Композиция: По-силна форма на агрегация, където частите не могат да съществуват без цялото.
Пример на диаграма на класовете
Стъпки за създаване на диаграма на класовете:
Идентифициране на класовете: Разберете кои са основните обекти в системата.
Определяне на атрибутите и методите: За всеки клас, идентифицирайте свойствата и функциите.
Начертаване на връзките: Свържете класовете чрез подходящите връзки.
Примерен сценарий
Да вземем за пример система за библиотека. Нека разгледаме как ще изглежда диаграмата на класовете за този случай.
Класове:
Книга (Book)
Читател (Reader)
Библиотекар (Librarian)
Заета книга (Loan)
Атрибути и методи:
Книга: атрибути (заглавие, автор, ISBN), методи (проверка на наличност).
Читател: атрибути (име, читателски номер), методи (заявка за заем).
Библиотекар: атрибути (име, служебен номер), методи (добавяне на книга).
Заета книга: атрибути (дата на заемане, дата на връщане), методи (изчисляване на закъснение).
Връзки: Читателят може да заема книги. Библиотекарят управлява книгите в системата.

Цели:
Да се разбере структурата и предназначението на диаграмите на класовете.
Да се научи как да се създават и интерпретират тези диаграми.
Съдържание: Какво е диаграма на класовете?
Определение и предназначение:
Диаграмите на класовете представят статичната структура на системата чрез класове, техните атрибути, методи и връзките между тях. Интерфейсите представляват класове, които не се имплементират, всичките им операции са абстрактни (без разработка/имплементация). Диаграмата на класовете показва как различните елементи на системата (класове, интерфейси и връзки) си взаимодействат или казано с други думи, тя представя статичната структура на системата. Диаграмата на класовете може да се използва както при визуализирането на абстрактните класове, т.е. обектите от бизнес средата, така и при визуализиране на класовете, които ще се използват при програмирането на системата. Тези две групи от класове често се припокриват като имена на класове и основни връзки между тях. Основната разлика е при методите на класовете, които са по-технически определени във втората група (ползваните при програмирането). Диаграмата на класовете е една от най-използваните диаграми при моделирането на обектноориентирани системи. Тя обрисува лексиката на софтуерната система и като такава се използва като база за диаграмата на компонентите и диаграмата за внедряване.
Основни компоненти:
Класове:
Класовете са множества обекти, които имат общи характеристики и свойства. Диаграмата на клас изобразява типовете обекти в разглежданата област и различните взаимоотношения, които съществуват между тях. Показват структурата и поведението на обектите.
Атрибути и методи: Показват данните и функционалностите на класовете.
Връзки: Асоцииране, наследяване, агрегация и композиция между класовете.
Създаване на диаграма на класовете:
Идентифициране на класовете и техните атрибути и методи: Определяне на основните класове в системата. Определяне на техните атрибути и методи.
Задължение на клас (Responsibilities)
Задължения на класа са отговорностите, които той, респективно неговите обекти трябва да изпълняват. Добра практика при дефинирането на класовете е в началото да се опишат класовете като имена и отговорности, а по-късно да се уточнят техните атрибути и методи.
Определяне на връзките между класовете:
Асоцииране: Показва връзката между класовете. Алтернативен начин за означаване на свойство е асоциацията. Информацията, която се показва в атрибутите, може да бъде изобразена и с асоциация. Асоциацията се визуализира с непрекъсната линия между два класа. Името на свойството се поставя върху линията или ако се представя с роли – в двата края на линията.
Наследяване: Показва йерархичната връзка между класовете.
Агрегация и композиция: Показват частични и цели връзки между класовете.
Примери и практическо упражнение:
Пример за диаграма на класовете.
Стереотипи
• Стереотипи – механизъм, който позволява разделянето на класовете на категории
• UML – три основни стереотипа класове
• Boundary (гранични)
• Entity (същности)
• Control (контролни, управляващи)

Стереотипите Boundary, Entity и Control, както и техните съответстващи класове. Всяка група стереотипи е показана в отделен раздел, като под нея са представени класовете, които попадат в съответния стереотип.
Boundary classes
• Гранични класове (boundary classes) са класове, които моделират взаимодействието на системата с обкръжаващата среда (напр. с актьорите). Разположени са на границите на системата.
• екранни форми, отчети, интерфейси с апаратура(принтер или скенер), интерфейси с други системи.
• Use cases – на всяко взаимодействие между действащи лица и use cases трябва да има поне 1 граничен клас, който позволява на действащото лице да взаимодейства със системата
• Координира поведението на актьора с „internals“of the system • Вход от актьора към с-та ( information or requests)
• Изход от с-та (stored information or derived results)

Control classes
• Управляващите/контролни класове (control classes) отговарят за координиране на действията на другите.
• Всеки use case имa 1 управляващ клас, контролирaщ последователността на събитията в него.
• Управляващият клас отговаря за координацията, но не носи в себе никаква функционалност, тъй като останалите класове не му изпращат много съобщения. Вместо това той сам изпраща множество съобщения.
• В системата може да има и други управляващи класове, общи за няколко use cases.
• Клас SecurityManager
• Клас TransactionManager – координация на съобщенията, отнасящи се до транзакциите в БД.
Entity classes
• Моделират ключовите концепции на системата.
• Съхранение на дългосрочна информация
• Независими от средата Могат да се използват в различни use cases
• Представят друга гледна точка за разбиране на системата – структурата на данните
• Таблици в БД
• Примери (банкова система) :
• Сметка
• Клиент
• Най-добрият начин за откриване на кандидати за класовете същности е преглеждането на съществителните имена от потребителските случаи.
Имената могат да бъдат:
• Обекти
• Описания на състоянието на обект
• Външни същности и/или актьори
• Източници за класовете същности :
• Речник (разработва се при определяне на изискванията)
• Бизнес домейн модел (разработва се при бизнес моделирането, ако се прилага бизнес моделиране)
Практическо упражнение за създаване на диаграма на класовете за дадена система.
Интерпретация на диаграмите на класовете:
Анализ на връзките и взаимодействията:
Разглеждане на връзките между класовете и определяне на техните зависимости.
Практически приложения:
Как диаграмите на класовете се използват в софтуерните проекти: Обсъждане на ролята на диаграмите на класовете в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.

Заключение
Диаграмите на класовете са мощен инструмент за представяне на структурата на софтуерните системи. Те помагат на разработчиците и заинтересованите страни да разберат обектите в системата, техните свойства, методи и взаимоотношения.

Тема 4: Диаграми на обектите (Object Diagrams)
Диаграмата на обектите се състои от обекти и връзки. Както всяка друга диаграма, в нея могат да се използват възли и ограничаващи условия. Може да се наложи за подобряване на четимостта на диаграмата да се добавят пакети и класове.
Обектите в UML се обозначават като правоъгълник, в който се описва името на обекта и класа към който принадлежи този обект, като между тях се поставят две двоеточия.
Име на обекта: Име на класа
В допълнителна секция на правоъгълника могат да се опишат конкретните стойности, които имат
атрибутите на обекта. Име на атрибут = Стойност
Диаграмата на обектите моделира отделните обекти, които се съдържат в класовете. Тази диаграма показва отделните обекти и техните връзки в определена точка от времето. Диаграмата на обектите се използва за моделиране на статичен дизайн или статично определен процес на системата, като се представя нейното моментно състояние чрез визуализиране на обектите, които съществуват в този момент, тяхното състояние и връзките между тях. Тази диаграма е изключително полезна за обрисуване на
етапи в сложни процеси с цел разграничаване на съществуващите обекти и техните характеристики, които се използват в дадения момент. Основно грешките при обектноориентираните системи се базират не на погрешна логика, а на неправилното взаимодействие на обектите. Тези грешки лесно могат да се избегнат чрез моделиране на по-сложните части от системата с диаграми на обектите. Както и диаграмата на класовете, диаграмата на обектите е елемент от статичното представяне на системата.
За разлика от нея диаграмата на обектите е насочена към функционалните изисквания на системата, т.е. описва функционалност на системата в определен момент. Целта е с тази диаграма да се моделира структурата на обектите в определена част на функционалността.

На диграмата са изобразени 3 обекта със съответните им атрибути и стойности на атрибутите. Обект c1 от клас Клиент и атрибути id със стойност 4214, име: Димитър Илиев и адрес „красно село“, обект а1 от клас Сметка и атрибут номер 4242 и тип депозитна и обект t1 от клас Транзакция със съответни попълнени атрибути.
Цели: Да се разбере концепцията и предназначението на диаграмите на обектите. Да се научи как да се създават и интерпретират тези диаграми.
Съдържание:
Какво е диаграма на обектите?
Определение и предназначение:
Диаграмите на обектите представят конкретни инстанции на класовете и техните връзки в даден момент от време.
Основни компоненти:
Обекти: Инстанции на класове. Връзки: Взаимодействия между обектите.
Създаване на диаграма на обектите:
Идентифициране на обектите и техните връзки:
Определяне на конкретните инстанции на класовете.
Определяне на връзките между обектите.
Примери и практическо упражнение:
Пример за диаграма на обектите.
Практическо упражнение за създаване на диаграма на обектите за дадена система.
Интерпретация на диаграмите на обектите:
Анализ на връзките и взаимодействията:
Разглеждане на връзките между обектите и определяне на техните зависимости.
Практически приложения:
Как диаграмите на обектите се използват в софтуерните проекти: Обсъждане на ролята на диаграмите на обектите в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.

Тема 5: Диаграми на дейностите (Activity Diagrams)
Въведение
Диаграмите на дейностите (Activity Diagrams) са част от UML и се използват за моделиране на динамичния аспект на системата, като се фокусират върху работните потоци и дейностите в различните процеси. Те са полезни за визуализиране на логиката на сложни процеси, за показване на последователността на действията и за илюстриране на паралелни операции.
Основни компоненти на диаграмите на дейностите
Дейности (Activities): Представят действия или набор от действия в процеса.
Потоци на управление (Control Flows): Стрелки, които показват последователността на изпълнение на дейностите.
Начална точка (Initial Node): Черен запълнен кръг, който показва началото на работния процес.
Крайна точка (Final Node): Кръг с вътрешен запълнен кръг, който показва края на работния процес.
Решения (Decision Nodes): Диамантени символи, които представят точки на разклоняване, където процесът може да поеме различни пътища.
Сливане (Merge Node): Диамантени символи, които обединяват множество потоци в един.
Състояния на активност (Activity States): Представят текущото състояние на дейността.
Потоци на данни (Object Flows): Показват движението на данни между дейностите.
Пример
Да разгледаме пример за процеса на поръчка в онлайн магазин.
Основни дейности
Започване на поръчка: Клиентът започва процеса на поръчка. Избор на продукти: Клиентът избира продукти за поръчка.
Проверка на наличност: Системата проверява дали избраните продукти са налични.
Потвърждаване на поръчката: Клиентът потвърждава поръчката.
Изпращане на поръчката: Системата изпраща поръчката към доставчика.
Потвърждение от доставчика: Доставчикът потвърждава получаването на поръчката.
Подробно описание на примерния процес
Започване на поръчка: Клиентът инициира процеса, което води до първата дейност в диаграмата.
Избор на продукти: Клиентът избира продуктите, които иска да поръча.
Проверка на наличност: Системата проверява дали избраните продукти са налични.
Решение – наличност: Диамантеният символ представлява точката, в която се взема решение дали продуктите са налични.
Ако продуктите са налични, процесът продължава към следващата дейност – потвърждаване на поръчката. Ако продуктите не са налични, процесът се връща към дейността за избор на продукти, за да може клиентът да направи нов избор.
Потвърждаване на поръчката: Клиентът потвърждава поръчката след като продуктите са налични.
Изпращане на поръчката: Системата изпраща поръчката към доставчика.
Потвърждение от доставчика: Доставчикът потвърждава, че е получил поръчката.
Край на процеса: Процесът завършва след потвърждението от доставчика.

Целта на диаграмата на дейностите е да моделира последователността от действия, които описват определена функционалност на системата. Основно диаграми на дейностите се използват за подетайлно описание на use case-те, включени в use case модела на системата. Освен това диаграми на дейностите могат да се използват независимо от use case-ите за моделиране на функционалности на бизнес ниво. Този тип диаграми описват динамичния аспект на системата чрез последователност от
действия. Въпреки, че в UML диаграмите на последователността представят подобна информация като диаграмата на действията, основната разлика е, че диаграмата на дейностите е по-удобна за описание на процеси на бизнес ниво, поради две причини:
– Показва всички възможни развития на процеса (успешен и не успешен завършек)
–При диаграмата на последователността основно се описва само успешния клон на развитие.
– По-лесно се приема от хората на бизнес ниво – този тип диаграма не е „техническа”, т.е. описва логиката на процесите, без да описва средствата или градивните елементи.
Цели: Да се разбере концепцията и предназначението на диаграмите на дейностите. Да се научи как да се създават и интерпретират тези диаграми.
Съдържание:
Какво е диаграма на дейностите?
Определение и предназначение: Диаграмите на дейностите показват динамичния аспект на системата чрез моделиране на потока
от дейности.
Основни компоненти:
Дейности: Основни действия или процеси. Условни знаци и тяхното значение в диаграмата на дейностите
Дейност се представя като правоъгълник със заоблени краища, текстът в него описва самото действие. Тъй като диаграмата на дейностите показва последователност от действия, тази последователност има начална точка и в UML тя се нарича начално състояние (initial state). Това е точката, от която се започва разчитането на последователността от дейности. Условният знак за начално състояние е запълнена точка със стрелка към първото действие в диаграмата. Важно е да се отбележи, че в диаграмата на дейностите може да съществува само едно начално състояние и само една транзакционна стрелка може да го свързва с действие. Транзакционната стрелка посочва посока в диаграмата на последователността на действията. Последователността от действия
приключва, когато транзакционната стрелка на последното действие се свърже със символа за крайно състояние (final state), който представлява запълнена точка оградена от кръгче. Всяка диаграма на дейностите трябва да има поне едно крайно състояние. В противен случай при разглеждане на тази диаграма може да се предположи, че тя не е завършена без изобразена на нея крайна точка. От друга страна, е възможно в една диаграма да има няколко крайни състояния. Това означава, че последователността от действия може да се прекъсне в няколко различни клона на логиката, т.е. описаната функционалност може да завърши по различни начини. При визуализиране на последователност от дейности често се налага описването на вземане на решения, базиращи се на резултата от предходни действия. За такива случаи UML предлага символа Решение (decision point) – ромб, като от него излизат две транзакционни стрелки върху всяка, от които се описва кой клон на логиката представя. Понякога при описване на последователност от действия се налага да се посочи,че определени действия трябва да се извършат паралелно. За обозначаване на паралелни действия се използва Синхронизирано състояние – плътна линия, която показва че след нея две или повече дейности ще се извършат паралелно.
Потоци:
Потоци на контрол или данни между дейностите.
Решения и паралелни потоци: Разклонения и синхронизации в процеса.
Създаване на диаграма на дейностите:
Идентифициране на дейностите и потоците:
Определяне на основните дейности и тяхната последователност.
Определяне на потоците на контрол и данни между дейностите.
Решения и паралелни потоци:
В диаграмата на дейностите е полезно да се определи не само последователността от действия, но и кой обект контролира и изпълнява съответното действие (банкова система, организацията, клиента и т.н.). За да се визуализира това, диаграмата се разделя на коридори (swimlanes) чрез вертикални линии. Всеки коридор има име, което е името на обекта, който контролира действие. За всеки обект, който изпълнява определено действие от диаграмата, трябва да съществува отделен коридор. На следващата
примерна диаграма на дейностите се илюстрира с нотацията fork (вилица), че Activity 1 и Activity 2 са две дейности, които се изпълняват паралелно, като наличието на join (свържи) показва, че те взаимно изчакват приключването си за да се продължи процеса. Activity 3 произлиза от decision node (възелрешение), което показва, че е опционално в процеса.
Включване на разклонения и синхронизации в процеса.
Използване на специални символи за представяне на тези елементи.
Примери и практическо упражнение:
Пример за диаграма на дейностите.
Практическо упражнение за създаване на диаграма на дейностите за даден процес.
Интерпретация на диаграмите на дейностите:
Анализ на потока на дейностите:
Разглеждане на потока на дейностите и определяне на техните зависимости и взаимодействия.
Практически приложения:
Как диаграмите на дейностите се използват в софтуерните проекти: Обсъждане на ролята на диаграмите на дейностите в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.
Заключение
Диаграмите на дейностите са мощен инструмент за визуализиране на процесите и работните потоци в една система. Те помагат да се разбере последователността на действията, разклоняванията на процесите и паралелните операции. Диаграмите на дейностите предоставят ясен и подробен изглед върху процесите в системата, което е особено полезно за анализ, оптимизация и комуникация междуразличните участници в разработката и използването на системата.

Тема 6: Диаграми на състоянията (State Diagrams)
Диаграмите на състоянията (State Diagrams) са графични представяния на динамичното поведение на системата. Те показват различните състояния, през които преминава даден обект, и събитията, които предизвикват преходи между тези състояния.
Основни понятия
Състояния (States): Представят различни статуси или етапи в жизнения цикъл на обекта.
Преходи (Transitions): Пътеките между състоянията, които показват как обектът преминава от едно състояние в друго.
Събития (Events): Инциденти, които задействат преходи.
Първоначално състояние (Initial State): Началното състояние на обекта, обикновено обозначено с черен кръг.
Крайно състояние (Final State): Крайната точка на обекта, обозначено с кръг с кръг вътре.
Примерен сценарий: Автомат за напитки
Ще разгледаме автомат за напитки, който преминава през различни състояния: Idle, Selecting, Processing, Dispensing, Out of Order.

Обяснение на диаграмата:
Initial State (init): Началното състояние. Idle: Автоматът е готов за използване. Selecting: Потребителят избира напитка. Processing: Автоматът обработва плащането. Dispensing: Напитката се отпуска. Out of Order: Автоматът не работи. Final State (final): Крайното състояние след изключване.
Тази диаграма показва основните състояния и преходи на автомат за напитки, което е полезно за разбиране на поведението на системата в различни ситуации. Диаграмата на състоянията моделира динамичното представянена системата. Докато диаграмите
на взаимодействието представят определен сценарий и взаимодействието на обектите по време на този сценарий, диаграмата на състоянията е на по-ниско ниво. Тя визуализира поведението на конкретен обект в системата.
Поведението на обекта се моделира чрез описване на:
– състоянията, през които обектът преминава,
– събитията и информацията, които предизвикват преминаването от едно състояние в друго,
– действията, които са резултат от промяната на състоянието на обекта. Този тип диаграма не се създава за всеки клас в системата, а само за тези, които имат изключително динамично поведение по време на своето съществуване (т.е. променят често своето състояние). Разглеждайки създадените диаграми на последователността и кооперирането, лесно могат да се определят обектите в системата, които изпращат и получават най-много информация. Това са и обектите с най-динамично поведение. Препоръчително е всеки един от тях да се представи чрез диаграма на състоянията. Състоянието на един обект в неговия жизнен цикъл представя какви условия изпълнява обекта в този етап от живота си, какви дейности изпълнява и дали очаква някакви събития. Състоянието може да се характеризира със стойностите на атрибутите на този обект и връзките, които има с други обекти.
В UML състоянието се описва като правоъгълник със заоблени краища, в който се поставя името на състоянието.
Промяна на състоянието се представя в UML като плътна линия, започваща от старото състояние и стигаща до новото състояние, която завършва със стрелка.
• Описва поведението чрез състояния и преходи между тях.
• Визуализира поведението на конкретен обект в системата.
• Не се създава за всеки клас в системата, а само за тези, които имат изключително динамично поведение, по време на своето съществуване (т.е. променят често своето състояние).
• Състоянието на един обект в неговия жизнен цикъл, представя какви условия изпълнява обектът в този етап от живота си, какви дейности изпълнява и дали очаква някакви събития.
Цели:
Да се разбере концепцията и предназначението на диаграмите на състоянията. Да се научи как да се създават и интерпретират тези диаграми. Съдържание:
Какво е диаграма на състоянията?
Обектът (документът) в примерната диаграма на състоянията може да съществува в 4 състояния: иницииран, одобрен на 1 етап, одобрен на 2 етап, отхвърлен. В квадратни скоби [ ] се отбелязва условието при което обекта преминава от едно състояние в друго.
Определение и предназначение: Диаграмите на състоянията показват динамичния аспект на системата чрез моделиране на състоянията на обектите и преходите между тях.
Основни компоненти:
Състояния: Различните състояния, в които може да се намира обектът.
Преходи: Преминаванията между състоянията, обикновено предизвикани от събития.
Създаване на диаграма на състоянията:
• Избира се елемент, който ще се моделира (система, подсистема, клас, обект или use case).
• Определят се началното и крайното състояние на елемента.
• Определят се „стабилните състояния“ на елемента, т.е. определяне при какви условия елементът, ще остане в определено състояние за даден период от време.
• Подреждат се стабилните състояния по време на жизнения цикъл на елемента.
• Определят се събитията, които водят до промяна на състоянието на елемента.
Визуализиране на събитията.
• Именуват се събитията, които предизвикват промяната на състоянието.
•Проверява се дали всички състояния, изобразени на диаграмата са достижими при определени условия, т.е. няма състояние, което не може да се достигне. Ако има такова, то или не е стабилно състояние на елемента (и се изтрива от диаграмата) или не са определени всички промени на състоянията коректно (добавят се промените и действията, които ги предизвикват).
• Проверява се, че няма състояние, което да е крайна точка (с изключение на крайното състояние), т.е. всяко състояние трябва при определени събития да води до друго състояние.
•Проверява се логиката на модела.
Идентифициране на състоянията и преходите:
Определяне на различните състояния, в които може да се намира обектът. Определяне на преходите между тези състояния.
Определяне на събитията и действията: Включване на събитията, които предизвикват преходите.
Определяне на действията, които се извършват по време на преходите.
Примери и практическо упражнение:
Пример за диаграма на състоянията.
Първото състояние на обекта в примерната диаграма е Initialization. При въвеждане на некоректен PIN обекта преминава в състояние Canceled. При въвеждане на коректен PIN, обекта преминава в състояние на Active и остава в това състояние до 3 пъти при изпълнението на нова операция (New Operation), като при всяко изпълнение променливата OpNumb се увеличава с 1. От тук обекта може да премине в състояние Successfully Closed при избор на операция End или да попадне в състояние Canceled когато променливата OpNumb стане равна на 3.
Практическо упражнение за създаване на диаграма на състоянията за даден обект.
Интерпретация на диаграмите на състоянията:
Анализ на състоянията и преходите:Разглеждане на състоянията и преходите между тях, определяне на тяхната логика и последователност.
Практически приложения:
Как диаграмите на състоянията се използват в софтуерните проекти: Обсъждане на ролята на
диаграмите на състоянията в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.

Тема 7: Диаграми на последователността (Sequence Diagrams)
Диаграмата на последователността (sequence diagram) описва динамичните аспекти на системата, т.е. описва различните взаимодействия между множествата обекти, връзките и данните, предавани между тях. Тези диаграми визуализират поведението на системата или на отделни нейни функционалности. Диаграмата на последователността се фокусира върху това каква е последователността на информацията, която се предава в течение на времето.
Цели:
Да се разбере концепцията и предназначението на диаграмите на последователността. Да се научи как да се създават и интерпретират тези диаграми.
Съдържание:
Какво е диаграма на последователността?
Определение и предназначение:
Диаграмите на последователността показват динамичния аспект на системата чрез моделиране на взаимодействията между обектите във времето.
Основни компоненти:
Обекти: Инстанции, които взаимодействат помежду си.
Съобщения: Начинът, по който обектите комуникират помежду си.
Активни обекти и времева линия: Показват активността на обектите и времето на съобщенията.
Създаване на диаграма на последователността:
Графическото представяне на диаграмата на последователността много прилича на таблица, в която по хоризонтала се описват обектите, а по вертикала информацията, която те си обменят с течение на времето. Изграждащи елементи на диаграмата на последователността са обектите, връзките и обменената информация или съобщения. Обектите в тази диаграма имат продължителност на живот, която се обозначава с прекъсната линия, представяща момента на генериране, съществуване и край
на живота на съответния обект. Последователността са обектите, връзките и обменената информация или съобщения.
В диаграмата се посочват и точките на контрол, изобразени с тънък вертикално разположен правоъгълник, който посочва в какъв период от време обектът извършва някакво действие. Информацията (съобщенията), които се предават между обектите се визуализира с плътна линия завършваща със стрелка, като тя започва от обекта който предава съобщението и стига до обекта, към
който се предава съобщението. Над тази линия се поставя име на съобщението, което го описва. Добре е да се включи и уникална номерация на съобщенията, представяща тяхната последователност във времето, което подпомага лесното разбиране на диаграмата. За да се визуализира взаимовръзката между действащите лица и системата по време на избраната
функционалност, действащите лица също се включват в диаграмата като обекти. С тях се работи по същия начин както и с вътрешните обекти на системата. Диаграмата на последователността най-често се използва при детайлно описание на use case-и, системи или подсистеми, за да визуализира последователността от обмена на информация между обектите във времето. Едно от основните правила при изграждането на този тип диаграма е да се предпазим от усложняване, което води до трудно
разбиране на диаграмата. Тя трябва да е лесно разбираема. Ако логиката, която диаграмата описва, е много сложна, препоръчително е да се разбие на под-диаграми. Разделението на под-диаграми може да се направи на база последователни периоди от време, т.е. всяка под-диаграма да изобразява определен период от време, а комбинацията на всички диаграми да ни даде описанието на пълната функционалност.
Диаграма на последователността – елементи
Класовете се представят с колони
Съобщенията се представят чрез стрелки
Участниците се представят с широки правоъгълници
Състоянията (във времето) се представят с пунктирана линия
Стъпки за дефиниране на диаграма на последователността
Избира се функционалност, която ще се моделира.
Описание на обектите, които присъстват в този механизъм и изпълняват някаква дейност в него.
Определя се продължителността на живот на всеки един обект.
За тези обекти, които се създават и/или унищожават по време на визуализираната функционалност, това трябва да се обозначи със съответните условни знаци.
Като последователност във времето се изобразяват всички съобщения, които се предават между обектите. Определя се наименованието на всяко съобщение и се поставят индикатори за тяхната последователност.
За обектите се изобразяват точките им на контрол.
Ако е необходимо, се записват предварителни и последващи условия за съобщенията.
Преценява се дали е необходимо диаграмата да се раздели на под-диаграми.
Идентифициране на обектите и съобщенията: Определяне на участващите обекти и съобщенията, които те обменят.
Подредба на съобщенията по времева линия: Подреждане на съобщенията във времева последователност. Използване на UML нотации за представяне на тези елементи.
Примери и практическо упражнение:
Пример за диаграма на последователността.
На следващата диаграма на последователността са изобразени три класа – browser (браузер). Web server (уеб сървър) database (база от данни). Първото съобщение, което се разменя между обектите е GET/index.html което се изпраща от broser към web server. По използваната нотация на стрелката се разбира, че съобщението и синхронно. С пунктирна линия се отбелязват съобщениято които се разменят като отговор на друго съобщение. Хронологически следва съобщението POST/blog/comment от browser към web server. След него следва съобщението INSERT comment от webserver към database, като комуникацията завършва с 2 отговора на последните 2 съобщения.
Практическо упражнение за създаване на диаграма на последователността за даден сценарий.
Интерпретация на диаграмите на последователността:
Анализ на взаимодействията и времевите зависимости: Разглеждане на взаимодействията и времевите зависимости между обектите, определяне на тяхната последователност и логика.
Практически приложения:
Как диаграмите на последователността се използват в софтуерните проекти: Обсъждане на ролята
на диаграмите на последователността в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.

Тема 8: Диаграми на комуникацията (Communication Diagrams)
Цели:
Да се разбере концепцията и предназначението на диаграмите на комуникацията.
Да се научи как да се създават и интерпретират тези диаграми.
Съдържание: Какво е диаграма на комуникацията?
Определение и предназначение:
Диаграмите на комуникацията показват динамичния аспект на системата чрез моделиране на взаимодействията между обектите.
Основни компоненти:
Обекти: Инстанции, които взаимодействат помежду си.
Връзки: Връзки между обектите, които показват комуникацията.
Създаване на диаграма на комуникацията:
Идентифициране на обектите и връзките:
Определяне на участващите обекти и връзките между тях.
Определяне на взаимодействията:
Идентифициране на комуникационните събития между обектите. Уточняване на типа и съдържанието на съобщенията.
Примери и практическо упражнение:
Пример за диаграма на комуникацията.
Практическо упражнение за създаване на диаграма на комуникацията за даден сценарий.
Интерпретация на диаграмите на комуникацията:
Анализ на комуникационните връзки и зависимости:
Разглеждане на комуникационните връзки между обектите, определяне на техните зависимости и последователност.
Практически приложения:
Как диаграмите на комуникацията се използват в софтуерните проекти: Обсъждане на ролята на диаграмите на комуникацията в различните фази на софтуерния жизнен цикъл.
Примери от реални проекти.

Тема 9: Диаграми на компонентите (Component Diagrams)
1. Какво е диаграма на компоненти?
Диаграмата на компоненти в UML служи за визуализиране на физическите компоненти в системата и техните връзки. Тя показва как компонентите се организират, комуникират и сътрудничат помежду си във възможно най-физическото им представяне.
2. Основни елементи на диаграмата на компоненти
Компонент (Component): Представлява физически или логически модул в системата. Той може да съдържа изпълним код, конфигурационни файлове, библиотеки и други артефакти. Интерфейс (Interface): Дефинира начина, по който компоненти могат да комуникират помежду си. Интерфейсите могат да бъдат представени с атрибути, операции и методи. Зависимост (Dependency): Показва връзка между два компонента, когато един компонент използва услуги на друг, но не я контролира. Обикновено се изразява със стрелка, която сочи към зависимия компонент. Изключение (Exception): Показва условия или ситуации, при които даден компонент може да предизвика изключение или грешка при работа.
3. Как да създадем диаграма на компоненти в UML
За да създадем диаграма на компоненти, следваме следните стъпки:
Идентифициране на компонентите и техните интерфейси: Определяне на всички компоненти в системата и техните взаимодействия. За всеки компонент се уточнява какви интерфейси предоставя и използва.
Създаване на диаграмата: Използване на UML инструмент за да поставим компонентите и интерфейсите им на диаграмата. Пример може да бъде различните компоненти са представени с различни форми – правоъгълник, цилиндър и др., които
могат да се адаптират според нуждите на конкретната система или приложение. Връзките между компонентите са показани със стрелки, които указват взаимодействието между тях.
4. Пример на приложение на диаграмата на компоненти
Представете си учебна система:
Контролер: Отговаря за потребителското взаимодействие.
Изглед: Визуализира информацията на потребителя.
Модел: Обработва данните и логиката на приложението.
Сервиз: Предоставя бизнес логиката и обработка на данни.
База данни: Съхранява персистентните данни.
Тази система може да бъде представена с диаграма на компоненти, която показва как всяка част взаимодейства с другите.
Цели:
Да се разбере концепцията и предназначението на диаграмите на компонентите. Да се научи как да се създават и интерпретират тези диаграми.
Съдържание:
Какво е диаграма на компонентите?
Определение и предназначение:
Диаграмите на компонентите показват физическата структура на системата чрез моделиране на компонентите и техните връзки.
• Компонент е многократно използваема част, която обединява елементи от модела
• Диаграми на компонентите – показват организацията и зависимостите м/у компонентите.
Основни компоненти:
Компоненти: Физически части на системата, които могат да бъдат разпределени и повторно използвани.
Връзки: Връзки между компонентите, които показват зависимостите между тях.
Създаване на диаграма на компонентите:
Идентифициране на компонентите и връзките:
Определяне на компонентите, от които се състои системата. Определяне на връзките между компонентите.
Заключение
Диаграмите на компоненти в UML са мощно средство за визуализиране и разбиране на физическата структура и взаимодействията в системи. Те помагат на разработчиците да се съсредоточат върху архитектурата и да улесняват комуникацията между екипите.

Тема 9: ДДиаграми на сътрудничеството (collaboration diagram)
Въведение
Диаграмите на сътрудничеството, известни също като диаграми на взаимодействие, са важен компонент от UML (Unified Modeling Language), които показват взаимодействията между обекти в рамките на система чрез обмен на съобщения. Те акцентират върху структурната организация на обектите, които взаимодействат за изпълнението на дадена функционалност или поведение.
Цели на урока
Да се разбере същността и целите на диаграмите на сътрудничеството. Да се научат основните елементи и символи, използвани в диаграмите на сътрудничеството. Да се придобие умението да се създава и анализира диаграми на сътрудничеството.
Основни понятия
Обекти (Objects): Представляват инстанции на класове, които участват във взаимодействието.
Връзки (Links): Представляват асоциациите между обектите.
Съобщения (Messages): Показват обмена на информация между обектите и реда на изпълнение.
Структура на диаграмата на сътрудничеството
Обекти: Обектите се изобразяват като правоъгълници с подчертано име, което показва, че те са конкретни инстанции.
Връзки: Връзките се изобразяват като линии, свързващи обектите.
Съобщения: Съобщенията се изобразяват като стрелки, обозначаващи потока на управление и реда на взаимодействие между обектите.
Пример:
Представете си, че имаме система за онлайн пазаруване. Ще създадем диаграма на сътрудничеството за процеса на поръчка.
Обекти:
Клиент (Customer)
Кошница (ShoppingCart)
Поръчка (Order)
Платежна система (PaymentSystem)
Връзки и съобщения:
Клиент добавя продукт в кошницата.
Кошница създава нова поръчка.
Поръчка изпраща данни към платежната система за обработка.
Стъпки за създаване на диаграма на сътрудничеството
Идентифициране на обектите: Определете обектите, които участват в сценария.
Създаване на връзки: Определете как обектите са свързани помежду си. Определяне на съобщенията: Определете какви съобщения ще бъдат изпратени между обектите и в какъв ред.
Изчертаване на диаграмата: Начертайте обектите, връзките и съобщенията в подходящ ред.
Анализ на диаграмата
Първоначално взаимодействие: Клиентът добавя продукт в кошницата.
Създаване на поръчка: Кошницата създава нова поръчка.
Обработка на плащане: Поръчката изпраща информация за плащане към платежната система.
Заключение. Диаграмите на сътрудничеството са мощен инструмент за визуализиране и разбиране
на взаимодействията между обектите в дадена система. Те предоставят детайлен поглед върху структурната организация и динамиката на системата, което е от съществено значение за проектирането и
анализа на сложни софтуерни системи.
Практическо занятие
Изберете реален сценарий от вашата област на работа.
Идентифицирайте ключовите обекти, които участват в този сценарий.
Начертайте диаграма на сътрудничеството, показваща взаимодействията между тези обекти.
Анализирайте диаграмата и дискутирайте възможните подобрения.

 Тема 10: Диаграми на взаимодействието (Interaction Diagrams)
Въведение
Диаграмите на взаимодействието са част от UML и служат за визуализиране на взаимодействията между обекти в дадена система. Те се използват за моделиране на динамичното поведение на системата чрез показване на последователността на съобщенията, които обектите обменят помежду си. Основните типове диаграми на взаимодействието са диаграми на последователността и диаграми на комуникацията.
Основни компоненти на диаграмите на взаимодействието
Обекти: Представят участниците в взаимодействието.
Съобщения: Показват информацията, която се обменя между обектите.
Линии на живот (Lifelines): Вертикални линии, които показват времето, през което обектът съществува и участва в взаимодействието.
Активности: Периоди, през които обектите извършват определени действия.
Диаграми на последователността (Sequence Diagrams)
Диаграмите на последователността показват времевата последователност на съобщенията между обектите. Те са полезни за детайлно описание на конкретни случаи на използване.
Основни елементи
Актьори и обекти: Участниците в сценария.
Линии на живот (Lifelines): Вертикални пунктирни линии, които представят времето, през което обектите съществуват.
Съобщения: Хоризонтални стрелки, които показват обмена на информация между обектите.
Активности: Представени с правоъгълници върху линиите на живот, те показват кога обектите са активни.
Пример
Да разгледаме пример с онлайн магазин. Диаграмата на последователността ще показва процеса на поръчка на продукт.
Актьори и обекти:
Клиент
Система
База данни
Доставчик
Съобщения:
Клиентът изпраща заявка за поръчка към системата.
Системата проверява наличността в базата данни.
Системата изпраща заявка към доставчика.
Доставчикът потвърждава доставката.

Тема 11: Диаграми на внедряването (Deployment diagrams)
Диаграмите на внедряването (Deployment diagrams) в UML се използват за визуализиране на физическото разпределение на компонентите на системата върху различни хардуерни устройства. Тези диаграми са полезни за представяне на архитектурата на разпределени системи и за уточняване на как системните компоненти се инсталират и работят на хардуерните устройства.
1. Основни концепции на диаграмите на внедряването
Възел (Node): Представя физическо устройство или хардуерна платформа като компютър, сървър, мобилен телефон и т.н.
Артефакт (Artifact): Представя конкретен физически елемент или софтуерен обект, който може да бъде инсталиран на хардуерното устройство. Например, изпълними файлове, конфигурационни файлове, библиотеки и др.
Връзка (Association): Показва връзката или комуникацията между възлите и артефактите.
2. Как да създадем диаграма на внедряването в UML
За да създадем диаграма на внедряването, трябва да изпълним следните стъпки:
Идентифициране на възлите и артефактите: Определяне на всички физически устройства и софтуерни компоненти, които участват в системата. Свързване на възлите и артефактите: Уточняване на как артефактите са разпределени и инсталирани на възлите.

3. Пример на приложение на диаграмата на внедряването
Представете си система за управление на ресторант:
Уеб сървър: Хоства уеб приложението, което позволява на клиентите да правят резервации онлайн.
Сървър за бази данни: Съхранява информацията за клиентите и резервациите.
Сървър за приложение: Извършва бизнес логиката на системата.
Тази система може да бъде представена с диаграма на внедряването, която показва как всеки компонент се разпределя на физическите устройства.
• Диаграмите на внедряване, показват структурата на окончателния инсталационен код
Заключение
Диаграмите на внедряването в UML са мощен инструмент за архитектурното моделиране на разпределени системи. Те помагат на разработчиците да разберат физическата организация на системата
и да оптимизират процеса на разпределение на компонентите.

Литература за подготовка
1. „UML Distilled: A Brief Guide to the Standard Object Modeling Language“by Martin Fowler „Applying.
2. UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development“by Craig Larman.

https://docs.staruml.io/

 

Check Also

Проектиране с UML – Упражнения и Ролеви игри

1 Use Case Диаграми Изисквания и указания: Идентифицирайте всички актьори, които взаимодействат със системата. Определете …

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.