Создание uml диаграмм в visual studio

Обновлено: 07.07.2024

Продолжительность лабораторной работы - 2 академических часа.

Создание проекта моделирования программного приложения

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

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

Вначале создадим пустое Решение Visual Studio (1), в которое будем добавлять проекты, связанные с программным продуктом - ProjectTeachingLoadOfTeachers (2), отметив признак Добавить в систему управления версиями (3). На рис. 12.1 приведено окно создания проекта.

Создание пустого решения Visual Studio


увеличить изображение
Рис. 12.1. Создание пустого решения Visual Studio

При добавлении решения в систему управления версиями необходимо указать расположение командного проекта ( рис. 12.2).

Диалоговое окно Добавление решения в систему управления версиями


Рис. 12.2. Диалоговое окно Добавление решения в систему управления версиями

В созданное решение ProjectTeachingLoadOfTeachers добавим проект моделирования ModelingProjectTeachingLoadOfTeachers на основе шаблона Проект моделирования ( рис. 12.3).

Добавление проекта моделирования

В обозревателе решений будет добавлен проект моделирования ModelingProjectTeachingLoadOfTeachers.modelproj ( рис. 12.4).

Представление проекта моделирования в обозревателе решений


Рис. 12.4. Представление проекта моделирования в обозревателе решений

Инструментальные средства Visual Studio включают шаблоны для создания следующих UML -диаграмм:

  • Схема классов UML;
  • Схема последовательностей UML;
  • Схема вариантов использования UML;
  • Схема активности UML;
  • Схема компонентов UML;
  • Схема слоев.

Разработка схемы вариантов использования

Для моделирования функциональных требований к программному продукту используют схему вариантов использования, которая представляет потребности пользователя к системе. Применим шаблон Схема вариантов использования UML для моделирования пользовательских требований ( рис. 12.5).

Добавление Схемы вариантов использования UML


увеличить изображение
Рис. 12.5. Добавление Схемы вариантов использования UML

При добавлении в проект моделирования схемы вариантов использования будет отображен дизайнер схем ( рис. 12.6).

Дизайнер построения схемы вариантов использования


увеличить изображение
Рис. 12.6. Дизайнер построения схемы вариантов использования

Дизайнер построения схемы вариантов использования имеет набор элементов для создания схемы:

  • Указатель, для выделения элементов схемы;
  • Субъект, для добавления пользователей или внешней системы, взаимодействующей с разрабатываемой системой;
  • Вариант использования, для добавления спецификации действий, которые выполняет пользователь системы;
  • Комментарий, для ввода пояснений в схему;
  • Подсистема, для объединения вариантов использования в подсистемы;
  • Артефакт, для создания ссылки на другую схему или документ;
  • Связь, для соединения субъекта с вариантом использования;
  • Зависимость, для определения зависимости вариантов использования;
  • Включить, для определения того, что один вариант использования вызывает другой;
  • Расширить, для определения того, что один вариант использования расширяет определение другого варианта использования при определенных условиях;
  • Обобщение, для определения того, что один вариант использования является уточнением другого и наследует его функции и ограничения;
  • Добавить комментарий для ссылки - для соединения комментария с элементом схемы.

Для разрабатываемого программного продукта в учебном проекте определены три субъекта:

  • методист учебного отдела;
  • методист факультета;
  • методист кафедры.

Функциональность проектируемой системы задана следующими пользовательскими требованиями, определенными в рабочем элементе Невыполненная работа по продукту:

  • авторизация пользователя;
  • формирование данных по преподавателям;
  • формирование данных по факультетам;
  • формирование данных по студенческим группам;
  • формирование учебных планов;
  • формирование учебной нагрузки кафедры;
  • распределение учебной нагрузки кафедры.

На основе пользовательских требований, которые описаны в рабочих элементах проекта Элементы задела работ продукта, разрабатывается схема вариантов использования проектируемой программной системы ( рис. 12.7). Схема создается путем перетаскивания элементов Панели инструментов в поле дизайнера и соединения выбранных элементов. Для элементов схемы задаются свойства, например имя, описание, связи с рабочими элементами.

Схема вариантов использования проектируемой системы


Рис. 12.7. Схема вариантов использования проектируемой системы


Варианты использования целесообразно связать с Элементами задела работ продукта для отслеживания взаимосвязи рабочих элементов проекта и схем архитектурного моделирования. Для создания связи варианта использования с рабочим элементом необходимо выделить вариант использования в дизайнере и либо нажать кнопку в панели инструментов, либо вызвать контекстное меню , щелкнув правой кнопкой мыши на изображении варианта использования, и выбрать пункт меню Связать с рабочим элементом. В диалоговом окне Связь с рабочими элементами необходимо сформировать запрос на выборку рабочих элементов, отметить необходимый рабочий элемент и нажать кнопку ОК ( рис. 12.8).

Диалоговое окно Связь с рабочими элементами


увеличить изображение
Рис. 12.8. Диалоговое окно Связь с рабочими элементами


При связывании с рабочими элементами на схеме рядом с вариантами использования появляются значки ( рис. 12.9).

Схема вариантов использования со связями с рабочими элементами


Рис. 12.9. Схема вариантов использования со связями с рабочими элементами


Если щелкнуть на значок рядом с вариантом использования, то открывается связанный с ним рабочий элемент, например Формирование данных по факультету ( рис. 12.10). При наличии ссылки на модель из описания рабочего элемента также можно перейти к соответствующей модели, щелкнув на ссылке Связь модели.

