Работа с моделями и диаграммами в управлении версиями
В 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 (подсистема контроля версий) всегда выполняйте операции Вернуть и Получить последнюю версию для всего проекта моделирования, а не отдельных файлов.
Всегда выполняйте операцию Получить непосредственно перед возвращением проекта моделирования.
Перед выполнением операции Получить всегда закрывайте все схемы.
Примечание Если при выполнении операции Получить открыт файл, и в ходе операции вносятся локальные изменения, появится подсказка о необходимости перезагрузить этот файл.В этом случае необходимо выбрать Нет и перезагрузить весь проект.В Обозревателе решений щелкните правой кнопкой мыши узел проекта моделирования, щелкните Выгрузить проект и выберите Перезагрузить проект.
Изменения, требующие монопольного доступа к модели
До внесения следующих видов изменений убедитесь, что для всего проекта установлена блокировка извлечения.
Переименование или удаление элементов, на которые ссылаются другие пакеты.
Изменение свойств отношений, пересекающих границы пакета.
Дополнительные сведения о блокировках извлечения см. в разделе Извлечение и изменение файлов.
Перемещение файла схемы в папку проекта или из нее
Откройте командную строку Visual Studio.
В меню Windows Пуск последовательно выберите Все программы, Microsoft Visual Studio 2010, Средства Visual Studio и Командная строка Visual Studio 2010.
Используйте tf rename, чтобы переместить файл схемы и соответствующий файл .layout.
tf rename sourcePath targetPath
В обозревателе решений щелкните файл правой кнопкой мыши, затем выберите Исключить из проекта.
Добавьте файл в папку назначения.
В обозревателе решений щелкните правой кнопкой мыши папку назначения или проект, выберите Добавить и щелкните Существующий элемент.В диалоговом окне выберите файл схемы и нажмите Добавить.Файл расположения добавляется автоматически.
Примечание Невозможно переместить файл в другой проект.
Слияние изменений в файлах и схемах моделей
После сеанса совместной работы с моделью нескольких пользователей Team Foundation (подсистема контроля версий) выводит запрос о слиянии изменений в файлах модели.Организуя работу над отдельными проектами в соответствии с рекомендациями предыдущих разделов, можно избежать большинства слияний.Как правило, остальные конфликты без проблем объединяются автоматически.Не должно возникнуть проблем при работе со следующими видами изменений.
Типы линий жизни.При добавлении линии жизни во взаимодействие (схему последовательностей) ее тип хранится в корневой модели. Исключение составляют случаи, когда линия жизни создается из существующего типа.
Изначально новые действия и взаимодействия хранятся в корневой модели.
Добавление элементов и отношений.
Переименование или удаление элементов, ссылки на которые существуют только внутри их собственных пакетов.