Анализ требований к автоматизированным информационным системам

Контекст задачи анализа требований

Лекция посвящена месту и роли анализа требований (АТ) и анализа проблемной области (АПО) в процессе создания автоматизированных информационных систем (АИС). В материале рассматривается дискуссионный вопрос о необходимости проведения бизнес-анализа (моделирования деятельности предприятия) перед этапом сбора требований. Автор объясняет принципиальную разницу между этими видами анализа с позиций моделирования, вводя понятия «модели объекта» (ОС) и «модели будущей системы» (АИС). В лекции также дается обзор методологий бизнес-анализа (включая ARIS), исследуется взаимосвязь архитектуры и требований, а также место анализа требований среди других рабочих потоков программной инженерии (на примере RUP).

Основные мысли

• Необязательность, но важность бизнес-анализа: Анализ бизнес-процессов (деловое моделирование) не является строго обязательным этапом во всех методологиях. Его проведение зависит от конкретной задачи и наличия у разработчиков неявных знаний о предметной области.
• Глоссарий как основа взаимопонимания: Глоссарий — это ключевой артефакт, фиксирующий единое понимание терминологии Заказчиком и Разработчиком, что критически важно для успеха проекта.
• Различие целей анализа: Анализ проблемной области (АПО) направлен на создание модели существующего объекта (предприятия). Анализ требований (АТ) направлен на создание модели еще не существующего объекта (будущей АИС).
• Связь АПО и АТ: АИС является моделью организационной системы (ОС). Следовательно, документ АТ — это «модель второго порядка» (модель модели ОС). Отсутствие модели АПО повышает риск создания АИС, не соответствующей реальным потребностям бизнеса (неингерентной системы).
• Взаимосвязь требований и архитектуры: Требования первичны по отношению к архитектуре, но процессы их разработки должны идти параллельно. Стабилизация архитектуры наступает тогда, когда новые требования перестают на нее влиять.
• Сквозной контроль требований: Требования должны учитываться и анализироваться во всех рабочих потоках проекта (не только в АТ), чтобы избежать эффекта «снежного кома» из ошибок, заложенных на ранних стадиях.
Показывать лекцию целиком
Краткое изложение

Анализ требований, бизнес-анализ, анализ проблемной области

В настоящее время существуют уже сотни методик, методологий, процессов, стандартов, регламентирующих те или иные детали выбора и комплексирования потоков работ при разработке автоматизированных информационных систем. То, что АТ стоит в начале цепочки работ и что ее результаты во многом определяют успех проекта, мало у кого вызывает сомнения. Другое дело - работы, связанные с бизнес-анализом и бизнес-моделированием. Их роль не столь очевидна и принимается далеко не всеми методологиями. Итак, стоит ли собирать информацию о предприятии, для которого разрабатывается (выбирается) АИС в виде бизнес-моделей или стоит пропустить этот этап и сразу формировать артефакты АТ?

Авторы [5.1], "отцы-основатели" RUP и UML, в этом вопросе дают определенную свободу: можно создавать бизнес-модели при помощи соответствующих расширений UML и рекомендаций RUP, а можно ограничиться выработкой глоссария объектов предметной области. Как и в вопросе выбора глубины проработки артефактов АТ, вопрос - проводить или не проводить бизнес-анализ (или, точнее говоря, анализ проблемной области), решается в зависимости от конкретной задачи.

Роль глоссария при АТ.

Несколько утрируя, можно сказать, что Заказчик и Разработчик всегда говорят на разных языках. Общее понимание вырабатывается с трудом, этот процесс занимает время, но важность его трудно переоценить: ведь успешная реализация проекта в области внедрения АИС во многом зависит от того, удастся ли выработать и документировать их общее представление о предмете разработки. Если же Разработчик идет еще дальше и вникает в особенности ведения дел на предприятии Заказчика - он, во-первых, сможет добиться лучшего понимания требований к АИС и, во-вторых, участвовать наряду с Заказчиком в формулировке этих требований, анализе пропущенных требований и пр. Глоссарий (подробнее см. в лекции 8) можно рассматривать как документ, удостоверяющий общее понимание основной терминологии Заказчиком и Разработчиком.

Задачу анализа бизнес-процессов (деловое моделирование), столь популярную в последние десятилетия ввиду устойчивой конъюнктуры, следует рассматривать как часть более общей задачи систем для анализа проблемной области. Работы, посвященные анализу проблемной области, появились в отечественной литературе в середине прошлого века; данная тематика неразрывно связана с задачным подходом и инженерией экспертных систем. Применимы ли методы, принятые при построении интеллектуальных систем для такой, "более приземленной" задачи, как задача построения АИС - безусловно, да. Так, стратегии извлечения знаний, рассмотренные в [5.2], во многом пересекаются с рекомендациями по работе аналитика [5.3], методы решения задачи путем редукции на подзадачи и поиска в пространстве состояний нашли свое отражение во множестве методик бизнес-анализа, анализа и синтеза программных систем, и этот список можно продолжать. Другой вопрос - насколько результативно применение тех или иных моделей и методов при описании организационных систем.

Ключ к решению этого вопроса лежит в следующем: вначале надо определить цели и задачи самого бизнес-анализа, как этапа построения КИС.

С позиций моделирования, анализ требований (АТ) и анализ проблемной области (АПО) - принципиально разные процессы.

АПО преследует классические цели создания модели: налицо объект (автоматизируемое предприятие или организационная система, ОС) и задача аналитика - отразить этот объект в создаваемой модели с требуемой степенью точности (рис. 5.1).

Анализ требований, напротив, направлен на моделирование воображаемого, еще не существующего объекта (АИС) (рис. 5.2). Т.е. сначала создается модель, а затем, на ее основании, синтезируется объект.

Для того, чтобы прояснить связь между этими процессами, необходимо заметить, что создаваемая АИС также является моделью по отношению к ОС. Таким образом, создавая документ АТ, мы тем самым порождаем как бы "модель второго порядка", т.к. документ АТ является ничем иным, как моделью модели ОС. Не обладая моделью АПО, мы, конечно, можем создать модель АТ. Но при этом мы рискуем тем, что при синтезе оригинала модели (т.е. АИС), не обладая знаниями об ОС, мы можем попасть в ситуацию рассогласования: результирующая АИС не будет ингерентна (согласована с) ОС и, тем самым, не станет жизнеспособной.

(рис 5.1)