Диаграммы классов не могут быть созданы для проектов с общим кодом для нескольких приложений. Сведения о создании схем классов UML см. в разделе Создание проектов и схем моделирования UML.

Установка компонента "Конструктор классов"

Если у вас не установлен компонент Конструктор классов, выполните следующие действия, чтобы установить его.

Откройте Visual Studio Installer из меню "Пуск" или выбрав в строке меню Visual Studio Инструменты > Получить инструменты и функции.

Откроется Visual Studio Installer.

Выберите вкладку Отдельные компоненты и затем прокрутите вниз до категории Средства для работы с кодом.

Выберите Конструктор классов и нажмите Изменить.

Снимок экрана: компонент "Конструктор классов" в Visual Studio Installer.

Снимок экрана: компонент "Конструктор классов" в Visual Studio Installer.

Снимок экрана: компонент "Конструктор классов" в Visual Studio Installer.

Начнется установка компонента Конструктор классов.

Добавление пустой схемы классов в проект

В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Добавить > Новый элемент. Либо нажмите клавиши CTRL+SHIFT+A.

Откроется диалоговое окно Добавление нового элемента.

Разверните Обычные элементы > Общие и выберите Схема классов из списка шаблонов. Для проектов Visual C++ шаблон Схема классов находится в категории Служебные программы.

Если шаблон Схема классов отсутствует, выполните действия по установке компонента Конструктор классов в Visual Studio.

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

Чтобы добавить несколько схем классов, необходимо повторить шаги данной процедуры.

Добавление диаграммы классов на основе существующих типов

В обозревателе решений откройте контекстное меню файла класса, щелкнув правой кнопкой мыши, и выберите пункт Перейти к диаграмме классов.

В представлении классов откройте контекстное меню пространства имен или типа и выберите пункт Просмотр схемы класса.

Если представление классов не открыто, откройте его из меню Вид.

Отображение содержимого всего проекта в схеме классов

В обозревателе решений или в представлении классов щелкните проект правой кнопкой мыши и выберите Просмотр, а затем — Просмотр схемы класса.

Как нам уже известно, Visual Studio 2010 Ultimate предоставляет достаточно удобные возможности для реверс-инжиниринга. С помощью средств Visual Studio мы можем на основе существующего кода построить UML-модель и понять как у нас, собственно, все работает, но при этом не прилагать гигантские усилия по созданию диаграмм вручную и поддержанию их в актуальном состоянии.

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

Недавно Microsoft выпустила дополнение под названием Microsoft Visual Studio 2010 Feature Pack 2. Данный инструмент дает нам прекрасную возможность синхронизировать изменения модели в код. Вкратце расскажу, как это можно использовать.

Для примера допустим, что у нас есть примитивный блог. Предметная область представлена двумя классами: Author и Article. Добавляем в солюшн новый Modeling Project. В нем создаем UML Class Diagram.


Воспользуемся возможностями Reverse Engineering. Перетаскиваем классы из Architecture Explorer-а на диаграмму. При этом на диаграмме сущность появляются вместе с атрибутами. Периодически между сущностями образуются связи, которые должны быть (и даже периодически правильно показывается тип связи), но в каких случаях – определить пока не получилось.



Заметьте, данный класс еще не присутствует в сборке Domain. Для того чтобы прописать его туда, а заодно применить все наши изменения, нужно сделать следующее.

В Model Explorer выбираем сборку Domain, идем в Properties и в пункте Text Template Binding тыкаем кнопочку «…». Добавляем новый элемент, в поле Project Path указываем имя проекта, в который будет генерироваться код, в поле Target Directory указываем папочку относительно проекта (мы генерим в корень) и указываем адрес шаблона. По умолчанию они находятся в папке «C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Visualization and Modeling Feature Pack\2.0\Templates\Text». Можно задать несколько шаблонов на все случаи жизни. В нашем случае, выбираем ClassTemplate.t4.


После этого, нажимаем правой кнопочкой мыши в свободное место диаграммы и выбираем пункт Generate Code.


И – вуаля! Новый класс добавлен в сборку, все изменения применены в соответствии с моделью.


Кстати говоря, с помощью стереотипов имеется возможность указывать практически все: видимость членов, атрибуты, подключаемые при генерации пространства имен и пр.

Итак, M$ предлагает нам прекрасный инструмент, серьезно облегчающий жизнь архитекторам и разработчикам. К сожалению, этот очень необходимый пакет доступен только подписчикам MSDN, и компания почему-то не позволяет использовать его всем желающим легальным пользователям. И это при стоимости VS Ultimate порядка 300 тыс. рублей. Будем надеяться, что в ближайшем будущем такое положение вещей изменится.



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


В последних версия VS переименовали компонент, потому многие его не могу найти, для этого я дополню статью.


Откроется окно Visual Studio Installer


Далее вам не обходимо перейти на вкладку Отдельный компоненты.


И в поле поиска вписать слово конструктор.

От фильтруется список и вы увидите компонент Конструктор классов нужно установить галочку на компоненте. И нажать в правом углу кнопку изменить.


Произойдет загрузка компонента и у вас вновь откроется студия по завершению.


Далее вам необходимо выбрать правой кнопкой мыши по проекту и перейти в пункт Представление >>Перейти к диаграмме классов. У вас загрузится конструктор как на скриншоте.

Читайте также: