Технологии и этапы разработки ПО


При разработке программных продуктов компанией "Альба - Плюс" используются новейшие технологии и передовые методики управления разработкой программного обеспечения. В первую очередь это методики управления качеством разработки программного обеспечения: методология RUP, технология MDA, UML-моделирование, стандарт ИСО-9126, а также внутренние стандарты, разработанные руководителями нашей компании. Управление требованиями начинается на самых ранних этапах работы над проектом, когда продукт еще существует лишь в виде идеи. С этого момента уже начинается разработка проекта, в котором описывается целый набор специфических - далеко не очевидных, однако крайне ответственных требований, которым должен соответствовать будущий программный продукт.

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

Анализ предприятия-заказчика

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

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

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

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

Исполнители проекта

В разработке проекта принимают участие следующие исполнители:

1. Консультант.

Выполняет анализ предприятия - заказчика, составление ТЗК и бета-тестирование функциональности, сопровождение программного продукта.

2. Проектировщик.

Проектирует разработку продукта, составляет ТЗР, контролирует альфа-тестирование продукта.

3. Руководитель разработки.

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

4. Программист.

Осуществляет разработку проекта и нуль-тестирование.

5. Тестировщик.

Выполняет тестирование программного продукта.

Оформление ТЗК

Когда проект автоматизации согласован с клиентом, консультант приступает к оформлению технического задания.
ТЗК - техническое задание для согласования с клиентом.
ТЗК ориентировано на клиента, который не знаком (либо мало знаком) с "Контур Предприятием".

Жизненный цикл ТЗК представляет собой следующую последовательность действий консультанта:

I. Подготовка проекта ТЗК.

1. Описываются требования в соответствии со стандартами формирования ТЗК.
2. Подготовленный вариант предварительно согласовывается с клиентом.

II.Уточнение требований.

1. ТЗК передается проектировщику для разработки ТЗР (технического задания на разработку).
2. В процессе написания ТЗР требования могут уточняться и в ТЗК вносятся изменения.
3. Определяется трудоемкость и возможный срок выполнения работ.

III. Презентация ТЗК у клиента.

1. Проводится презентация разработанного решения у клиента.
2. Если формируется список замечаний клиента к решению, то ТЗК обязательно возвращается на доработку и согласование с проектировщиком.

IV. Согласование ТЗК.

Получение формальных подписей клиента и аванса на разработку (если требуется).

V. Поддержка актуального состояния ТЗК.

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

Проектирование и оформление ТЗР

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

Жизненный цикл ТЗР представляет собой следующую последовательность действий проектировщика:

I. Разработка ТЗР:

1. Получение от консультанта ТЗК.
2. Разбор поставленной задачи, обсуждение с консультантом, уточнение требований, проектирование программного продукта.
3. Разработка ТЗР.
4. Согласование ТЗР с отделом разработки, определение трудоемкости и возможного срока выполнения работ.

II. Поддержка актуального состояния ТЗР:

1. Проектировщик получает список требуемых изменений (уточнений) либо со стороны консультанта, либо со стороны программистов.
2. Проводится согласование решения и доработка ТЗР.

Разработка программного продукта

После всех согласований ТЗР отдается в отдел разработки, и программисты приступают к созданию программ.
Разработка программного продукта состоит из следующих этапов:
1. Разработка и нуль-тестирование.
2. Контроль качества исходных кодов.
3. Альфа-тестирование.
4. Бета-тестирование.
5. Выпуск релиз-версии.

Разработка и нуль-тестирование

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

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

Нуль-тестирование включает в себя:
1. Тестирование.
Выполняется руководителем разработки проекта и программистами.
Целью тестирования является выявление грубых и очевидных ошибок в функциональности проекта и программной реализации.
Руководитель разработки создает в программе Tracker документы с описанием выявленных ошибок.
2. Исправления и доработки.
Программисты исправляют выявленные ошибки и дорабатывают функциональность проекта.

