Поделиться через


Работа с моделями и диаграммами в управлении версиями

В Visual Studio Ultimate файлы проекта моделирования и схем, а также файлы документов графов (.dgml) и файлы запросов Architecture Explorer (.dgql) можно разместить в Team Foundation (подсистема контроля версий).Дополнительные сведения см. в разделе Добавление файлов на сервер.

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

Важное примечаниеВажно

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

Файлы в проекте моделирования

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

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

  • Каждый пакет хранится в отдельном файле .uml, который сохранен в папке проекта ModelDefinition.Модель также имеет файл .uml.Если один из этих файлов удален или поврежден, соответствующий пакет или модель будет утеряна.

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

    • DiagramName.classdiagram — если этот файл удален или поврежден, схема будет утеряна, но отображавшиеся на ней классы и ассоциации останутся в модели, их можно будет просмотреть в Проводнике по моделям UML.

    • DiagramName.classdiagram.layout — если этот файл удален, фигуры будут отображаться на схеме, но их расположение и размеры нарушатся.Каждый файл размещения является дочерним элементом файла схемы.Чтобы просмотреть его, щелкните [+] рядом с файлом схемы в обозревателе решений.

ПримечаниеПримечание

Важно поддерживать согласованность между файлами.Например, если вы используете систему управления версиями, чтобы откатить изменения в файле .uml, необходимо в тоже время откатить соответствующие изменения в файлах .*diagram и .layout.Элементы, представленные в файле .*diagram будут потеряны, если они не будут также представлены в файле .uml.

Работа над совместными проектами моделирования

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

  • Разделите проект моделирования на пакеты, представляющие разные области работы.Не оставляйте модель в корневой модели — переместите ее в пакеты.Дополнительные сведения см. в разделе Определение пакетов и пространств имен.

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

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

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

    • Задайте свойство LinkedPackage для UML-класса, компонента или схемы вариантов использования.

    • Сразу после создания перетащите действие или взаимодействие в пакет в Проводнике по моделям UML.Этот элемент отобразится в Проводнике по моделям UML при создании первого узла на схеме деятельности или схеме последовательностей.

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

  • В Team Foundation (подсистема контроля версий) всегда выполняйте операции Вернуть и Получить последнюю версию для всего проекта моделирования, а не отдельных файлов.

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

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

    ПримечаниеПримечание

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

Dd574364.collapse_all(ru-ru,VS.110).gifИзменения, требующие монопольного доступа к модели

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

  • Переименование или удаление элементов, на которые ссылаются другие пакеты.

  • Изменение свойств отношений, пересекающих границы пакета.

  • Дополнительные сведения о блокировках извлечения см. в разделе Извлечение и изменение файлов.

Перемещение файла схемы в папку проекта или из нее

  1. Откройте командную строку Visual Studio.

    В меню Windows Пуск последовательно выберите Все программы, Microsoft Visual Studio 2010, Средства Visual Studio и Командная строка Visual Studio 2010.

  2. Используйте tf rename, чтобы переместить файл схемы и соответствующий файл .layout.

    tf rename sourcePath targetPath

  3. В обозревателе решений щелкните файл правой кнопкой мыши, затем выберите Исключить из проекта.

  4. Добавьте файл в папку назначения.

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

    ПримечаниеПримечание

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

Слияние изменений в файлах и схемах моделей

После сеанса совместной работы с моделью нескольких пользователей Team Foundation (подсистема контроля версий) выводит запрос о слиянии изменений в файлах модели.Организуя работу над отдельными проектами в соответствии с рекомендациями предыдущих разделов, можно избежать большинства слияний.Как правило, остальные конфликты без проблем объединяются автоматически.Не должно возникнуть проблем при работе со следующими видами изменений.

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

  • Изначально новые действия и взаимодействия хранятся в корневой модели.

  • Добавление элементов и отношений.

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

См. также

Основные понятия

Моделирование приложения

Другие ресурсы

Общий доступ к моделям и экспорт схем