1 of 32

Software Engineering

Лекция 04: Работа с требованиями

Тимофей Брыксин

timofey.bryksin@gmail.com

2 of 32

Требования

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

3 of 32

4 of 32

Пример

  • Бизнес-требование:
    • продукт позволит пользователям исправлять орфографические ошибки в тексте эффективно
  • Требования пользователей:
    • сценарии “Найдите орфографическую ошибку” или “Добавьте слово в общий словарь”
  • Функциональные требования:
    • поиск и выделение слова с ошибкой
    • отображение диалогового окна с фрагментом текста с ошибочным словом
    • полнотекстовая замена слова с ошибкой
  • Атрибуты качества:
    • простота использования (“эффективность”)

5 of 32

Требования к требованиям

  • Единичность
  • Завершенность
  • Непротиворечивость
  • Атомарность
  • Отслеживаемость
  • Актуальность
  • Выполнимость
  • Недвусмысленность
  • Обязательность
  • Проверяемость

6 of 32

Основные риски, связанные с требованиями

  • Недостаточное вовлечение пользователей
  • Игнорирование классов пользователей
  • Разрастание требований пользователей
  • Двусмысленность требований
  • Излишная дополнительная функциональность
  • Минимальная спецификация
  • Небрежное планирование

7 of 32

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

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

8 of 32

Выявление требований

  • Определение процесса формулирования требований
  • Определение классов пользователей и их характеристик
  • Выбор типичного пользователя в каждом классе пользователей
  • Организация фокус-групп/интервью типичных пользователей
  • Наблюдение за пользователями на рабочих местах
  • Изучение отчетов о проблемах работающих систем
  • Определение системных событий и реакции на них
  • Создание документа об образе и границах проекта

9 of 32

Выявление требований IRL

10 of 32

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

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

11 of 32

Проверка требований

  • Изучение документов с требованиями
  • Определение критериев приемлемости
  • Тестирование требований

12 of 32

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

13 of 32

Навыки, необходимые аналитику

  • Умение опрашивать и задавать вопросы
  • Умение слушать
  • Умение наблюдать
  • Навыки межличностного общения
  • Навыки анализа
  • Навыки написания документации
  • Навыки моделирования
  • Организационные навыки
  • Творческий подход

14 of 32

Создаваемые документы

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

15 of 32

Документ об образе и границах проекта

  1. Бизнес-требования
    1. Контекст
    2. Бизнес-возможности
    3. Бизнес-цели и критерии успеха
    4. Потребности клиента или рынка
    5. Бизнес-риски
  2. Project vision
    • Положение об образе проекта
    • Основные функции
    • Предположения и зависимости

  1. Масштабы и ограничения проекта
    1. Основная функциональность
    2. Объем первоначальной версии
    3. Объем последующих версий
    4. Ограничения и исключения
  2. Бизнес-контекст
    • Профили заинтересованных лиц
    • Приоритеты проекта
    • Операционная среда

16 of 32

Контекстная диаграмма

  • задание границ системы �и связи с внешним миром

17 of 32

Feature tree

18 of 32

Моделирование требований

  • Диаграммы случаев использования
    • Актёры (роли)
      • кто-то или что-то вне системы, влияющий или оказывающий влияние
      • люди или программные системы
    • Случаи (сценарии) использования
      • цель пользователя системы
      • действие-реакция для достижения цели
  • Общее представление функциональных требований

19 of 32

Детализация сценариев

20 of 32

21 of 32

22 of 32

Диаграммы активности

23 of 32

Data-flow diagrams

  • сущности системы
  • внешние сущности
  • потоки данных
  • иерархическая модель

24 of 32

Диаграмма состояний

  • описание реактивных систем
    • состояния
    • внешние события
    • переходы

25 of 32

Деревья решений

26 of 32

Спецификация требований к ПО (SRS)

  1. Введение
    1. Цели
    2. Соглашения о терминах
    3. Предполагаемая аудитория
    4. Масштаб проекта
    5. Ссылки на источники
  2. Общее описание
    • Видение продукта
    • Функциональность продукта
    • Классы и характеристики пользователей
    • Среда функционирования продукта
    • Рамки, ограничения, правила и стандарты
    • Документация для пользователей
    • Допущения и зависимости

  • Функциональность системы
    • Функциональный блок X
    • Описание и приоритет
    • Причинно-следственные связи, алгоритмы
    • Функциональные требования
  • Требования к внешним интерфейсам
    • Интерфейсы пользователя (UX)
    • Программные интерфейсы
    • Интерфейсы оборудования
    • Интерфейсы связи и коммуникации
  • Нефункциональные требования
    • Требования к производительности
    • Требования к сохранности (данных)
    • Критерии качества ПО
    • Требования к безопасности системы
  • Прочие требования

27 of 32

Требования и тестирование

28 of 32

Управление требованиями

  • Определение процесса управления изменениями
  • Создание базовой версии и управление версиями требований
  • Использование средств версионирования и управления требованиями
  • Анализ влияния изменений требований
  • Оценка изменяемости требований

29 of 32

Аттрибуты требований

  • дата создания, автор
  • номер текущей ревизии
  • лицо, ответственное за удовлетворение требования
  • происхождение или источник требования
  • состояние (proposed, approved, implemented, verified, rejected и т.п.)
  • приоритет
  • подсистемы, для которых актуально требование
  • номер версии продукта, для которой актуально требование
  • критерий приемлемости, используемый метод проверки

30 of 32

31 of 32

Связь с другими видами деятельности

32 of 32