Контроль качества исходных кодов

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

Контроль качества кода включает в себя следующие действия:
1. Контроль соответствия кода стандарту оформления исходных текстов.
2. Проверка использования инструментальных средств.
3. Контроль использования в коде стандартных шаблонов программирования (паттернов).
4. Проверка корректной работы с ресурсами среды выполнения.

Контроль качества объектов данных и алгоритмов. Проверка объектов данных и алгоритмов на соответствие стандарту реализации бизнес-объектов.

Контроль качества интерфейсов. Проверка интерфейсов на соблюдение требований к построению интерфейсной части системы.

Контроль качества отчётов. Проверка отчётов на соблюдение требований к оформлению отчётов.

Альфа-тестирование

После завершения этапов нуль-тестирования и контроля качества кода на специальной сборочной машине осуществляется сборка альфа-версии программного продукта.

Альфа-версию тестируют сотрудники отдела тестирования согласно стандартам и на соответствие ТЗР. Описания всех выявленных ошибок и пожелания по доработке заносятся в программу Tracker.

Приёмка проекта выполняется руководителем разработки. Заполняется и подписывается протокол приёмки проекта.

Бета-тестирование

Тестирование бета-версии выполняется консультантом на соответствие реализованной функциональности ТЗР и ТЗК. Описания всех выявленных ошибок и пожелания по доработке заносятся в программу Tracker.

Запросы консультанта перепроверяются отделом тестирования и передаются на разработку. Программисты исправляют ошибки, выявленные консультантом и подтвержденные сотрудниками отдела тестирования.

Выпуск релиз-версии

После того как консультант осуществил бета-тестирование и если качество сборки признано удовлетворительным, то сборка приобретает релиз-статус (окончательная версия).

Релиз-версия передается заказчику продукта.

Общая схема проверки качества разрабатываемого продукта

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

Критерии качества реализации

Главным критерием качества реализации, конечно же, является соответствие ТЗР. Однако одного этого не достаточно, чтобы произведенный продукт считался качественно выполненным.

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

Стандарт ИСО-9126

Данный стандарт предлагает следующую структуру характеристик качества ПО:
1. Функциональность:
      а) Соответствие назначению.
      б) Точность.
      в) Способность взаимодействовать со средой.
      г) Соответствие нормам.
      д) Безопасность (защита от взлома данных и других преступных посягательств).
2. Надежность:
      а) Зрелость ("обкатанность").
      б) Отказоустойчивость.
      в) Способность восстанавливаться после сбоев.
3. Пригодность к использованию:
      а) Понимаемость.
      б) Изучаемость.
      в) Удобство и простота в работе.
4. Эффективность:
      а) Быстродействие и время отклика.
      б) Потребление ресурсов.
5. Сопровождаемость:
      а) Анализируемость (диагностика причин ошибок и сопоставление с исходным кодом).
      б) Пригодность к изменениям.
      в) Стабильность.
      г) Тестируемость.
6. Переносимость:
      а) Адаптируемость.
      б) Легкость инсталляции.
      в) Соответствие нормам по переносимости и инсталляции.
      г) Заменяемость (способность заменить аналоги).

Сопровождение программного продукта

Разработанный и протестированный программный продукт в виде инсталляции передается заказчику. С этого момента начинается сопровождение программного продукта.

Этап сопровождения включает в себя:
1. Разработку пользовательской документации.
2. Обучение персонала и консультирование заказчика по вопросам установки, настройки и дальнейшего использования программного продукта. Консультации проводятся посредством телефонных переговоров, электронных писем, skype-конференций и прочих способов коммуникации в режиме "вопрос-ответ".
3. При необходимости (и в случае допустимой географической удаленности клиента) наши консультанты приезжают к заказчику и помогают установить и настроить систему на месте.

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

Каждое изменение передается заказчику в виде новой инсталляции или патча.