- •Оглавление
- •Теоретические сведения
- •Способы применения uml
- •Диаграммы uml
- •Диаграмма классов (Class diagram)
- •Свойства
- •Атрибуты
- •Кратность
- •Операции
- •Отношения
- •Зависимость
- •Ассоциация
- •Двунаправленные ассоциации
- •Агрегация и композиция
- •Обобщение
- •Реализация
- •Примечания и комментарии
- •Ключевые слова
- •Статические операции и атрибуты
- •Диаграмма последовательности (Sequence diagram)
- •Создание и удаление участников
- •Циклы, условия
- •Синхронные и асинхронные вызовы
- •Практическая часть Инструментарий
- •Начало работы
- •Создание первого проекта
- •Пример создания uml-диаграмм архитектуры проекта с помощью PlantUml
- •Создание диаграммы классов
- •Создание диаграммы последовательностей
- •Сценарий нахождения чего-либо в библиотеке по имени
- •Сценарий удаления чего-либо из библиотеки по идентификатору
- •Коррекция диаграммы классов
- •Задания для самостоятельной работы
Сценарий удаления чего-либо из библиотеки по идентификатору
Клиент библиотеки посылает библиотеке запрос на удаление элемента из библиотеки. Класс библиотеки просматривает весь список своих элементов и ищет такой элемент, ID которого совпадает с запрашиваемым. Если такой элемент находится (используется фрейм alt), то из списка этот элемент удаляется, а клиенту возвращается значение true (элемент на самом деле удален). Если же в списке не было найдено никакого подходящего элемента, то никакого элемента не было удалено, и клиенту возвращается значение false.
@startuml
LibraryClient -> Library : deleteEntity(id : long)
loop all elements in list
Library -> LibraryEntityList : getEntity
LibraryEntityList -> Library : anEntity
alt anEntity.id == id
Library -> LibraryEntityList : deleteFromList(entity : LibraryEntity)
Library -> LibraryClient : true
end
end
Library -> LibraryClient : false
@enduml
Коррекция диаграммы классов
После создания диаграмм последовательностей, стало ясно, что диаграмма классов нуждается в доработке: появился класс LibraryClient, который связан отношением зависимости с классом Library. Изменились возвращаемые значения в операциях поиска в классе Library.
@startuml
skinparam classAttributeIconSize 0
interface LibraryEntity {
+getID() : long
+getName() : String
}
abstract class AbstractBook {
-ID : long
-name : String
}
class Book {
-ISBN : String
-author : String [1..*]
-year : int
}
class Magazine {
-datePublication: LocalDate
-publisher : String
}
note right: LocalDate is from DateTime API in Java 8
class Library {
-numberOfEntities : long
-name : String
+findEntityByName(name : String) : ResultEntityList
+findEntityByID(id : long) : ResultEntityList
+addNewEntity(entity : LibraryEntity) : boolean
+deleteEntity(id : long) : boolean
}
class LibraryClient
LibraryEntity "0..*" <--> "1" Library
LibraryEntity <|.. AbstractBook
AbstractBook <|-- Book
AbstractBook <|-- Magazine
LibraryClient ..> Library
@enduml
Задания для самостоятельной работы
В каждом варианте необходимо разработать начальную архитектуру проекта. Архитектура должна быть представлена в виде диаграммы классов и двух диаграмм последовательности, представляющих наиболее сложные к пониманию взаимодействия составляющих проект сущностей.
Вариант №1, 16
Проект “Управление магазином сладостей”.
Вариант №2, 17
Проект “Расписание железнодорожной станции”.
Вариант №3, 18
Проект “Рисование геометрических фигур”.
Вариант №4, 19
Проект “Редактирование видеофайлов”.
Вариант №5, 20
Проект “Электронная зачетная книжка”.
Вариант №6, 21
Проект “Хранитель паролей”.
Вариант №7, 22
Проект “Расчет скидок” для магазина электронной техники.
Вариант №8, 23
Проект “Управление установленными приложениями”.
Вариант №9, 24
Проект “Модель Солнечной системы”.
Вариант №10, 25
Проект “Магазин электронных книг”.
Вариант №11, 26
Проект “Расписание школьных уроков”.
Вариант №12, 27
Проект “Электронный школьный дневник”.
Вариант №13, 28
Проект “Текстовый редактор”.
Вариант №14, 29
Проект “Справочник болезней”.
Вариант №15, 30
Проект “Управление закладками”.
Литература, ссылки
Фаулер M. UML. Основы, 3е издание. – Пер. с англ. – СПб: СимволПлюс, 2004. – 192 с., ил.
Иванов Д. Ю., Новиков Ф. А. Основы моделирования на UML: Учеб. пособие. – СПб.: Изд-во Политехн. ун-та, 2010. – 249с.
https://ru.wikipedia.org/wiki/UML
https://ru.wikipedia.org/wiki/%C4%E8%E0%E3%F0%E0%EC%EC%E0_%EA%EB%E0%F1%F1%EE%E2
https://ru.wikipedia.org/wiki/IntelliJ_IDEA
http://blog.gelin.ru/2014/02/plantuml.html
http://plantuml.sourceforge.net/PlantUML_Language_Reference_Guide.pdf
-