Инженерия программного обеспечения

Содержание

Слайд 2

Свойства качественного требования

Инженерия ПЗ. Л5. Егорова Е.В.

Свойства качественного требования Инженерия ПЗ. Л5. Егорова Е.В.

Слайд 3

Основные понятия(1)

Инженерия ПЗ. Л. Егорова Е.В.

ЗАВЕРШЁННОСТЬ (COMPLETENESS) Требование является полным и законченным

Основные понятия(1) Инженерия ПЗ. Л. Егорова Е.В. ЗАВЕРШЁННОСТЬ (COMPLETENESS) Требование является полным
с точки зрения представления в нём всей необходимой информации, ничто не пропущено по соображениям «это и так всем понятно».

Слайд 4

Типичные проблемы с завершённостью:

Отсутствуют нефункциональные составляющие требования или ссылки на соответствующие

Типичные проблемы с завершённостью: Отсутствуют нефункциональные составляющие требования или ссылки на соответствующие
нефункциональные требования
например: «пароли должны храниться в зашифрованном виде»
Указана лишь часть некоторого перечисления например: «экспорт осуществляется в форматы PDF, PNG и т. д.»
Приведённые ссылки неоднозначны например: «см. выше»

Инженерия ПЗ. Л5. Егорова Е.В.

4

Слайд 5

Основные понятия(2)

Инженерия ПЗ. Л5. Егорова Е.В.

АТОМАРНОСТЬ, ЕДИНИЧНОСТЬ (ATOMICITY)
Требование является атомарным, если его

Основные понятия(2) Инженерия ПЗ. Л5. Егорова Е.В. АТОМАРНОСТЬ, ЕДИНИЧНОСТЬ (ATOMICITY) Требование является
нельзя разбить на отдельные требования без потери завершённости и оно описывает одну и только одну ситуацию.

Слайд 6

Типичные проблемы с атомарностью:

В одном требовании, фактически, содержится несколько независимых например:

Типичные проблемы с атомарностью: В одном требовании, фактически, содержится несколько независимых например:
«кнопка “Restart” не должна отображаться при остановленном сервисе, окно “Log” должно вмещать не менее 20-ти записей о последних действиях пользователя»
Требование допускает разночтение в силу грамматических особенностей языка (
например: «если пользователь подтверждает заказ и редактирует заказ или откладывает заказ, должен выдаваться запрос на оплату»
! влечёт за собой возникновение противоречивости.
В одном требовании объединено описание нескольких независимых ситуаций
например: «когда пользователь входит в систему, ему должно отображаться приветствие; когда пользователь вошёл в систему, должно отображаться имя пользователя; когда пользователь выходит из системы, должно отображаться прощание»

Инженерия ПЗ. Л5. Егорова Е.В.

6

Слайд 7

Основные понятия(3)

Инженерия ПЗ. Л5. Егорова Е.В.

НЕПРОТИВОРЕЧИВОСТЬ, ПОСЛЕДОВАТЕЛЬНОСТЬ (CONSISTENCY).
Требование не должно содержать

Основные понятия(3) Инженерия ПЗ. Л5. Егорова Е.В. НЕПРОТИВОРЕЧИВОСТЬ, ПОСЛЕДОВАТЕЛЬНОСТЬ (CONSISTENCY). Требование не
внутренних противоречий и противоречий другим требованиям и документам.

Слайд 8

Типичные проблемы с непротиворечивостью:

Противоречия внутри одного требования
например: «после успешного входа в

Типичные проблемы с непротиворечивостью: Противоречия внутри одного требования например: «после успешного входа
систему пользователя, не имеющего права входить в систему…»
Противоречия между двумя и более требованиями, между таблицей и текстом, рисунком и текстом, требованием и прототипом и т. д.
например: «712.a Кнопка “Close” всегда должна быть красной» и «36452.x Кнопка “Close” всегда должна быть синей»
Использование неверной терминологии или использование разных терминов для обозначения одного и того же объекта или явления
например: «в случае, если разрешение окна составляет менее 800x600…»

Инженерия ПЗ. Л5. Егорова Е.В.

8

Слайд 9

Основные понятия(4)

Инженерия ПЗ. Л5. Егорова Е.В.

НЕДВУСМЫСЛЕННОСТЬ (UNAMBIGUOUSNESS, CLEARNESS). Требование описано без использования

Основные понятия(4) Инженерия ПЗ. Л5. Егорова Е.В. НЕДВУСМЫСЛЕННОСТЬ (UNAMBIGUOUSNESS, CLEARNESS). Требование описано
жаргона, неочевидных аббревиатур и расплывчатых формулировок и допускает только однозначное объективное понимание.
Требование атомарно в плане невозможности различной трактовки сочетания отдельных фраз.

Слайд 10

Типичные проблемы с недвусмысленностью:

Использование терминов или фраз, допускающих субъективное толкование (
например:

Типичные проблемы с недвусмысленностью: Использование терминов или фраз, допускающих субъективное толкование (
«приложение должно поддерживать передачу больших объёмов данных» — насколько «больших»?

Инженерия ПЗ. Л5. Егорова Е.В.

10

адекватно (adequate), быть способным (be able to), легко (easy), обеспечивать (provide for),
как минимум (as a minimum), быть способным (be capable of), эффективно (eff ectively),
своевременно (timely), применимо (as applicable), если возможно (if possible),
будет определено позже (to be determined, TBD), по мере необходимости (as appropriate),
если это целесообразно (if practical), но не ограничиваясь (but not limited to),
быть способно (capability of), иметь возможность (capability to), нормально (normal),
минимизировать (minimize), максимизировать (maximize), оптимизировать (optimize),
быстро (rapid), удобно (user-friendly), просто (simple), часто (oft en), обычно (usual),
большой (large), гибкий (fl exible), устойчивый (robust),
по последнему слову техники (state-of-the-art), улучшенный (improved),
результативно (effi cient).

«В случае необходимости оптимизации передачи больших файлов система должна эффективно использовать минимум оперативной памяти, если это возможно».

Слайд 11

Типичные проблемы с недвусмысленностью:

Использование неочевидных или двусмысленных аббревиатур без расшифровки
например: «доступ

Типичные проблемы с недвусмысленностью: Использование неочевидных или двусмысленных аббревиатур без расшифровки например:
к ФС осуществляется посредством системы прозрачного шифрования» и «ФС предоставляет возможность фиксировать сообщения в их текущем состоянии с хранением истории всех изменений»
Формулировка требований из соображений, что нечто должно быть всем очевидно
например: «Система конвертирует входной файл из формата PDF в выходной файл формата PNG» — и при этом автор считает совершенно очевидным, что имена файлов система получает из командной строки, а многостраничный PDF конвертируется в несколько PNG-файлов, к именам которых добавляется «page-1», «page-2» и т. д.). Эта проблема перекликается с нарушением корректности.

Инженерия ПЗ. Л5. Егорова Е.В.

11

Слайд 12

Основные понятия(5)

Инженерия ПЗ. Л5. Егорова Е.В.

ВЫПОЛНИМОСТЬ
(FEASIBILITY).
Требование технологически выполнимо и может

Основные понятия(5) Инженерия ПЗ. Л5. Егорова Е.В. ВЫПОЛНИМОСТЬ (FEASIBILITY). Требование технологически выполнимо
быть реализовано в рамках бюджета и сроков разработки проекта.

Слайд 13

Типичные проблемы с выполнимостью:

Так называемое «озолочение» (gold plating) — требования, которые

Типичные проблемы с выполнимостью: Так называемое «озолочение» (gold plating) — требования, которые
крайне долго и/или дорого реализуются и при этом практически бесполезны для конечных пользователей например: «настройка параметров для подключения к базе данных должна поддерживать распознавание символов из жестов, полученных с устройств трёхмерного ввода»
Технически нереализуемые на современном уровне развития технологий требования
например: «анализ договоров должен выполняться с применением искусственного интеллекта, который будет выносить однозначное корректное заключение о степени выгоды от заключения договора»
В принципе нереализуемые требования
например: «система поиска должна заранее предусматривать все возможные варианты поисковых запросов и кэшировать их результаты»

Инженерия ПЗ. Л5. Егорова Е.В.

13

Слайд 14

Основные понятия(6)

Инженерия ПЗ. Л5. Егорова Е.В.

ОБЯЗАТЕЛЬНОСТЬ, НУЖНОСТЬ (OBLIGATION) И АКТУАЛЬНОСТЬ (UP-TO-DATE).
Если

Основные понятия(6) Инженерия ПЗ. Л5. Егорова Е.В. ОБЯЗАТЕЛЬНОСТЬ, НУЖНОСТЬ (OBLIGATION) И АКТУАЛЬНОСТЬ
требование не является обязательным к реализации, оно должно быть просто исключено из набора требований.
Если требование нужное, но «не очень важное», для указания этого факта используется указание приоритета.
Также исключены (или переработаны) должны быть требования, утратившие актуальность.

Слайд 15

Типичные проблемы с обязательностью и актуальностью:

Требование было добавлено «на всякий случай»,

Типичные проблемы с обязательностью и актуальностью: Требование было добавлено «на всякий случай»,
хотя реальной потребности в нём не было и нет.
Требованию выставлены неверные значения приоритета по критериям важности и/или срочности.
Требование устарело, но не было переработано или удалено.

Инженерия ПЗ. Л5. Егорова Е.В.

15

Слайд 16

Основные понятия(7)

Инженерия ПЗ. Л5. Егорова Е.В.

ПРОСЛЕЖИВАЕМОСТЬ (TRACEABILITY)
вертикальная (vertical traceability)
горизонтальная (horizontal

Основные понятия(7) Инженерия ПЗ. Л5. Егорова Е.В. ПРОСЛЕЖИВАЕМОСТЬ (TRACEABILITY) вертикальная (vertical traceability)
traceability)
Вертикальная позволяет соотносить между собой требования на различных уровнях требований.
Горизонтальная позволяет соотносить требование с тест-планом, тест-кейсами, архитектурными решениями и т. д.

Слайд 17

Типичные проблемы с обязательностью и актуальностью:

Требования не пронумерованы, не структурированы, не

Типичные проблемы с обязательностью и актуальностью: Требования не пронумерованы, не структурированы, не
имеют оглавления, не имеют работающих перекрёстных ссылок.
При разработке требований не были использованы инструменты и техники управления требованиями.
Набор требований неполный, носит обрывочный характер с явными «пробелами».

Инженерия ПЗ. Л5. Егорова Е.В.

17

Слайд 18

Оновные понятия(8)

Инженерия ПЗ. Л5. Егорова Е.В.

МОДИФИЦИРУЕМОСТЬ (MODIFI ABILITY)
Это свойство характеризует простоту внесения

Оновные понятия(8) Инженерия ПЗ. Л5. Егорова Е.В. МОДИФИЦИРУЕМОСТЬ (MODIFI ABILITY) Это свойство
изменений в отдельные требования и в набор требований.

Слайд 19

Типичные проблемы с модифицируемостью:

Требования неатомарны и непрослеживаемы, а потому их изменение

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

Инженерия ПЗ. Л5. Егорова Е.В.

19

Слайд 20

Оновные понятия(9)

Инженерия ПЗ. Л5. Егорова Е.В.

ПРОРАНЖИРОВАННОСТЬ ПО ВАЖНОСТИ, СТАБИЛЬНОСТИ, СРОЧНОСТИ
(RANKED FOR

Оновные понятия(9) Инженерия ПЗ. Л5. Егорова Е.В. ПРОРАНЖИРОВАННОСТЬ ПО ВАЖНОСТИ, СТАБИЛЬНОСТИ, СРОЧНОСТИ
IMPORTANCE, STABILITY, PRIORITY).
Важность характеризует зависимость успеха проекта от успеха реализации требования.

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

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

Слайд 21

Типичные проблемы:

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

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

Инженерия ПЗ. Л5. Егорова Е.В.

21

Слайд 22

Оновные понятия(9)

Инженерия ПЗ. Л5. Егорова Е.В.

КОРРЕКТНОСТЬ (CORRECTNESS) И ПРОВЕРЯЕМОСТЬ (VERIFI ABILITY) Проверяемость

Оновные понятия(9) Инженерия ПЗ. Л5. Егорова Е.В. КОРРЕКТНОСТЬ (CORRECTNESS) И ПРОВЕРЯЕМОСТЬ (VERIFI
подразумевает возможность создания объективного тест-кейса (тест-кейсов), однозначно показывающего, что требование реализовано верно и поведение приложения в точности соответствует требованию.

Слайд 23

Типичные проблемы:

опечатки (особенно опасны опечатки в аббревиатурах, превращающие одну осмысленную аббревиатуру в

Типичные проблемы: опечатки (особенно опасны опечатки в аббревиатурах, превращающие одну осмысленную аббревиатуру
другую также осмысленную, но не имеющую отношения к некоему контексту) !
!опечатки крайне сложно заметить
наличие неаргументированных требований к дизайну и архитектуре;
плохое оформление текста и сопутствующей графической информации, грамматические, пунктуационные и иные ошибки в тексте;
неверный уровень детализации (например, слишком глубокая детализация требования на уровне бизнес-требований или недостаточная детализация на уровне требований к продукту);
требования к пользователю, а не к приложению
например: «пользователь должен быть в состоянии отправить сообщение» =))))

Инженерия ПЗ. Л5. Егорова Е.В.

23

Слайд 24

«Writing Good Requirements —
The Big Ten Rules»

Инженерия ПЗ. Л2. Егорова Е.В.

«Writing Good Requirements — The Big Ten Rules» Инженерия ПЗ. Л2. Егорова Е.В.