- •1.Виды, взаимосвязь и свойства требований
- •1.1.Что такое «требование»?
- •1.2.Виды требований
- •1.2.1.Функциональные требования
- •1.2.2.Нефункциональные требования
- •1.2.2.1.Нефункциональные требования к продукту
- •1.2.2.2.Нефункциональные требования к процессу
- •1.2.2.3.Внешние нефункциональные требования
- •1.5.Вопросы для самоконтроля
- •2.Определение образа и границ проекта
- •2.1.Анализ предметной области
- •2.2.Анализ осуществимости
- •2.3.Определение целей и области действия
- •2.4.Документирование образа и границ проекта
- •2.5.Вопросы для самоконтроля
- •3.Выявление требований
- •3.1.Определение способа сбора и анализа требований
- •3.1.1.Источники возникновения требований
- •3.1.2.Заинтересованные в проекте лица
- •3.2.Опрос (интервью)
- •3.2.1.Подготовка
- •3.2.2.Проведение опроса
- •3.2.3.Определение последующих действий
- •3.3.Совместные семинары
- •3.4.”Мозговой штурм”
- •3.4.1.Роли во время сеансов
- •3.4.2.Правила проведения сеанса
- •3.4.3.Подготовка к сеансу
- •3.4.4.Проведение сеанса
- •3.4.5.Обработка результатов сеанса
- •3.5.Сценарии
- •3.5.1.Сценарии событий
- •3.5.2.Варианты использования
- •3.5.3.Применение модели msc uml
- •3.6.Выявление требований на основе различных точек зрения. Метод vord
- •3.6.1.Идентификация точек зрения
- •3.6.2.Структурирование точек зрения
- •3.6.3.Документирование и отображение системы точек зрения
- •3.7.Этнографический подход
- •3.8.Вопросы для самоконтроля
- •4.Разработка системных требований
- •4.1.Детализация требований пользователей
- •4.2.Системные модели
- •4.2.1. Модели потоков данных
- •4.2.2.Модели конечных автоматов
- •4.2.3.Модели данных
- •4.3.Прототипы
- •4.3.1.Роль прототипов при разработке требований
- •4.3.2.Виды прототипов
- •4.4.Разработка прототипов
- •4.4.1.Экспериментальное прототипирование
- •4.4.2.Эволюционное прототипирование
- •4.4.3.Риски прототипирования
- •4.5.Системные требования
- •4.5.1.Структурированный естественный язык
- •4.5.2.Языки описания программ
- •4.5.3.Графические нотации
- •4.6.Документирование системных требований
- •4.7.Вопросы для самоконтроля
- •5.Документирование требований
- •5.1.Спецификация требований
- •5.2.Состав спецификации требований
- •5.3.Рекомендации по разработке требований
- •5.4.Стандартные шаблоны спецификации
- •5.5.Вопросы для самоконтроля
- •6.Анализ спецификации требований
- •6.1.Оценка качества спецификации требований
- •6.1.1.Характеристики качества спецификации
- •6.1.2.Аттестация требований
- •6.2.Экспертиза спецификации
- •6.3.Прототипирование
- •6.4.Автоматизированный анализ
- •6.5.Тестирование требований
- •6.6.Вопросы для самоконтроля
- •7.Управление требованиями
- •7.1.Причины изменений требований
- •7.2.Принципы управления требованиями
- •7.3.Управление изменениями
- •7.4.Управление версиями
- •7.5.Управление связями требований
- •7.6.Риски, связанные с требованиями
- •7.6.1.Риски этапа выявления требований
- •7.6.2.Риски этапа анализа и спецификации требований
- •7.6.3.Риски управления требованиями
- •7.7.Вопросы для самоконтроля
- •8.Case-средства для управления требованиями
- •8.1.Выбор case-средств для управления требованиями
- •8.2.Уровень зрелости и используемые инструменты
- •8.2.1.Моделирование требований
- •8.2.2.Трассировка требований
- •8.2.3.Управление версиями
- •8.3.Возможности case-средств управления требованиями
- •8.3.1. Средства idf-моделирования
- •8.3.2.Средства uml
- •8.4.Вопросы для самоконтроля
- •Список литературы
2.5.Вопросы для самоконтроля
Каковы основные цели анализа предметной области?
Как используется методика «будет – не будет» при определении области действия проекта?
Кто выполняет анализ предметной области?
Для каких программных систем должен проводиться анализ осуществимости?
Что определяют бизнес-требования и бизнес-правила?
Почему пользовательские и функциональные требования должны соответствовать бизнес-требованиям?
Что определяет образ продукта и границы проекта?
Перечислите основные разделы документа, описывающего образ продукта и границы проекта?
3.Выявление требований
3.1.Определение способа сбора и анализа требований
3.1.1.Источники возникновения требований
Все требования к программной системе можно разделить на две большие группы:
требования, определяемые предметной областью;
требования, определяемые пользователями системы.
Под требованиями, определяемыми предметной областью здесь понимаются ограничения, накладываемые на программную систему законами природы и, которые поэтому нельзя изменить. Источниками остальных требований являются люди. Чем меньше объективных ограничений имеет проблема, тем большее количество ее ограничений должно быть получено от людей. Для большинства распространенных («офисных») приложений этот источник поставляет более 80% требований.
3.1.2.Заинтересованные в проекте лица
В успехе любой программной системы заинтересовано достаточно широкий круг людей – это пользователи, разработчики, заказчики.
Поставщики готовых к употреблению приложений: систем обработки текстов, электронных таблиц, сред разработки и т.п., уделяют основное внимание доступности приложения как можно большему числу пользователей, которые являются наиболее значительными финансово-заинтересованными лицами.
Для большинства крупных проектов, однако, определение наиболее важных финансово-заинтересованных лиц является сложной проблемой. Если, например, заказчик – это государственная организация, которая оплачивает разработку приложения, то разве не являются налогоплательщики «заказчиками», поскольку на самом деле это они платят за приложение? Когда приложение разрабатывается для внутреннего использования в компании, то заказчиком является сама компания. Заказчиком субподрядчика является основной подрядчик, заказчиком коробочного приложения является множество потенциальных покупателей и т.д.
Требования различных групп пользователей могут противоречить друг другу. Когда требования нельзя согласовать, проекты продвигаются с трудом, и часто прекращаются. Даже когда требования финансово-заинтересованных лиц согласованы, они могут быть слишком дорогими, чтобы их полностью удовлетворить.
Заинтересованные лица – активно участвующие в проекте лица, группы или организации, которых затрагивает полученный результат и которые сами могут влиять на этот результат [4].
Пользователь – юридическое или физическое лицо, применяющее программное средство или участвующее в деятельности, прямо или косвенно зависящей от функционирования данного программного средства [10].
Разработчики несут профессиональную ответственность за программную систему, что также влияет на требования. Если, например, для реализации или тестирования каких-либо требований недостаточно бюджета, то разработчики и в этом случае несут социальную ответственность за производство системы, в точности соответствующей предъявляемым требованиям. Заметим, что эти проблемы относятся, в большей мере, к управлению требованиями проекта и хороший руководитель проекта должен уметь преодолевать эти трудности.
Рассмотрим наиболее часто используемые методы выявления требований.