Сценарии музыкального проекта

 

Опубликовано: Октябрь 2016

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Инструменты визуализации и моделирования в Visual Studio позволяют контролировать соответствие системы требованиям пользователей. В число таких инструментов входят UML-схемы, карты кодов, схемы слоев и схемы классов, позволяющие выполнять указанные ниже действия.

Чтобы узнать, какие версии Visual Studio поддерживают каждую функцию, см. раздел Поддержка версий для инструментов моделирования и архитектуры.

  • Уточнение требований пользователей и бизнес-процессов.

  • Визуализация и просмотр существующего кода.

  • Описание изменений в существующей системе.

  • Проверка соответствия системы требованиям.

  • Поддержание соответствия кода и структуры.

Данное пошаговое руководство:

  • описывает, какую пользу эти инструменты могут принести проекту программного обеспечения;

  • показывает, как использовать эти инструменты независимо от подхода к разработке, и содержит пример сценария.

Дополнительные сведения об этих инструментах и поддерживаемых ими сценариях см. в следующих разделах.

В этом сценарии описываются эпизоды из жизненных циклов разработки программного обеспечения для двух вымышленных компаний: Dinner Now и Lucerne Publishing. Dinner Now предоставляет услуги доставки еды по Сиэтлу с заказом через Интернет. Клиенты заказывают еду и производят оплату на веб-сайте компании Dinner Now, после чего заказы направляются в соответствующий местный ресторан для выполнения доставки. Нью-йоркская компания Lucerne Publishing работает в нескольких областях с использованием и без использования Интернета. Например, у нее есть веб-сайт, на котором клиенты могут размещать отзывы о ресторанах.

Недавно компания Lucerne приобрела компанию Dinner Now и хочет произвести указанные ниже изменения.

  • Объединить веб-сайты, добавив на портал компании Dinner Now возможность просматривать отзывы о ресторанах.

  • Заменить платежную систему компании Dinner Now системой компании Lucerne.

  • Расширить сферу предоставления услуг компании Dinner Now на весь регион.

В компании Dinner Now используются методологии SCRUM и экстремального программирования (XP). У них очень высокий объем протестированного кода и очень мало неподдерживаемого кода. Компания минимизирует риски, создавая небольшие, но работающие версии системы и постепенно добавляя функциональные возможности. Разработка кода выполняется путем коротких и частых итераций. Это позволяет уверенно вносить изменения, часто выполнять рефакторинг кода и избегать подхода с большими затратами на предварительное планирование структуры (BDUF).

Компания Lucerne использует набор намного более масштабных и комплексных систем, некоторым из которых более 40 лет. Компания с большой осторожностью подходит к внесению изменений из-за сложности и большого объема кода прежних версий. Она придерживается более строгого процесса разработки, предпочитая создавать подробные решения и документировать структуру и изменения, вносимые в процессе разработки.

Обе команды прибегают к схемам моделирования в Visual Studio, которые помогают им разрабатывать системы, соответствующие потребностям пользователей. Для планирования и организации, а также для управления своей работой они используют Team Foundation Server и другие инструменты.

Дополнительные сведения о работе с Team Foundation Server см. в указанных ниже разделах.

В следующей таблице описываются роли, которые эти инструменты могут играть на различных стадиях жизненного цикла разработки программного обеспечения.

Моделирование требований пользователейМоделирование бизнес-процессовАрхитектура и дизайн системыВизуализация и просмотр кодаПроверка
Схема вариантов использования (UML)
Схема активности (UML)
Схема классов (UML)
Схема компонентов (UML)
Схема последовательностей (UML)
Схема доменного языка (DSL)
Схема слоев, проверка слоев
Карта кода
Конструктор классов (на основе кода)

Чтобы составить UML-схему или схему слоев, необходимо создать проект моделирования в существующем или новом решении. Эти схемы должны создаваться в проекте моделирования. Элементы на UML-схемах являются частью общей модели, а сами UML-схемы — представлениями этой модели. Элементы на схемах слоев находятся в проекте моделирования, но не хранятся в общей модели. Карты кода и схемы классов.NET, созданные на основе кода, обычно в проекте моделирования не размещаются.

Пример

Для просмотра альтернативных представлений архитектуры можно использовать определенные элементы одной модели сразу на нескольких различных схемах. Например, можно перетащить компонент в другую схему компонентов или последовательностей, чтобы он мог функционировать как субъект. См. раздел Изменение моделей и схем UML.

Обе команды также используют проверку слоев, которая позволяет контролировать соответствие разрабатываемого кода дизайну.

Пример

Схемы моделирования в Visual Studio можно использовать по мере необходимости или в соответствии с выбранным подходом к разработке, поскольку конкретный порядок их применения не установлен. Обычно за время работы над проектом команды обращаются к своим моделям итерационно и многократно. Каждая схема обеспечивает определенные средства, помогающие понять, описать и передать различные аспекты разрабатываемой системы.

Компании Dinner Now и Lucerne используют схемы как общий язык для обмена данными друг с другом и с участниками проекта. Например, в компании Dinner Now схемы используются для выполнения следующих задач.

  • Визуализация существующего кода.

  • Обмен данными с компанией Lucerne о новых или обновленных пользовательских историях.

  • Выявление изменений, необходимых для поддержки новых или обновленных пользовательских историй.

В компании Lucerne схемы используются для выполнения следующих задач:

  • ознакомление с бизнес-процессом компании Dinner Now;

  • понимание дизайна системы;

  • обмен данными о новых или обновленных пользовательских требованиях с компанией Dinner Now;

  • документирование обновлений системы.

Схемы интегрируются в Team Foundation Server, что дает командам возможность легко планировать, выполнять и отслеживать свою работу. Например, с помощью моделей команды устанавливают тестовые случаи и оценивают свою работу. Чтобы контролировать прогресс и обеспечивать соответствие системы требованиям пользователей, компания Lucerne связывает рабочие элементы Team Foundation Server с элементами модели. Например, сопоставление вариантов использования с рабочими элементами тестовых случаев позволяет проследить за тем, чтобы варианты использования выполнялись после прохождения всех тестов.

Перед тем как вернуть изменения, команды проверяют код по тестам и дизайну, выполняя построения с проверкой слоев и автоматическими тестами. Это помогает предотвратить противоречия между обновленным кодом и дизайном, а также нарушение работавших прежде функциональных возможностей.

Пример

Понимание роли системы в бизнес-процессе

Компании Lucerne необходимо получить больше сведений о бизнес-процессе компании Dinner Now. Чтобы улучшить взаимопонимание с компанией Dinner Now, она создает следующие схемы.

СхемаЧто описывает
Схема вариантов использования (UML)

Пример

- UML-схемы вариантов использования: справочные материалы
- UML-схемы вариантов использования: правила работы

- Виды деятельности, которые поддерживаются системой компании Dinner Now.
- Персонал и внешние системы, выполняющие эти виды деятельности.
- Основные компоненты системы, которые обеспечивают поддержку каждого вида деятельности.
- Части бизнес-процесса, не контролируемые текущей системой, например доставка еды.
Схема активности (UML)

Пример

- UML-схемы деятельности: справочные материалы
- UML-схемы деятельности: рекомендации

Последовательность действий клиента при размещении заказа.
Схема классов (UML)

Пример

- UML-схемы классов: справочные материалы
- UML-схемы классов: правила работы

Бизнес-сущности и терминология, которая используется в переговорах и отношениях между этими сущностями. Например, в данном сценарии фигурируют термины «Заказ» и «Позиция меню».

Например, чтобы понять, какие задачи выполняются на веб-сайте компании Dinner Now и кто их выполняет, компания Lucerne создает следующую схему вариантов использования.

Схема вариантов использования UML

Схема вариантов использования UML

Следующая схема активности описывает последовательность операций, выполняемых клиентом при размещении заказа на веб-сайте Dinner Now. В данном случае элементы комментариев идентифицируют роли, а строки образуют дорожки, которые упорядочивают операции по ролям.

Схема активности UML

Схема активности UML

На следующей схеме классов описываются сущности, участвующие в процессе заказа.

UML-схема классов

UML-схема классов

Описание новых или обновленных требований пользователей

Компания Lucerne хочет добавить в систему компании Dinner Now функциональность, позволяющую клиентам читать и оставлять отзывы о ресторанах. Она обновляет указанные ниже схемы, чтобы описать новые требования и обсудить их с компанией Dinner Now.

Например, следующая схема вариантов использования включает новый вариант использования «Написать отзыв», соответствующий новому требованию. Для удобства идентификации он выделен на схеме оранжевым цветом.

Схема вариантов использования UML

Схема вариантов использования UML

Следующая схема активности включает новые элементы, выделенные оранжевым цветом и описывающие порядок шагов в новом варианте использования.

Схема активности UML

Схема активности UML

Следующая схема классов содержит новый класс Review и его отношения с другими классами, чтобы команды могли обсуждать детали этого класса. Обратите внимание, что и у клиента, и у ресторана может быть несколько отзывов.

UML-схема классов

UML-схема классов

Создание тестов из моделей

Обе команды согласились, что перед внесением каких-либо изменений необходимо подвергнуть систему и ее компоненты полному набору тестов. В компании Lucerne имеется специальная команда, которая проводит тестирование на уровне системы и на уровне компонентов. Она взяла тесты, созданные компанией Dinner Now, и структурировала их с помощью UML-схем.

  • Каждый вариант использования представлен одним или несколькими тестами. Элементы на схеме вариантов использования связываются с рабочими элементами тестовых случаев в Team Foundation Server.

  • Каждый поток на схеме активности или схеме последовательностей уровня системы связан по крайней мере с одним тестом. Команда тестирования систематически следит за тем, чтобы проверку проходил каждый возможный путь на схеме активности.

  • Для описания тестов используются термины, основанные на терминологии, определенной с помощью схем вариантов использования, классов и активности.

При изменении требований и соответствующем обновлении схем обновляются и тесты. Требование считаются выполненным только после успешного выполнения тестов. Если это возможно или целесообразно, тесты определяются и основываются на UML-схемах до начала реализации.

Пример

Выявление изменений в существующей системе

Компания Dinner Now должна оценить свои расходы на выполнение нового требования. Частично они зависят от того, как повлияет это изменение на другие части системы. Для этой цели один из разработчиков компании Dinner Now создает следующие карты кода и схемы из существующего кода.

Карта кода или схемаЧто показывает
Карта кода

Пример

- Сопоставление зависимостей в разных решениях
- Просмотр и реорганизация карт кода
- Настройка карт кода путем редактирования DGML-файлов

Зависимости и другие отношения в коде.

Например, для начала компания Dinner Now может изучить карты кода сборок и собрать общие сведения о сборках и их зависимостях, а также проанализировать карты и рассмотреть пространства имен и классы в этих сборках.

Кроме того, компания Dinner Now может создать карты для изучения конкретных областей и других видов отношений в коде. Для поиска и отбора соответствующих областей и отношений используется обозреватель решений.

Схема классов на основе кода

См. раздел How to: Add Class Diagrams to Projects (Class Designer).

Существующие классы в коде

Предположим, разработчик создает карту кода и акцентирует внимание на тех областях, которые будут затронуты новым сценарием. Эти области выбираются и выделяются на карте.

Граф зависимостей пространств имен

Карта кода пространства имен

Разработчик разворачивает выбранные пространства имен, чтобы отобразить их классы, методы и отношения.

Граф зависимостей расширенного пространства имен

Развернутая карта кода пространства имен с показанными связями между группами

Разработчик изучает код и определяет, какие классы и методы будут затронуты. Чтобы увидеть последствия каждого изменения, сразу после него создайте карты кодов заново. См. раздел Визуализация кода.

Чтобы описать изменения в других частях системы, таких как компоненты или взаимодействия, команда может нарисовать эти элементы на доске. Указанные ниже схемы в Visual Studio также позволят обеим командам фиксировать и изучать детали и управлять полученной информацией.

СхемыЧто описывает
Схема активности (UML)

Пример

