26
Требования к ПО

Требования к по

Embed Size (px)

Citation preview

Page 1: Требования к по

Требования к ПО

Page 2: Требования к по

Что такое «требование»IEEE Standard Glossary of Software Engineering

Terminology (1990):• условия или возможности, необходимые

пользователю для решения проблем или достижения целей;

• условия или возможности, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворять стандартам, спецификациям или другим формальным документам;

• документированное представление условий или возможностей для пунктов 1 и 2.

Page 3: Требования к по

Что такое «требование»

Sommerville и Sawyer (1997)• Требования... это спецификация того, что

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

Page 4: Требования к по

Классификация требований

• Бизнес-требования,• требования пользователей,• функциональные требования• + нефункциональные требования

Page 5: Требования к по

Бизнес-требования

• содержат высокоуровневые цели организации или заказчиков системы;

• как правило, формулируются тем, кто финансирует проект: покупатели системы, менеджер реальных пользователей, отдел маркетинга или ясновидец .≪ ≫

• Business requirements document / Vision and Scope

Page 6: Требования к по

Требования пользователей

• Требования пользователей (user requirements) описывают цели и задачи, которые пользователям позволит решить система.

• К отличным способам представления этого вида требований относятся варианты использования, сценарии и таблицы

событие — отклик .≪ ≫• Таким образом, в этом документе указано, что

клиенты смогут делать с помощью системы.

Page 7: Требования к по

Функциональные требования• Функциональные требования (functional

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

• Иногда именуемые требованиями поведения (behavioral requirements), они содержат положения с традиционным должен или должна : ≪ ≫ ≪ ≫

Система должна по электронной почте ≪отправлять пользователю подтверждение о заказе .≫

• Функциональные требования описывают, что разработчику необходимо реализовать.

Page 8: Требования к по

Взаимодействие требований

Page 9: Требования к по

Системные требования

• Термином системные требования (system requirements) обозначают высокоуровневые требования к продукту, которые содержат многие подсистемы.

• Говоря о системе, мы подразумеваем программное обеспечение или подсистемы ПО и оборудования. Люди — часть системы, поэтому определенные функции системы могут распространяться и на людей.

Page 10: Требования к по

Бизнес-правила• Бизнес-правила (business rules) включают:

– корпоративные политики,– правительственные постановления,– промышленные стандарты– вычислительные алгоритмы.

• Не являются требованиями к ПО, потому что они находятся снаружи

• границ любой системы ПО.• Часто налагают ограничения, определяя, кто может выполнять

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

• Иногда бизнес-правила становятся источником атрибутов качества, которые реализуются в функциональности.

Page 11: Требования к по

Функциональные требования• Функциональные требования документируются в

спецификации требований к ПО (software requirements specification, SRS), где описывается так полно, как необходимо, ожидаемое поведение системы.

• Это может быть база данных или крупноформатная таблица с требованиями, хранилище данных в коммерческом инструменте управления требованиями или даже, может быть, куча карточек для небольшого проекта.

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

Page 12: Требования к по

Атрибуты качества

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

• К таким характеристикам относятся легкость и простота использования, легкость перемещения, целостность, эффективность и устойчивость к сбоям.

Page 13: Требования к по

Каких требований быть не должно

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

Page 14: Требования к по

ЖЦ требования

Page 15: Требования к по

Разработка требований• идентификация классов пользователей для данного продукта;

– выяснение потребностей тех, кто представляет каждый класс пользователей;• определение задач и целей пользователей, а также бизнес-целей, с которыми эти

задачи связаны;• анализ информации, полученной от пользователей, чтобы отделить

задачи от функциональных и нефункциональных требований, бизнес-правил, предполагаемых решений и поступающих извне данных;– распределение высокоуровневых требований по компонентам ПС,

определенным в системной архитектуре;• установление относительной важности атрибутов качества;

– установление приоритетов реализации;• документирование собранной информации и построение моделей;• просмотр спецификации требований, который позволяет

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

Page 16: Требования к по

Управление требованиями• определение основной версии требований (моментальный

срез требований для конкретной версии продукта);• просмотр предлагаемых изменений требований и оценка

вероятности воздействия каждого изменения до его принятия;• включение одобренных изменений требований в проект

установленным способом;• согласование плана проекта с требованиями;• обсуждение новых обязательств, основанных на оцененном

влиянии изменения требований;– отслеживание отдельных требований до их дизайна, исходного

кода и вариантов тестирования;• отслеживание статуса требований и действий по изменению на

протяжении всего проекта.

Page 17: Требования к по

Характеристики требований

• Полнота• Корректность• Осуществимость• Необходимость• Назначение приоритетов• Недвусмысленность• Проверяемость

Page 18: Требования к по

Полнота требования• Каждое требование должно полно описывать

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

• Если вы понимаете, что данных определенного рода не хватает, используйте пометку TBD (to be determined ≪ ≫— необходимо определить) на полях как стандартный флаг для выделения такого места.

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

Page 19: Требования к по

Корректность• Каждое требование должно точно описывать желаемую

функциональность.• Для соблюдения корректности необходима связь с

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

• Требования к ПО, которые конфликтуют с родительскими требованиями, нельзя считать корректными.

• Однако основная оценка здесь— за представителями пользователей, вот почему им или их непосредственным заместителям необходимо предоставлять требования для просмотра.

Page 20: Требования к по

Осуществимость• Необходима возможность реализовать каждое

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

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

• Инкрементальная разработка и подтверждающие концепцию прототипы позволяют проверить осуществимость требования.

Page 21: Требования к по

Необходимость

• Каждое требование должно отражать возможность, которая действительно необходима пользователям или которая нужна для соответствия внешним системным требованиям или стандартам.

• Кроме того, оно должно исходить от лица, которое имеет полномочия на запись положения.

• Отследите каждое требование вплоть до стадии сбора мнений пользователей, когда выявлялись варианты использовании, бизнес-правила или другие источники.

Page 22: Требования к по

Назначение приоритетов

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

• Если все положения одинаково важны, менеджеру проекта будет трудно справиться с уменьшением бюджета, нарушением сроков, потерей персонала или добавлением новых требований в процессе разработки.

Page 23: Требования к по

Недвусмысленность• Все читатели требований должны

интерпретировать их одинаково, но естественный язык зачастую грешит многозначностью.

• Пишите документацию просто, кратко и точно, применяя лексику, понятную пользователям.

• ≪Ясность — цель качества требований, ≫связанная с точностью: читатели должны четко понимать каждое положение.

• Занесите все специальные и запутанные термины в словарь.

Page 24: Требования к по

Проверяемость• Попробуйте разработать несколько тестов или

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

• Если требование не проверяется, вопрос его корректной реализации становится предметом заключения, а не целью анализа.

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

Page 25: Требования к по

Характеристики спецификаций требований

• Полнота• Согласованность• Способность к модификации• Трассируемость

Page 26: Требования к по

См. также• Вигерс Карл. Разработка требований к

программному обеспечению / Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2004. – 576 с.

• Алистер Коберн. Современные методы описания функциональных требований к системам / Пер. с англ. – М.: Издательство «Лори», 2002. – 288 с.

• Мацяшек, Лешек А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 432 с.