### 4. Подходы к проектированию ИС

Классификация подходов к проектированию

Блочно-иерархический подход к проектированию

Функционально-ориентированный подход

Объектно-ориентированный подход

Контрольные вопросы

### Классификация подходов к проектированию

Существуют различные подходы к представлению, анализу и проектированию систем.

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

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

1) архивный (изучение документов и архивов предприятия);

2) опросный, или анкетный (опрос сотрудников и экспертов).

Также трудно реализуем для сложных систем.

В настоящее время на основе обобщения предшествующего опыта сформировались два основных подхода к отображению систем, первоначально предложенные для формирования структур целей:

а) формирование системы «сверху» — методы структуризации, декомпозиции, целевой, или целенаправленный подход;

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

Подходы «сверху» и «снизу» называют также аксиологическим и каузальным соответственно. На практике обычно эти подходы сочетают. Одним из вариантов их комплексного применения является блочно-иерархический подход.

### Блочно-иерархический подход к проектированию

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

Список иерархических уровней в каждом случае может быть специфичным, но в большинстве случаев характерно следующее наиболее крупное выделение уровней:

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

Макроуровень на котором проектируют отдельные устройства, подсистемы, подпроцессы; результаты представляют в виде функциональных и принципиальных схем, детализированных блок-схем, физической модели данных, сборочных чертежей и т.п.;

Микроуровень на котором проектируют отдельные детали и элементы подсистем, устройств; рассматриваются отдельные задачи, подзадачи и т.д.

В каждом приложении число выделяемых уровней и их наименования могут быть различными.

### Функционально-ориентированный подход

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

Распространенной методикой реализации ФОП является IDEF0, являющаяся следующим этапом развития графического языка описания функциональных систем SADT (Structured Analysis and Design Technique). Целью методики является построение функциональной схемы исследуемой системы, описывающей все необходимые процессы с точностью, достаточной для однозначного моделирования деятельности системы.

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

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

Каждая из четырех сторон функционального блока имеет свое определенное значение (роль), при этом:

- верхняя сторона имеет значение "Управление" (Control);

- левая сторона имеет значение "Вход" (Input);

- правая сторона имеет значение "Выход" (Output);

- нижняя сторона имеет значение "Механизм" (Mechanism).

Интерфейсная дуга (Arrow) отображает элемент системы, который либо обрабатывается функциональным блоком, либо является результатом этой обработки, либо оказывает иное влияние на функцию, представленную данным функциональным блоком. С их помощью отображают объекты, в той или иной степени определяющие процессы, происходящие в системе. Это могут быть элементы реального мира (детали, вагоны, сотрудники и т.д.) или инфопотоки (документы, данные, инструкции и т.д.). В зависимости от того, к какой из сторон функционального блока подходит дуга, она носит название "входящей", "исходящей" или "управляющей".

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

Декомпозиция (Decomposition) является основным понятием стандарта IDEF0. Принцип декомпозиции применяется при разбиении сложного процесса на составляющие его функции. При этом уровень детализации процесса определяется непосредственно разработчиком.

Декомпозиция позволяет постепенно и структурированно представлять модель системы в виде иерархической структуры отдельных диаграмм, что делает ее менее перегруженной и легко усваиваемой.

Глоссарий (Glossary). Для каждого из элементов IDEF0 — диаграмм, функциональных блоков, интерфейсных дуг — стандарт подразумевает создание и поддержание набора соответствующих определений, ключевых слов, повествовательных изложений и т.д., которые характеризуют объект, отображенный данным элементом. Глоссарий гармонично дополняет наглядный графический язык, снабжая диаграммы необходимой дополнительной информацией.

Модель IDEF0 всегда начинается с представления системы как единого целого – одного функционального блока с интерфейсными дугами, простирающимися за пределы рассматриваемой области. Такая диаграмма с одним функциональным блоком называется контекстной диаграммой.

В процессе декомпозиции базовый функциональный блок подвергается детализации на другой диаграмме. Получившаяся диаграмма второго уровня содержит функциональные блоки, отображающие главные подфункции функционального блока контекстной диаграммы, и называется дочерней (Child Diagram) по отношению к нему, а каждый ФБ дочерней диаграммы — дочерним блоком (Child Box). В свою очередь, ФБ-предок называется родительским блоком по отношению к дочерней диаграмме (Parent Box), а диаграмма, к которой он принадлежит – родительской диаграммой (Parent Diagram). Каждая из подфункций дочерней диаграммы может быть далее детализирована путем аналогичной декомпозиции соответствующего ей функционального блока. В каждом случае декомпозиции функционального блока все интерфейсные дуги, входящие в данный блок или исходящие из него, фиксируются на дочерней диаграмме. Этим достигается структурная целостность IDEF0–модели.

