Лекции (1 курс, 2 семестр) УТкПО / Управление требованиями к программному обеспечению 1
.pdf
Участники
разработки
ПО
Заказчики – формируют требования к продукту, верхнеуровнево описывают задачу на языке бизнес целей и выгоды.
Архитекторы – разрабатывают архитектурное решение продукта, схему интеграций с другими системами.
Аналитики – бизнес аналитики и системные аналитики. Бизнес аналитики отвечают за проработку бизнес задач и формирование основных функциональных и нефункциональных (если они критичны для заказчика) требований к ПО. Системные аналитики детализируют и переводят в техническую плоскость (на уровень таблиц, функций, классов, интерфейсов и т.п.) бизнес требования, формируют техническое задание для команды разработки.
Участники
разработки
ПО
Разработчики – разрабатывают и документируют код ПО, занимаются отладкой и исправлением ошибок, проверяют код при помощи Unit-тестирования, собирают билды и поставки, готовят инструкции по установке.
Тестировщики (QA специалисты) – отвечают за качество ПО, выполняя для этого анализ требований, разработку планов и сценариев тестирования, выполняя тестирование ПО и т.д.
Команда поддержки – занимаются выводом ПО в эксплуатацию, установками и настройкой среды для пользователей.
Пользователи – являются конечными потребителями ПО, в рамках процесса разработки могут привлекаться к приемочному тестированию.
Жизненный
цикл
разработки
программного
обеспечения
Жизненный цикл разработки
программного обеспечения – это многоступенчатый процесс, который включает в себя спецификацию требований, анализ требований, проектирование, внедрение, тестирование, развертывание и обслуживание.
Анализ требований
Жизненный цикл разработки ПО начинается со стадии анализа, во время которого участники процесса обсуждают требования, предъявляемые к конечному продукту. Цель этой стадии – определение детальных требований к системе. Кроме этого, необходимо убедиться в том, что все участники правильно поняли поставленные задачи и то, как именно каждое требование будет реализовано на практике.
Зачастую, в обсуждении участвуют также и специалисты по тестированию, которые уже на стадии разработки требований могут вносить собственные пожелания и, при необходимости, корректировать процесс.
В зависимости от выбранной модели разработки, могут отличаться подходы к определению момента перехода с одной стадии на другую.
Таким образом, этот этап предполагает сбор требований к разрабатываемому программному обеспечению, их систематизацию, документирование, анализ, а также выявление и разрешение противоречий.
Анализ требований
Спецификация требований – это формальный процесс, который направлен на понимание проблемы, которую будет решать программное обеспечение, и подробного документирования того, что должна делать система программного обеспечения. Этот этап предполагает тесное взаимодействие между пользователями и разработчиками. Разработчики должны тесно сотрудничать со своими клиентами (физическими лицами или организациями, которые будут использовать программное обеспечение) и тщательно изучать проблему, чтобы определить, что нужно делать.
Анализ требований
Системный анализ направлен на анализ потока данных и идентификацию ввода и вывода системы. Когда проводится анализ, это помогает начать с определения, каким должен быть вывод, а затем выяснить, какие входные данные нужны для получения результата.
Проектирование
На стадии проектирования (называемой также стадией дизайна и архитектуры) программисты и системные архитекторы, руководствуясь требованиями, разрабатывают высокоуровневый дизайн системы.
Разнообразные технические вопросы, возникающие в процессе проектирования, обсуждаются со всеми заинтересованными сторонами, включая заказчика. Определяются технологии, которые будут использоваться в проекте, загрузка команды, ограничения, временные рамки и бюджет. В соответствии с уточненными требованиями выбираются наиболее подходящие проектные решения.
Проектирование
Утвержденный дизайн системы определяет перечень разрабатываемых программных компонентов, взаимодействие с третьими сторонами, функциональные характеристики
программы, используемые базы данных и многое другое. Дизайн, как правило, закрепляется отдельным документом – дизайн-спецификацией (Design Specification Document, DSD).
На этом этапе для упрощения визуализации процесса проектирования используются так называемые нотации – схематическое выражение характеристик разрабатываемой системы. Основные используемые нотации:
–Блок-схемы;
–ER-диаграммы;
–UML-диаграммы;
–Макеты – например, нарисованный в фотошопе прототип сайта.
Проектирование
Системный дизайн – это разработка процесса получения выходных данных из ввода. Эта фаза предполагает использование множества уровней абстракции для разбивки проблемы на управляемые компоненты и стратегии разработки для реализации каждого компонента.
Разработка и программирование
Реализация включает перевод дизайна системы в программы. Отдельные программы записываются для каждого компонента, а затем интегрируются для совместной работы. На этом этапе требуется использование языка программирования. Реализация включает в себя кодинг, самотестирование и отладку (то есть поиск ошибок, называемых багами, в коде).