- UML-схемы деятельности: справочные материалы
- UML-схемы деятельности: рекомендации

Последовательность шагов, которые выполняются, когда система обнаруживает, что клиент размещает заказ в ресторане повторно, и предлагает ему написать отзыв.
Схема классов (UML)

Пример

- UML-схемы классов: справочные материалы
- UML-схемы классов: правила работы

Логические классы и их отношения. Например, новый класс добавляется для описания элемента Отзыв и его отношений с другими сущностями, такими как Ресторан, Меню и Клиент.

Для связи отзывов с клиентами система должна хранить сведения о клиентах. Уточнять эти сведения поможет UML-схема классов.

Схема классов на основе кода

См. раздел How to: Add Class Diagrams to Projects (Class Designer).

Существующие классы в коде.
Схема компонентов (UML)

Пример

- Схемы компонентов UML: справочные материалы
- UML-схемы компонентов: правила работы

Высокоуровневые части системы, такие как веб-сайт компании Dinner Now, и их интерфейсы. Эти интерфейсы определяют, как компоненты взаимодействуют между собой через предоставляемые и потребляемые методы или службы.
Схема последовательностей (UML)

Пример

- UML-схемы последовательностей: справочные материалы
- UML-схемы последовательностей: правила работы

Последовательность взаимодействий между экземплярами.

Например, на следующей схеме компонентов показан новый компонент, который является частью компонента веб-сайта компании Dinner Now. Компонент ReviewProcessing обеспечивает функциональную возможность создания отзывов и выделен оранжевым цветом.

Схема компонентов UML

Схема компонентов UML

На следующей схеме компонентов показана последовательность взаимодействий, которые возникают, когда веб-сайт компании Dinner Now проверяет, делал ли ранее клиент заказы в этом ресторане. Если условие выполняется, сайт просит клиента создать отзыв, который отправляется в ресторан и публикуется на веб-сайте.

Схема последовательностей UML

Схема последовательностей UML

Поддержание соответствия кода и дизайна

Компания Dinner Now должна удостовериться, что обновленный код соответствует дизайну. Она создает схемы слоев, описывающие слои функциональных возможностей в системе, указывает разрешенные зависимости между слоями и связывает артефакты решения с этими слоями.

СхемаЧто описывает
Схема слоев

Пример

- Создание схем слоев на основе кода
- Схемы слоев: справочные материалы
- Схемы слоев: рекомендации
- Проверка кода по схемам слоев

Логическая архитектура кода.

Схема слоев упорядочивает и сопоставляет артефакты в решении Visual Studio и сопоставляет их с абстрактными группами, которые называются слоями. Эти слои описывают роли, задачи или функции, выполняемые этими артефактами в системе.

Схемы слоев позволяют описать целевой дизайн системы и проверить создаваемый код на соответствие этому дизайну.

Чтобы создать слои, перетащите элементы из обозревателя решений, карт кода, представления классов и обозревателя объектов. Чтобы нарисовать новые слои, используйте панель элементов или щелкните поверхность схемы правой кнопкой мыши.

Чтобы просмотреть существующие зависимости, щелкните правой кнопкой мыши поверхность схемы слоев и выберите пункт Создать зависимости. Чтобы указать целевые зависимости, нарисуйте новые зависимости.

Например, следующая схема слоев описывает зависимости между слоями и количеством артефактов, связанных с каждым слоем.

Схема слоев интегрированной платежной системы

Схема слоев

Чтобы обеспечить отсутствие конфликтов с дизайном во время разработки кода, команды используют проверку слоев при сборках, выполняемым на Team Foundation Build. Они также создают пользовательскую задачу MSBuild, которая требует проверки слоев при операциях возврата. Для сбора ошибок проверки используются отчеты о сборках.

Пример

Общие рекомендации по созданию и использованию моделей

  • Большинство схем состоит из узлов, соединенных линиями. Для каждого типа схемы области элементов предусмотрены различные виды узлов и линий.

    Чтобы открыть панель элементов, в меню Вид выберите пункт Панель элементов.

  • Чтобы создать узел, перетащите его с панели элементов на схему. Узлы некоторых видов необходимо перетаскивать на существующие узлы. Например, на схеме компонентов новый порт должен добавляться к существующему компоненту.

  • Чтобы создать строку или соединение, щелкните соответствующий элемент на панели элементов и выберите сначала исходный, а затем целевой узел. Некоторые линии можно создавать только между узлами определенных видов. Указатель мыши, наведенный на потенциальный исходный или целевой узел, показывает, можно ли создать соединение.

  • Элементы, создаваемые на UML-схемах, также добавляются в общую модель. UML-схемы в проекте моделирования служат представлениями этой модели. Элементы на схеме слоев составляют часть проекта моделирования, даже если они не хранятся в общей модели.

    Чтобы увидеть модель, в меню Архитектура последовательно выберите пункты Окна и Обозреватель моделей UML.

  • В некоторых случаях определенные элементы можно перетаскивать на UML-схему из обозревателя моделей UML. Некоторые элементы в одной модели могут присутствовать сразу в нескольких или различных схемах, отображая альтернативные представления архитектуры. Например, можно перетащить компонент в другую схему компонентов или последовательностей и использовать его как субъект.

  • Visual Studio поддерживает UML 2.1.2. В этом обзоре описываются только основные функции UML-схем в данном выпуске, но существует много книг, в которых подробно рассматривается язык UML и его применение.

См. раздел Создание моделей для приложения.

Планирование и отслеживание работы

Схемы моделирования в Visual Studio интегрированы с Team Foundation Server, что упрощает планирование, управление и отслеживание работы. Обе команды используют модели для определения тестовых случаев и задач разработки, а также для оценки своей работы. Компания Lucerne создает и связывает рабочие элементы Team Foundation Server с элементами модели, такими как варианты использования или компоненты. Это позволяет контролировать процесс и выполнять трассировку работы вплоть до требований пользователей. Такой подход помогает следить за тем, чтобы изменения продолжали удовлетворять этим требованиям.

