Глава 20. Групповая разработка проекта.
Чтобы создать любой большой проект, a Visual Basic 6 имеет для этого все средства, необходимо привлечь нескольких программистов. При этом сразу же встает проблема бесконфликтной работы такой группы программистов (имеются в виду конфликты, вызванные одновременным изменением одних и тех же кодов). Даже у программиста, работающего в одиночку, могут возникнуть конфликты версий, необходимость отката (возврата) к предыдущим версиям, что же говорить о группе программистов, работающих над одним проектом. Основные проблемы при групповой разработке — конфликты версий одного кода и последующее их слияние в одно приложение.
Visual Basic 6 предоставляет возможность эффективно работать группе программистов. Уже в первых проектах при сохранении Visual Basic 6 задает вопрос Add this project to SourceSafe? Задавая такой вопрос, система выясняет, будет ли проект сохранен в репозитарии — специализированной базе данных (хранилище проектов) для хранения разработок Visual Basic 6 и других систем разработки из семейства Microsoft Visual Studio. Однако, кроме хранения проектов, SourceSafe организует совместную работу программистов, снимая все противоречия групповой разработки.
Групповая разработка проекта предполагает наличие управляющего проектом, который имеет полный доступ ко всем проектам, и исполнителей отдельных проектов (или пользователей, согласно терминологии базы данных), имеющих доступ только к той части проектов, над которой они работают. При работе с файлами проекта должно обеспечиваться хранение предыдущих версий проекта. При одновременной работе нескольких программистов с одним файлом проекта система должна предоставлять возможность редактирования этого файла в текущий момент только одному исполнителю, блокировать внесение изменений в файл до завершения работы над ним и возврата свежей версии в хранилище.
Все указанные требования групповой работы обеспечивает репозитарии Visual SourseSafe (далее просто SourceSafe).
В репозитарии хранятся все файлы проекта, включая и конструкторскую документацию: технические задания, постановки задач. Рекомендуется также хранить выполняемые файлы, файлы справок, модели баз данных проекта, в общем все, что связано с проектом и может потребоваться при проектировании. Кстати говоря, с помощью репозитария удобно работать над текстовыми проектами: технической документацией проекта или. книгой.
При работе с SourceSafe выделяются два принципиально разных режима работы (они даже разделены на два приложения) — это режим администрирования базы данных SourceSafe и режим пользователя.
Администрирование базы данных SourceSafe состоит из двух групп задач:
Для администрирования SourceSafe необходимо запустить программу администратора базы данных. Нажмите кнопку Пуск системы Windows, в появившемся главном меню выберите команду Программы, затем в открывшемся меню найдите папку Microsoft Visual Studio, а в ней Microsoft Visual SourceSafe, в котором и находится искомая программа администратора базы данных.
Первое соединение с базой данных отличается от последующих, так как еще нет ни одного пользователя, кроме Admin, которому к тому же еще не назначен пароль. Диалоговое окно первого соединения показано на рис. 20.1. В данном случае поле Old password (Старый пароль) необходимо оставить пустым, затем ввести в поле New password новый пароль и продублировать его в поле Verify (Проверка). В дальнейшем будет появляться стандартное окно входа с указанием имени пользователя и пароля.
Рис. 20.1. Назначение/изменение пароля пользователя Admin при первом присоединении к базе данных SourceSafe
Настройка режимы работы программы SourceSafe выполняется в диалоговом окне SourceSafe Options (Режимы работы SourceSafe). Это окно состоит из шести вкладок (рис. 20.2), элементы управления которых определяют режимы работы базы.
Рис. 20.2. Вкладка General диалогового окна SourceSafe Options
На вкладке General (Общие) (рис. 20.2) можно установить общие параметры работы.
Замечание
Режим множественного доступа на практике применяется достаточно редко.
Вкладка Project Security (Защита проекта) (рис. 20.3) позволяет организовать разграничение прав доступа к данным на уровне проекта. Пользователь может иметь следующие права при работе над проектом;
Рис. 20.3. Вкладка Project Security диалогового окна SourceSafe Options
По умолчанию всем пользователям SourceSafe предоставляется полный доступ, то есть возможность выполнения всех четырех действий в базе данных. Для того чтобы можно было индивидуально назначать доступ пользователям, предназначен флажок Enable project security (Доступность защиты проекта). Если этот флажок установлен, то становятся доступны флажки назначения прав пользователей по умолчанию в области Default user rights (Права пользователей по умолчанию). В этой группе можно переназначить права доступа пользователей, предоставленные им по умолчанию при регистрации. Рекомендуется при этом устанавливать только права на чтение (R) и на блокировку/освобождение файлов при редактировании (С). При установленном флажке Enable project security становятся доступны команды меню Tools (Сервис) администратора, отвечающие за работу с правами пользователей:
Вкладка Shadow Folders (Теневые папки) диалогового окна SourceSafe Options (рис. 20.4) задает папку "теневого" хранения файлов указанного проекта, при этом поддерживается автоматический контроль актуальности копий файлов в такой папке. При помощи "теневых" папок удобно выполнять окончательную сборку проекта.
Рис. 20.4. Вкладка Shadow Folders диалогового окна SourceSafe Options
Элементы управления этой вкладки служат для выполнения определенных действий.
В области Files in Shadow Folder (Файлы в теневой папке) расположены следующие элементы управления.
Кнопка Set Another (Назначить другой) очищает все поля для установки параметров следующего проекта.
Следующие две вкладки Web Projects (Web-проекты) и Web диалогового окна SourceSafe Options позволяют настроить проекты, предназначенные для работы в Internet. На вкладке Web Projects настраиваются параметры отдельного проекта для работы в сети, а на вкладке Web — общие для всех проектов параметры.
Вкладка File Types (Типы файлов) диалогового окна SourceSafe Options определяет типы файлов проектов для сред разработки программных продуктов, входящих в пакет Visual Studio. Для настройки Visual Basic 6 необходимо использовать значение списка VB (рис. 20.5).
На этой вкладке размещены следующие элементы управления;
На вкладке находятся также кнопки Add (Добавить) и Delete (Удалить), позволяющие при необходимости добавить новую группу файлов или удалить ненужную.
Замечание
Обычно параметры вкладки File Types установлены по умолчанию и редактировать их не требуется.
Рис. 20.5. Вкладка File Types диалогового окна SourceSafe Options
Основная задача при работе с пользователями — это поддержка списка пользователей и назначение прав пользователей при операциях с проектами и файлами проектов. Работа с пользователями выполняется в окне администратора Visual SourceSafe Administrator (рис. 20.6), где по умолчанию представлен список пользователей базы данных.
Рис. 20.6. Окно администратора SourceSafe
В этом списке администратор может выполнить следующие действия с пользователями.
Добавление пользователей выполняется командой Add User (Добавить пользователя) меню Users (Пользователи). При этом вызывается одноименное окно Add User (рис. 20.7), в котором можно ввести имя пользователя и его пароль.
Рис. 20.7. Окно Add User для добавления пользователя
Удаление пользователя выполняется командой Delete User (Удалить пользователя) меню Users. При этом открывается диалоговое окно с запросом на подтверждение удаления. Пользователь при этом не должен быть соединен с базой данных.
Для изменения параметров пользователя необходимо выполнить команду Edit User (Изменить пользователя) меню Users (Пользователи). При этом вызывается одноименное окно, аналогичное окну для добавления пользователя (рис. 20.7), в котором отсутствует поле Password (Пароль). Для изменения имени пользователя следует ввести другое имя в поле User name (Имя пользователя).
Чтобы изменить пароль пользователя, необходимо воспользоваться диалоговым окном Change Password (рис. 20.8), открываемым при выборе команды Change Password (Изменить пароль) меню Users.
Рис. 20.8. Диалоговое окно Change Password для изменения пароля пользователя
В поле New password (Новый пароль) диалогового окна Change Password необходимо ввести новый пароль и продублировать его в поле Verify (Проверка). Для изменения пароля администратора требуется дополнительно ввести старый пароль.
После того как сформирован список пользователей, следует назначить всем пользователям индивидуальные права доступа к проектам базы данных.
Замечание
Необходимо напомнить, что доступ к работе с правами выполняется только с установленным флажком Enable Project Security (Доступность защиты проекта) на вкладке Project Security (Защита проекта) настройки режимов работы администратора SourceSafe.
Для настройки прав пользователей на проекты следует выполнить команду Rights by Project (Права на проекты) меню Tools (Сервис). При этом вызывается диалоговое окно Project Rights'(Права на проекты), в котором можно выполнить настройку прав пользователей отдельно на каждый из проектов (рис. 20.9).
Рис. 20.9. Диалоговое окно Project Rights для настройки прав пользователей на проекты в базе данных
Для настройки прав на проект следует в списке дерева проектов выбрать проект, для которого выполняется настройка прав, затем из правого списка выбрать пользователя и с помощью флажков, расположенных в области User rights (Права пользователя), установить набор необходимых прав. Права устанавливаются немедленно и отображаются в столбце Rights (Права) списка пользователей в виде буквенных сокращений. С помощью этой настройки каждому проекту можно назначить индивидуальные права доступа пользователей к файлам проекта.
В данном случае при настройке прав отправной точкой является проект. Это удобно, например, при создании нового проекта или проверке прав существующего проекта, поскольку виден весь список пользователей. Однако если требуется назначить индивидуальные права одному пользователю, то придется искать этого пользователя по всем проектам, что довольно неудобно. Для второго варианта назначения прав существует диалоговое окно Assignments for (Назначение для), которое вызывается командой Rights Assignments for User (Назначение прав пользователя) в меню Tools (Сервис). Это окно показано на рис. 20.10. Назначение прав выполняется для текущего по списку пользователя, имя которого отображается в наименовании окна.
В этом окне есть список прав на проекты и аналогичная предыдущей настройке группа флажков User rights (Права пользователя), в которой назначаются эти права. Права в этом списке отображаются те же, что были назначены в предыдущей настройке или установлены по умолчанию при регистрации пользователя. В этом окне можно изменить или добавить права на проекты. Для этого служат кнопки:
При добавлении прав вызывается диалоговое окно, аналогичное окну назначения прав для проекта (рис. 20.9), за исключением наличия списка прав пользователей. Действия здесь такие же, то есть для назначения прав доступа необходимо в области User rights установить соответствующие этим правам флажки. Для удаления достаточно подтвердить факт удаления прав пользователя на проект.
Рис. 20.10. Диалоговое окно Assignments for для индивидуальной настройки прав пользователей на проекты в базе данных
Если вводятся пользователи с равными правами, то можно воспользоваться диалоговым окном копирования прав пользователей друг другу Copy Rights Assignment to (Копирование назначения прав для), которое вызывается командой Copy User Rights (Копирование прав пользователя) меню Tools (Сервис). При этом для текущего пользователя вызывается диалоговое окно, показанное на рис. 20.11.
Рис. 20.11. Окно Copy Rights Assignment to для копирования прав пользователей
После выбора из списка в этом окне пользователя с. необходимы ми правами, при помощи кнопки Сору (Копировать) выполняется копирование прав доступа для выбранного пользователя, имя которого находится в заголовке окна.
Основная работа при администрировании базы данных SourceSafe связана с частичным или полным архивированием данных, а также их восстановлением при необходимости. Для этих целей в SourceSafe существуют два мастера:
Для запуска мастера Archive Wizard выполните команду Archive Projects (Архивирование проектов) меню Archive (Архив). Работа мастера проста, интуитивно понятна и не требует отдельного описания. Цель работы мастера Archive Wizard заключается в создании специального архивного файла с расширением ssa, в который записываются проекты из базы данных.
Замечание
Предварительно для хранения архивных файлов желательно создать отдельный каталог с ограниченным доступом для пользователей. Периодичность архивирования определяется надежностью работы системы и скоростью внесения изменений в проекты исполнителями. Процесс этот достаточно простой и не занимает много времени. При интенсивной работе над проектом можно выполнять архивирование ежедневно силами администратора системы.
Восстановление из архива выполняется с помощью мастера Restore Wizard, который запускается командой Restore Projects (Восстановление проектов) меню Archive (Архив). Этот мастер выполняет запись проектов из архивного файла в базу данных программы SourceSafe.
Работа пользователя в SourceSafe
После того как пользователь введен администратором в список пользователей, определены его права доступа к проектам, он может приступать к работе над файлами проекта. Для работы пользователя с проектами и файлами, входящими в проект, служит окно проводника программы SourceSafe (рис. 20.12), состоящее из перечисленных ниже основных элементов.
Рис. 20.12. Окно проводника SourceSafe для работы пользователей
На панели инструментов окна Проводника представлены кнопки, назначение которых описано в табл. 20.1.
Таблица 20.1. Кнопки панели инструментов окна Проводника
Кнопка |
Название |
Назначение |
|
Create Project (Создать проект) |
Создает новый проект |
|
Add Files (Добавить файлы) |
Добавляет файлы в проект |
|
Label Version (Метка версии) |
Устанавливает метку версии проекта |
|
Delete Files/Project (Удалить файл/проект) |
Удаляет файл или проект |
|
Get Latest Version (Получить последнюю версию) |
Показывает последнюю версию файлов проекта |
|
Check Out Files/Project (Заблокировать файлы/проект) |
Блокирует файлы проекта и копирует их в указанное место для редактирования |
|
Check In Files/Project (Освободить файлы/проект) |
Освобождает блокированные файлы и снимает блокировку в базе данных |
|
Undo Check Out (Снять блокировку) |
Снимает блокировку файлов |
|
Share Files (Доступность файлов) |
Устанавливает совместный доступ к файлам проекта |
|
View File (Просмотр файла) |
Запускает среду проектирования и загружает в нее файл для просмотра |
|
Edit File (Правка файла) |
Запускает среду проектирования и загружает в нее файл для работы с ним. При этом выполняется Check Out (Блокировка) этого файла |
|
File/Project Difference (Различия файла/проекта) |
Выполняет сравнение файлов и выдает отчет о найденных различиях |
|
Show Properties (Просмотр свойств) |
Показывает свойства выбранного файла или проекта |
|
Show History (Просмотр истории) |
Показывает историю создания и работы над выбранным файлом или проектом |
|
Find in Files (Поиск в файлах) |
Поиск заданного текста в файлах |
|
Set Working Folders (Установка рабочей папки) |
Устанавливает рабочий каталог. При этом вызывается диалоговое окно установки рабочего каталога |
Refresh File List (Обновление списка файлов) |
Обновляет список файлов |
|
Help (Справка) |
Вызывает справочную систему SourceSafe |
Набор кнопок, расположенных на панели инструментов по умолчанию, можно изменить, добавить требуемые кнопки, скрыть ненужные. Для этого используется диалоговое окно настройки панели инструментов (рис. 20.13), открываемое при выборе команды Customize Toolbar меню Tools. В диалоговом окне Настройка панели инструментов расположены два списка. Набор кнопок на панели инструментов задается списком Панель инструментов. В него можно добавить кнопки из списка доступных кнопок Имеющиеся кнопки. Для изменения порядка следования кнопок на панели инструментов предназначены кнопки Вверх и Вниз окна настройки.
Рис. 20.13. Диалоговое окно настройки панели инструментов окна Проводника SourceSafe
В SourceSafe поддерживается строгая иерархия проектов и файлов проекта, образующая дерево проектов. Корнем всегда является папка с обозначением $/. Далее в иерархии следуют проекты и файлы проектов.
В иерархическом дереве поддерживается наследование прав доступа, то есть права доступа от вышестоящих уровней передаются нижестоящим. При этом права нижестоящих уровней можно изменить.
Как было сказано выше, все проекты отображаются в левом списке Про-водника SourceSafe. При работе с проектами можно выполнить все доступные для пользователя действия. Например, если пользователь имеет все права, то можно добавлять, удалять, редактировать проект.
Для создания нового проекта следует определить его место в дереве, для этого необходимо выбрать в дереве тот проект, внутри которого будет находиться новый проект. Если это проект первого уровня иерархии, выбирается корень дерева, то есть папка со значком $/ — самый верхний уровень иерархии. После этого следует выполнить команду Create Project (Создать проект) меню File (Файл). При этом вызывается окно Create Project in (Создать проект в) (рис. 20.14), в поля которого вводят наименование и примечания с кратким описанием проекта, используя поля Project (Проект) и Comment (Комментарий).
Рис. 20.14. Окно создания нового проекта в SourceSafe
После того как проект внесен в базу данных SourceSafe, можно работать с его файлами. Для начала необходимо добавить в проект все входящие в него файлы.
Запись (добавление) файлов проекта в базу данных SourceSafe выполняется командой Add Files (Добавить файлы) меню File (Файл) или одноименной кнопкой на панели инструментов. При этом вызывается диалоговое окно Add File to (Добавить файл в) (рис. 20.15) с указанием проекта, в который добавляются файлы.
Замечание
Типы файлов в раскрывающемся списке List files of type (Список типов файлов) диалогового окна Add File to соответствуют настройке типов файлов по группам в режимах настройки SourceSafe на вкладке File Types (Типы файлов) диалогового окна SourceSafe Options.
Итак, все проекты внесены в базу данных программы SourceSafe, а все файлы проектов записаны в соответствующие им проекты базы. Что происходит потом?
Далее SourceSafe становится организатором работы над проектами. Пользователи копируют файлы из базы SourceSafe в свои рабочие папки. При этом такие файлы блокируются в базе данных, т. е. на файлы ставится метка, как показано на рис. 20.16. При этом другой пользователь не может скопировать блокированный файл для редактирования до тех пор, пока файл (его новая версия) не возвращен в базу SourceSafe и с него не снята блокировка.
Рис. 20.15. Окно для добавления файлов проекта в базу данных SourceSafe
Рис. 20.16. Блокировка файлов, скопированных для редактирования
Копирование файлов и их блокировка выполняются автоматически с помощью команды Check Out (Блокировка) меню SourceSafe или соответствующей кнопкой панели инструментов. Блокировку можно выполнить как для всех файлов проекта (при этом необходимо выбрать проект в дереве), так и для отдельных файлов проекта (для этого необходимо выбрать интересующий файл или группу файлов). Как видно из рисунка, система обеспечивает контроль даты и имени пользователя, выполнившего блокировку.
При выполнении блокировки вызывается диалоговое окно Check Out (Блокировка) (рис. 20.17) для выбора папки, в которую будет записана копия файла для редактирования. В этом же окне можно ввести небольшой комментарий о выполненных изменениях, о цели блокировки файла.
Рис. 20.17. Диалоговое окно Check Out блокировки файла
Необходимо отметить, что при отсоединении от базы данных SourceSafe все метки блокировки остаются и снять их может только тот пользователь, который взял файлы проектов на редактирование.
Если случайно блокирован не тот файл, который требуется, то исправить такую ошибку можно с помощью команды Undo Check Out (Отменить блокировку) меню SourceSafe.
После завершения работы с файлами проекта они возвращаются в базу данных SourceSafe командой Check In (Освобождение) из меню SourceSafe или с помощью одноименной кнопки на панели инструментов, и значок блокировки с них снимается.
Замечание
Аналогично блокировке, освобождение можно выполнить как сразу для всех файлов проекта, так и для одного или группы файлов.
При выполнении освобождения вызывается диалоговое окно Check In (Освобождение), в котором можно дополнительно пояснить внесенные изменения в файл (рис. 20.18). Если установить флажок Remove local copy (Удалить локальную копию) этого диалогового окна, то копия файла в рабочей папке проекта будет удалена. Флажок Keep checked out (Сохранить блокирование) выполняет возврат копии файла в базу с сохранением метки блокировки на нем.
Очень важно сохранить хронологию работы над проектом. Для просмотра этих сведений необходимо вызвать для выбранного проекта диалоговое окно History of Project (Хронология проекта) командой Show History (Показать хронологию) меню Tools (Сервис) или нажать одноименную кнопку на панели инструментов (рис. 20.20). При этом предварительно будет вызвано диалоговое окно Project History Options (Режимы хронологии проекта) настройки режима просмотра хронологии (рис. 20.19), в котором указываются режимы просмотра и, в частности, интервал дат для выборки хронологии.
Кроме того, что в окне History of Project отображается вся хронология работы над проектом, отсюда с помощью кнопки Check Out можно выбрать любую предыдущую версию файла.
Рис. 20.18. Диалоговое окно Check In освобождения файла
Рис. 20.19. Режимы просмотра хронологии проекта
Рис. 20.20. Хронология проекта в диалоговом окне History of Project
SourceSafe в среде Visual Basic 6
В среде проектирования Visual Basic 6 возможности для работы с SourceSafe представлены в меню Tools (Сервис) раскрывающимся меню SourceSafe. Это меню является контекстным, то есть его содержание зависит от состояния проекта в среде разработки. Первоначально, когда нет ни одного проекта, здесь можно выполнить следующие действия:
Для создания проекта необходимо в меню Tools выбрать команду SourceSafe, а затем значение Create Project from SourceSafe (Создать проект из SourceSafe). При этом вызывается окно Create local project from SourceSafe (Создать локальный проект из SourceSafe), в котором представлено дерево проектов (рис. 20.21). Предварительно откроется диалоговое окно для присоединения к базе данных SourceSafe. После выбора проекта в дереве будет создана копия этого проекта в рабочей папке проекта и затем эта копия будет загружена в среду проектирования.
Рис. 20.21. Диалоговое окно Create local project from SourceSafe для создания проекта
После зафузки проекта меню SourceSafe пополняется следующими командами:
База данных SourceSafe запускается при помощи команды Run SourceSafe меню SourceSafe. После присоединения к базе можно работать как при обычном запуске базы данных.
Настройка совместной работы со средой проектирования выполняется в диалоговом окне Source Code Control Options (Параметры управления исходными кодами), показанном на рис. 20.22. Это окно открывается командой Options (Параметры) меню SourceSafe.
Рис. 20.22. Диалоговое окно Source Code Control Options управления режимами работы с исходными текстами
В этом окне расположено четыре раскрывающихся списка, имеющих следующее назначение:
В этих списках можно выбрать три значения:
Таким образом, Visual Basic 6 совместно с SourceSafe позволяет организовать групповую работу и избежать практически всех конфликтных ситуации, возникающих при разработке больших проектов силами группы программистов, постановщиков и людей, тестирующих приложение.