250 likes | 446 Views
Анализ существующ ей архитектуры с помощью Visual Studio 2010. Евгений Чигиринский Microsoft. Visualization and Architecture tools in VS 2010. Зачем они нужны ? Для кого они предназначены ? Что они могут делать ?. Зачем?. Сложность существующих систем остается серьезной проблемой
E N D
Анализ существующей архитектуры с помощью Visual Studio 2010 Евгений ЧигиринскийMicrosoft
Visualization and Architecture tools in VS 2010 • Зачем они нужны? • Для кого они предназначены? • Что они могут делать?
Зачем? • Сложность существующих систем остается серьезной проблемой • В коде, архитектуре, ТЗ, структуре организаций • (этот список можно продолжать до бесконечности)
Для кого? • Для разработчиков... • ... которым нужно разобраться в существующем коде • ... которым нужно быстро и надежно исправить существующие проблемы и баги. • Для архитекторов... • ... которым нужно делать дизайн архитектуры или документировать существующие решения • ... анализировать фактические зависимости между компонентами (модулями) решения
Что они могут делать? • Visual Studio 2010 предлагает средства разработки для ... • ... улучшения взаимодействия и коммуникаций между участниками процесса разработки • ... понимания существующих систем (архитектура и код) • ... возможности контролировать архитектуру и код в процессе разработки.
VS 2010 Architecture Tools – подход к решению проблемы • Необходимы инструменты для понимания: • Архитектуры имеющегося приложения • Уже имеющегося кода • Внешних компонент и систем, от которых зависит код (по необходимости) • Чаще всего в виде DLL или EXE
Architecture Explorer • Визуальное представление артефактов кода: • UI для составления запросов к отдельным компонентам кода • Запросы могут быть сохранены виде DGQL (digital graph query language) файлов • Генерация графов зависимости по результатам запросов
Диаграммы последовательностей • Генерация диаграмм последовательностей из кода • Помогает разобраться что делает незнакомый код • Визуализация зависимостей и вызовов • Визуализация отложенных вызовов (LINQ, lambdas, и так далее) • Возможность предлагать и сохранять изменения в дизайне на диаграмме
Графы зависимостей • Используется для анализа кода и визуализации связей между различными артефактами кода приложения (классы, интерфейсы, методы, сборки, и так далее) • Поддерживается анализ исходного и бинарного кода • Удобно для исследования сборок при отсутствии исходного кода • Наглядная документация кода
Язык DGML и графы зависимостей • DGML – Direct Graph Modeling Language • Текстовый (XML) формат • Визуализация в Visual Studio 2010 • Может быть использован для визуализации любых зависимостей: • Визуализация артефактов TFS: http://visualization.codeplex.com • Визуализация .NET объектов из дампа памяти:Visual GC Root
Visual Studio 2010 Ultimate… • …позволяет провести анализ существующего кода и архитектуры с помощью: • Architecture Explorer • Диаграмм последовательностей • Графов зависимостей • …помогает улучшить архитектуру в уже существующем решении.
Контроль за процессом разработки
Контроль за процессом разработки • Обеспечение целостности архитектуры • Управление кодом
Диаграммы Уровней • Визуализация архитектуры • Проверка кода на соответствие архитектуре
Диаграммы Уровней - Шаблоны • Выбор готовых шаблонов от Microsoft и сообщества архитекторов и разработчиков для диаграмм уровней • Созданные шаблоны можно использовать всей командой
Проверка кода на соответствие архитектуре Автоматизация проверки путем интеграции с процессом сборки (через TFS Build)
Demo: Диаграммы уровней и контроль процесса разработки
Visual Studio 2010 Ultimate… • Предоставляет средства разработки для борьбы с проблемой «разрастания» кода и обеспечения целостности архитектуры: • Диграммы Уровней (Layer Diagrams) • Автоматизация процессов ALM путем тесной интеграции с TFS
References • http://msdn.microsoft.com/en-us/library/dd409365.aspx - MSDN: Visualizing Existing Code. Практическое руководство по визуализации существующего кода из MSDN. • http://blogs.msdn.com/b/camerons/ - Блог Камеруна Скиннера – руководителя команды Visual Studio 2010 Ultimate • http://www.lovettsoftware.com/blogengine.net/ - Блог Криса Ловетта – архитектора команды Visual Studio 2010 Ultimate • http://visualstudiogallery.msdn.microsoft.com/en-us/237f823c-45b4-4f1f-b9e2-607fe66eaae7 – подборка шаблонов диаграмм уровней от команды Patterns & Practices