В ходе работы команды обновляют свои рабочие элементы, указывая, какое время они затратили на выполнение своих задач. Кроме того, они контролируют состояние своей работы и сообщают о нем с помощью следующих функций Team Foundation Server.

  • Ежедневные отчеты о выработке, показывающие, будет ли запланированная работа завершена за ожидаемое время. Для контроля за ходом устранения ошибок они создают в Team Foundation Server и другие отчеты подобного рода.

  • Лист итераций, в котором для контроля и распределения рабочей нагрузки между членами команды используется Microsoft Excel. Этот лист связан с Team Foundation Server и служит основой для обсуждений во время регулярных совещаний по ходу выполнения работы.

  • Панель мониторинга разработки, в которой для предоставления команде важной информации о проекте используется Office Project.

Пример

Тестирование, проверка и возврат кода

Выполнив очередную задачу, команды возвращают свой код в систему управления версиями Team Foundation и получают от Team Foundation Server напоминания, если забудут это сделать. Прежде чем Team Foundation Server примет возвращенные результаты, команды должны провести модульные тесты и проверку слоев для проверки кода по тестовым случаям и на соответствие проекту. Они используют Team Foundation Server для регулярного выполнения сборок, автоматических модульных тестов и проверки слоев. Это позволяет им контролировать соответствие кода перечисленным ниже критериям.

  • Он работает.

  • Он не нарушает работу ранее работавшего кода.

  • Он не противоречит дизайну.

Компания Dinner Now располагает большим набором автоматических тестов, которые могут использоваться компанией Lucerne, так как почти все эти тесты по-прежнему применимы. Кроме того, компания Lucerne может переработать эти тесты и добавить новые тесты для проверки добавленных функциональных возможностей. Обе компании используют также Visual Studio для выполнения ручных тестов.

Чтобы проверить соответствие кода дизайну, команды настраивают свои сборки в Team Foundation Build, включая проверку слоев. Если возникают какие-либо конфликты, создается отчет с подробными сведениями.

Пример

Компаниям Lucerne и Dinner Now необходимо объединить свои платежные системы. В следующих разделах показано, как схемы моделирования в Visual Studio помогают им выполнить эту задачу.

Пример

Понимание требований пользователей: схемы вариантов использования

Схемы вариантов использования обобщают сведения о поддерживаемых системой видах деятельности и о том, кто их осуществляет. Из схемы вариантов использования компания Lucerne узнала о работе системы компании Dinner Now следующее.

  • Клиенты размещают заказы.

  • Рестораны получают заказы.

  • Шлюз внешней системы обработки платежей, который используется платежной системой компании Dinner Now для проверки платежей, не связан с работой веб-сайта.

Схема также показывает, что некоторые крупные варианты использования разделяются на более мелкие. Компания Lucerne хочет использовать собственную платежную систему. Она выделяет вариант использования «Обработка платежа» другим цветом, показывая, что этот вариант необходимо изменить.

Выделение обработки платежа на схеме вариантов использования

Выделение обработки платежа на схеме вариантов использования

Если бы время разработки было коротким, команды могли бы обсудить, не следует ли позволить клиентам платить ресторанам напрямую. Чтобы это показать, они заменили бы вариант использования «Обработка платежа» вариантом, не включенным в систему компании Dinner Now. Затем они связали бы Клиента непосредственно с Рестораном, показав, что компания Dinner Now будет заниматься только обработкой заказов.

Изменение области действия платежа ресторану на схеме вариантов использования

Изменение области действия платежа ресторану на схеме вариантов использования

Пример

Создание схемы вариантов использования

Схема вариантов использования имеет следующие основные составляющие.

  • Субъекты представляют роли, выполняемые сотрудниками, организациями, оборудованием или программными системами. Например, субъектами являются Клиент, Ресторан и Платежная система компании Dinner Now.

  • Варианты использования представляют взаимодействия между субъектами и разрабатываемой системой. Они могут представлять взаимодействие любого масштаба, от одного щелчка мышью или сообщения до транзакции, выполнение которой занимает несколько дней.

  • Ассоциации связывают субъекты с вариантами использования.

  • Крупный вариант использования может включать более мелкие варианты, например, вариант «Создание заказа» включает вариант «Выбор ресторана». Вариант использования можно расширить, добавив в него цели и шаги, указывающие, что этот вариант использования применяется только при определенных условиях. Варианты использования могут наследовать параметры друг у друга.

  • Подсистема представляет разрабатываемую программную систему или один из ее компонентов. Это большой прямоугольник, содержащий варианты использования. Схема вариантов использования проясняет, что находится в границах подсистемы, а что — за ее пределами. Чтобы указать, что пользователь должен достигать определенных целей другими путями, разместите эти варианты использования за границами подсистемы.

  • Артефакты связывают элементы на схеме с другими схемами или документами.

Пример

Сводка. Преимущества схем вариантов использования

Схемы вариантов использования помогают визуализировать следующее.

  • Виды деятельности, поддерживаемые или не поддерживаемые системой.

  • Персонал и внешние системы, выполняющие эти виды деятельности.

  • Основные компоненты системы, которые поддерживают каждый вид деятельности и могут быть представлены в виде подсистем, вложенных в родительскую систему.

  • Возможное разделение варианта использования на более мелкие варианты или случаи.

Отношение к другим схемам

СхемаЧто описывает
схема активности Последовательность шагов в варианте использования, а также субъект, выполняющий эти шаги в данном варианте использования.

Имена вариантов использования часто отражают шаги на схеме активности. Схемы активности поддерживают такие элементы, как решения, объединения, ввод и вывод данных, параллельные потоки и т. п.

Пример

- UML-схемы деятельности: справочные материалы
- UML-схемы деятельности: рекомендации

Схема последовательностей Последовательность взаимодействий между участниками в варианте использования.

Пример

- UML-схемы последовательностей: справочные материалы
- UML-схемы последовательностей: правила работы

Схема классов (UML) Сущности или типы, участвующие в варианте использования.

Пример

- UML-схемы классов: справочные материалы
- UML-схемы классов: правила работы

Понимание бизнес-процессов: схемы активности

