Практикум
Практические задания
Для заданной предметной области, поставленной цели, существующей проблемы:
[ ] обоснуйте выбор архитектуры
[ ] протестируйте компоненты и приложение в целом
[ ] []
Разработка требований
Задача 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
Проектирование компонента программной системы
Дано:
- требования;
- архитектурный контекст;
- ограничения;
- сценарии использования.
Пакет артефактов

Конструирование программной системы
Шаг 1. Реализовать проект на основе UML-диаграмм
Артефакт: программный код
Шаг 2. Провести статический анализ кода
Артефакт: Code Review
Шаг 3. Проверить работу кода на тестовых данных
Артефакт: Unit Tests
Шаг 4. Исправить обнаруженные дефекты
Артефакт: программный код
Шаг 5. Интегрировать реализованный компонент в систему
Артефакт: программный продукт
Тестирование
Выберите одно требование из своей предметной области и проведите его через все шесть подзадач последовательно
Подзадача 1.
Выделите аспекты требования:
- объект проверки — что именно проверяется;
- условие проверки — при каких обстоятельствах;
- входные данные — что подаётся на вход;
- ожидаемый результат — что должно получиться;
- критерий прохождения — по какому признаку тест считается пройденным (не «работает», а измеримое условие).
Напишите тест-кейс по шаблону.
Артефакт: Test Case
Подзадача 2
Возьмите требование из подзадачи 1 и постройте таблицу из четырёх строк — по одной на каждый масштаб:
| Масштаб | Объект проверки | Кто выполняет | Окружение | Пример проверки |
|---|---|---|---|---|
| Функция/метод | ||||
| Связка модулей | ||||
| Система целиком | ||||
| Бизнес-цель |
Заполните все ячейки для своего требования. Отдельно ответьте: что добавляется на каждом следующем масштабе такого, что нельзя было проверить на предыдущем?
Артефакт: сравнительная таблица масштабов проверки для одного требования.
? Подзадача 3
Чтобы получить конкретные входные данные и ожидаемый результат, требование нужно «спроектировать» одним из методов: эквивалентное разбиение, анализ граничных значений, таблицы решений, диаграммы переходов состояний, попарное тестирование, сценарное тестирование, исследовательское тестирование, предугадывание ошибок, мутационное тестирование.
Подзадача 4
Возьмите любой тест-кейс из подзадач 1 или 2. Смоделируйте два сценария его выполнения:
- тест пройден — опишите, что именно подтверждает прохождение;
- тест провален — придумайте правдоподобное фактическое поведение системы, отличное от ожидаемого, и составьте на его основе отчёт об ошибке (шаги воспроизведения, ожидаемый результат, фактический результат, критичность).
Артефакт: Отчёт об ошибке
Подзадача 5
Возьмите список из требований, сформулированный в техническом задании и список тестов, которые вы для них написали в предыдущих разделах.
Постройте матрицу прослеживаемости: строки — требования, столбцы — тесты, на пересечении — отметка о покрытии.
Найдите:
- требование без единого теста;
- тест, не привязанный ни к одному требованию (если такой есть — обсудите, нужен ли он).
Артефакт: Матрица прослеживаемости тестирования + краткий вывод о проценте покрытия требований.
Внесение изменений в существующий проект
Для ранее созданного программного средства поступает запрос на добавление нового функционала:
Включение изменений в существующий проект проходит через полный цикл:
Набор артефактов
┌─────────────────────────────────┐
│ ПАКЕТ │
├─────────────────────────────────┤
│ Запрос на изменение │
│ Классификация изменений │
│ Анализ влияния │
│ Оценка стоимости и рисков │
│ Решение по изменению │
│ Обновленный проект │
│ Измененный исходный код │
│ Регрессионное тестирование │
│ Обновленная документация │
│ Поставка │
│ Развертывание │
└─────────────────────────────────┘