Как мы уже известен , Visual Studio 2010 Ultimate предоставляет довольно удобные возможности для реверс-инжиниринга.
Используя инструменты Visual Studio, мы можем построить модель UML на основе существующего кода и понять, как все на самом деле работает, не прилагая при этом огромных усилий по созданию диаграмм вручную и поддержанию их в актуальном состоянии.
Все бы ничего, но в этом инструменте напрочь отсутствует возможность синхронизации модели с кодом.
То есть после изменения модели нам приходится менять классы вручную.
В случае большого количества мелких изменений это оказывается весьма неудобно и по этой причине от полноценного моделирования часто отказываются.
Недавно Microsoft выпустила надстройку под названием Microsoft Visual Studio 2010 Feature Pack 2. Этот инструмент дает нам прекрасную возможность синхронизировать изменения модели с кодом.
Коротко расскажу, как это можно использовать.
Например, предположим, что у нас есть примитивный блог.
Предметная область представлена двумя классами: Автор и Статья.
Мы добавляем в решение новый проект моделирования.
В нем мы создаем диаграмму классов UML.
Давайте воспользуемся возможностями обратного инжиниринга.
Перетащите классы из Обозревателя архитектуры на диаграмму.
В этом случае сущность появляется на диаграмме вместе со своими атрибутами.
Периодически между сущностями, которые должны существовать, образуются связи (причём тип связи даже периодически показывается правильно), но в каких случаях пока определить не удалось.
Как мы все знаем, стандарт UML 2.0 определяет четыре стандартных типа данных: Boolean, Integer, String и UnlimitedNatural. Остальные типы автоматически создаются в пакетах в соответствии с их расположением в пространствах имен .
NET. Итак, попробуем «отремонтировать» модель до адекватного состояния, и в то же время немного расширить ее.
Для этого создайте новый класс на диаграмме, перетащите его в нужный пакет в обозревателе моделей UML и выберите стереотип класса C# (Microsoft добавила несколько стереотипов, специфичных для .
NET, которые используются при генерации кода).
Обратите внимание, что этот класс еще не присутствует в сборке домена.
Для того, чтобы прописать его там, и при этом применить все наши изменения, вам необходимо сделать следующее.
В обозревателе моделей выберите сборку «Домен», перейдите в «Свойства» и в пункте «Привязка текстового шаблона» нажмите кнопку «…».
Добавляем новый элемент, в поле 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.
После этого щелкните правой кнопкой мыши пустое место на диаграмме и выберите «Создать код».
И — вуаля! В сборку добавлен новый класс, все изменения применены в соответствии с моделью.
Кстати, с помощью стереотипов можно указать практически все: видимость членов, атрибуты, включаемые при генерации пространства имен и т. д.
Итак, M$ предлагает нам отличный инструмент, который значительно облегчит жизнь архитекторам и разработчикам.
К сожалению, этот столь необходимый пакет доступен только подписчикам MSDN, и по каким-то причинам компания не разрешает использовать его всем легальным пользователям.
И это при стоимости VS Ultimate около 300 тысяч рублей.
Будем надеяться, что такое положение дел изменится в ближайшем будущем.
Теги: #visual studio 2010 #design #uml design #.
NET #программирование #генерация кода #обратное проектирование #обратное проектирование #.
NET #UML Design
-
Точность Прогнозов Погоды
19 Oct, 24 -
Как Я Ушел От Эльмы
19 Oct, 24