Схемы активности описывают последовательность шагов в бизнес-процессе и предоставляют простой способ описания рабочего процесса. Проект разработки может содержать несколько схем активности. Обычно к активности относят все действия, которые выполняются в результате одного внешнего действия, например заказа еды, обновления меню или добавления нового ресторана. Кроме того, активность может также подробно описывать сложное действие.

Компания Lucerne обновляет приведенную ниже схему активности, взяв на себя обработку платежей и перевод оплаты ресторанам. Платежная система компании Dinner Now заменяется платежной системой компании Lucerne, что и выделено на схеме.

Платежная система компании Lucerne на схеме деятельности

Замена платежной системы компании Dinner Now на схеме активности

Обновленная схема помогает компаниям Lucerne и Dinner Now визуализировать место платежной системы компании Lucerne в бизнес-процессе. В этом выпуске для идентификации ролей, выполняющих шаги, используются комментарии. Линии служат для создания дорожек, которые упорядочивают шаги по ролям.

Команды могут также обсудить альтернативный вариант, когда клиент платит ресторану после доставки заказа. В этом случает возникнут другие требования к программной системе.

Раньше в компании Dinner Now эти схемы рисовались на доске или в программе PowerPoint. Теперь она также использует Visual Studio, поэтому обе команды могут фиксировать и изучать детали, а также управлять ими.

Пример

Создание схемы активности

Схема активности имеет следующие основные составляющие.

  • Начальный узел, указывающий первое действие активности.

    Один из таких узлов должен присутствовать на схеме всегда.

  • Действия, описывающие шаги, в которых пользователь или программное обеспечение выполняют некоторую задачу.

  • Потоки управления, демонстрирующие переход между действиями.

  • Узлы принятия решений, представляющие условные ветви потока.

  • Узлы ветвления, разделяющие один поток на несколько параллельных.

  • Конечные узлы активности, обозначающие завершение активности.

    Использовать эти узлы необязательно, однако с их помощью можно указывать, где заканчивается активность.

Пример

Сводка. Преимущества схем активности

Схемы активности помогают визуализировать и описывать потоки управления и информации между действиями компании, системы или программы. Это простой и удобный способ описания рабочего процесса при общении с другими людьми.

Отношение к другим схемам

Описание структуры системы: схемы компонентов

Схемы компонентов описывают систему в виде коллекции отделяемых частей, которые предоставляют или потребляют поведение через четко определенный набор интерфейсов. Эти части могут иметь любой масштаб и соединяться сценарии музыкального проекта любым доступным способом.

Чтобы помочь компаниям Lucerne и Dinner Now визуализировать и обсудить компоненты системы и их интерфейсы, были созданы следующие схемы компонентов.

Внешние компоненты платежной системы

Компоненты платежной системы компании Dinner Now

На этой диаграмме показаны компоненты различных типов и их зависимости. Например, для проверки платежей как веб-сайт компании Dinner Now, так и платежная система компании Lucerne требуют наличия шлюза внешней системы обработки платежей. Стрелки между компонентами обозначают зависимости, указывающие, каким компонентам требуются функции других компонентов.

Для использования платежной системы компании Lucerne веб-сайт компании Dinner Now необходимо обновить, настроив его на обращение к интерфейсам PaymentApproval и PayableInsertion платежной системы Lucerne.

На приведенной ниже схеме представлена конкретная конфигурация компонентов для веб-сайта компании Dinner Now. Эта конфигурация показывает, что любой экземпляр этого веб-сайта состоит из четырех частей.

  • CustomerProcessing

  • OrderProcessing

  • ReviewProcessing

  • PaymentProcessing

Эти части являются экземплярами компонентов указанных типов и связаны следующим образом.

Компоненты внутри веб-сайта компании Dinner Now

Компоненты внутри веб-сайта компании Dinner Now

Веб-сайт компании Dinner Now делегирует свое поведение частям, которые обрабатывают функции веб-сайта. Стрелки между родительским компонентом и его компонентами-членами обозначают делегирования и указывают, какие части обрабатывают сообщения, получаемые или передаваемые родительским компонентом через его интерфейсы.

В данной конфигурации платежи клиентов обрабатывает компонент PaymentProcessing. Это значит, что его необходимо обновить и интегрировать с платежной системой компании Lucerne. В других сценариях в одном родительском компоненте могут существовать несколько экземпляров компонентов определенного типа.

Пример

Создание схемы компонентов

Схема компонентов имеет следующие основные составляющие.

  • Компоненты, представляющие разделяемые части функциональных возможностей системы.

  • Предусмотренные порты интерфейсов, представляющие группы сообщений или вызовов, которые реализуются компонентами и используются другими компонентами или внешними системами.

  • Необходимые порты интерфейсов, представляющие группы сообщений или вызовов, которые отправляются компонентами другим компонентам или внешним системам. Порт этого типа описывает минимальные операции, которые компонент ожидает от других компонентов или внешних систем.

  • Части, которые являются членами компонентов и обычно представляют собой экземпляры других компонентов. Часть — это составляющая внутреннего дизайна родительского компонента.

  • Зависимости, указывающие, каким компонентам требуются функции других компонентов.

  • Делегирования, указывающие, какие части компонента обрабатывают сообщения, отправленные из родительского компонента или принятые родительским компонентом.

Пример

Сводка. Преимущества схем компонентов

Схемы компонентов помогают визуализировать следующее.

  • Систему как коллекцию разделяемых частей, независимо от языка или стиля их реализации.

  • Компоненты с четко определенными интерфейсами, что упрощает понимание и обновление дизайна при изменении требований.

Отношение к другим схемам

Визуализация существующего кода: карты кода

Карты кода показывают текущую организацию и отношения в коде. Элементы отображаются на карте в виде узлов, а отношения — в виде связей. Карты кода помогают выполнять следующие виды задач:

  • изучение незнакомого кода;

  • понимание области и способа влияния предложенного изменения на имеющийся код;

  • поиск проблемных областей, естественных слоев или шаблонов, а также других областей, улучшение которых может принести пользу.

Например, компания Dinner Now должна оценить затраты на обновление компонента PaymentProcessing. Частично они зависят от того, как повлияет это изменение на другие части системы. Чтобы разобраться в этом вопросе, один из разработчиков компании Dinner Now создает карты кода и выделяет те области, которые могут быть затронуты данным изменением.

На следующей карте кода показаны зависимости между классом PaymentProcessing и выделенными частями системы компании Dinner Now.

Граф зависимостей для платежной системы компании Dinner Now

Карта кода для платежной системы компании Dinner Now

Разработчик изучает карту, развернув класс PaymentProcessing и выбрав его члены для просмотра потенциально затрагиваемых областей.

Методы внутри класса PaymentProcessing и их зависимости

Методы внутри класса PaymentProcessing и их зависимости

Для изучения классов, методов и зависимостей платежной системы компании Lucerne создается карта кода, представленная ниже. Команда выясняет, что для взаимодействия с другими частями компании Dinner Now система компании Lucerne может потребовать доработки.

Граф зависимостей для платежной системы компании Lucerne

Карта кода для платежной системы компании Lucerne

Команды совместно определяют, какие изменения необходимы для интеграции двух систем. Они решают произвести рефакторинг части кода, чтобы упростить его обновление. Класс PaymentApprover будет перемещен в пространство имен DinnerNow.Business и потребует несколько новых методов. Классы Dinner Now, обрабатывающие транзакции, будут иметь собственное пространство имен. Команды создают и используют рабочие элементы для планирования, упорядочивания и отслеживания своей работы. Там, где это полезно, они связывают рабочие элементы с элементами модели.

После реорганизации кода команды создают новую карту кода для просмотра обновленной структуры и отношений.

Граф зависимостей с реорганизованным кодом

Карта кода после реорганизации

Карта кода показывает, что класс PaymentApprover теперь перемещен в пространство имен DinnerNow.Business и имеет несколько новых методов. Классы транзакций компании Dinner Now теперь имеют собственное пространство имен PaymentSystem, что упрощает последующую работу с кодом.

Создание карты кода

  • Для быстрого обзора исходного кода создайте карту кода, выполнив следующие действия.

    В меню Архитектура выберите пункт Сформировать карту кода для решения.

    Для быстрого обзора скомпилированного кода создайте пустую карту кода и перетащите на нее файлы сборок или двоичные файлы.

  • Чтобы изучить определенный код или элементы решения, выберите элементы и отношения, которые нужно визуализировать, в обозревателе решений. После этого можно добавить выбранные элементы в существующую карту кода или создать новую. См. раздел Сопоставление зависимостей в разных решениях.

  • Чтобы было удобнее работать с картой кода, измените ее макет в соответствии с видами задач, которые нужно выполнить.

    Например, для визуализации слоев в коде выберите древовидную структуру. См. раздел Просмотр и реорганизация карт кода.

Сводка. Преимущества карт кода

Карты кода помогают в выполнении следующих задач:

  • изучение организации и отношений в имеющемся коде;

  • выявление областей, на которые может повлиять предложенное изменение;

  • поиск проблемных областей, шаблонов, слоев или других областей, которые можно улучшить, сделав код удобнее для обслуживания, изменения и повторного использования.

Отношение к другим схемам

СхемаЧто описывает
Схема слоев Логическая архитектура системы. Для контроля за соответствием кода дизайну требуется проверка слоев.

Для идентификации существующих или предполагаемых слоев создайте карту кода и сгруппируйте связанные друг с другом элементы. Инструкции по созданию схемы слоев см. в следующих разделах:

- Создание схем слоев на основе кода
- Схемы слоев: рекомендации

схема компонентов Компоненты, их интерфейсы и отношения.

Для идентификации кандидатов в компоненты создайте карту кода и сгруппируйте элементы по их функции в системе.

Пример

- Схемы компонентов UML: справочные материалы
- UML-схемы компонентов: правила работы

Схема классов (UML) Классы, их атрибуты, операции и отношения.

Для идентификации этих элементов создайте UML-схему классов, содержащую эти элементы.

Пример

- UML-схемы классов: справочные материалы
- UML-схемы классов: правила работы

Схема классов на основе кода Существующие в коде классы для конкретного проекта.

Для визуализации и изменения существующего в коде класса используйте конструктор классов.

См. раздел How to: Add Class Diagrams to Projects (Class Designer).

Описание взаимодействий: схемы последовательностей

Схемы последовательностей описывают последовательность взаимодействий между частями системы. Части могут быть любого масштаба, от отдельных объектов в программе до больших подсистем или внешних субъектов. Взаимодействия могут быть любого масштаба и типа, от отдельных сообщений до крупных транзакций и от вызовов функций до сообщений веб-службы.

Чтобы помочь компаниям Lucerne и Dinner Now описать и обсудить этапы в варианте использования «Обработка платежа», была создана представленная ниже схема последовательностей на основе схемы компонентов. Линии жизни отражают компоненты веб-сайта компании Dinner Now и их части. Сообщения между линиями жизни соответствуют соединениям на схемах компонентов.

Схема последовательностей для варианта использования "Обработка платежа"

Схема последовательностей для варианта использования «Обработка платежа»

Схема последовательностей показывает, что, когда клиент создает заказ, веб-сайт компании Dinner Now вызывает метод ProcessOrder в экземпляре класса OrderProcessing. Затем класс OrderProcessing вызывает метод ProcessPayment класса PaymentProcessing. Это продолжается до тех пор, пока шлюз внешней системы обработки платежей не подтвердит платеж. Только после этого управление возвращается веб-сайту компании Dinner Now.

Компания Lucerne должна оценить затраты на обновление своей платежной системы для интеграции с системой компании Dinner Now. Для визуализации кода, который потребует доработки, можно также создать карты кода.

Пример

Создание схемы последовательностей

Схема последовательностей имеет следующие основные составляющие.

  • Вертикальные линии жизни представляют субъекты или экземпляры программных объектов.

    Чтобы добавить символ субъекта, указывающий, что участник находится за пределами разрабатываемой системы, щелкните линию жизни. В окне Свойства присвойте параметру Субъект значение True. Если окно Свойства не отображается, нажмите клавишу F4.

  • Горизонтальные сообщения представляют вызовы методов, сообщения веб-служб или другие сведения. Случаи выполнения — это вертикальные затемненные прямоугольники, отображаемые на линиях жизни и представляющие периоды, в течение которых принимающий объект обрабатывает вызовы.

  • При синхронном сообщении объект-отправитель ожидает <<возврата>> управления, как при обычном вызове функции. В случае асинхронного сообщения отправитель может сразу же продолжить работу.

  • Сообщения типа <<создание>> указывают на создание одних объектов другими. Это сообщение должно отправляться объекту в первую очередь.

Пример

Сводка. Преимущества схем последовательностей

Схемы последовательностей помогают визуализировать следующее:

  • поток управления, передаваемый между субъектами или объектами при выполнении варианта использования;

  • реализация вызова метода или сообщения.

Отношение к другим схемам

СхемаОписание
Схема классов (UML) Определение классов, представляемых линиями жизни, а также параметров и возвращаемых значений, используемых в сообщениях, которыми обмениваются линии жизни.

Чтобы создать класс из линии жизни, щелкните линию жизни правой кнопкой мыши и выберите пункт Создать класс или Создать интерфейс. Чтобы создать линию жизни из типа на схеме классов, щелкните тип правой кнопкой мыши и выберите пункт Создать линию жизни.

Пример

- UML-схемы классов: справочные материалы
- UML-схемы классов: правила работы

схема компонентов Описание компонентов, представляемых линиями жизни, а также интерфейсов, предоставляющих и потребляющих поведение, представляемое сообщениями.

Чтобы создать линию жизни из схемы компонентов, щелкните компонент правой кнопкой мыши и выберите пункт Создать линию жизни.

Пример

- Схемы компонентов UML: справочные материалы
- UML-схемы компонентов: правила работы

Схема вариантов использования Сводка взаимодействий между пользователями и компонентами на схеме последовательностей в виде варианта использования, представляющего цель пользователя.

Пример

- UML-схемы вариантов использования: справочные материалы
- UML-схемы вариантов использования: правила работы

Определение глоссария типов: схемы классов

Схемы классов определяют участвующие в системе сущности, условия или концепции, а также их отношения друг с другом. Например, в процессе разработки эти схемы позволяют описать атрибуты и операции для каждого класса, независимо от языка или стиля его реализации.

Чтобы помочь компании Lucerne описать и обсудить сущности, участвующие в варианте использования «Обработка платежа», была создана следующая схема классов.

Сущности обработки платежа на схеме классов

Сущности обработки платежа на схеме классов

Эта схема показывает, что у клиента может быть много заказов и много способов оплаты. BankAccount и CreditCard наследуют от класса Payment.

В процессе разработки компания Lucerne использует следующую схему классов для описания и обсуждения деталей каждого класса.

Сведения о сущностях обработки платежа на схеме классов

Подробности обработки платежа на схеме классов

Пример

Создание схемы классов

Схема классов имеет следующие основные составляющие:

  • типы, такие как классы, интерфейсы и перечисления.

    • Класс — это определение объектов, совместно обладающих определенными характеристиками структуры и поведения.

    • Интерфейс — это определение части видимого внешне поведения объекта.

    • Перечисление — это классификатор, содержащий список литеральных значений.

  • Атрибуты — это значения определенного типа, которые описывают каждый экземпляр классификатора. Классификатор — это общее имя для типов, компонентов, вариантов использования и даже субъектов.

  • Операции — это методы или функции, которые могут выполняться экземплярами классификатора.

  • Ассоциация — это обозначение отношения между двумя классификаторами.

    • Агрегат — это ассоциация, указывающая на общее владение между классификаторами.

    • Композиция — это ассоциация, указывающая на отношение целого и части между классификаторами.

    Чтобы показать агрегаты или композиции, задайте для ассоциации свойство Агрегат.Общий указывает на агрегаты, а Составной — на композиции.

  • Зависимость указывает, что изменение определения одного классификатора может привести к изменению определения другого классификатора.

  • Обобщение указывает, что определенный классификатор наследует часть своего определения от общего классификатора.Реализация указывает, что класс реализует операции и атрибуты, предоставляемые интерфейсом.

    Для создания таких отношений используется инструмент Наследование. Реализация может быть также представлена как интерфейс без описания операций.

  • Пакеты — это группы классификаторов, ассоциаций, линий жизни, компонентов и других пакетов. Отношения типа Импорт указывают, что один пакет включает все определения другого пакета.

В качестве отправной точки для изучения и обсуждения существующих классов можно в конструкторе классов создать схему классов на основе кода.

Пример

Сводка. Преимущества схем классов

Схемы классов помогают определить следующее:

  • общий глоссарий терминов, используемых при обсуждении потребностей пользователей и сущностей, участвующих в системе; См. раздел Моделирование требований пользователей.

  • типы, используемые частями системы (например, компонентами), независимо от их реализации; См. раздел Моделирование архитектуры приложения.

  • отношения между типами (такие как зависимости). Например, можно показать, что один тип может быть связан с несколькими экземплярами другого типа.

Отношение к другим схемам

СхемаОписание
Схема вариантов использования Определение типов, используемых для описания целей и шагов в вариантах использования.

Пример

- UML-схемы вариантов использования: справочные материалы
- UML-схемы вариантов использования: правила работы

схема активности Определение типов данных, передаваемых через узлы объекта, закрепления ввода, закрепления вывода и узлы параметров действий.

Пример

- UML-схемы деятельности: справочные материалы
- UML-схемы деятельности: рекомендации

схема компонентов Описание компонентов, их интерфейсов и отношений. Класс может также описывать компонент полностью.

Пример

- Схемы компонентов UML: справочные материалы
- UML-схемы компонентов: правила работы

Схема слоев Определение логической архитектуры системы относительно классов.

Для контроля за соответствием кода дизайну требуется проверка слоев.

Пример

- Создание схем слоев на основе кода
- Схемы слоев: справочные материалы
- Схемы слоев: рекомендации
- Проверка кода по схемам слоев

Схема последовательностей Определение типов линий жизни, а также операций, параметров и возвращаемых значений для всех сообщений, которые может принимать линия жизни.

