Практические задания

Для заданной предметной области, поставленной цели, существующей проблемы:

[ ] разработайте требования

[ ] обоснуйте выбор архитектуры

[ ] спроектируйте компоненты

[ ] реализуйте компоненты

[ ] протестируйте компоненты и приложение в целом

[ ] []

Разработка требований

Задача 1. Выявить

Получить требования из описания предметной области.

Задача 2. Классифицировать

Разделить все требования на:

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

Задача 3. Смоделировать

Построить:

  • Use Case;
  • DFD;
  • диаграмму деятельности.

Задача 4. Сформулировать

Преобразовать естественный язык в проверяемые требования.

Задача 5. Проверить качество

Найти дефекты требований.

Задача 6. Аттестовать

Выбрать метод проверки каждого требования.

Задача 7. Управлять изменением

Обработать запрос на изменение требований и определить последствия.

Задача 8. Зафиксировать инженерное знание

Оформить артефакты в виде документации (Техническое задание на разработку ПО, спецификация программного продукта)

Обоснование архитектуры

Задача 1. Найти границы системы

Определить систему, внешние системы и заинтересованные стороны.

Артефакт: Контекстная диаграмма системы

Задача 2. Выполнить декомпозицию системы

Выделить подсистемы и компоненты.

Артефакт: Диаграмма компонентов

Задача 3. Определить взаимодействия между компонентами системы

Определить интерфейсы и взаимодействия компонентов.

Артефакт: Диаграмма последовательностей или взаимодействий

Задача 4. Выбрать стиль

Сравнить 2–3 архитектурных варианта.

Артефакт: Запись об архитектурном решении

Задача 5. Выбрать методы

Обеспечить заданные характеристики качества.

Артефакт: Матрица архитектурных решений (Architecture Tactics Matrix).

Задача 6. Оценить архитектуру

Найти риски и проверить сценарии качества.

Артефакт: Отчет об оценке архитектуры (Architecture Evaluation Report).

Задача 7. Документировать

Собрать архитектурное описание системы.

Артефакт:

  • Модель «4+1» Филиппа Крачена
  • Модель C4

Проектирование компонента программной системы

Дано:

  • требования;
  • архитектурный контекст;
  • ограничения;
  • сценарии использования.

Пакет артефактов

paket.png

Конструирование программной системы

Шаг 1. Реализовать проект на основе UML-диаграмм

Артефакт: программный код

Шаг 2. Провести статический анализ кода

Артефакт: Code Review

Шаг 3. Проверить работу кода на тестовых данных

Артефакт: Unit Tests

Шаг 4. Исправить обнаруженные дефекты

Артефакт: программный код

Шаг 5. Интегрировать реализованный компонент в систему

Артефакт: программный продукт

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

Выберите одно требование из своей предметной области и проведите его через все шесть подзадач последовательно

Подзадача 1.

Выделите аспекты требования:

  1. объект проверки — что именно проверяется;
  2. условие проверки — при каких обстоятельствах;
  3. входные данные — что подаётся на вход;
  4. ожидаемый результат — что должно получиться;
  5. критерий прохождения — по какому признаку тест считается пройденным (не «работает», а измеримое условие).

Напишите тест-кейс по шаблону.

Артефакт: Test Case

Подзадача 2

Возьмите требование из подзадачи 1 и постройте таблицу из четырёх строк — по одной на каждый масштаб:

Масштаб Объект проверки Кто выполняет Окружение Пример проверки
Функция/метод        
Связка модулей        
Система целиком        
Бизнес-цель        

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

Артефакт: сравнительная таблица масштабов проверки для одного требования.

? Подзадача 3

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

Подзадача 4

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

  1. тест пройден — опишите, что именно подтверждает прохождение;
  2. тест провален — придумайте правдоподобное фактическое поведение системы, отличное от ожидаемого, и составьте на его основе отчёт об ошибке (шаги воспроизведения, ожидаемый результат, фактический результат, критичность).

Артефакт: Отчёт об ошибке

Подзадача 5

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

Постройте матрицу прослеживаемости: строки — требования, столбцы — тесты, на пересечении — отметка о покрытии.

Найдите:

  • требование без единого теста;
  • тест, не привязанный ни к одному требованию (если такой есть — обсудите, нужен ли он).

Артефакт: Матрица прослеживаемости тестирования + краткий вывод о проценте покрытия требований.

Внесение изменений в существующий проект

Для ранее созданного программного средства поступает запрос на добавление нового функционала:

Включение изменений в существующий проект проходит через полный цикл:

changeBack.puml

Набор артефактов

┌─────────────────────────────────┐
│      ПАКЕТ                      │
├─────────────────────────────────┤
│ Запрос на изменение             │
│ Классификация изменений         │
│ Анализ влияния                  │
│ Оценка стоимости и рисков       │
│ Решение по изменению            │
│ Обновленный проект              │
│ Измененный исходный код         │
│ Регрессионное тестирование      │
│ Обновленная документация        │
│ Поставка                        │
│ Развертывание                   │
└─────────────────────────────────┘