Visual studio диаграмма классов отобразить связи
UML-дизайн UML-диаграмма классов в Visual Studio 2013/2015 (перевод)
1. Введение в UML
Унифицированный язык моделирования (UML) также известен как Унифицированный язык моделирования или Стандартный язык моделирования.
Проще говоря, это графическое выражение модели и ее классификация в соответствии с различными моделями. В UML 2.0 существует 13 видов диаграмм. Ниже приводится краткое введение в их основные области применения:
1. Диаграмма вариантов использования: классификация использования системы.
2. Диаграмма классов: отображение классов и их взаимосвязей.
3. Диаграмма объектов: отображать только объекты и их взаимосвязи.
4. Диаграмма активности: отображение действий людей или объектов аналогично блок-схеме.
5. Схема конечного автомата: отображает различные состояния объектов с интересными или сложными жизненными циклами.
7. Диаграмма последовательности: отображает информацию, относящуюся к диаграммам связи, но подчеркивает последовательность, а не связь.
8. Диаграмма пакетов: показывает, как комбинируются связанные классы, полезно для разработчиков.
9. Диаграмма развертывания: отображает машины, процессы и продукты развертывания, на которых установлена завершенная система.
10. Диаграмма компонентов: отображает повторно используемые компоненты (объекты или подсистемы) и интерфейсы.
11. Общая диаграмма взаимодействия: последовательность шагов, чтобы использовать диаграмму последовательности для шумных действий.
13. Составная структурная схема: показывает взаимосвязь объектов в агрегации или составлении, показывает интерфейсы и взаимодействующие объекты
Обычно используемые диаграммы UML можно разделить на статические диаграммы (состояния) и динамические диаграммы (состояния). Статические диаграммы в основном описывают статическую структуру программного обеспечения, в то время как динамические диаграммы в основном описывают динамическое поведение программного обеспечения.
Общие динамические диаграммы UML (5): диаграмма вариантов использования, диаграмма деятельности, диаграмма конечного автомата, диаграмма последовательности, диаграмма связи.
Общие статические диаграммы UML (4): диаграмма классов, диаграмма пакетов, диаграмма развертывания, диаграмма компонентов.
2. Диаграмма классов UML
На всех диаграммах UML диаграммы классов являются наиболее часто используемыми диаграммами UML.
Диаграммы классов используются для описания классов, содержащихся в системе, и их взаимосвязей, чтобы помочь людям упростить понимание системы.Это важный продукт на этапе анализа и проектирования системы, а также важная основа модели для кодирования и тестирования системы.
Основные отношения диаграммы классов: Обобщение, Реализация, Ассоциация, Агрегация, Композиция, Зависимость
Определение: показывает классы, интерфейсы и статические структуры и отношения между ними, используется для описания структурированного проекта системы.
Тип: статичное изображение
Применение: этап проектирования
2.1 Обобщение
[Отношение обобщения]: это отношение наследования, которое указывает на общее и специальное отношение и определяет, как подклассы специализируют все характеристики и поведение родительского класса. Например: яблоня - это разновидность дерева, которое обладает характеристиками яблони и общностью дерева.
[Вариант выполнения кода]: класс наследует другой класс
[Стрелка указывает]: сплошная линия с треугольной стрелкой, стрелка указывает на родительский класс
2.2 Реализация
[Отношение реализации]: это отношение между классом и интерфейсом, указывающее, что класс является реализацией всех характеристик и поведений интерфейса.
[Вариант выполнения кода]: класс реализует элементы интерфейса
[Стрелка указывает]: пунктирная линия с треугольной стрелкой, стрелка указывает на интерфейс
2.3 Ассоциация (Ассоциация)
[Ассоциация]: это отношения собственности, которые позволяют классу узнать свойства и методы другого класса;
[Вариант выполнения кода]: переменные-члены
[Стрелка и точка]: сплошная линия с обычной стрелкой, указывающей на владельца
На приведенном выше рисунке показаны отношения между компанией и сотрудниками, сотрудники принадлежат компании
Кроме того, отношения позволяют отношениям, таким как отношения между мужем и женой, могут быть связаны друг с другом. Также допускается самоассоциация, то есть вы также являетесь одним из ваших собственных членов.
2.4 Агрегация
[Агрегационные отношения]: это отношения между целым и частью, и часть может существовать отдельно от целого. Если автомобиль и шина являются неотъемлемой частью отношений, шина может существовать и после выхода из автомобиля.
Отношение агрегации - это вид отношения ассоциации, который является сильной ассоциацией, ассоциация и агрегация не могут быть разграничены грамматически, и необходимо исследовать конкретные логические отношения.
[Вариант выполнения кода]: переменные-члены
[Стрелка и точка]: сплошная линия с полым ромбом, ромб указывает на целое
2.5 Состав
[Комбинированные отношения]: это отношения между целым и частью, но часть не может существовать без целого. Если компания и отдел являются целым и неотъемлемой частью отношений, то без компании нет отдела.
Комбинированные отношения являются своего рода ассоциативными отношениями, которые сильнее, чем отношения агрегации, и требуют, чтобы объекты, представляющие целое в обычных отношениях агрегации, отвечали за жизненный цикл объектов, представляющих некоторые из них.
[Вариант выполнения кода]: переменные-члены
[Стрелка и точка]: сплошная линия с сплошным бриллиантом, алмаз указывает на всю
2.6 Зависимость
[Зависимость]: это отношения использования, то есть реализация одного класса требует помощи другого класса, поэтому старайтесь не использовать двустороннюю взаимозависимость.
[Выполнение кода]: локальные переменные, параметры метода или вызовы статических методов
【Стрелка и точка】: пунктирная линия со стрелкой указывает на пользователя
Например: программисты должны полагаться на компьютеры
Следующая картинка представляет собой исчерпывающую картину вышеуказанных отношений, загруженных из Интернета:
Обобщение = достигать > сочетание > полимеризация > Связанный > полагаться
3. Значение подробных символов на диаграмме классов
UML - это унифицированный язык моделирования, и при его использовании существует унифицированное представление деталей. Ниже приведены несколько общих методов представления. Независимо от того, какой инструмент вы используете, общее представление не сильно отличается.
класс:
Абстрактный класс, имя класса отображается курсивом.
Поля, атрибуты, методы:
‘+’ означает открытый
интерфейс:
Разница с диаграммой классов в основном заключается в отображении << интерфейса >> вверху, см. Пример выше.
4. Создайте диаграмму классов UML в Visual Stodio 2013/2015
(1) Создайте новый проект в VS и выберите «Моделирование проекта» следующим образом:
(2) Откройте проект моделирования и добавьте диаграмму классов UML
(3) Откройте недавно созданный файл диаграммы классов UML, установите классы, интерфейсы и т. Д. С помощью панели инструментов и создайте отношения
(4) Сгенерируйте код, разработав диаграмму классов UML
(5) Просмотр сгенерированного кода
(6) Обратное (создание диаграммы классов из кода)
В VS мы можем легко генерировать диаграммы классов UML из кода следующим образом
5. Инструмент диаграммы классов UML
Существует множество инструментов UML, три наиболее часто используемых инструмента моделирования UML.
(1)PowerDesign
(2)Rose
(3)Visio
Есть также несколько бесплатных инструментов:
Онлайн строительные инструменты:
Выберите в соответствии с вашим хобби.
6. Резюме
Диаграммы классов не могут быть созданы для проектов с общим кодом для нескольких приложений. Сведения о создании схем классов UML см. в разделе Создание проектов и схем моделирования UML.
Установка компонента "Конструктор классов"
Если у вас не установлен компонент Конструктор классов, выполните следующие действия, чтобы установить его.
Откройте Visual Studio Installer из меню "Пуск" или выбрав в строке меню Visual Studio Инструменты > Получить инструменты и функции.
Откроется Visual Studio Installer.
Выберите вкладку Отдельные компоненты и затем прокрутите вниз до категории Средства для работы с кодом.
Выберите Конструктор классов и нажмите Изменить.
Начнется установка компонента Конструктор классов.
Добавление пустой схемы классов в проект
В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Добавить > Новый элемент. Либо нажмите клавиши CTRL+SHIFT+A.
Откроется диалоговое окно Добавление нового элемента.
Разверните Обычные элементы > Общие и выберите Схема классов из списка шаблонов. Для проектов Visual C++ шаблон Схема классов находится в категории Служебные программы.
Если шаблон Схема классов отсутствует, выполните действия по установке компонента Конструктор классов в Visual Studio.
В конструкторе классов откроется схема классов, и в обозревателе решений появится файл с расширением .cd. Можно перетаскивать фигуры и линии в диаграмму из панели элементов.
Чтобы добавить несколько схем классов, необходимо повторить шаги данной процедуры.
Добавление диаграммы классов на основе существующих типов
В обозревателе решений откройте контекстное меню файла класса, щелкнув правой кнопкой мыши, и выберите пункт Перейти к диаграмме классов.
В представлении классов откройте контекстное меню пространства имен или типа и выберите пункт Просмотр схемы класса.
Если представление классов не открыто, откройте его из меню Вид.
Отображение содержимого всего проекта в схеме классов
В обозревателе решений или в представлении классов щелкните проект правой кнопкой мыши и выберите Просмотр, а затем — Просмотр схемы класса.
Чтобы им воспользоваться вам необходимо выделить проект нажать правую кнопку мыши, далее выбрать Представление и > Перейти к диаграмме классов.
В последних версия VS переименовали компонент, потому многие его не могу найти, для этого я дополню статью.
Откроется окно Visual Studio Installer
Далее вам не обходимо перейти на вкладку Отдельный компоненты.
И в поле поиска вписать слово конструктор.
От фильтруется список и вы увидите компонент Конструктор классов нужно установить галочку на компоненте. И нажать в правом углу кнопку изменить.
Произойдет загрузка компонента и у вас вновь откроется студия по завершению.
Далее вам необходимо выбрать правой кнопкой мыши по проекту и перейти в пункт Представление >>Перейти к диаграмме классов. У вас загрузится конструктор как на скриншоте.
В прошлом мы должны были использовать обозреватель решения и различные инструменты, такие как Microsoft Visio, чтобы понять архитектурный дизайн из набора проектов и файлов кода и полагаться на соглашения по наименованиям проектов и файлов. Этот процесс зачастую затруднен, подвержен ошибкам и нестандартен, результаты проектирования и визуализации обратного инжиниринга, которые зачастую устаревшие, неполны или неточны. По существу процесс часто был «ручной» и чем больше мы можем автоматизировать трудоемкий и подверженный ошибкам процесс, тем лучше наше понимание моделей.
Visual Studio Ultimate может помочь нам в сценарии анализа существующего системы в ситуациях, таких, как:
- Нам нужно понять (части) существующей системы, чтобы быть в состоянии поддерживать или расширять ее.
- Нам нужно понять (части) существующей системы, чтобы иметь возможность сказать кое-что о ее качестве.
Инструменты архитектуры в Visual Studio Ultimate помогают нам визуализировать организацию, связи, шаблоны проектирования и поведение (части) существующей системы программного обеспечения в последовательном, повторяемом и стандартизированном виде.
ВОПРОСЫ Почему важно определить шаблоны проектирования, которые используются в существующей системе? Зачем нам нужно представление проектирования высокого уровня? |
Если вы хотите расширить или изменить поведение приложения, важно понять, что такое все его части, что они делают и как они зависят друг от друга. Это необходимо не только потому, что вы можете определить, какие части должны быть изменены, но и потому что вы можете оценить, насколько любые изменения, которые вы могли бы внести, будут влиять на остальной проект.
Отношения между частями сложного проекта могут быть описаны с точки зрения шаблонов проектирования. Например, вы можете определить один объект в качестве наблюдателя другого. После того как вы определили эти шаблоны, намерения автора проектирования становятся яснее. Тогда будет легче придерживаться изначальным принципам проектирования, пока вы адаптируетесь и расширяете проект.
Во время изучения существующего кода, вы можете найти области, где можно улучшить проект, сделать его проще для изменений. Они могут быть определены и описаны в терминах анти-шаблонов, например, циклические зависимости или дублирования. Описывая любые недостатки, как анти-шаблоны, вы делает его легче для оценки трудностей, которые они могут вызвать, и обсудить возможные решения.
В случае нового требования или функции, вам нужно понять, как новые части будут взаимодействовать с существующими функциями и как часть существующего кода нужно изменить. Процесс разведочного обратного инжиниринга охватывает две формы понимания:
- Выявление моделей и общей структуры приложения на высоком уровне.
- Понимание метода или конкретного потока в деталях на более низком уровне детализации.
Можно создать схемы последовательностей из существующего кода и затем изменять их для реализации новых вариантов использования. От этих адаптированных диаграмм вы можете получить необходимые интерфейсы для каждого компонента. Вы также можете оценить влияние изменений на качество сервисных требований системы.
ВОПРОСЫ Как мы начать сценарий обратного инжиниринга? |
Это зависит от типа и уровня детализации, который вам нужен.
Рабочий процесс
ПРИМЕЧАНИЕ Миграция решения/проектов/ проекта моделирования является автоматическим процессом в Visual Studio 2012, который позволяет вам работать с Visual Studio 2010 и Visual Studio 2012. Исключение из этого правила совместимости являются расширения Visual Studio, поскольку они ориентированы на конкретный выпуск visual studio. |
Предлагаемый процесс изучения существующей системы разбит на семь шагов как отражено ниже:
Рабочий процесс анализа существующей системы
Получить артефакты реализации
Первый шаг заключается в обеспечении правильных и полных артефактов реализации (существующий код системы). Чтобы открыть решение в Visual Studio, возможно, придется мигрировать решение и проекты из предыдущей версии Visual Studio или других инструментов. В конце нужно добавить проект моделирования в решение, если это еще не сделано.
ПРИМЕЧАНИЕ Не обязательно добавлять типовой проект в решение для всех сценариев обратного инжиниринга – графы и диаграммы последовательностей не требуют этого-однако это обеспечивает удобное место для хранения всех моделей или изображений. |
Смотрите « Сценарий – мне нужна повторно используемая (повторяемая) архитектура», для получения дополнительной информации о структуризации решения в содействии повторно используемой архитектуре.
Графы зависимостей
Чтобы лучше понять отношения и организация в системе можно создавать графы зависимостей.
Эти графы представляют элементы кода и их отношения как набор узлов, которые связаны ссылками или границами.
Можно использовать эти графы, чтобы помочь вам визуализировать, исследовать и анализировать существующий код. Например вы можете использовать эти анализаторы для выполнения следующих задач:
- Найти код, который имеет петли или циклические зависимости.
Изучайте эти области, чтобы увидеть, можно ли упростить их и рассмотреть возможность разорвать эти циклы. - Найти код, который имеет слишком много зависимостей.
Исследуйте эти области, чтобы увидеть выполняют ли они слишком много функций или определить влияние изменений в этих областях. Правильно сформированный граф зависимостей покажет минимальное количество зависимостей. Чтобы сделать код легче для поддержки, изменения, проверки и повторного использования, оцените возможность рефакторинга этих областей таким образом, чтобы они были более четко определены, или возможность объединения кода, которая выполняет аналогичные функции. - Найти код, который не имеет зависимостей.
Исследуйте эти области, чтобы увидеть являются ли они необходимыми или этот код следует удалить. - Создать понятное представление вашего решения
Изучите и организуйте ваше решение, чтобы видеть и понимать структуру решения, добавлять комментарии или создавать новые связи и узлы. - Изучить артефакты решения
Больше описательных легенды для каждой части вашего решения.
Легенды в DEV 11
НАБЛЮДЕНИЕ Параметр «генерировать для решения» для генерирования графика DGML считается наилучшей практикой. Она очень часто применяется при наличии нескольких пространств имен в сборке и особенно при использовании архитектуры на основе руководства шаблонов и практики приложений архитектуры 2.0, эта опция дает вам представление, которое сразу же показывает любые логические разделения в рамках архитектуры. Однако считать это наилучшей практикой является довольно субъективным – иногда представление решения служит вам лучше, если вы пытаетесь разобраться в перекрестных бинарных зависимостях, особенно если вы рассматриваете развертывание. |
Граф зависимостей для решения
Вы можете найти узел по имени, используя для поиска через несколько уровней сгруппированных узлов. Нажмите CTRL + F для открытия окна поиска в графе зависимостей.
Поиск в графе зависимостей
Другие возможности для клавиатуры и мыши
Наконец в левой части документа также имеется элемент управления масштабом и кнопка масштабировать под размер окна.
В меню архитектуры, вы можете создавать графы зависимостей для решения или файлы включения. Можно создавать графы зависимостей для следующих типов проектов и файлов:
Опции графа зависимостей
Обратите внимание, что:
- Импорт XMI является частью продукта
- Экспорта XMI нет в продукте, но доступно в виде исходного кода в примерах Vs VmSdk: XMI Exporter Extension for UML Designers
Открытие и сохранение логической архитектуры с использованием диаграмм слоев
Чтобы лучше понять логическую архитектуру существующей системы мы можем создать схему слоев из артефактов кода. Диаграмма слоя показывает слои и их зависимости. Вы можете создать каждый слой для представления группы типов, файлов кода, сборки или других артефактов. Вы можете назвать слои таким образом, чтобы указывать их роли и функций.
Когда вы назначили артефакты кода слоям, вы можете рисовать стрелки для представления зависимости, которые вы хотите разрешить, или вы можете из Visual Studio сгенерировать текущие зависимости, а затем изменить их.
Диаграмма слоя может также использоваться для проверки архитектуры в будущем, обеспечивая, что изменения в коде не случайно вводят новые зависимости. Смотрите How to: Validate Code Against Layer Diagrams и Layer Validation with the VSTS 2010 CTP для получения дополнительной информации.
Диаграмма слоев
Обозреватель архитектуры
Еще одним полезным инструментом для изучения существующего кода является обозреватель архитектуры, которая позволяет найти код, перейдя через узлы или с помощью инструмента фильтрации. Вы можете также создавать документы графа из выбранных узлов в обозревателе архитектуры или перетаскивать узлы на схему слоя, используя этот подход в отличие от стандартного графа, вы можете сфокусироваться на деталях вместо того, чтобы получать общую картину.
Обозреватель архитектуры
Обозреватель решения
Теперь в Visual Studio 2012 можно использовать обозреватель решения для поиска определенного типа или члена исследуя структуру проекта или с помощью нового поиска, а затем найти другие элементы, которые имеют конкретные типы взаимоотношений с этим типом или членом.
По умолчанию Visual Studio отображает элементы, которые имеют отношение вложения с типом или членом. Однако вы можете выбрать различные отношения для элементов, которые вы хотите включить.
Возможность поиска в обозревателе решения
В обозревателе решений можно выбрать определенный элемент и исследовать связь с другим типом или членом, чтобы визуализировать в графе DGML нужно просто перетащить и бросить их.
Команды обозревателя решений для изучения связей
Диаграммы последовательности
Диаграмма последовательности является идеальным инструментом для понимания (части) существующего кода.
Важно подчеркнуть, что существует два различных вида схем последовательностей:
Диаграмма последовательностей
Схемы классов
Есть также два вида диаграмм классов:
Рисование схемы классов из важных частей системы поддерживает понимание больших кусков существующего кода. Вам не нужно создавать схему классов для каждой части или класса в системе, но вместо этого следует сосредоточиться на ключевых компонентах системы.
Схемы классов помогают вам объединять основные архитектурные аспекты существующей системы.
Создание других диаграмм
Наконец если вы хотите реализовать новую функцию в существующей системе, можно использовать другие UML-диаграмм. Для получения дополнительных сведений о том, как использовать UML-диаграммы посетите Developing Models for Software Design в библиотеке MSDN.
Читайте также: