Анализ существующ ей архитектуры с помощью visual studio...
DESCRIPTION
Анализ существующ ей архитектуры с помощью Visual Studio 2010. Евгений Чигиринский Microsoft. Visualization and Architecture tools in VS 2010. Зачем они нужны ? Для кого они предназначены ? Что они могут делать ?. Зачем?. Сложность существующих систем остается серьезной проблемой - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/1.jpg)
Анализ существующей архитектуры с помощью Visual Studio 2010
Евгений ЧигиринскийMicrosoft
![Page 2: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/2.jpg)
Visualization and Architecture tools in VS 2010
• Зачем они нужны?• Для кого они предназначены?• Что они могут делать?
![Page 3: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/3.jpg)
Зачем?
• Сложность существующих систем остается серьезной проблемой– В коде, архитектуре, ТЗ, структуре
организаций– (этот список можно продолжать до
бесконечности)
![Page 4: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/4.jpg)
Для кого?
• Для разработчиков...– ... которым нужно разобраться в
существующем коде– ... которым нужно быстро и надежно
исправить существующие проблемы и баги.• Для архитекторов...– ... которым нужно делать дизайн
архитектуры или документировать существующие решения
– ... анализировать фактические зависимости между компонентами (модулями) решения
![Page 5: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/5.jpg)
Что они могут делать?
• Visual Studio 2010 предлагает средства разработки для ...– ... улучшения взаимодействия и
коммуникаций между участниками процесса разработки
– ... понимания существующих систем (архитектура и код)
– ... возможности контролировать архитектуру и код в процессе разработки.
![Page 6: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/6.jpg)
Анализ кода и архитектуры
![Page 7: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/7.jpg)
VS 2010 Architecture Tools – подход к решению проблемы
• Необходимы инструменты для понимания:– Архитектуры имеющегося
приложения– Уже имеющегося кода– Внешних компонент и систем, от
которых зависит код (по необходимости)• Чаще всего в виде DLL или EXE
![Page 8: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/8.jpg)
Architecture Explorer
– Визуальное представление артефактов кода:
– UI для составления запросов к отдельным компонентам кода• Запросы могут быть сохранены виде DGQL (digital
graph query language) файлов– Генерация графов зависимости по результатам
запросов
![Page 9: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/9.jpg)
Demo: Architecture Explorer
![Page 10: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/10.jpg)
Диаграммы последовательностей
– Генерация диаграмм последовательностей из кода• Помогает разобраться что делает
незнакомый код• Визуализация зависимостей и вызовов• Визуализация отложенных вызовов (LINQ,
lambdas, и так далее)
– Возможность предлагать и сохранять изменения в дизайне на диаграмме
![Page 11: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/11.jpg)
Demo: Sequence Diagrams
![Page 12: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/12.jpg)
Графы зависимостей
– Используется для анализа кода и визуализации связей между различными артефактами кода приложения (классы, интерфейсы, методы, сборки, и так далее)
– Поддерживается анализ исходного и бинарного кода• Удобно для исследования сборок при
отсутствии исходного кода
– Наглядная документация кода
![Page 13: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/13.jpg)
Язык DGML и графы зависимостей
• DGML – Direct Graph Modeling Language• Текстовый (XML) формат
• Визуализация в Visual Studio 2010
• Может быть использован для визуализации любых зависимостей:
• Визуализация артефактов TFS: http://visualization.codeplex.com
• Визуализация .NET объектов из дампа памяти: Visual GC Root
![Page 14: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/14.jpg)
Demo: Графы зависимостей и DGML
![Page 15: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/15.jpg)
Visual Studio 2010 Ultimate…
• …позволяет провести анализ существующего кода и архитектуры с помощью:– Architecture Explorer– Диаграмм последовательностей– Графов зависимостей
• …помогает улучшить архитектуру в уже существующем решении.
![Page 16: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/16.jpg)
Контроль за процессом разработки
![Page 17: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/17.jpg)
Контроль за процессом разработки
• Обеспечение целостности архитектуры
• Управление кодом
![Page 18: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/18.jpg)
Диаграммы Уровней
• Визуализация архитектуры
• Проверка кода на соответствие архитектуре
![Page 19: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/19.jpg)
Диаграммы Уровней - Шаблоны
• Выбор готовых шаблонов от Microsoft и сообщества архитекторов и разработчиков для диаграмм уровней
• Созданные шаблоны можно использовать всей командой
![Page 20: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/20.jpg)
Проверка кода на соответствие архитектуре
Автоматизация проверки путем интеграции с процессом сборки (через TFS Build)
![Page 21: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/21.jpg)
Demo: Диаграммы уровней и контроль процесса разработки
![Page 22: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/22.jpg)
Visual Studio 2010 Ultimate…
• Предоставляет средства разработки для борьбы с проблемой «разрастания» кода и обеспечения целостности архитектуры:
– Диграммы Уровней (Layer Diagrams)
– Автоматизация процессов ALM путем тесной интеграции с TFS
![Page 23: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/23.jpg)
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
![Page 24: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/24.jpg)
Q & A
![Page 25: Анализ существующ ей архитектуры с помощью Visual Studio 2010](https://reader036.vdocuments.mx/reader036/viewer/2022062315/56814e4b550346895dbbd50b/html5/thumbnails/25.jpg)