Задание по изменению процесса разработки. Техническое задание.

Вступление

В процессе развития проектная группа столкнулась с необходимостью автоматизации сборки решения (Solution).

Её можно разделить на две составляющие:

  1. Автоматическая сборка (Build) Web-Application на сервере;
  2. Автоматическая сборка схемы базы данных и заполнение справочников.

Что есть сейчас

  1. Хранилище версий кода – SVN (Subversion)
  2. Хранилище версий создано отдельно для проектов в одном решении (Solution).
  3. Решение делится на проекты (слои):
    • Database
    • Business
    • Web-Application (Presentation)
    • А так же: Test (Автоматические тесты), SQL (DB Адаптер)
  4. Автоматические тесты – MSVS2005Team.Test

Где будет собираться проект

Операционная система Windows XP, Windows Server 2003. База данных MS SQL 2005.

Как сегодня собирается проект

Обновление происходит запускаемым по расписанию bat файлом (инструкциями svn update).

Что не устраивает сегодня

  1. Необходимость добавлять в Presentation dll в версионный контроль
  2. Необходимо держать в штате человека, занимающегося обновлением структуры базы данных

Требования к сборке Web-application

  1. Сборка происходит автоматически, при изменении файлов в хранилище версий и прохождении автоматических тестов;
  2. При возникновении проблем в сборке уведомления получают ответственный и последний отправившего код в хранилище версий по электронной почте;
  3. После автоматической сборки (для перевода статусов багов в трекере) дергается скрипт по http (простой GET-запрос)
  4. Автоматическая сборка производится (в зависимости от параметров конфигурационного файла):
    • При добавлении новой ревизии;
    • При добавлении новой ревизии с меткой __stable__.

Требования к сборке Базы данных

  1. Автоматическая сборка:
    • Таблиц;
    • Связей;
    • Индексов;
    • Процедур;
    • Прав;
    • Пользователей;
    • Справочников.
  2. Гибкая настройка сборки (реализовать на основе меток в SVN):
    • Собираться при добавлении ревизии;
    • Собираться при добавлении ревизии с меткой;
    • Пересобрать базу данных;
    • Добавить изменение в базу данных.
  3. Связь версий Web-Application и Базы Данных – ревизии Базы Данных должны быть привязаны к ревизии кода. То есть должна быть возможность сопоставления версий. Возможность откатывать базу до определённой версии;