- •Этапы проектирования
- •2. Понятие жизненного цикла программного обеспечения
- •2. Проектирование.
- •3. Реализация.
- •Формирование и анализ требований
- •По уровням требования делятся на следующие категории.
- •По характеру различают следующие типы требований.
- •Источниками требований могут быть следующие объекты.
- •Методы проектирования программных систем
- •Структурное проектирование программ
- •Объектно-ориентированое проектирование программ
- •Архитектура программного обеспечения
- •Модель хранения данных
- •6.2. Диаграммы вариантов использования
- •6.3. Диаграммы классов
- •6.4. Диаграммы деятельности
- •6.5. Диаграммы последовательности действий
- •Диаграммы состояний класса
- •Диаграммы компонентов системы
- •Диаграммы размещения (развертывания) программных компонентов
- •Расчет сложности программной системы
- •Средства автоматизации проектирования программного обеспечения
Формирование и анализ требований
Требования к программному обеспечению представляют собой совокупность утверждений относительно атрибутов, свойств или качеств программной системы, подлежащей реализации. Они создаются в процессе непосредственной разработки или в результате анализа и представляют собой исходные данные для проектирования системы.
Требования могут представляться в виде текстовых утверждений и графических моделей. Совокупность требований используется на стадии проектирования программного обеспечения (ПО). Они также используются в процессе проверки ПО.
Этапу разработки требований может предшествовать технико-экономическое обоснование или концептуальная фаза анализа проекта. Фаза разработки требований может быть разбита на следующие этапы:
выявление требований (сбор, понимание, рассмотрение и выяснение потребностей заинтересованных лиц),
анализ (проверка целостности и законченности),
спецификация (документирование требований),
проверка правильности.
По уровням требования делятся на следующие категории.
Бизнес-требования, которые определяют назначение ПО, описываются в документе о видении (vision) и границах проекта (scope).
Пользовательские требования, определяющие набор пользовательских задач, которые должна решать программа, а также способы (сценарии) их решения в системе. Они могут выражаться в виде фраз утверждений, сценариев использования (use case) или пользовательских историй ({{lang-en|user stories), сценариев взаимодействия (scenario).
Функциональные требования, описывающие предполагаемое поведение системы, определяя действия, которые она способна выполнять. Они представляются в виде системной спецификации (system requirement specification, SRS).
По характеру различают следующие типы требований.
Функциональные — требования к поведению системы:
Бизнес-требования;
Пользовательские требования;
Функциональные требования;
Нефункциональные — требования к характеру поведения системы:
Бизнес-правила, которые определяют ограничения, вытекающие из предметной области и свойств автоматизируемого объекта (предприятия);
Системные требования и ограничения, определяющие элементарные операции, которые должна иметь система, а также различные условия, которым она может удовлетворять. К системным требованиям и ограничениям относятся:
Ограничения на программные интерфейсы, в том числе к внешним системам;
Требования к атрибутам качества;
Требования к применяемому оборудованию и ПО;
Требования к документированию;
Требования к дизайну и юзабилити (удобству);
Требования к безопасности и надёжности;
Требования к показателям назначения (производительность, устойчивость к сбоям и т. п.)
Требования к эксплуатации и персоналу;
Прочие требования и ограничения (внешние воздействия, мобильность, автономность и т.п.).
Источниками требований могут быть следующие объекты.
Федеральное и муниципальное отраслевое законодательство (конституция, законы, распоряжения);
Нормативное обеспечение организации (регламенты, положения, уставы, приказы);
Текущая организация деятельности объекта автоматизации;
Модели деятельности (диаграммы бизнес-процессов);
Представления и ожидания потребителей и пользователей системы;
Журналы использования существующих программно-аппаратных систем;
Конкурирующие программные продукты.
Анализ требований является частью процесса разработки программного обеспечения, включающей в себя сбор требований к программному обеспечению, их систематизацию, выявление взаимосвязей, а также документирование. В англоязычной среде говорят о дисциплине «инженерия требований» (Requirements Engineering). В процессе сбора требований необходимо принимать во внимание возможные противоречия требований различных заинтересованных лиц, таких как заказчики, разработчики или пользователи.
Полнота и качество анализа требований играют ключевую роль в успехе всего проекта. Требования к ПО должны быть документируемые, выполнимые, тестируемые и иметь уровень детализации, достаточный для проектирования системы.
Анализ требований включает три типа операций.
Сбор, при котором происходит общение с клиентами и пользователями и анализ предметной области.
Анализ, на котором определяют, являются ли собранные требования неясными, неполными, неоднозначными или противоречащими; выполняют решение этих проблем и выявляют взаимосвязи требований.
Документирование — представление требований в одной из возможных форм, таких как простое описание, сценарии использования, пользовательские истории, или спецификации процессов.
Процесс формирования требований при каскадной модели жизненного цикла программ, которая рассмотрена ранее, может быть проиллюстрирован схемой, приведенной на рис. 3.1.
Рис. 3.1
При циклической модели жизненного цикла ПО процесс формирования требований выполняется по схеме рис. 3.2.
Рис. 3.2
Анализ требований может быть длинным и трудным процессом. Аналитики могут использовать различные методы, чтобы их выявить. Современные методы предполагают создание прототипов и сценариев использования.
Спецификация требований программного обеспечения (Software Requirements Specification, SRS) является полным описанием поведения системы, которая будет создана. Она включает ряд сценариев использования, которые описывают все виды взаимодействия пользователей с программным обеспечением. Сценарии использования также называют функциональными требованиями. В дополнении к ним, спецификации программного обеспечения также содержат нефункциональные требования.
Рекомендуемые подходы к спецификации требований программного обеспечения описаны стандартом IEEE 830—1998. Этот стандарт описывает возможные структуры, желательное содержание и качество спецификации требований программного обеспечения.