Чтобы создать линию жизни из типа на схеме классов, щелкните тип правой кнопкой мыши и выберите пункт Создать линию жизни.

Пример

- UML-схемы последовательностей: справочные материалы
- UML-схемы последовательностей: правила работы

Карта кода Визуализация организации и отношений в имеющемся коде.

Для идентификации классов, их отношений и методов создайте карту кода, показывающую эти элементы.

Пример

- Сопоставление зависимостей в разных решениях

Описание логической архитектуры: схемы слоев

Схемы слоев описывают логическую архитектуру системы, упорядочивая артефакты в решении в абстрактные группы или слои. Артефактами могут быть различные сущности, такие как пространства имен, проекты, методы и т. п. Слои представляют и описывают роли или задачи, выполняемые артефактами в системе. Включив проверку слоев в операции построения и возврата, можно обеспечить соответствие кода его дизайну.

Чтобы обеспечить соответствие кода дизайну, компании Dinner Now и Lucerne используют следующую схему слоев для проверки кода по мере его разработки.

Схема слоев интегрированной платежной системы

Схема слоев для интеграции компании Dinner Now с компанией Lucerne

Слои на этой схеме связаны с соответствующими артефактами решений компаний Dinner Now и Lucerne. Например, слой «Бизнес» связан с пространством имен DinnerNow.Business и его членами, в число которых теперь входит класс PaymentApprover. Слой «Доступ к ресурсам» связан с пространством имен DinnerNow.Data. Стрелки, или зависимости, указывают, что функциональность слоя «Доступ к ресурсам» может использоваться только слоем «Бизнес». По мере того как команды обновляют свой код, регулярно выполняется проверка слоев для выявления возникающих конфликтов и их быстрого устранения командами.

Команды совместно осуществляют пошаговую интеграцию и тестирование двух систем. Прежде чем начинать работать с PaymentProcessing, команды убеждаются, что класс PaymentApprover и остальная часть системы Dinner Now успешно работают друг с другом.

На следующей карте кода показаны новые вызовы между системой компании Dinner Now и классом PaymentApprover.

Обновленный граф зависимостей с интегрированной системой

Карта кода с обновленными вызовами методов

Убедившись в правильности работы системы, команда Dinner Now исключает код PaymentProcessing, переводя его в комментарии. Отчеты о проверке слоев не содержат ошибок, полученная карта кода показывает, что зависимостей от PaymentProcessing больше нет.

Граф зависимостей без класса PaymentProcessing

Карта кода без класса PaymentProcessing

Создание схемы слоев

Схема слоев имеет следующие основные составляющие.

  • Слои описывают логические группы артефактов.

  • Связь — это ассоциация между слоем и артефактом.

    Чтобы создать слои из артефактов, перетащите элементы из обозревателя решений, карт кода, представления классов или обозревателя объектов. Чтобы создать новые слои, а затем связать их с артефактами, воспользуйтесь панелью элементов или щелкните поверхность системы правой кнопкой мыши, чтобы создать слои, и перетащите элементы на эти слои.

    Число на слое обозначает количество связанных с этим слоем артефактов. Артефактами могут быть пространства имен, проекты, классы, методы и т. п. Число артефактов в слое следует интерпретировать с учетом следующих факторов.

    • Если слой связан с артефактом, содержащим другие артефакты, но слой не связан с другими артефактами напрямую, то число включает только связанный артефакт. Однако для анализа в ходе проверки слоя включаются другие артефакты.

      Например, если слой связан с одним пространством имен, то число связанных артефактов равно 1, даже если пространство имен содержит классы. Если слой также связан с каждым классом в пространстве имен, то число будет включать эти связанные классы.

    • Если слой содержит другие слои, связанные с артефактами, то слой-контейнер также связан с этими артефактами, даже если число в слое-контейнере не включает эти артефакты.

    Для просмотра связанных со слоем артефактов щелкните слой правой кнопкой мыши и выберите пункт Просмотр cвязей, чтобы открыть Обозреватель слоев.

  • Зависимость указывает, что один слой может использовать функции другого слоя, но не наоборот.Двунаправленная зависимость указывает, что один слой может использовать функции другого слоя и наоборот.

    Чтобы отобразить существующие зависимости на схеме слоев, щелкните поверхность схемы правой кнопкой мыши и выберите пункт Создать зависимости. Чтобы описать требуемые зависимости, создайте новые зависимости.

Пример

Сводка. Преимущества схем слоев

Схемы слоев помогают выполнять следующие задачи.

  • Описание логической архитектуры системы в соответствии с функциональными возможностями ее артефактов.

  • Обеспечение соответствия разрабатываемого кода указанному дизайну.

Отношение к другим схемам

Визуализация кода
Создание моделей для приложения
Использование моделей в процессе разработки
Использование моделей в гибкой разработке
Проверка системы в ходе разработки
Расширение моделей и схем UML


Закрыть ... [X]

Новогодний музыкальный интерактивный спектакль (сценарий) Ремонт сцепления мтз своими руками



Сценарии музыкального проекта Сценарии праздников развлечений в детском саду для детей
Сценарии музыкального проекта Организаторы конкурса «Ты супер!» подвели итоги сезона и
Сценарии музыкального проекта Проект Голос изнутри. Интервью с Машей Кирпичёвой - 24СМИ
Сценарии музыкального проекта Проект «Зимующие птицы» - Описание проекта и сценарий
Сценарии музыкального проекта Сценарий: изменение проекта с помощью визуализации и
Голоса большой страны (2016) смотреть онлайн КиноПоиск Всероссийский музыкальный проект «Поколение звезд Шоу «Студия СОЮЗ Дуэт Гарик Харламов и Тимур ИЗ ЖИЗНИ ПЛАНЕТ ЦЕНТР имени Вс. МЕЙЕРХОЛЬДА Purelogic R&D: комплектующие для станков ЧПУ и систем ВОСПАЛЕНИЕ КИШЕЧНИКА СИМПТОМЕЧЕНИЕ Заболевания Захар Прилепин - prilepin