Создание uml диаграмм в visual studio
Продолжительность лабораторной работы - 2 академических часа.
Создание проекта моделирования программного приложения
После разработки первоначального списка пользовательских требований, которые являются содержанием рабочего элемента Невыполненная работа по продукту, целесообразно обсудить зафиксированные в проекте требования с заинтересованными лицами. При проведении обсуждения пользовательских требований к программному продукту целесообразно представить заинтересованным лицам не только текстовую документацию, но графический материал, который более наглядно отображает пользовательские требования . Для этого используются UML -диаграммы.
Владелец продукта, выполняя роль архитектора, для подготовки графических диаграмм может использовать возможности Visual Studio по архитектурному моделированию.
Вначале создадим пустое Решение Visual Studio (1), в которое будем добавлять проекты, связанные с программным продуктом - ProjectTeachingLoadOfTeachers (2), отметив признак Добавить в систему управления версиями (3). На рис. 12.1 приведено окно создания проекта.
увеличить изображение
Рис. 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).
увеличить изображение
Рис. 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.
Выберите вкладку Отдельные компоненты и затем прокрутите вниз до категории Средства для работы с кодом.
Выберите Конструктор классов и нажмите Изменить.
Начнется установка компонента Конструктор классов.
Добавление пустой схемы классов в проект
В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Добавить > Новый элемент. Либо нажмите клавиши 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
Далее вам не обходимо перейти на вкладку Отдельный компоненты.
И в поле поиска вписать слово конструктор.
От фильтруется список и вы увидите компонент Конструктор классов нужно установить галочку на компоненте. И нажать в правом углу кнопку изменить.
Произойдет загрузка компонента и у вас вновь откроется студия по завершению.
Далее вам необходимо выбрать правой кнопкой мыши по проекту и перейти в пункт Представление >>Перейти к диаграмме классов. У вас загрузится конструктор как на скриншоте.
Читайте также: