Главная особенность индустрии современных корпоративных систем состоит в концентрации сложности на начальных этапах анализа требований и проектирования спецификаций системы при относительно невысокой сложности и трудоемкости последующих этапов. Фактически здесь и приходит понимание того, что будет делать будущая система и каким образом она будет функционировать, чтобы удовлетворить предъявленным к ней требованиям. А именно нечеткость и неполнота системных требований, нерешенные вопросы и ошибки, допущенные на этапах анализа и проектирования, порождают на последующих этапах трудные, часто неразрешимые проблемы и, в конечном счете, приводят к неуспеху всей работы в целом.
Для преодоления сложностей начальных этапов разработки прежде всего и предназначен структурный анализ - метод исследования, которое начинается с общего обзора системы и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7); ограниченный контекст, включающий лишь существенные на каждом уровне детали; использование строгих формальных правил записи; и как следствие - последовательное приближение к конечному результату.
В настоящее время известно порядка 90 разновидностей структурного системного анализа, которые могут быть классифицированы по отношению к школам (для моделирования программных систем или систем вообще), по порядку построения модели (декларирующие первичность функционального или информационного моделирования), по типу целевых систем (информационные системы или системы реального времени). Несмотря на такое обилие методов, практически во всех из них используются три группы средств:
- DFD (Data Flow Diagrams) - диаграммы потоков данных или SADT-диаграммы, иллюстрирующие функции, которые система должна выполнять;
- ERD (Entity-Relationship Diagrams) - диаграммы "сущность-связь", моделирующие отношения между данными;
- STD (State Transition Diagrams) - диаграммы переходов состояний, моделирующие зависящее от времени поведение системы (аспекты реального времени).
Кроме этих моделей на этапе структурного проектирования используются техники структурных карт, предназначенные для описания отношений между модулями (структурные карты Константайна) и внутренней структуры модулей (структурные карты Джексона).
Поскольку в настоящее время практически нет альтернативы ERD и STD для, соответственно, информационного и поведенческого моделирования, интерес представляет сравнительный анализ средств функционального моделирования, а именно, DFD и SADT-диаграмм.
На рисунках 1 и 2 изображен верхний уровень функциональной модели одной и той же компании, занимающейся распределением товаров по заказам (соответственно, DFD и SADT-модель). Заказы подвергаются входному контролю и сортировке. Если заказ не отвечает номенклатуре товаров или оформлен неправильно, то он аннулируется с соответствующем уведомлением заказчика. Если заказ не аннулирован, то определяется, имеется ли на складе соответствующий товар. В случае положительного ответа выписывается счет к оплате и предъявляется заказчику, при поступлении платежа товар отправляется заказчику. Если заказ не обеспечен складскими запасами, то отправляется заявка на товар производителю. После поступления требуемого товара на склад компании заказ становится обеспеченным и повторяет вышеописанный маршрут.
Сравнительный анализ этих двух разновидностей методологий проведем по следующим параметрам:
- адекватность средств рассматриваемой проблеме;
- согласованность с другими средствами структурного анализа;
- интеграция с последующими этапами разработки (и прежде всего с этапом проектирования).
1) Адекватность. Выбор той или иной структурной методологии напрямую зависит от задач, для решения которых создается модель. Традиционно выделяются две разновидности таких задач: задачи, связанные с реорганизацией деятельности предприятий (бизнес-консалтинг) и задачи, связанные с анализом требований и проектированием корпоративных систем (информационно-технологический консалтинг). Предметом бизнес-консалтинга являются организационные системы (точнее, функционирование или деятельность таких систем). Для моделирования таких систем традиционно используется методология SADT (точнее, ее подмножество IDEF0). Однако статическая SADT-модель не обеспечивает полного решения задач бизнес-консалтинга, необходимо иметь возможность исследования динамических характеристик бизнес-процессов. Одним из решений является использование методологии и средств динамического моделирования, основанной, например, на цветных (раскрашенных) сетях Петри CPN (Color Petri Nets). Фактически SADT и CPN служат компонентами интегрированной методологии бизнес-консалтинга: SADT-диаграммы автоматически преобразуются в прообраз CPN-модели, которая затем дорабатывается и исполняется в различных режимах, чтобы получить соответствующие оценки.
Следует отметить, что не существует принципиальных ограничений в использовании DFD в качестве средства построения статических моделей деятельностей. Более того, в настоящий момент доступен ряд методологий и продуктов динамического моделирования (INCOME Mobile, CPN-AMI и др.), базирующихся на сетях Петри различного вида и интегрируемых с DFD-моделью, которые позволяют успешно решать задачи бизнес-консалтинга.
Методология SADT успешно работает только для реорганизации хорошо специфицированных и стандартизованных западных бизнес-процессов, поэтому она и принята в некоторых организациях на Западе в качестве типовой. Например, в Министерстве Обороны США десятки лет существуют четкие должностные инструкции и методики, которые жестко регламентируют деятельность, делают ее высокотехнологичной и ориентированной на бизнес-процесс. В российской действительности с ее слабой типизацией бизнес-процессов, их стихийным появлением и развитием, разумнее ориентироваться на методологию организации и/или реорганизации потоков информации и отношений: для таких задач методологии, основанные на потоковых диаграммах, не просто допустимы, а являются единственно возможными.
Если же речь идет об информационно-технологическом консалтинге, где методологии применяются к системам обработки информации, а не к системам вообще, как это предполагается в SADT, то здесь DFD вне конкуренции. Практически любой класс систем успешно моделируется при помощи DFD-ориентированных методов: в этом случае вместо реальных объектов рассматриваются отношения, описывающие свойства этих объектов и правила их поведения. Примерами таких систем служат системы документооборота, управления и другие системы, богатые разнообразными отношениями.
SADT-диаграммы значительно менее выразительны и удобны для моделирования систем обработки информации (сравните рис. 1 и 2). Так, дуги в SADT жестко типизированы (вход, выход, управление, исполнитель). В то же время применительно к системам обработки информации стирается смысловое различие между входами-выходами, с одной стороны, и управлениями и механизмами, с другой: входы, выходы и управления являются потоками данных и/или управления и правилами их трансформации. Анализ системы при помощи потоков данных и процессов, их преобразующих, является более прозрачным и недвусмысленным.
Более того, в SADT вообще отсутствуют выразительные средства для моделирования особенностей систем обработки информации. DFD с самого начала создавались как средство проектирования информационных систем (тогда как SADT - как средство проектирования систем вообще) и имеют более богатый набор элементов, адекватно отражающих специфику таких систем (например, хранилища данных являются прообразами файлов или баз данных, внешние сущности отражают взаимодействие моделируемой системы с внешним миром).
Наличие миниспецификаций DFD-процессов нижнего уровня позволяет преодолеть логическую незавершенность SADT (а именно, обрыв модели на некотором достаточно низком уровне, когда дальнейшая ее детализация становится бессмысленной) и построить полную функциональную спецификацию разрабатываемой системы. Это позволит расширить возможности применения созданной модели (например, ее можно будет использовать для автоматизированного и быстрого обучения новых работников конкретному направлению деятельности).
Ограничения SADT, запрещающие использовать более 5-7 блоков на диаграмме, в ряде случаев вынуждают искусственно детализировать систему, что затрудняет понимание модели заказчиком, резко увеличивает ее объем и, как следствие, ведет к неадекватности модели реальной картине. В качестве примера здесь достаточно рассмотреть моделирование работы с банковскими вкладами физических лиц. Типов таких вкладов имеется несколько десятков, все они различаются лишь механизмом начисления процентов, при этом соответствующие модели на входе/выходе имеют одни и те же документы: приходный ордер, расходный ордер, сберкнижку. Такую деятельность целесообразно моделировать одной диаграммой, а не строить искусственную иерархию.
2) Согласованность. Главным достоинством любых моделей является возможность их интеграции с моделями других типов. В данном случае речь идет о согласованности функциональных моделей со средствами информационного и событийного (временного) моделирования. Согласование SADT-модели с ERD и/или STD практически невозможно или носит тривиальный характер. В свою очередь, DFD, ERD и STD взаимно дополняют друг друга и по сути являются согласованными представлениями различных аспектов одной и той же модели. Таблица отражает возможность такой интеграции для DFD и SADT-моделей.
Название | ERD | STD | Структупные карты |
DFD | + | + | + |
SADT | + | - | - |
Отметим, что интеграция DFD-STD осуществляется за счет расширения классической DFD специальными средствами проектирования систем реального времени (управляющими процессами, потоками, хранилищами данных), и STD является детализацией управляющего процесса, согласованной по управляющим потокам и хранилищам. Интеграция DFD-ERD осуществляется с использованием отсутствующего в SADT объекта - хранилища данных, структура которого описывается с помощью ERD и согласуется по соответствующим потокам и другим хранилищам на DFD.
3) Интеграция с последующими этапами. Важная характеристика методологии - ее совместимость с последующими этапами применения результатов анализа (и прежде всего, с этапом проектирования, непосредственно следующим за анализом и опирающимся на его результаты).
DFD могут быть легко преобразованы в модели проектирования (структурные карты) - это близкие модели. Более того, известен ряд алгоритмов автоматического преобразования иерархии DFD в структурные карты различных видов, что обеспечивает логичный и безболезненный переход от этапа анализа требований к проектированию системы. С другой стороны, авторам неизвестны формальные методы преобразования SADT-диаграмм в проектные решения системы обработки информации.
В заключение необходимо отметить, что методология SADT (точнее, ее подмножество IDEF0) является в настоящее время одной из наиболее известных и популярных в России - можно только приветствовать ориентацию отечественных специалистов на современные технологии. Заслуживает сожаления лишь то, что, как обычно, мы и здесь отличаемся от всего остального мира. Так, по материалам наиболее авторитетной в данной области на Западе аналитической группы CASE Consulting Group, методология SADT поддерживается лишь 10% существующих CASE-пакетов, оставшиеся 90% поддерживают методологии, базирующиеся на различных разновидностях диаграмм потоков данных. Представляется очевидным, что соотношение такого же порядка справедливо и для цифр распространенности перечисленных методологий на практике. Косвенно это подтверждается и следующими двумя фактами:
- разработкой стандарта IDEF3 (функциональное моделирование с использованием диаграмм потоков данных)
- включением средств работы с DFD в пакеты, ориентированные на SADT (пример - один из лидеров мирового рынка CASE-средств фирма Logic Works, осуществившая соответствующие расширения пакета BPWin).
Таким образом, наиболее существенное различие между разновидностями структурного анализа заключается в методах и средствах функционального моделирования. Тем не менее необходимо отметить, что рассмотренные разновидности структурного анализа по сути - два языка для передачи понимания. И одним из основных критериев выбора является следующий: насколько хорошо каждым из этих языков владеет консультант или аналитик, насколько грамотно он может на этом языке выражать свои мысли. Авторам неоднократно приходилось видеть проекты, выполненные с использованием как DFD, так и SADT, в которых просто невозможно разобраться.
Литература
- Калянов Г.Н., Козлинский А.В., Лебедев В.Н. Сравнение и проблема выбора методов структурного системного анализа // PC WEEK/RE. 1996. N.34 (27 августа).
- Калянов Г.Н. CASE: структурный системный анализ (автоматизация и применение). М.: ЛОРИ, 1996.
- Калянов Г.Н. Консалтинг при автоматизации предприятий (подходы, методы, средства). М.: СИНТЕГ, 1997.
Георгий Калянов, Акционерная Компания ИКТ Александр Козлинский, PEPSI International Bottlers Владимир Лебедев, Сбербанк России