Работа с требованиями к ПО
Основы программной инженерии
Кулямин В.В., ВМК МГУ
Требования к ПО
•Определяют желаемое поведение и характеристики системы
•Входные данные, условия выполнения операций, характеристики ожидаемых результатов
•Необходимая производительность выполнения операций – сколько времени и машинных ресурсов оно должно занимать, сколько времени и трудозатрат оно должно требовать у пользователей
•Ожидаемые возможности обработки непредвиденных событий и поддержки работоспособности в некорректном окружении
•Ожидаемые важные изменения и возможности их внесения в систему
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
2 |
Предметная область
•Часто требования можно понять лишь в определенном контексте Для этого нужно понимать язык, на котором разговаривают друг с другом специалисты в заданной области
•Анализ предметной области (domain analysis, business analysis)
•Выявление основных понятий, их атрибутов и связей
•Выделение типовых задач, ограничений на их возможные входные данные и решения
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
3 |
Схема Захмана (J. Zachman)
|
Мотивация |
Люди и |
Данные |
Функции |
Места и |
Временные |
|
|
подразделения |
|
|
взаимосвязи |
свойства |
|
|
|
|
|
|
|
|
Зачем? |
Кто? |
Что? |
Как? |
Где? |
Когда? |
|
|
|
|
|
|
|
Взгляд на |
Общие цели и |
Структурные |
Основные |
Бизнес-процессы |
Географическое |
Графики |
организацию |
стратегии |
подразделения |
понятия |
|
расположение |
работ |
или бизнес |
бизнеса |
и штатное |
|
|
и логистика |
|
|
|
расписание |
|
|
|
|
|
|
|
|
|
|
|
Взгляд на |
Основные |
Роли |
Модель |
Функциональные |
Распределение |
Временные |
систему |
задачи и |
пользователей |
данных |
компоненты |
ресурсов и |
ограничения |
|
бизнес- |
и структура |
предметной |
|
архитектура |
и структура |
|
правила |
интерфейса |
области |
|
сетей |
обработки |
|
|
|
|
|
|
событий |
|
|
|
|
|
|
|
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
4 |
Требования по источникам возникновения
•Явные требования и пожелания пользователей, заказчиков и других лиц (контролирующих и регулирующих организаций)
-Все это – заинтересованные лица разных категорий, имеющие свои интересы, связанные с данной системой
•Требования поддержки бизнес-процессов и технологических процессов (выявляемые при их анализе)
•Явные требования стандартов на системы данного вида, требования нормативов и законодательства
•Сложившиеся неявные нормы и правила работы систем данного вида (выявляемые при анализе аналогичных систем или бесед с экспертами)
•Ограничения и законы предметной области (пример: характеристики движения самолета удовлетворяют определенным
аэродинамическим уравнениям, система управления должна учитывать эти связи)
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
5 |
Эволюция отдельных требований
•Проблемы предметной области и потребности пользователей
•Что-то, что идет не так, как надо или хотелось бы, в самом бизнесе или деятельности заказчика
•[Много аварий автомашин из-за усталости и потери внимания водителем]
•Функции (features)
•Формулировка на одно-три предложения какой-то специфической штуки, выполняемой ПО и помогающей справиться с одной или несколькими проблемами
•[Система управления автомобилем поддерживает автопилотирование]
•Часто называются C-требованиями, требованиями пользователей
В их терминах удобно разговаривать с представителями заказчиков и пользователей
•Требования в строгом смысле
•Четкая формулировка решаемой задачи с описанием входных данных, условий выполнения, выполняемых действий и ожидаемых результатов
•[При таких-то характеристиках дороги, движения самой машины, движения других машин, погоды и пр. включается режим автопилотирования. Он поддерживает такие-то характеристики движения, повороты не круче чем …, подъемы и спуски не круче чем …. При таких-то условиях он отключается и подает сигнал водителю об отключении, при таких-то условиях подает сигнал для привлечения внимания, водитель также может сам отключить его]
•Часто называются D-требованиями, требованиями разработчиков
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
6 |
Процесс выработки требований
Не вполне последовательный, итеративный процесс
•Выделение требований
•Определение источников – документов для анализа и людей для бесед и интервью
•Извлечение отдельных требований – построение каталога
•Согласование – при выявлении неточности, некорректности, неполноты, противоречий Для согласовании привлекаются различные документы и специалисты В результате могут быть выработаны нетривиальные и новые формулировки
•Описание и систематизация Сведение в единую систему, установление всех связей, выбор языка и
нотации для оформления, составление всех необходимых документов, схем
имоделей
•Валидация и верификация Проверка того, что все нужные свойства требований выполняются
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
7 |
Методы выделения/уточнения требований
•Аналитические
•Размышление/интроспекция
•Анализ документов и моделей
•Анализ аналогичных системы
•Демонстрационные
•Раскадровка
•Демонстрация прототипа
•Коммуникативные
•Индивидуальные
•Групповые
•Когнитивные
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
8 |
Методы выделения/уточнения требований
•Аналитические
•Демонстрационные
•Коммуникативные
•Индивидуальные
•Интервью
•Опрос
•Групповые
•Групповое интервью/фокус-группа
•Мозговой штурм
•Семинар
•Метод Дельфи
•Ролевая игра
•Когнитивные
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
9 |
Методы выделения/уточнения требований
•Аналитические
•Демонстрационные
•Коммуникативные
•Индивидуальные
•Групповые
•Когнитивные
•Анализ задач
•Анализ протоколов
•Устойчивые решетки
•Сортировка карточек
•Масштабирование близости
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
10 |
