V-Model (или VEE модель) является моделью разработки информационных систем (ИС), направленной на упрощение понимания сложностей, связанных с разработкой систем. Она используется для определения единой процедуры разработки программных продуктов, аппаратного обеспечения и человеко-машинных интерфейсов.
Обзор
правитьИстория
правитьКонцепция V-образной модели была разработана Германией и США в конце 1980-х годов независимо друг от друга:
- Немецкая V-модель была разработана аэрокосмической компанией IABG в Оттобрунне рядом с Мюнхеном в содействии с Федеральным департаментом по закупке вооружений в Кобленце, для Министерства обороны Германии. Модель была принята немецкой федеральной администрацией для гражданских нужд летом 1992[1].
- Американская V-Model (VEE) была разработана национальным советом по системной инженерии (международным — с 1995 года) для спутниковых систем, включая оборудование, программное обеспечение и взаимодействие с пользователями[2].
Современной версией V-Model является V-Model XT, которая была утверждена в феврале 2005 года. V-модель используется для управления процессом разработки программного обеспечения для немецкой федеральной администрации. Сейчас она является стандартом для немецких правительственных и оборонных проектов, а также для производителей ПО в Германии. V-Model представляет собой скорее набор стандартов в области проектов, касающихся разработки новых продуктов. Эта модель во многом схожа с PRINCE2 и описывает методы как для проектного управления, так и для системного развития.
Основные принципы
правитьОсновной принцип V-образной модели заключается в том, что детализация проекта возрастает при движении слева направо, одновременно с течением времени, и ни то, ни другое не может повернуть вспять. Итерации в проекте производятся по горизонтали, между левой и правой сторонами буквы.
Применительно к разработке информационных систем V-Model — вариация каскадной модели, в которой задачи разработки идут сверху вниз по левой стороне буквы V, а задачи тестирования — вверх по правой стороне буквы V. Внутри V проводятся горизонтальные линии, показывающие, как результаты каждой из фаз разработки влияют на развитие системы тестирования на каждой из фаз тестирования. Модель базируется на том, что приёмо-сдаточные испытания основываются, прежде всего, на требованиях, системное тестирование — на требованиях и архитектуре, комплексное тестирование — на требованиях, архитектуре и интерфейсах, а компонентное тестирование — на требованиях, архитектуре, интерфейсах и алгоритмах[4].
Цели
правитьV-модель обеспечивает поддержку в планировании и реализации проекта. В ходе проекта ставятся следующие задачи:
- Минимизация рисков: V-образная модель делает проект более прозрачным и повышает качество контроля проекта путём стандартизации промежуточных целей и описания соответствующих им результатов и ответственных лиц. Это позволяет выявлять отклонения в проекте и риски на ранних стадиях и улучшает качество управления проектов, уменьшая риски.
- Повышение и гарантии качества: V-Model — стандартизованная модель разработки, что позволяет добиться от проекта результатов желаемого качества. Промежуточные результаты могут быть проверены на ранних стадиях. Универсальное документирование облегчает читаемость, понятность и проверяемость.
- Уменьшение общей стоимости проекта: Ресурсы на разработку, производство, управление и поддержку могут быть заранее просчитаны и проконтролированы. Получаемые результаты также универсальны и легко прогнозируются. Это уменьшает затраты на последующие стадии и проекты.
- Повышение качества коммуникации между участниками проекта: Универсальное описание всех элементов и условий облегчает взаимопонимание всех участников проекта. Таким образом, уменьшаются неточности в понимании между пользователем, покупателем, поставщиком и разработчиком[5].
Достоинства
править- Пользователи V-Model участвуют в разработке и поддержке V-модели. Комитет по контролю за изменениями поддерживает проект и собирается раз в год для обработки всех полученных запросов на внесение изменений в V-Model[6].
- На старте любого проекта V-образная модель может быть адаптирована под этот проект, так как эта модель не зависит от типов организаций и проектов[7].
- V-model позволяет разбить деятельность на отдельные шаги, каждый из которых будет включать в себя необходимые для него действия, инструкции к ним, рекомендации и подробное объяснение деятельности[8].
Ограничения
правитьСледующие моменты не учитываются в V-модели, но могут быть рассмотрены отдельно, либо возможно адаптировать модель под них:
- Не регулируется размещение контрактов на обслуживание.
- Организация и выполнение управления, обслуживания, ремонта и утилизации системы не учитываются в V-модели. Однако, планирование и подготовка к этим операциям моделью рассматриваются.
- V-образная модель больше касается разработки программного обеспечения в проекте, чем всей организации процесса[9].
Критика
правитьПреимущества
править- В модели особое значение придается планированию, направленному на верификацию и аттестацию разрабатываемого продукта на ранних стадиях его разработки. Фаза модульного тестирования подтверждает правильность детализированного проектирования. Фазы интеграции и тестирования реализуют архитектурное проектирование или проектирование на высшем уровне. Фаза тестирования системы подтверждает правильность выполнения этапа требований к продукту и его спецификации[10].
- В модели предусмотрены аттестация и верификация всех внешних и внутренних полученных данных, а не только самого программного продукта[10][11][12].
- В V-образной модели определение требований выполняется перед разработкой проекта системы, а проектирование ПО — перед разработкой компонентов[10].
- Модель определяет продукты, которые должны быть получены в результате процесса разработки, причём каждые полученные данные должны подвергаться тестированию[10][12].
- Благодаря модели менеджеры проекта могут отслеживать ход процесса разработки, так как в данном случае вполне возможно воспользоваться временной шкалой, а завершение каждой фазы является контрольной точкой[10][12].
Недостатки
править- Модель не предусматривает работу с параллельными событиями[10].
- В модели не предусмотрено внесение требования динамических изменений на разных этапах жизненного цикла[10][11][13].
- Тестирование требований в жизненном цикле происходит слишком поздно, вследствие чего невозможно внести изменения, не повлияв при этом на график выполнения проекта[10][11].
- В модель не входят действия, направленные на анализ рисков[10].
- Некоторый результат можно посмотреть только при достижении низа буквы V[14].
См. также
правитьПримечания
править- ↑ V-Model — Lifecycle process model Архивировано 3 марта 2016 года. (англ.)
- ↑ Forsberg, K. and Mooz, H., "The Relationship of Systems Engineering to the Project Cycle", Первый ежегодный симпозиум национального совета по системной инженерии, октябрь 1991 года (англ.)
- ↑ Clarus Concept of Operations. Архивная копия от 12 сентября 2014 на Wayback Machine Publication No. FHWA-JPO-05-072, Federal Highway Administration (FHWA), 2005 (англ.)
- ↑ Economicus: серия словарей по экономике, финансам и менеджменту (недоступная ссылка)
- ↑ Objectives of the V-Model Архивировано 20 апреля 2011 года. (англ.)
- ↑ Further Development of the V-Model Архивировано 23 апреля 2011 года. (англ.)
- ↑ Management Mechanisms of the V-Model — Tailoring Архивировано 19 июля 2011 года. (англ.)
- ↑ Overview of the Activity Model of the V-Model Архивировано 19 июля 2011 года. (англ.)
- ↑ Limits of the V-model Архивировано 21 мая 2011 года. (англ.)
- ↑ 1 2 3 4 5 6 7 8 9 Обзор моделей жизненного цикла разработки программного обеспечения . Дата обращения: 5 июня 2011. Архивировано 15 июня 2016 года.
- ↑ 1 2 3 Testing Excellence — V-Model Архивная копия от 25 июня 2011 на Wayback Machine (англ.)
- ↑ 1 2 3 Sameeradilhan — Advantages and disadvantages of Waterfall Model and V-Model Архивная копия от 29 августа 2012 на Wayback Machine (англ.)
- ↑ TestManagement — Advantages and Disadvantages of V-Model Архивная копия от 20 июня 2015 на Wayback Machine (англ.)
- ↑ V-Model Архивная копия от 20 июня 2015 на Wayback Machine: Expert Program Management (англ.)