Обычно IDEF0-модели несут в себе сложную и концентрированную информацию, и для того, чтобы ограничить их перегруженность и сделать удобочитаемыми, в стандарте приняты соответствующие ограничения сложности:

- количество ФБ на диаграмме — 3 – 6;

- количество интерфейсных дуг на один ФБ — не более пяти.

Преимущества ФОП:

- наглядность графического языка

- структурная целостность модели

- преемственность при организации новых проектов

Недостатком его является сложность проектирования, возрастающая вместе со сложностью проектируемой системы.

### Объектно-ориентированный подход

Указанного недостатка лишено объектно-ориентированное проектирование. Здесь подразумевается, что существует набор автономно действующих подсистем, которые взаимодействуют друг с другом, чтобы обеспечить поведение системы соответствующее более высокому уровню. Объектно-ориентированный подход позволяет создавать более открытые и легче поддающиеся модификации системы, так как конструкция таких систем базируется на устойчивых промежуточных формах – объектах системы. Для модификации проекта бывает достаточно замены одного объекта из иерархической цепочки наследования. Те из них, которые находятся на вершине цепочки, могут использоваться для реализации простейших систем, спускаясь вниз, получаем объекты с более сложным поведением.

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

Про объекты, которые имеют одинаковый набор свойств и схожее поведение, будем говорить, что они относятся к одному классу. Искусство объектного проектирования состоит в том, чтобы наиболее удачным образом выделить из модели реального мира объекты (подлежащие описательной модели) и сгруппировать их в классы. Выполним такое разбиение в зависимости от графических характеристик объектов, что позволяет ограничиться небольшим количеством классов: CPoint (точка), CLine (линия), CPolygon (полигон), CText (текст), CBitmap (растровое изображение).

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

Между классами могут иметь место разные виды отношений: наследования использования, владения, включения и т.п. (сказуемые описательной модели).

Линия имеет точки начала и конца, это проявляется в том, что Cline содержит в себе два объекта типа Cpoint и мы говорим, что Cline использует Cpoint. Но Cline характеризуется и набором промежуточных точек, число которых заранее неизвестно и к тому же может меняться (например, при спрямлении Cline), что вынуждает использовать объект список, заключая в него необходимые Cpoint. Список владеет объектами Cpoint, а Cline использует список.

Таким образом, пространственные объекты реального мира должны быть трансформированы в объекты системы. Свойства последних могут быть разбиты на две группы:

- атрибуты — отвечают за визуальное представление объектов на карте и определяют их поведение при ее преобразованиях;

- семантические свойства, передающие характеристики ГИС-объектов как моделей объектов реального мира;

Основой построения классов для ГИС-объектов выбираются атрибуты, тем самым значительно упрощая структуру ГИС, как отмечалось выше; семантические свойства абстрагируются от объектов и переносятся в объект слой - Clayer.

Итак, структура объектной ГИС. В базе данных хранятся объекты Cmap, каждый из которых есть упорядоченный список Clayer'ов и реализует некоторую карту. Каждый Clayer включает в себя список объектов, относящихся к иерархии классов, производных от Cprimitive. Хранение всей этой информации осуществляется в объектной базе данных, использующую в качестве типов данных ту же иерархию классов, которая легко модифицируется.

Преимуществами использования ООП являются:

- естественность представления в виде объектов модели реального мира;

- управляемость разработкой проекта и восприимчивость его к модернизации;

- логичность и наглядность в манипуляциях с данными;

- применение объектной базы данных для хранения неоднородной информации.

К недостаткам ООП относятся:

- Высокие начальные затраты.

- Длительная окупаемость.

Эффект от применения ООП сказывается после разработки двух–трех проектов и накопления повторно используемых компонентов.

### Контрольные вопросы

1. Перечислить основные подходы к проектированию ИС

2. Перечислить основные инструментальные средства визуального моделирования, указать их отличительные особенности.

3. В чем принципиальные отличия функционального подхода к проектированию от объектного?

4. Что такое декомпозиция бизнес-процесса?

5. Выполните декомпозицию произвольного бизнес-процесса. Постройте функциональные диаграммы. Составьте глоссарий.