Модели жизненного цикла программных средств. Требования к ПО, страница 6

Файл- виртуальная информационная единица, основное отличие от материальных единиц учета в том, что у файла может быть версия и не одна. Породить эти версии достаточно легко (копировать, создать) В то время как материальные предметы на складе существуют сами по себе и у них нет понятия версия. Версия файла- это очень непростой объект. При неправильной сборке файлов происходит некие коллизии: 1. Тщательно оттестированная программа на показательных испытаниях дает сбои 2. Функциональность о которой просил заказчик и новая версия отосланная заказчику исчезает из программного обеспечения 3. На пк разработчика программа работает, а у заказчика нет

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

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

Выделим 2 основные задачи в конфигурационном управлении: управление версиями и управление сборками. 1е отвечает за управление версиями и выполняется в проекте на основе специальных программных пакетов (средства версионного контроля) 2- автоматизированный процесс трансформации исходных тестов по в пакет исполняемых модулей, учитывающий многочисленные настройки проекта, настройки компиляции, и интегрируемый с процессом автоматического тестирования. Такая процедура является мощным средством интеграции проекта на основе итеративной разработки.

Единицы конфигурационного управления

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

1.  Пользовательская документация

2.  Проектная документация

3.  Исходные тексты ПО

4.  Пакеты тестов

5.  Инсталляционные пакеты ПО

6.  Тестовые отчеты

У каждой единицы конфигурационного управления должно быть следующее:

1.  Структура- набор файлов например (пользовательская документация на Html должна содержать индекс файла и набор html файлов, а также набор вынесенных изображений в формате gif, такая структура должна быть хорошо определенна (все файлы присутствуют, имеют одинаковую версию и корректные ссылки друг на друга) и отслеживаться при конфигурационном управлении)

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

3.  Практика конфигурационного управления- кто в какое время и в какое место выкладывает новую версию элемента конфигурационного управления в средства управления версиями, устанавливает правила именования и комментирования элементов в этой версии, дальнейшие манипуляции с ними и т.д. Более высокоуровневые правила связанные например с правилами изменения тестов и тестовых пакетов при изменении кода программы.

4.  FilesFilesFilesSolutionProject 2Project 2Project 1Автоматическая процедура контроля целостности элемента- например сборка для исходных текстов программ. Такая процедура может присутствовать не у всех элементов например отсутствует у документации тестовых пакетов. Элементы конфигурационного управления могут образовывать иерархию пример представлен на рисунке.

Управление версиями

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