Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Старое ПППП / Лабораторная работа №1. UML / Лабораторная работа №1. UML.docx
Скачиваний:
199
Добавлен:
17.04.2018
Размер:
678.96 Кб
Скачать

Практикум по промышленному программированию - 2015. Лабораторная работа №1

Лабораторная работа №1

Основы языка UML. Диаграммы классов и последовательности

Цель работы:ознакомиться с языком UML, его применением в проектировании ПО, освоить создание диаграмм классов, диаграмм последовательности.

Необходимое ПО для практической части:JDK 8; IntelliJ IDEA 14 Community Edition; плагин PlantUML integration; Graphviz.

Оглавление

Теоретические сведения

Способы применения UML

Диаграммы UML

Диаграмма классов (Class diagram)

Свойства

Атрибуты

Кратность

Операции

Отношения

Зависимость

Ассоциация

Двунаправленные ассоциации

Агрегация и композиция

Обобщение

Реализация

Примечания и комментарии

Ключевые слова

Статические операции и атрибуты

Диаграмма последовательности (Sequence diagram)

Создание и удаление участников

Циклы, условия

Синхронные и асинхронные вызовы

Практическая часть

Инструментарий

Начало работы

Создание первого проекта

Пример создания UML-диаграмм архитектуры проекта с помощью PlantUML

Создание диаграммы классов

Создание диаграммы последовательностей

Сценарий нахождения чего-либо в библиотеке по имени

Сценарий удаления чего-либо из библиотеки по идентификатору

Коррекция диаграммы классов

Задания для самостоятельной работы

Вариант №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

Литература, ссылки

Теоретические сведения

UML(англ. Unified Modeling Language — унифицированный язык моделирования) — это графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программного обеспечения. UML является языком широкого профиля, это — открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.

Графические языки моделирования уже продолжительное время широко используются в программной индустрии. Основная причина их появления состоит в том, что языки программирования не обеспечивают нужный уровень абстракции, способный облегчить процесс проектирования.

Способы применения uml

Основу роли UML в разработке программного обеспечения составляют разнообразные способы использования языка.

Определены три режима использования UML разработчиками:

  • режим эскиза;

  • режим проектирования;

  • режим языка программирования.

Безусловно, самый главный из трех – это режим использования UML для эскизирования. В этом режиме разработчики используют UML для обмена информацией о различных аспектах системы. В режиме проектирования можно использовать эскизы при прямойиобратнойразработке. При прямой разработке (forward engineering) диаграммы рисуются до написания кода, а при обратной разработке (reverse engineering) диаграммы строятся на основании исходного кода, чтобы лучше понять его.

Сущность эскизирования, или эскизного моделирования, в избирательности. В процессе прямой разработки вы делаете наброски отдельных элементов программы, которую собираетесь написать, и обычно обсуждаете их с некоторыми разработчиками из вашей команды. При этом с помощью эскизов вы хотите облегчить обмен идеями и вариантами того, что вы собираетесь делать. Вы обсуждаете не всю программу, над которой намереваетесь работать, а только самые важные ее моменты, которые вы хотите донести до коллег в первую очередь, или разделы проекта, которые вы хотите визуализировать до начала программирования.

При обратной разработке вы используете эскизы, чтобы объяснить, как работает некоторая часть системы. Вы показываете не все классы, а только те, которые представляют интерес и которые стоит обсудить перед тем, как погрузиться в код. Поскольку эскизирование носит неформальный и динамичный характер и вам нужно делать это быстро и совместно, то наилучшим средством отображения является доска.

Эскизы полезны также и в документации, при этом главную роль играет процесс передачи информации, а не полнота. Инструментами эскизного моделирования служат облегченные средства рисования, и часто разработчики не очень придерживаются всех строгих правил UML.

Напротив, язык UML как средство проектированиянацелен на полноту. В процессе прямой разработки идея состоит в том, что проект разрабатывается дизайнером, чья работа заключается в построении детальной модели для программиста, который будет выполнять кодирование. Такая модель должна быть достаточно полной в части заложенных проектных решений, а программист должен иметь возможность следовать им прямо и не особо задумываясь. Дизайнером модели может быть тот же самый программист, но, как правило, в качестве дизайнера выступает старший программист, который разрабатывает модели для команды программистов. Причина такого подхода лежит в аналогии с другими видами инженерной деятельности, когда профессиональные инженеры создают чертежи, которые затем передаются строительным компаниям.

При обратной разработке цель моделей состоит в представлении подробной информации о программе или в виде бумажных документов, или в виде, пригодном для интерактивного просмотра. В такой модели можно показать все детали класса в графическом виде, который разработчикам проще понять.

Граница между моделями и эскизами довольно размыта, но различия остаются в том, что эскизы сознательно выполняются неполными, подчеркивая важную информацию, в то время как модели нацелены на полноту, часто имея целью свести программирование к простым и до некоторой степени механическим действиям. Короче говоря, эскизы могут быть определены как пробные элементы, а модели – как окончательные.

Чем дольше вы работаете с UML, а программирование становится все более механическим, тем очевиднее становится необходимость перехода к автоматизированному созданию программ. Действительно, многие CASE-средства (computer-aided software engineering – автоматизированная разработка программного обеспечения) так или иначе генерируют код, что позволяет автоматизировать построение значительной части системы. В конце концов, вы достигнете такой точки, когда сможете описать с помощью UML всю систему и перейдете в режим использования UML в качестве языка программирования. В такой среде разработчики рисуют диаграммы, которые компилируются прямо в исполняемый код, а UML становится исходным кодом. Очевидно, что такое применение UML требует особенно сложных инструментов. (Кроме того, нотации прямой и обратной разработки теряют всякий смысл, поскольку UML и исходный код становятся одним и тем же.).

Однако важно понимать, что UML не является языком программирования. Дело не в том, что UML язык графический, а подавляющее большинство практических языков программирования являются текстовыми языками. Гораздо важнее то, что для моделей UML в стандарте не определен способ выполнения моделей на компьютере. Это сделано вполне сознательно, в противном случае UML оказался бы зависимым от некоторой модели вычислимости, уровень абстрактности его концепций пришлось бы существенно снизить, и он не отвечал бы своему основному назначению: служить средством спецификации приложений и других систем на любом уровне абстракции и в различных предметных областях.