Анализ требований – один из основных рабочих потоков (workflow) программной инженерии, наряду с проектирование интерфейса пользователя, либо программированием.
Для его обозначения в англоязычной литературе, как правило, используется понятие «Requirement Process». В отечественной практике, наряду с обобщающим термином «анализ требований», принятым, в частности, в ГОСТ Р ИСО/МЭК 12207–99, встречаются также такие термины, как «поток работ «требования», «работа с требованиями», «определение требований» и т.д., что вносит изрядную путаницу. Для того чтобы внести некоторую ясность, рассмотрим декомпозицию рабочего потока Requirement Process на составляющие, принятую в SWEBOK, и введем терминологию, которой будет применяться в дипломной работе.
SWEBOK предлагает выделить в Requirement Process следующие основные составляющие:
- Requirements Elicitation (Извлечение требований),
- Requirements Analysis (Анализ требований в узком смысле),
- Requirements Specification (Специфицирование требований),
- Requirements Validation (Проверка требований).
В качестве примера альтернативной декомпозиции потока работ можно рассмотреть взгляд, предложенный в RUP [4.1]. RUP предлагает выделить в основном потоке анализа требований такие компоненты, как:
- Analyze the Problem (Анализпроблемы),
- Understand Stakeholder Needs (Понимание потребностей совладельцев),
- Define the System (Определение системы),
- Manage the Scope of the System (Управлениеконтекстомсистемы),
- Refine the System Definition (Уточнение определения системы).
Обобщая приведенные методики, далее будем придерживаться следующей, более удобной в методическом плане схемы декомпозиции потока работ «Работа с требованиями»:
- Формирование видения;
- Выявление требований;
- Классификация и спецификация требований;
- Расширенный анализ требований (моделирование и прототипирование);
- Документирование требований;
- Проверка требований;
- Управление требованиями;
- Совершенствование процесса работы с требованиями.
Первые 6 работ рассматриваются, как компоненты процесса анализа требований. Для того чтобы успешно создать автоматизированную информационную систему (или шире, программную систему), необходимо, во-первых, определить компоненты потока работ, которые будут использоваться командой разработчиков и, во-вторых, правильно их организовать. В вопросы организации входит упорядочение работ во времени, интерфейсы между ними, параллелизм, работа с рисками и многое другое.
Найти ответ на первый вопрос может помочь общая классификация задач, работ и операций программной инженерии, представленная в ГОСТ Р ИСО/МЭК 12207–99. Другая, более поздняя по времени классификация, присутствует в SWEBOK. Однако нужно отметить, что данные руководящие документы рассматривают общий случай, а в частном проекте может быть задействован далеко не весь арсенал работ.
Сложнее – с решением второго вопроса. На сегодня существуют и имеют примеры успешного применения десятки и сотни различных методологий (процессов), среди наиболее известных – MSF, RUP, Oracle PJM, XP, FDD, SCRUM, PSP, Crystal, DSDM. Методологии подразделяются на 3 «волны»: каскадные (исторически первые), прогнозирующие (например, RUP) и «быстрые» (agile), вошедшие в широкую практику на рубеже тысячелетий [4.3].
Описания методологий существенно разняться объемом (от десятков до тысяч страниц текста), наборами базовых работ и рабочих квалификаций, акцентами (работа с моделями, управление рисками, построение команды и пр.). Но авторы их описаний обычно сходятся в одном: лучшая из методологий, которой нужно следовать, чтобы добиться успеха – именно та, которую предлагает (описывает, рекламирует) автор. Редким исключением являются работы А. Коберна, автора группы методологий Crystal, где он предлагает брать за основу не «самый лучший» из процессов, а тот, который, во-первых, наилучшим образом соответствует проектной задаче, а во вторых – команде, которая будет его реализовывать. В [24.3] вводится несколько метрик, позволяющих частично формализовать процесс подбора методологии.
Не все работы и операции, известные в программной инженерии, используются в той или иной методологии и, тем более, конкретном проекте. рабочий поток АТ является несомненно необходимым в цепочке рабочих потоков создания информационной системы и на него несомненно стоит тратить время. Проанализировав требуемый объем результатов от АТ можно утверждать что как этап разработки ИС, невозможно пропустить АТ, этот этап закладывает фундамент всего процесса проектирования и реализации системы. Уровень проработки АТ может быть различным: от совершенно неформальной записки, представленной на одной странице, до развернутой системы документов, моделей и прототипов, построенной в соответствии с принципами одной из прогнозирующих методологий, например, RUP. Это зависит от следующих основных факторов: размеров проекта, величины имеющихся ресурсов и степени рисков. Невысокая глубина проработки приемлема для небольших проектов, характеризующихся небольшим ресурсом и невысокими рисками. Хорошо проработанные требования позволяют:
· выработать общее понимание между Заказчиком и Разработчиком;
· определить рамки проекта;
· более точно определить финансовые и временные характеристики проекта;
· обезопасить Заказчика от риска получить продукт, в котором он не сможет работать,
· обезопасить Разработчика от риска попасть в ситуацию «неконтролируемого размытия границ», которое может привести к непредвиденным затратам ресурсов сверх начальных ожиданий.
Анализ требований – это процесс (бизнес-процесс) и, следовательно, к нему подходят методы и средства процессного подхода к управлению[2].
Один из ключевых вопросов, позволяющих оценить результативность процесса – что является выходом (результатом) процесса. В чем результат АТ? Результатом рабочего потока «анализ требований» является набор артефактов. Это могут быть текстовые документы, модели UML, либо других языков моделирования, прототипы программного обеспечения.
Проанализируем другой важный вопрос – какие цели преследует процесс. RUP предлагает следующие цели для потока работ АТ:
· добиться одинакового понимания с заказчиком и пользователями о том, что должна делать система;
· дать разработчикам наилучшее понимание требований к системе;
· определить границы системы;
· определить интерфейс пользователя и системы.
Выдвинутые цели отражены в рис. 2
Рис. 2. Контекст технологической операции проектирования
Выводы: результаты анализа требований во многом определяют успех проекта, требования являются необходимой составляющей в разработке проекта, от правильно сформулированных и разработанных требований, зависит успех проекта, но какова роль бизнес-анализа и бизнес-моделирования предстоит исследовать и проанализировать. Стоит разобраться, в каком случае следует применять анализ требований, бизнес-анализ или бизнес-моделирование.
Проведение исследований в области бизнес моделирования показало, что существуют уже сотни методик, методологий, процессов, стандартов, регламентирующих те или иные детали выбора и комплексирования потоков работ при разработке автоматизированных информационных систем. Работы, связанные с бизнес-анализом и бизнес-моделированием до недавнего времени были не популярны у проектировщиков ИС. Их роль не столь очевидна и принимается далеко не всеми методологиями. Возникает вопрос собирать информацию о предприятии, для которого разрабатывается (выбирается) АИС в виде бизнес-моделей или стоит пропустить этот этап и сразу формировать требования к системе и приступать к её разработке?
Заказчик и Разработчик всегда говорят на разных языках. Общее понимание вырабатывается с трудом, этот процесс занимает время, но важность его трудно переоценить: ведь успешная реализация проекта в области и внедрения АИС во многом зависит от того, удастся ли выработать и документировать их общее представление о предмете разработки. Если же Разработчик идет еще дальше и вникает в особенности ведения дел на предприятии Заказчика – он, во-первых, сможет добиться лучшего понимания требований к АИС и, во-вторых, участвовать наряду с Заказчиком в формулировке требований, анализе пропущенных требований и пр.
Задачу анализа бизнес-процессов (деловое моделирование), столь популярную в последние десятилетия ввиду устойчивой конъюнктуры, следует рассматривать, как часть более общей задачи, анализа проблемной области[3]. Работы, посвященные анализу проблемной области, появились в отечественной литературе в середине прошлого века; данная тематика неразрывно связано с задачным подходом и инженерией экспертных систем. Первые шаги в области моделирования были проведены в построении интеллектуальных систем. Для такой «более приземленной» задачи, как задача построения АИС – эти методы начали применяться позднее. Стратегии извлечения знаний во многом пересекаются с работой аналитика, методы решения задачи путем редукции на подзадачи и поиска в пространстве состояний нашли свое отражение во множестве методик бизнес-анализа, анализа и синтеза программных систем и этот список можно продолжать. В дипломной работе рассматривается вопрос насколько результативно применение тех или иных моделей и методов при описании организационных систем.
Что бы решить этот вопрос надо определить цели и задачи самого бизнес-анализа, как этапа построения КИС.
С позиций моделирования, анализ требований (АТ) и анализ проблемной области (АПО) – принципиально разные процессы.
АПО преследует классические цели создания модели: налицо объект (автоматизируемое предприятие или организационная система[4], ОС) и задача аналитика – отразить этот объект в создаваемой модели с требуемой степенью точности схема процесса разработки представлена на рисунке 3.