Добрый день. Вопрос №1 Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте? Вопрос №2 Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже? |
Место верификации среди процессов разработки программного обеспечения
1.3.3. Спиральный жизненный цикл
Оба рассмотренных типа жизненных циклов предполагают, что заранее известны все требования пользователей или, по крайней мере, предполагаемые пользователи системы настолько квалифицированы, что могут высказывать свои требования к будущей системе, не видя ее перед глазами.
Естественно, такая картина достаточно утопична, поэтому постепенно появилось решение, исправляющее основной недостаток V-образного жизненного цикла - предположение о том, что на каждом этапе разрабатывается очередное полное описание системы. Этим решением стала спиральная модель жизненного цикла (Рис. 1.3).
В спиральной модели разработка системы происходит повторяющимися этапами - витками спирали. Каждый виток спирали - один каскадный или V-образный жизненный цикл. В конце каждого витка получается законченная версия системы, реализующая некоторый набор функций. Затем она предъявляется пользователю, на следующий виток переносится вся документация, разработанная на предыдущем витке, и процесс повторяется.
Таким образом, система разрабатывается постепенно, проходя постоянные согласования с заказчиком. На каждом витке спирали функциональность системы расширяется, постепенно дорастая до полной.
1.3.4. Экстремальное программирование
Реалии последних лет показали, что для систем, требования к которым изменяются достаточно часто, необходимо еще больше уменьшить длительность витка спирального жизненного цикла. В связи с этим сейчас стали весьма популярными быстрые жизненные циклы разработки, например, жизненный цикл в методологии eXtreme Programming (XP).
Основная идея жизненного цикла экстремального подхода - максимальное укорачивание длительности одного этапа жизненного цикла и тесное взаимодействие с заказчиком. По сути, на каждом этапе происходит реализация и тестирование одной функции системы, после завершения которых система сразу передается заказчику на проверку или эксплуатацию.
Основная проблема данного подхода - интерфейсы между модулями, реализующими эту функцию. Если во всех предыдущих типах жизненного цикла интерфейсы достаточно четко определяются в самом начале разработки, поскольку заранее известны все модули, то при экстремальном подходе интерфейсы проектируются "на лету", вместе с разрабатываемыми модулями.
1.3.5. Сравнение различных типов жизненного цикла и вспомогательные процессы
Особенности рассмотренных выше типов жизненного цикла сведены в таблицу 1.1. Из нее можно видеть, что различные типы жизненных циклов применяются в зависимости от планируемой частоты внесения изменений в систему, сроков разработки и ее сложности. Жизненные циклы с более короткими фазами больше подходят для разработки систем, требования к которым еще не устоялись и вырабатываются во взаимодействии с заказчиком системы во время ее разработки.
Тип жизненного цикла | Длина цикла | Верификация и внесение изменений | Интеграция отдельных компонент системы |
---|---|---|---|
Каскадный | Все этапы разработки системы. Длинный | В конце разработки всей системы. Изменения вносятся редко | Четко определенные до начала кодирования интерфейсы |
V-образный | Все этапы разработки системы. Длинный | В конце полной разработки каждого из этапов системы. Изменения вносятся со средней частотой | Редко изменяемые интерфейсы |
Спиральный | Разработка одной версии системы. Средний | В конце разработки каждого из этапов версии системы. Изменения вносятся со средней частотой | Периодически изменяемые интерфейсы, редко меняемые в пределах версии |
XP | Разработка одной истории. Короткий | В конце разработки каждой истории. Изменения вносятся очень часто | Часто изменяемые интерфейсы |
В приведенном выше описании различных моделей жизненного цикла по сути затрагивался только один процесс - процесс разработки системы. На самом деле в любой модели жизненного цикла можно увидеть четыре вида процессов:
- Основной процесс разработки
- Процесс верификации
- Процесс управления разработкой
- Вспомогательные (поддерживающие) процессы
Процесс верификации - процесс, направленный на проверку корректности разрабатываемой системы и определения степени ее соответствия требованиям заказчика. Подробному рассмотрению этого процесса и посвящен данный учебный курс.
Процесс управления разработкой - отдельная дисциплина. На управление очень сильно влияет тип жизненного цикла основного процесса разработки. По сути, чем короче один этап жизненного цикла, тем активнее управление и тем больше задач стоит перед менеджером проекта. При классических схемах достаточно просто построить иерархическую пирамиду подчиненности, в которой каждый нижестоящий менеджер отвечает за разработку определенной части системы. В XP-подходе нет жесткого разделения системы на части, и менеджер должен охватывать все истории. При этом процесс управления активен на протяжении всего жизненного цикла основного процесса разработки.
Вспомогательные (поддерживающие) процессы обеспечивают своевременное создание всего, что может понадобиться разработчику или конечному пользователю. Сюда входит подготовка пользовательской документации, подготовка приемо-сдаточных тестов, управление конфигурациями и изменениями, взаимодействие с заказчиком и т.д. Вообще говоря, вспомогательные процессы могут существовать в течение всего жизненного цикла разработки, а могут быть своеобразными стыкующими звеньями между процессом разработки и процессом эксплуатации.
В конце данного курса особое внимание будет уделено наиболее значимым поддерживающим процессам - процессу управления конфигурациями и процессу обеспечения гарантии качества.
Основная цель процесса управления конфигурациями - обеспечение целостности всех данных, возникающих в процессе коллективной разработки. Под целостностью понимается, прежде всего, идентифицируемость, доступность этих данных в любой момент времени и недопущение несанкционированных изменений. Важным аспектом при этом становится процесс управления изменениями данных, т.е. планирование и утверждение любых изменений в проектную документацию или программный код, а также определение области влияния этих изменений.
Процесс гарантии качества обеспечивает проведение проверок, гарантирующих, что процесс разработки удовлетворяет набору определенных требований (стандартов), необходимых для выпуска качественной продукции. Фактически он проверяет, что все предусмотренные стандартами разработки процедуры выполняются и при выполнении соблюдаются декларированные для них правила.
Нужно особо отметить, что процесс гарантии качества не гарантирует разработку качественной программной системы. Он гарантирует только лишь, что процессы разработки построены и выполняются таким образом, чтобы не снижать качество продукции.
Требования, которые предъявляются к организации работы, необходимой для выпуска качественной продукции, оформлены в виде стандартов качества. Наиболее часто цитируемая и известная группа стандартов качества - серия стандартов ISO 9000. В дополнение к ним существует стандарт, содержащий требования к жизненному циклу разработки ПО - ISO 12207.
В реальной практике сейчас наиболее широко применяется стандарт ISO 12207, в отечественных госструктурах используются стандарты серии ГОСТ 34.
Стандарты комплекса ГОСТ 34 на создание и развитие АС - обобщенные, но воспринимаемые как весьма жесткие по структуре ЖЦ и проектной документации.
Международный стандарт ISO/IEC 12207 на организацию жизненного цикла продуктов программного обеспечения (ПО) содержит общие рекомендации по организации жизненного цикла, не постулируя при этом его жесткой структуры.