Следует ли из этого, что этап АПО является необходимым звеном создания КИС? Нет, не всегда. Здесь уместно обратиться к классификации задач и методологий А. Коберна [5.4]. Кроме того, это зависит от состава третьей компоненты "треугольника моделирования" - моделирующего субъекта, в нашем случае - коллектива Разработчика. Если моделирующий субъект обладает неявными знаниями об ОС в достаточном объеме - значит, АПО можно исключить. На практике это возможно в следующих случаях:

  • Разработчик является частью (структурным подразделением, дочерним предприятием и т.д.) ОС, в коллектив Разработчика входят эксперты, хорошо знающие предметную область;
  • Заказчик наравне с Разработчиком участвует в создании документа АТ и разделяет с ним ответственность за принятие решений. Это - путь "agile методологий" (см. материалы лекции 15).
  • Рассмотрим теперь обобщенную "формулу" создания АИС. ОС->М(ОС)->М(АИС)->М'(АИС)->М''(АИС)->М'''(АИС)->АИС (рис. 5.1).

    Анализ организационной системы позволяет создать ее модель М(ОС). Это - модель бизнес-анализа (проблемной области).

    Анализируя модель проблемной области, в ней можно вычленить,

  • с одной стороны, задачи и функции, реализуемые внутри ОС и функции коммуникации ОС и среды,
  • с другой - устройство предметной области (в начале - на уровне концептуальной модели),
  • с третьей - требования к информации и ее обработке.
  • Выделив среди функций те, которые подлежат автоматизации, мы получаем основу для выявления функциональных требований к системе. Остальная собранная на этапе АПО информация служит для поиска нефункциональных требований. В результате получаем модель АТ, как первое приближение модели АИС, М(АИС).

    Затем, путем углубленного анализа и проектирования, формируются, соответственно, аналитическая модель М'(АИС), проектная модель М''(АИС) и модель реализации М'''(АИС).

    Модель уровня реализации позволяет синтезировать собственно АИС, как совокупность программных, информационных, организационных и др. артефактов.

    АИС в свою очередь представляет собой модель организационной системы М'(ОС), замыкая цикл моделирования.

    Методологии бизнес-анализа

    Методологии бизнес анализа можно разделить на три категории по типам моделей:

  • модели, преследующие цель анализа и улучшения организационной системы (например, SWOT , VCM, BPR, CPI/TQM/ISO9000, BSC),
  • модели общего назначения, такие, как SADT, DFD, IDEF1, IDEF3, IDEF5 и другие,
  • модели, специально разработанные для использования при автоматизации (например, ISA, BSP, ARIS, RUP).
  • CPI (Continuous Process Improvement) - непрерывный процесс усовершенствования [41]. Относится ко всем аспектам деятельности компании; предусматривает постоянный поиск способов улучшения работы организации и использование этих способов для совершенствования продукции компании, создания более благоприятного рабочего климата на предприятии и т. п.

    ISO (International Organization for Standardization) - Международная организация по стандартизации, ИСО, http://www.iso.org/iso/ru.  Является одной из самых крупных и значимых организаций, занимающейся разработкой международных стандартов.  Членами ИСО являются национальные органы по стандартизации (в том числе – российский), которые представляют интересы своей страны в ИСО, а также представляют ИСО в своей стране.

    Наиболее развитая модель описания проблемной области предлагается в методологии ARIS.

    ARIS (Architecture of Integrated Information Systems) [24] — архитектура интегрированных информационных систем. Методология и CASE-средство для моделирования бизнес-процессов организаций c целью их автоматизации от компании Softwareag http://www.softwareag.com/corporate/products/aris. Основные черты методологии - поддержка 5 различных, но взаимосвязанных между собой точек зрения на предприятие; наличие сверхмощного, не имеющего аналогов графического языка, насчитывающего десятки различных диаграмм и сотни специальных символов для всевозможных аспектов деятельности предприятий и его автоматизации. Сюда вошли многие наработки из мирового арсенала бизнес-моделирования, инкапсулирован также и UML. Наиболее известная диаграмма ARIS – EPC.

    CASE (Computer Aided Software Engineering) – набор инструментов и методов, позволяющих автоматизировать отдельные этапы жизненного цикла программной инженерии. Согласно IEEE STD.620.12-1990, CASE – это "использование компьютеров, способствующее процессу программной инженерии; может включать приложения программных средств для проектирования, трассировки требований, генерации кода, тестирования, генерации документации и других действий программной инженерии".

    Архитектура ARIS [5.5] выделяет в организации следующие подсистемы.

  • Организационная. Определяет структуру организации - иерархию подразделений, должностей и конкретных лиц, многообразие связей между ними, а также территориальную привязку структурных подразделений.
  • Функциональная. Определяет функции, выполняемые в организации.
  • Подсистемы входов/выходов. Определяют потоки используемых и производимых продуктов и услуг.
  • Информационная (подсистема данных). Описывает получение, распространение и доступ к информации (данным).
  • Подсистема процессов управления. Определяет логическую последовательность выполнения функций посредством событий и сообщений. Можно сказать, что подсистема управления - это совокупность разнесенных во времени сообщений разного рода.
  • Подсистема целей организации. Описывает иерархию целей, достигаемых в ходе выполнения того или иного процесса.
  • Подсистема средств производства. Описывает жизненный цикл основных и вспомогательных средств производства.
  • Подсистема человеческих ресурсов. Описывает прием на работу, обучение и продвижение по службе персонала организации.
  • Подсистема расположения организационных структур. Описывает территориальное расположение организационных единиц.
  • Данное разделение является в определенной мере условным; выделенные "подсистемы" не являются подсистемами в смысле системного анализа, т.к. взаимопроникают и пересекаются. Они представляют скорее совокупность предметов исследования, разных взглядов на исследуемый объект.

    Слушателю курса предлагается самостоятельно проанализировать, какие группы и категории требований к системе позволяет прояснить та или иная компонента принятой в ARIS структуризации объекта исследования.

    Требования и архитектура АИС

    Говоря об архитектуре АИС, обычно подчеркивают деление на аппаратные, программные, информационные, организационные компоненты, их связность и детализацию.

    Метафора архитектуры RUP описывается в виде 4+1 представлений: логическое, представление процессов, представление реализации и физическое представление связываются между собой представлением вариантов использования (Use case), которое играет центральную роль в выработке архитектуры системы (рис. 5.2).

    Требования первичны по отношению к архитектуре. Но это не значит, что требования и архитектура должны разрабатываться последовательно.

    (рис 5.2)

    Напротив, эти процессы взаимосвязаны и должны быть существенно запараллелены. Как только собран минимальный набор ключевых требований, дающих понимание о том, что нужно делать - должна быть найдена архитектура, объясняющая, как это может быть реализовано. В крупных, ответственных проектах обычно рассматривается несколько альтернативных архитектур, их достоинства и недостатки применительно к исходным требованиям.

    В процессе работы с требованиями они детализируются, детализируется и архитектура. В случае множественности альтернативных архитектур на определенном уровне детализации необходимо остановиться на одной, чтобы не распылять ресурсы. Но природа требований такова, что, помимо детализации они еще и изменяются. С изменением требований изменяются и детали архитектуры. Устойчивость архитектуры проявляется в незначительных ее изменениях при добавлении, детализации и изменении требований. Если наступил момент, при котором появление новой информации о требованиях перестало оказывать влияние на архитектуру - значит, архитектура стабилизировалась.

    Это - нормальный, естественный путь развития требований и архитектуры. Но что делать, если требования изменились настолько, что архитектура перестала им соответствовать? Причины тому могут быть разные, например: неопытная архитектурная группа не проявила достаточно дальновидности; группа по сбору требований пропустила на ранних стадиях критичные, архитектурно значимые требования; в бизнес-сфере Заказчика произошли большие перемены, вызвавшие коренное изменение требований к системе. Следствия также могут быть различными: договоренность об увеличении сроков и сумм по контракту; исправление ситуации за счет Разработчика; разрыв контракта.

    Альтернативный выход предлагается в методологии XP: архитектура - не догма, а всего лишь метафора. Если требования вошли вразрез с существующей архитектурой - значит, архитектуру нужно просто изменить. Следует понимать, что путь и рецепты XP при кажущейся простоте ориентированы далеко не на любой коллектив. Команда XP состоит из профессионалов, имеющих позитивный опыт работы в этой методологии.

    XP eXtreme Programming, экстремальное программирование. Одна из гибких (гиперссылка на agile) методологий разработки программного обеспечения, развитая в трудах Кента Бека, Уорда Каннингема, Мартина Фаулера и др., ориентированная на использование группами от 2 до 10 программистов. Согласно [44], Экстремальное программирование – это дисциплина разработки программного обеспечения и ведения бизнеса в области создания программных продуктов, которая фокусирует усилия обеих сторон (программистов и бизнесменов) на общих, вполне достижимых целях. Автор [44] выделяет следующие основные черты XP: Разработка через опережающее тестирование; "Игра в планирование"; "Заказчик всегда рядом"; Парное программирование; Непрерывная интеграция; Рефакторинг; Частые небольшие релизы (Small releases); Простота; Метафора системы; Коллективное владение кодом; Стандарт кодирования; 40-часовая рабочая неделя.

    Анализ требований и другие рабочие потоки программной инженерии

    Рассмотрим краткий обзор рабочих потоков RUP и их связь с потоком работ АТ (рис. 5.3).

    (рис 5.3)

    Поток работ "деловое моделирование" служит основой для анализа и формирования требований к АИС, позволяет избежать ошибок.

    Поток работ "управление средой" предоставляет исходную информацию для рабочей группы АТ, регламентирующую форматы оформления, CASE-средства, регламенты работы.

    Поток работ "управление проектом" основывается на спецификации требований. Стратегическое и тактическое планирование, формирование промежуточных вех (ожидаемых результатов) тесно увязано с требованиями к системе.

    Поток работ "анализ и проектирование" осуществляется на основе исходных данных, предоставленных АТ. В определенной мере эти потоки работ проводятся параллельно. При обнаружении проблем, связанных с требованиями, возникает обратная связь от этого потока работ к потоку работ АТ.

    Поток работ "испытание" во многом базируется на модели требований и дополнительных спецификациях, регламентирующих процесс тестирования (тестовые сценарии и пр.).

    Для потока работ "реализация" связь с требованиями не указана. Между тем автор считает, что требования должны анализироваться и учитываться во ВСЕХ рабочих потоках проекта, даже если это формально не предусмотрено выбранным группой процессом. Людям свойственно ошибаться и ошибки, совершенные на ранних стадиях проекта, при движении от этапа к этапу нарастают, как снежный ком. Поэтому любому участнику команды, заинтересованному в успехе проекта, нелишне заглянуть в спецификацию требований и убедиться в том, что та работа, которая ему поручена, соответствует тому или иному требованию. Это позволяет организовать обратную связь, позволяющую отследить ошибки в спецификациях. Многие проекты зашли в тупик именно из-за оторванности группы, отвечающей за реализацию от группы сбора и анализа требований.


    Введение в проблему
    В начале лекции ставится вопрос: нужно ли тратить время на построение бизнес-моделей предприятия или можно сразу переходить к анализу требований (АТ)? Автор отмечает, что «отцы-основатели» RUP допускают оба варианта, оставляя решение за разработчиком в зависимости от специфики задачи.

    Роль глоссария
    Подчеркивается важность создания глоссария. Поскольку Заказчик и Разработчик говорят на «разных языках», глоссарий становится документом, удостоверяющим их общее понимание предметной области, что является фундаментом для успешной разработки.

    Анализ проблемной области (АПО) vs Анализ требований (АТ)
    Автор проводит четкое различие между этими процессами с позиции моделирования:
    • АПО — это моделирование реального объекта (организационной системы). Цель — отразить объект в модели.
    • АТ — это моделирование воображаемого объекта (будущей АИС). Сначала создается модель, потом по ней создается объект.

    АИС сама по себе является моделью организационной системы. Следовательно, спецификация требований — это «модель второго порядка». Если пропустить этап АПО, можно создать систему, которая не будет соответствовать (не будет ингерентна) реальным бизнес-процессам.

    Когда можно обойтись без АПО
    Автор утверждает, что этап АПО не всегда обязателен. Его можно исключить, если у разработчика уже есть неявные знания об организационной системе. Это возможно, если:
    1. Разработчик является частью организации-заказчика или в его составе есть эксперты в данной области.
    2. Заказчик активно участвует в создании документа АТ и разделяет ответственность (подход Agile).

    Обобщенная формула создания АИС
    Приводится цепочка трансформаций: от реальной Организационной Системы (ОС) через серию моделей (М(ОС) -> М(АИС) -> ...) к конечной АИС, которая, в свою очередь, становится новой моделью ОС. Анализ модели ОС позволяет выделить функции для автоматизации, которые ложатся в основу функциональных требований.

    Методологии бизнес-анализа
    Дается краткий обзор методологий, разделенных на три категории:
    1. Для анализа и улучшения ОС: SWOT, BPR, CPI, ISO9000.
    2. Общего назначения: SADT, DFD, IDEF.
    3. Для автоматизации: ARIS, RUP.

    Особое внимание уделяется методологии ARIS, которая рассматривает предприятие через множество подсистем (организационная, функциональная, данных, целей, ресурсов и т.д.), каждая из которых позволяет прояснить определенные категории требований к будущей системе.

    Требования и архитектура
    Рассматривается взаимосвязь требований и архитектуры (на примере модели «4+1» RUP). Требования первичны, но разрабатываются параллельно с архитектурой. По мере детализации и изменения требований уточняется архитектура. Архитектура считается стабильной, если новая информация о требованиях перестает на нее влиять. В качестве альтернативного, гибкого подхода упоминается методология XP, где архитектура рассматривается как «метафора», которую можно легко изменить.

     АТ и другие рабочие потоки
    На примере RUP показана связь анализа требований с другими потоками работ:
    • Деловое моделирование — основа для АТ.
    • Управление проектом — планируется на основе спецификации требований.
    • Анализ и проектирование — получают исходные данные от АТ.
    • Испытания — базируются на модели требований.
    • Реализация — автор подчеркивает, что даже если связь не указана формально, разработчики должны сверяться с требованиями для обеспечения обратной связи и выявления ошибок.

    Выводы

    1. Анализ проблемной области и анализ требований — это разные, но связанные процессы. АПО изучает «как есть», АТ описывает «как должно быть». Игнорирование АПО может привести к созданию системы, оторванной от реальности.
    2. Проведение бизнес-анализа не является догмой. Его необходимость диктуется контекстом проекта и уровнем компетенции команды в предметной области заказчика.
    3. Глоссарий — минимально необходимый артефакт. Даже если полноценный бизнес-анализ не проводится, выработка единого глоссария является обязательным условием для синхронизации понимания между заказчиком и исполнителем.
    4. Требования и архитектура развиваются итеративно. Это не последовательные, а параллельные и взаимовлияющие процессы. Устойчивость архитектуры — показатель зрелости проекта.
    5. Требования — сквозная дисциплина. Контроль соответствия требованиям необходим на всех этапах разработки, от проектирования до тестирования и реализации, чтобы минимизировать риски и ошибки.

    Вопросы для самопроверки

    1. В чем заключается принципиальное различие между анализом проблемной области и анализом требований с точки зрения теории моделирования?
    2. Почему авторы методологий (например, RUP) допускают возможность отказа от этапа бизнес-моделирования? В каких случаях это действительно оправдано?
    3. Какую роль играет глоссарий в процессе разработки АИС и почему его важность трудно переоценить?
    4. Что означает термин «ингерентность» применительно к разрабатываемой АИС и как этап анализа проблемной области помогает ее достичь?
    5. Как связаны процессы разработки архитектуры и анализа требований? Какой признак свидетельствует о стабилизации архитектуры?
    6. Какие подсистемы предприятия выделяет методология ARIS и как это помогает в сборе требований?
    7. Почему автор считает, что поток работ «реализация» также должен быть связан с требованиями, даже если методология этого не предусматривает?
    Вернуться к учебному плану