V-Model (разработка программного обеспечения) - V-Model (software development)

V-модель процесса системного проектирования.[1]
Разработка программного обеспечения
Активность ядер
Парадигмы и модели
Методологии и рамки
Вспомогательные дисциплины
Практики
Инструменты
Стандарты и свод знаний
Глоссарии
Контуры

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

Этапы определения проекта

Анализ требований

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

Документ требований пользователя обычно описывает требования к функционалу, интерфейсу, производительности, данным, безопасности и т. Д. Системы, ожидаемые пользователем. Он используется бизнес-аналитиками, чтобы сообщить пользователям о своем понимании системы. Пользователи внимательно изучают этот документ, так как он будет служить руководством для разработчиков системы на этапе проектирования системы. На этом этапе разрабатываются приемочные испытания пользователя. Смотрите также Функциональные требования.

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

Системный дизайн

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

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

Архитектурный дизайн

Этап проектирования компьютерная архитектура и программная архитектура также может называться высокоуровневым дизайном. При выборе архитектуры необходимо реализовать все, что обычно состоит из списка модулей, краткой функциональности каждого модуля, их интерфейс отношения, зависимости, база данных столы, архитектурные схемы, технологические детали и т. д. Дизайн интеграционного тестирования выполняется на конкретном этапе.[3]

Модульный дизайн

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

  • таблицы базы данных со всеми элементами, включая их тип и размер
  • все детали интерфейса с полным API Рекомендации
  • все проблемы с зависимостями
  • сообщение об ошибке списки
  • полные входы и выходы для модуля.

На этом этапе разрабатывается дизайн модульного теста.

Этапы валидации

В V-модели каждый этап фазы проверки имеет соответствующий этап фазы проверки.[4] Ниже приведены типичные этапы валидации в V-модели, хотя они могут быть известны под другими названиями.

Модульное тестирование

В V-модели планы модульных испытаний (UTP) разрабатываются на этапе проектирования модуля. Эти UTP выполняются для устранения ошибок на уровне кода или на уровне единицы. Единица - это наименьший объект, который может существовать независимо, например программный модуль. Модульное тестирование проверяет, что самый маленький объект может работать правильно, когда он изолирован от остальных кодов / модулей.

Интеграционное тестирование

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

Системное тестирование

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

Приемочное тестирование пользователей

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

Критика

V-модель подверглась критике со стороны Гибкий пропагандирует и другие как неадекватную модель разработки программного обеспечения по многим причинам.[5][6][7] Критика включает:

  1. Это слишком просто, чтобы точно отразить процесс разработки программного обеспечения, и может привести менеджеров к ложному чувству безопасности. V-модель отражает взгляд на разработку программного обеспечения с точки зрения управления проектами и соответствует потребностям руководителей проектов, бухгалтеров и юристов, а не разработчиков программного обеспечения или пользователей.
  2. Хотя новичкам это легко понять, это раннее понимание полезно только в том случае, если новичок приобретает более глубокое понимание процесса разработки и того, как V-модель должна быть адаптирована и расширена на практике. Если практикующие будут настаивать на своем наивном взгляде на V-модель, им будет очень трудно успешно применить ее.
  3. Он негибкий и поощряет жесткий и линейный взгляд на разработку программного обеспечения и не имеет неотъемлемой способности реагировать на изменения.
  4. Это лишь небольшой вариант модель водопада и поэтому подвергается той же критике, что и эта модель. Он уделяет больше внимания тестированию и, в частности, важности раннего планирования тестирования. Тем не менее, общая практическая критика V-модели заключается в том, что она приводит к тому, что тестирование сжимается в узкие окна в конце разработки, когда более ранние этапы выходят за рамки, но дата реализации остается фиксированной.
  5. Он согласуется с неэффективными и неэффективными подходами к тестированию и поэтому косвенно поощряет их. Он косвенно способствует написанию сценариев тестирования заранее, а не исследовательскому тестированию; это побуждает тестировщиков искать то, что они ожидают найти, а не открывать то, что действительно есть. Он также поощряет жесткую связь между эквивалентными уровнями каждого этапа (например, планы приемочных испытаний пользователей, получаемые из документов требований пользователей), а не поощряет тестировщиков выбирать наиболее эффективный и действенный способ планирования и выполнения тестирования.
  6. Ему не хватает последовательности и точности. Существует широко распространенное заблуждение относительно того, что такое V-Model. Если свести это к тем элементам, с которыми большинство людей согласятся, это станет банальным и бесполезным представлением о разработке программного обеспечения. Разногласия по поводу достоинств V-модели часто отражают отсутствие общего понимания ее определения.

Текущее состояние

Сторонники V-модели утверждают, что она эволюционировала с течением времени и поддерживает гибкость и гибкость на протяжении всего процесса разработки.[8] Они утверждают, что помимо высокодисциплинированного подхода, он способствует тщательному проектированию, разработке и документации, необходимым для создания стабильных программных продуктов. В последнее время он внедряется в индустрии медицинского оборудования.[9][10]

Смотрите также

Рекомендации

  1. ^ Концепция операций Clarus. В архиве 2009-07-05 на Wayback Machine Публикация № FHWA-JPO-05-072, Федеральное управление шоссейных дорог (FHWA), 2005 г.
  2. ^ Кевин Форсберг и Гарольд Мооз, «Взаимосвязь системной инженерии и проектного цикла», в материалах первого ежегодного симпозиума Национального совета по системной инженерии, октябрь 1991: 57–65.
  3. ^ Что такое модель V - преимущества, недостатки и когда ее использовать
  4. ^ ДеСпаутц, Джозеф; Кеннет С. Ковач; Герхард Верлинг (11 марта 2008 г.). «Стандарты GAMP для валидации автоматизированных систем». Фармацевтическая обработка. Архивировано из оригинал 8 мая 2012 г.. Получено 28 февраля 2012.
  5. ^ "Смерть V-модели", по состоянию на 6 января 2013 г.
  6. ^ "Опасная и соблазнительная модель V", по состоянию на 6 января 2013 г.
  7. ^ «Новые модели для разработки тестов», по состоянию на 6 января 2013 г.
  8. ^ «К процессам гибкой системной инженерии», по состоянию на 6 января 2013 г.
  9. ^ «Барьеры на пути к применению гибких методов разработки программного обеспечения для медицинских устройств»
  10. ^ «Структура разработки, оценки и улучшения программного обеспечения для индустрии медицинских устройств»

дальнейшее чтение

  • Роджер С. Прессман:Программная инженерия: подход практикующего специалиста, Компании McGraw-Hill, ISBN  0-07-301933-X
  • Марк Хоффман и Тед Бомонт: Разработка приложений: управление жизненным циклом проекта, Мак Пресс, ISBN  1-883884-45-4
  • Борис Байзер: Методы тестирования программного обеспечения. Второе издание, International Thomson Computer Press, 1990, ISBN  1-85032-880-3

внешняя ссылка