Знакомство с парадигмами построения моделей предметной области
Время на прочтение
11 мин
Количество просмотров 23K
Введение
Возможно, кто-то задаст вопрос, а причем тут математика? Отвечу сразу: все, что здесь изложено, относится непосредственно к математике.
Изучая литературу по теории построения моделей предметной области, я обнаружил серьезный пробел. Авторы статей и книг сразу берут одну из нотаций моделирования: ER-диаграммы, или диаграммы классов, и в быстром темпе начинают их использовать для описания предметной области. При этом описание парадигмы, в которой производится это моделирование остается вообще не раскрытым. А следовательно, не раскрытыми остаются ограничения той или иной нотации. Увы, мы все умеем строить модели, но мало кто умеет объяснить то, что он построил в одной из существующих парадигм. Поэтому я часто слышу дикие с точки зрения любой парадигмы термины: класс типов, типы классов, виды типов и так далее, но ни разу не слышал корректный термин «класс классов». Этот пробел в нашем образовании очень серьезен. И я объясню почему.
Давайте зададим аналитикам простой вопрос.
Те, кто моделировал процессы, наверно, знакомы с нотацией BPMN. Очень часто при моделировании операции по заключению договора я встречаю такой фрагмент диаграммы:
Видно, что в результате заключения договора рождается нечто, что передается в другую операцию. Но что обозначает элемент диаграммы в виде листа с загнутым уголком? Нам надо точно знать, что именно передается из одной операции в другую, иначе трудно будет объяснить другим, что от них требуется. Итак, что создается на выходе из операции «Заключить договор»?
Варианты ответов, которые я слышал, следующие:
- Бумажка с печатью
- Бумажки с печатью
- Класс бумажек с печатью
- Договор
- Договоренность
- Информация о договоренности
- Файл MS Word с названием договор
- Запись в базе данных
- Поток каких-то объектов
Пока я наблюдаю отсутствие согласия между аналитиками на предмет того, что же все-таки передается, и что значат термины «договор», «поток», «договоренность», «информация», «данные». Чтобы ответить на этот вопрос, мне пришлось копать глубоко и в сторону парадигм. Причем, ответ потребовал разбиения вопроса на два. Первый вопрос был: «Как корректно сформулировать вопрос?» А второй был: «Как на него ответить?». Для правильной формулировки нужно было выбрать подходящую парадигму. Эта статья посвящена рассказу о двух парадигмах: Аристотелевской и логической, и почему я выбрал логическую в качестве рабочей. Ответа на поставленный вопрос в этой статье я не дам. Ответ я дам в другой статье.
Как мы строим модель сущего?
Посмотрите на рисунок. На нем схематично изображен процесс построения модели сущего.
- Сначала субъект отделяет себя от сущего, затем он выбирает парадигму для моделирования. Парадигма включает в себя предположения о том, как устроено сущее (например, 4-Д пространство-время, заполненное объектами, или 11-мерное пространство – время, заполненное суперструнами и так далее).
- Будем предполагать, что субъект выбрал 4-Д пространство-время, в которое погружены объекты. Парадигма предполагает рассмотрение сущего с определенной точки зрения. Поскольку на предыдущем этапе отбора мы решили рассматривать объекты в пространстве, то мы теперь только их и видим: (например, сущее – есть информационный объект, или сущее – есть функциональный объект и так далее). Затем в соответствии с выбранной парадигмой (объектная) и точкой зрения на объект (функциональный, информационный…) субъект представляет сущее в виде объекта с нужными свойствами и контекстом, в который помещен объект. Это и есть модель, которую построил субъект внутри себя. Если построенная модель не удовлетворяет задачам описания, субъект начинает сначала – снова выбирает парадигму и повторяет цикл. Цикл повторяется до тех пор, пока построенная модель не удовлетворит потребностей субъекта. Данный процесс изначально противоречив, но ничего лучше европейцы не придумали. Ущербность его в том, что субъект отделяет себя от сущего в самом начале моделирования. Это разделение ведет к рекурсиям и противоречиям. Кроме того, многие, если не сказать подавляющее большинство, считают, что их и только их точка зрения является верной, что не позволяет строить множество моделей, отвечающих на разные вопросы. Но в этой статье мы сделаем вид, что мы не замечаем этих противоречий, предположим, что субъект подобен Создателю, и пойдем дальше.
- Далее модель требуется передать другому субъекту. Для этого субъект использует нотацию для записи модели. Он берет нотацию и применяет ее к построенной модели. Полученное представление модели есть фиксация модели.
Таким образом, мы видим, что парадигма, модель и нотация – это то, что находится в сознании субъекта. Мы видим, что сущее, описание парадигмы, описание нотации и представление модели – это то, что находится вне субъекта.
Если мы делаем ДОПУЩЕНИЕ, что мир ДЕЙСТВИТЕЛЬНО состоит из 4-Д пространства-времени и объектов в нем расположенных, то картинку можно перерисовать так:
Особенности парадигм
Для описания мира мы обычно используем две парадигмы: парадигму Аристотеля и логическую парадигму. Обе они покоятся на предположении о том, что мир предметен и представляет из себя 4-Д пространство-время. Но между парадигмами есть различия, которые я должен подчеркнуть.
- Первое отличие между парадигмами, — это отношение к временнОй координате в 4-Д пространстве-времени. Если Аристотель предполагал, что есть объекты, которые проявляют свои свойства во времени, то логическая парадигма считает время такой же координатой как и другие 3, единственное отличие от которых в том, что мы по какой-то причине устроены так, что двигаться можем по этой координате только в одном направлении. Поэтому риторика тех, кто придерживается логики Аристотеля выглядит так: мы создали часы, чтобы они показывали время. Логическая парадигма утверждает, что часы и есть функция показа времени. То есть часы не показывают время, они и есть функция показа времени. По логике Аристотеля предприятие создано, чтобы что-то производить. В логической парадигме предприятие и есть производство чего-то.
- Второе отличие – Аристотель считал, что объекты созданы не нами, а существуют независимо от нашего сознания. Это позволяло предположить наличие типов объектов, данных нам свыше. Логическая парадигма предполагает, что объекты выделяются из пространства-времени произвольным образом исходя из предпочтений субъекта. Например, воздушный шарик – это объект, или пространство, заполненное газом? Что это — решает субъект. Границы объекта тоже определяет субъект. Никто точно не сможет сказать, где проходит граница между туловищем и рукой.
Хорошо, когда парадигма и нотация согласованы. Тогда возможности парадигмы будут полностью использованы. И тогда становится возможным «мышление при помощи записей». То есть, можно будет рисовать представление модели одновременно с ее созданием. Так мыслят многие, когда, например, пишут статьи, рисуют картины, или чертят чертежи.
С парадигмой Аристотеля согласуется моделирование в виде таблиц. Однако связи между таблицами – это то, что Аристотель не планировал. Поэтому нотация ER-диаграмм, хоть и основана на парадигме Аристотеля, но выходит за ее границы. Нотация диаграмма классов также идет за пределы парадигмы Аристотеля и не согласуется с ней. Она служит для моделирования программного кода. В предметном мире вы не найдете ни наследования, ни инкапсуляции. Все эти термины программирования, а не предметной области. Для описания предметной области диаграммы классов и ER-диаграммы подходят, как сказал Левенчук одной из своих статей, между плохо и очень плохо. Многие не знают этих ограничений, и потому считают, что ограничений нет вообще. Это заблуждение лечится только одним способом – изучением логической парадигмы. Для логической парадигмы используется две нотации, описанные в стандарте ИСО 15926.
Существует спор между инженерами и философами. Инженеры часто упрекают философов, что те, мол, занимаются словоблудием. Философы говорят о том, что если бы не их словоблудие, не было бы инженеров. А математики молчат. Но фокус в том, что математика и философия до 20-го века были слиты вместе. Декарт и Кантор – великие философы – математики. Задача была простая. Мало было придумать парадигму, надо было придумать нотацию для передачи моделей в этой парадигме другим гражданам, а также надо было уметь проверить парадигму на непротиворечивость. Решением этой задачи занималась наемница философии – математика. Но в 20-м веке Рассел предположил, что надо отделить математику от философии. Просто потому что математика давала результаты слишком далекие от нашего эмпирического опыта. И вместо того, чтобы постулировать ограниченность нашего опыта, Рассел поступил в духе антропоцентризма, — он предложил более не думать над смыслом математических открытий. Молодец! Мы пожинаем плоды этого разделения сейчас. Теперь мало, кому известны парадигмы и для чего они существуют. Плодятся множество нотаций, оторванных от парадигм, задача которых удовлетворить потребности здесь и сейчас. А то, что они противоречивы и границы их возможностей не описаны, — это мало кого волнует. Жаль, потому что в результате нотации массово используется для построения моделей предметных областей людьми, которые не знают ограничений этих нотаций. Однако, не все так плохо. Есть те, кому это известно. В книге на странице 36-37 написано:
Программные объекты в некотором смысле соответствуют объектам реального мира, но не являются их точными моделями или копиями. Хотя полученная диаграмма классов проектирования не до конца соответствует модели предметной области, некоторые имена классов и их характеристики совпадают. Объектно-ориентированные проектные решения и языки позволяют уменьшить разрыв между представлением информации в виде программных компонентов и ментальными моделями предметной области. Это улучшает образность представления.
Хорошо, когда создаваемые модели удовлетворяют свойствам: полнота (все, что мы хотели сказать, должно присутствовать в модели), непротиворечивость (одна часть описания должна не противоречить другой части), расширяемость (добавление новых данных не должно приводить к возникновению противоречий). Для того, чтобы модель имела указанные свойства, парадигма построения моделей должна позволять это сделать. Парадигма Аристотеля не удовлетворяет требованию непротиворечивости и расширяемости моделей. Именно поэтому на смену Аристотелевской пришла логическая парадигма, основанная на теории множеств.
Построение одной модели более чем для одного объекта
Построив одну модель для одного объекта, можно попробовать посмотреть, насколько она подходит другому объекту. Или так: можно сразу строить модель с учетом того, что она будет описывать много объектов реального мира. Так мы получаем одну универсальную модель для множества объектов одновременно. Это очень облегчает задачу описания реального мира. Мы находим предметы чем-то похожие друг на друга и описываем их одной моделью. Конечно, некоторые индивидуальные черты придется «дописывать» для каждой модели отдельно, но это мелочи по сравнению с индивидуальным описанием каждого объекта отдельно. Именно так мы поступаем, когда создаем чертеж, на основании которого потом может быть создан один функциональный объект, а может и много! Эти объекты образуют множество, или класс. Про любой объект этого класса можно сказать, что чертеж является его моделью. Аристотель использовал другую риторику. Он говорил, что чертеж — есть описание типа объектов. А объекты — есть экземпляры этого типа.
Как поступает сценарист, пишущий сценарий? Он делает сценарий, а будет ли поставлен по нему спектакль и сколько будет в итоге представлений, — он не знает. Сценарий может быть моделью одного выступления, например, празднования Нового 2015 года. Или он может моделировать множество выступлений, как, например, сценарий балета Щелкунчик. Понятно, что сценарий – один, а выступлений – много. В логической парадигме это описание выглядело бы так: есть множество всех выступлений, подмножество этого множества – есть выступления, сделанные на основе сценария «Балет Щелкунчик».
То же самое в парадигме Аристотеля выглядело бы так. Есть объекты — выступления. Любое выступление – есть экземпляр выступления. Есть объекты другого типа – это выступления, сделанные по одному сценарию «Балет Щелкунчик». Любое выступление по этому сценарию – это экземпляр выступления «Балет Щелкунчик». Одно и то же выступление одновременно является экземпляром выступления и экземпляром выступления «Балет Щелкунчик». При этом Аристотель сейчас должен немного заволноваться, потому что он такого не говорил! У него нет того, что один объект может принадлежать разным типам! Это уже наша интерпретация, основанная на моделировании в виде ER-диаграмм. Это и еще много чего не позволяют построить непротиворечивую модель предметной области на основе парадигмы Аристотеля.
Модель информационных объектов
Таким образом, в логической парадигме объектам одного множества может быть поставлена в соответствие одна модель:
Объекты, которые мы описываем одинаковыми моделями, мы называем похожими и относим их к одному классу. Например, класс насекомых, или класс болтовых соединений. Кроме того, одна модель также может быть представлена множеством информационных объектов. Например, одна модель болтового соединения может иметь множество представлений в виде разных листов ватмана с рисунком на нем, в виде зарисовок в тетрадях и так далее. Понятно, что все эти представления используют одну нотацию, но при этом все они разные:
Во всем множестве представлений нас интересуют лишь те, которые сделаны по определенным правилам. Например, мы не хотим рассматривать чертежи, высеченные из камня. Для этого нам надо ввести дополнительные правила, по которым будут создаваться информационные объекты, которые нас устроят. Эти правила составят модель уже самих информационных объектов. Так получается следующая иерархическая структура:
Множество информационных моделей описывается моделью информационных объектов. Модель эта находится в головах и людей. Эта модель порождается в результате применения специальной парадигмы, которая рассматривает объект предметной области как информационный. Потом после применения нотации модель информационных моделей может быть выражена в виде представлений этой модели.
Таким образом, любой объект может иметь модель и ее представление. В свою очередь представление также может иметь свою модель и так до бесконечности. Эта бесконечность — одно из очень серьезных ограничений логической парадигмы. Разрешать это противоречие я не умею. Но честно признаю, что ограничения логической парадигмы есть, и они в том, что рано или поздно нам придется оборвать цепь моделей и сослаться на здравый смысл.
Договор
Если применить построенную конструкцию к нарисованной в самом начале статьи диаграмме, то у нас возникают вопросы: что такое договоренность? Это реальность, или модель реальности? Что такое договор? Что такое листочки с печатями? Что такое файл в формате MS Word? Что такое запись в БД? И что она фиксирует: договор, договоренность, реальность?
Я нарисовал кусок модели, начиная с договоренности, но не расшифровывал, что такое сама договоренность.
Мы видим, что реальная модель предметной области довольно сложна. При этом мы не нарисовали всех подробностей и не нарисовали всех уровней модели, потому что умение работать с MS Word не предполагает знания формата хранения данных. А знание формата хранения данных не означает знание правил управления печатной головкой. И так далее. Есть физические объекты и субъекты, есть информационные объекты и функциональные, и связаны они порой довольно сложными иерархическими связями. Надо учиться эти связи моделировать и передавать другим в качестве знаний.
Например, 7-ми уровневая сетевая модель OSI – есть иерархическая модель физических и информационных объектов.
В сокращенном варианте приведенная модель выглядит так:
И вот это уже узнаваемая конструкция. В ней исключены сущности, которые можно пропустить с точки зрения моделирования данных. Но теперь, глядя на нее, вы знаете о тех связях, которые их связывают. Порой, чтобы построить корректную модель, необходимо знать много больше, чем нарисовано. И моя статья как раз демонстрирует ход мыслей, которые может делать любой, чтобы не ошибиться. Попробуйте порассуждать над любым вопросом в вашей предметной области. Попробуйте задавать вопросы до тех пор, пока не начнете ясно понимать, что вы видите. Иначе будет так:
Лирическая зарисовка
Мы дальтоники. Только не в смысле: цвета не различаем, нет. Мы не различаем смысл слов, употребляемых в разном контексте.
То, что мы говорим сокращенные фразы, смысл которых определяется контекстом, — это вынужденная мера для выживания. Мы должны иметь возможность быстро изъясняться: Глянь: голодный волк! вместо: Погляди: объект, принадлежащий множеству волков, одновременно принадлежит классу голодных живых существ! Но, употребляя сокращенные фразы, мы не должны забывать об их полном смысле, и должны уметь этот смысл восстанавливать. Однако, пока происходит обратный процесс: используя сокращенные элементы языка, мы все дальше и дальше удаляемся от понимания того, что скрывается за ними.
Когда я еду в деревню, то готовлюсь к празднику слуха. Разговор деревенских полон смысла, оттенков и музыки. Я вижу, что, произнося слова, деревенский житель не просто жонглирует ментальными конструкциями, как это принято в городской среде, он одновременно переживает и образы, скрытые за словами, и погружен всем своим существом в контекст, в котором живут эти образы. Переживание образов и контекста как основы удерживает целостность конструкций, и не дает повода для возникновения противоречий.
В отличие от деревенского, городской житель, наученный восприятию слов в отрыве от контекста, может использовать стандартные языковые шаблоны. Это приводит к потере сначала контекста, а потом и размытию смысла самих слов. Отрыв слов от контекста не позволяет удержать целостность и непротиворечивость конструкций. В итоге происходит подлог: набор языковых паттернов подменяет знание. Поскольку слушателями такого человека часто являются такие же как и он, — неспособные одновременно удерживать в сознании и смысл и контекст, то этот фокус проходит. Я встречаю мастеров жонглирования словами. Это те, кто умеют менять контекст, и в соответствии с этим менять языковые паттерны: психотерапевты, учителя, мошенники и хорошие политики, хорошие аналитики. А вот плохие учителя, например, не понимают в чем секрет такой гибкости и умеют лишь имитировать действия хороших. Секрет прост – переживание контекста дает возможность сохранять целостность, а умение менять контекст, дает возможность творить.
Вернемся к вопросу, заданному в начале статьи. Я спросил, что моделирует тот элемент с отогнутым уголком? Я оставлю этот вопрос открытым. Попробуйте сами корректно поставить вопрос и подумать над ответом.
-
Построение системных моделей предметных областей
Решение задач,
связанных с хранением, обработкой и
поиском информации на основе концепции
баз данных начинается с этапа построения
системных моделей рассматриваемых
предметных областей. Этот процесс носит
название этапа анализа и проектирования
базы данных. Здесь под предметными
областями понимаются конкретные реальные
объекты, системы или процессы, информацию
о которых необходимо хранить, обрабатывать
и выдавать по запросу пользователя.
Модели предметных областей часто
называют информационными моделями
предметной области. Они являются особым
видом моделей систем, предназначенных
для информационного описания и
последующего компьютерного моделирования
систем.
Информационные
модели появились в 70 гг. ХХ века в связи
с решением задач автоматизированного
управления сложными системами
(производственно-экономическими,
социальными, военно-техническими и
т.д.). Для решения данных задач потребовалось
создание трех видов моделей, дающих в
совокупности исчерпывающее представление
о рассматриваемой предметной области:
-
информационные
моделипредметной области, представляющие
собой совокупность структурированных
данных об объектах предметной области
и связях между ними, которую можно
рассматривать как информационное
описание предметной области; -
функциональные
моделипредметной области, описывающих
производимые объектами предметной
области функции (операции и действия)
в процессе их работы; -
динамические
моделипредметной области, описывающие
изменение во времени переменных,
характеризующих состояние объекта.
Как видно,
совокупность моделей, используемых для
описания и управления сложными системами
(в дальнейшем их стали называть системными
моделями), включает в себя все три
рассмотренных ранее в первой главе вида
моделей систем. Следует обратить
внимание, однако, на разницу в названии
моделей. Так, информационные модели
предметной области соответствуют
структурным моделям систем, функциональные
модели предметной области соответствуют
структурно-функциональным моделям
систем, а динамические модели предметной
области соответствуют функциональным
моделям систем.
1.4.1. Информационные
модели предметной области. Данный
вид моделей получил наибольшее
распространение на практике и широко
применяется при решении задач хранения,
поиска и обработки больших объемов
информации. Для решения данных задач
стали создаваться специальные
информационно-поисковые системы,
получившие позже название баз данных
(Data Base). Основной проблемой, с которой
столкнулись разработчики первых ИПС,
стала организация экономного хранения
больших объемов семантически связанной
информации, относящейся к различным
объектам одной или нескольких предметных
областей, а также организация быстрого
поиска информации по разнообразным
запросам пользователя в этом большом
хранилище информации (данных).
Применявшийся до
этого времени способ автономной
(несвязанной) организации хранения
данных, известный под названием файловой
организации хранения данных, лишь для
достаточно примитивных ИПС, содержащих
очень малые объемы информации и
принципиально не мог быть положен в
основу создания мощных ИПС, содержащих
большие объемы информации и обладающих
развитым языком запросов.
Используемые в
ИПС (базах данных), информационные модели
систем (там они называются логическими
моделями предметной области) являются
развитием понятия «структурная модель»
применительно к информационному
моделированию предметных областей.
Данные логические модели также
представляют собой графы, имеющие
сетевую или иерархическую структуры,
однако, в отличие от структурных моделей,
применяющихся в классической теории
систем, структурные элементы (вершины
графов) логических моделей также имеют
ярко выраженную структуру. Это означает,
что в информационных моделях имеет
место два уровня структуризации.
Нижний уровень
включает в себя структуризацию отдельных
элементов (информационных объектов),
верхний уровень включает в себя
структуризацию в целом рассматриваемой
предметной области (рис. 3).
Рис. 3. Информационная
модель предметной области
Структуризация
(объединение информационных объектов
в систему) на верхнем уровне производится
с использованием уже рассмотренных
выше графовых структур (моделей) сетевогоилииерархического типа. При
структуризации информационных объектов
на нижнем уровне (объединении сведений
или данных о них в некоторую систему) в
дополнение к рассмотренным выше сетевым
и иерархическим моделям используютсяреляционные модели представления
данных.
Интересно отметить
следующее. Название ИПС или базы данных
(реляционная, иерархическая и сетевая)
определяется выбранным способом
структуризации информации на нижнем
уровне. Далее, способы структуризации
информации на нижнем и верхнем уровнях
никак не связаны между собой. Так, на
нижнем уровне может быть выбран
иерархический способ организации
данных, в то время как на верхнем уровне
может использоваться сетевой способ
организации информационных объектов
и т.д.
В настоящее время
основными моделями представления
(организации) информации на нижнем
уровне являются реляционные модели, их
используют подавляющее большинство
существующих ИПС (точнее сказать, систем
управления базами данных, с помощью
которых разработаны данные ИПС).
Организация информационных объектов
на верхнем уровне ИПС осуществляется
преимущественно с использованием
сетевых моделей представления
информационных объектов.
Отметим, что в
существующих технологиях системного
моделирования модели представления
информации на нижнем уровне организации
информационных объектов называются
информационными моделями, а модели
представления информации на верхнем
уровне –структурными моделями.
1.4.2 Функциональные
модели предметной области. Постепенно,
по мере развития ИПС, задачи, связанные
с созданием моделей организации данных
применительно к рассматриваемой
предметной области (системе, объекту
или процессу) оказались в той или иной
степени решенными. На смену им пришли
другие задачи, связанные с моделированием
функций или процессов в рассматриваемой
реальной системе (а не только данных,
что осуществлялось с помощью упомянутых
выше структурных или логических моделей
ИПС). В конечном итоге, это привело к
появлению функциональных моделей
рассматриваемых предметных областей:
систем, объектов и процессов.
Построение подобных
моделей направлено на получение
последовательности целесообразных
действий (т.е. действий, направленных
на достижение определенной цели) и
оказывается незаменимым при организации
эффективного управления сложными
системами. В реальных системах функции
всегда порождаются или привязаны к
какому-либо структурному элементу
(объекту) системы. Поэтому, функциональные
информационные модели, по сути, относятся
к структурно-функциональным моделям
систем.
1.4.3. Динамические
модели предметной области. В ряде
случаев на эффективность работы
рассматриваемой системы (помимо
правильной организации хранения данных
и распределения функций между объектами
системы) существенное влияние оказывает
временная последовательность выполнения
необходимых действий. В этом случае
необходимо построение динамической
модели системы для получения необходимых
показателей ее работы. При системном
моделировании сложных систем в качестве
динамических моделей обычно выступают
конечно-автоматные модели, сети Петри
и цепи Маркова.
Таким образом,
системное моделирование предметной
области включает в себя построение
следующих моделей:
-
структурных
(логических); -
информационных;
-
функциональных;
-
динамических.
Каждая из этих
моделей характеризует лишь соответствующий
аспект рассматриваемой предметной
области, но в совокупности они дают
исчерпывающее представление о предметной
области. Все эти четыре разновидности
системных моделей используются при
структурном подходе к анализу и
проектированию программного обеспечения
(в частности ИПС).
В
приложение??? 2.1.3. Применение методологии
IDEF при построении системных моделей.
Решение
информационно-поисковых задач обязательно
включает этап построения системных
моделей предметной области, так как
именно они дают одновременное описание
как данных, так и действий или операций
над ними для получения нужной информации.
После того, как разработаны системные
модели, пользователь (и разработчик
ИПС) получает исчерпывающую информацию
о рассматриваемой предметной области
(объекте, системе, процессе). Данная
информация включает в себя:
-
данные
и информационные объекты, которые
должна хранить ИПС, необходимые для
решения поставленной задачи; -
организацию
(логическую структуру) этих данных и
информационных объектов; -
состав
или перечень необходимых функций по
поиску и обработке данных и информационных
объектов, которыми должна обладать
ИПС.
Каждый
объект исследуемой информационной
системы в процессе проектирования
(моделирования), как правило, рассматривается
с нескольких сторон. Различные взгляды
на объект проектирования принято
называть аспектом
проектирования
(структурный аспект моделирования
объекта или аспект данных; аспект
взаимоотношений объекта с внутренними
объектами системы и внешней средой или
функциональный аспект и т.д.). Совокупность
моделей, отражающих всевозможные аспекты
анализа конкретной предметной области,
служат основой для разработки
информационно-поисковой системы.
В
основу построения системных моделей
предметной области при применении
методологии IDEF положен структурный (с
системной точки зрения) анализ предметной
области. При использовании структурного
анализа исследование предметной области
начинается с наиболее общего ее описания
на самом верхнем уровне абстракции с
последующей детализацией представления
отдельных аспектов ее поведения и
функционирования на более низких
уровнях.
Для
моделирования и описания структур
данных и процессов с использованием
методологии IDEF применяются графические
средства в виде различных диаграмм или
графических схем. Это отражается в
названиях системных моделей, именуемых
диаграммами, хотя по своей сути они не
являются диаграммами в привычном для
нас понимании (обычно диаграммы
используются для графического отображения
количественных характеристик или
показателей).
При
разработке информационных систем (в
нашем случае – при решении
информационно-поисковых задач) принято
рассматривать и использовать три типа
диаграмм: диаграммы
«Сущность-Связь»
(Entity-Relationship Diagrams, ERD), диаграммы
функционального моделирования (Structured
Analysis and Design Technique, SADT) и диаграммы
потоков данных
(Data Flow Diagrams, DFD). При построении этих
диаграмм применяются определенный
набор графических объектов (примитивов)
и свод правил их использования.
Совокупность этих показателей получила
название графической нотации (или
графического способа отображения
моделей).
Диаграммы
«Сущность-Связь».
Данный вид диаграмм является формой
представления структурной (логической)
модели данных. По своей сути – это
верхний уровень структурной модели
данных, имеющий, как указывалось выше,
вид сетевой или иерархической структуры.
Данный тип моделей был предложен П.
Ченом в 1976 году и получил дальнейшее
развитие в работах Р. Баркера. Диаграммы
«Сущность-Связь» (ERD) предназначены для
графического представления логических
моделей данных разрабатываемой
программной системы и предлагают
некоторый набор стандартных обозначений
для определения данных и отношений
между ними. С помощью этого вида диаграмм
можно описать отдельные объекты
(компоненты) логической модели данных
и совокупность взаимосвязей между ними,
характеризующих рассматриваемую
предметную область.
Основными
понятиями данной модели (диаграммы)
являются понятия сущности и связи. При
этом под сущностью
(entity) понимается произвольное множество
реальных или абстрактных объектов,
каждый из которых обладает одинаковыми
свойствами и характеристиками. Примерами
сущностей могут быть: банк, клиент банка,
счет клиента, аэропорт, пассажир, рейс,
компьютер, терминал, автомобиль, водитель,
студент, факультет и т.п. Каждая из
сущностей может рассматриваться с
различной степенью детализации и на
различном уровне абстракции, что
определяется конкретной постановкой
задачи.
Связь
(relationship) определяется как отношение или
некоторая ассоциация между отдельными
сущностями. Примерами связей могут
являться отношения типа
«Факультет-Специальность», «Обучаться
На», «Обладать Свойством». Различные
типы связей также отображаются на данных
диаграммах, указывая на смысловую или
семантическую связь между рассматриваемыми
объектами. В результате предоставляется
возможность графически отобразить
логическую структуру данных рассматриваемой
предметной области.
Рассматриваемая
модель данных строится таким образом,
чтобы связи между отдельными сущностями
отражали не только семантический
характер соответствующего отношения,
но и дополнительные аспекты: обязательность
связей, а также кратность (количество
представителей каждой сущности
участвующих в данных отношениях).
Рассмотрим
в качестве примера предметную область,
которая описывается четырьмя сущностями:
«Факультет», «Специальность», «Студент»
и «Дисциплина». Если учесть, что факультет
организовывает обучение студентов на
нескольких специальностях, а студенты
изучают несколько дисциплин, то данная
информация может быть представлена
графически в виде следующей диаграммы
«Сущность-Связь» (рис. 2.2).
Рис.
2.1.
Диаграмма «Сущность-Связь»
В
данном случае в качестве связи естественно
использовать отношение принадлежности
(обучения) студента конкретной
специальности (причем одной), отношение
принадлежности (включения) специальности
только одному факультету. На данной
диаграмме буквы «N»
и «M»
около связи обозначают тот факт, что на
специальности может обучаться более
одного студента, и каждый студент может
изучать более одной дисциплины, при
этом значение N
и M
заранее не фиксируется. Цифра «1» на
другом конце связи означает, что студент
может обучаться только по одной конкретной
специальности, а также то, что каждая
специальность относится только к одному
факультету.
Связь
между сущностями «Дисциплина» и «Студент»
отражает тот факт, что каждый студент
может изучать несколько дисциплин, но,
в свою очередь, каждую дисциплину может
изучать несколько студентов. Данная
связь является многозначной и отражается
на диаграмме указанием букв «N»
и «М»
около соответствующих сущностей, при
этом выбор конкретных букв не является
принципиальным.
Ограниченность
ERD проявляется при более детальном
представлении моделируемой системы,
которое кроме отражения статических
связей должно содержать информацию о
поведении или функционировании отдельных
ее компонентов. ERD диаграммы используются
для моделирования данных на самом
верхнем (концептуальном) уровне на
ранних этапах проектирования информационной
системы.
Функциональные
модели. Начало
разработки диаграмм функционального
моделирования относится к середине
1960-х годов, когда Дуглас Т. Росс предложил
специальную технику моделирования,
получившую название SADT (Structured Analysis &
Design Technique). Военно-воздушные силы США
использовали методику SADT в качестве
части своей программы интеграции
компьютерных и промышленных технологий
(Integrated Computer Aided Manufacturing, ICAM) и назвали ее
IDEF0 (Icam DEFinition). Целью программы IСАМ было
увеличение эффективности компьютерных
технологий в сфере проектирования новых
средств вооружений и ведения боевых
действий. В результате этих исследований
было выяснено, что описательные языки
не эффективны для документирования и
моделирования процессов функционирования
сложных систем. Как уже отмечалось выше,
подобные описания на естественном языке
не обеспечивают требуемого уровня
непротиворечивости и полноты при решении
задач моделирования.
В
рамках программы ICAM было разработано
несколько графических языков моделирования,
которые получили следующие названия:
-
нотация
IDEF0 – для документирования процессов
производства и отображения информации
об использовании ресурсов на каждом
из этапов проектирования систем; -
нотация
IDEF1 – для моделирования и документирования
данных о внешнем окружении системы; -
нотация
IDEF2 – для моделирования и документирования
поведения системы во времени; -
нотация
IDEF3 – для моделирования и документирования
бизнес-процессов.
Наиболее
широкое распространение в настоящее
время получила нотация IDEF1, которая в
1985 году была расширена и переименована
в IDEF1X. В начале 1990 года специально
образованная группа пользователей IDEF
(IDEF Users Group), в сотрудничестве с Национальным
институтом по стандартизации и технологии
США (National Institutes for Standards and Technology, NIST),
предприняла попытку создания стандарта
для IDEF0 и IDEF1X. Эта попытка оказалась
успешной и завершилась принятием в 1993
году стандарта правительства США, для
данных двух технологий IDEF0 и IDEF1X. В
течение последующих лет этот стандарт
продолжал активно развиваться и послужил
основой для реализации в некоторых
первых CASE-средствах.
Методология
IDEF-SADT представляет собой совокупность
методов, правил и процедур, предназначенных
для построения функциональной модели
системы какой-либо предметной области,
отображающей структуру процессов
функционирования системы и ее отдельных
подсистем, т. е. выполняемые ими действия
и связи между этими действиями. Эти
специальные модели позволяют в наглядной
форме представить последовательность
определенных действий (функционирование
системы). Исходными строительными
блоками любой модели IDEF0 процесса
являются деятельность (activity) и стрелки
(arrows).
Рассмотрим
кратко основные понятия методологии
IDEF-SADT, которые используются при построении
диаграмм функционального моделирования.
Деятельность
представляет собой некоторое действие
или набор действий, которые имеют
фиксированную цель и приводят к некоторому
конечному результату. Иногда деятельность
называют просто процессом. Модели IDEF0
отражают различные виды деятельности
системы (процессы, происходящие в
системе), их описание и взаимодействие
с другими процессами.
На
диаграммах деятельность или процесс
изображается прямоугольником, который
называется блоком. Стрелка служит для
обозначения некоторого носителя или
воздействия, которые обеспечивают
перенос данных или объектов от одной
деятельности к другой. Стрелки также
необходимы для описания того, кто или
что производит деятельность (осуществляет
процесс) и какие ресурсы она потребляет.
Это так называемые роли стрелок – IСOМ:
-
I
(Input) – вход, т. е. все то, что поступает
в процесс или используется процессом; -
С
(Control) – управление или ограничение на
выполнение операций процесса; -
О
(Output) – выход или результат процесса; -
М
(Mechanism) – механизм, который используется
для выполнения процесса.
Методология
IDEF0 однозначно определяет, каким образом
изображаются на диаграммах стрелки
каждого вида ICOM. Стрелка Вход
(Input) выходит
из левой стороны рамки рабочего поля и
входит слева в прямоугольник процесса.
Стрелка Управление
(Control) входит сверху. Стрелка Выход
(Output) выходит из правой стороны процесса
и входит в левую сторону рамки. Стрелка
Механизм
(Mechanism) входит в прямоугольник процесса
снизу.
Для
иллюстрации основных идей методологии
IDEF-SADT рассмотрим следующий пример. В
качестве процесса представим
функционирование системы «Учет
успеваемости студентов в деканате».
Входом для данного процесса является
информация об абитуриентах, специальностях
подготовки студентов, совокупность
дисциплин, преподаваемых в вузе. Выходом
– различного рода сводки по успеваемости
студентов, данные для диплома. При этом
управляющими факторами является
различного рода нормативная документация,
регламентирующая обучение студентов
в вузе (правила приема, приказы,
образовательные стандарты и т.п.).
Механизмом данного процесса является
сотрудник деканата.
Пример
представления системы «Учет успеваемости
студентов в деканате» изображен на рис.
2.3.
Рис.
2.2.
Фрагмент функциональной модели
Одной
из наиболее важных особенностей
методологии IDEF-SADT является постепенное
введение все более детальных представлений
модели системы по мере разработки
отдельных диаграмм.
Построение
модели IDEF-SADT начинается с представления
всей системы в виде простейшей диаграммы,
состоящей из одного блока процесса и
стрелок IСOМ (рис.2.4), служащих для
изображения основных видов взаимодействия
с объектами вне системы (самый верхний
уровень моделирования).
Поскольку
исходный процесс представляет всю
систему как единое целое, данное
представление является наиболее общим
и абстрактным и подлежит дальнейшей
декомпозиции.
Рис.
2.3.
Фрагмент функциональной модели верхнего
уровня
В
конечном итоге модель IDEF-SADT представляет
собой серию иерархически взаимосвязанных
диаграмм с сопроводительной документацией
в виде словарей, которая разбивает
исходное представление сложной системы
на отдельные составные (конкретизированные)
части. Детали каждого из основных
процессов представляются в виде более
детальных процессов на других диаграммах.
В этом случае каждая диаграмма нижнего
уровня является декомпозицией некоторого
процесса из более общей диаграммы. В
итоге получаем несколько уровней
диаграмм, описывающих функциональность
всей системы.
В
настоящее время диаграммы структурного
системного анализа IDEF-SADT продолжают
использоваться целым рядом организаций
для построения и детального анализа
функциональных моделей как существующих
на предприятии бизнес-процессов, так и
для разработки новых. Основной недостаток
данной методологии связан с отсутствием
явных средств объектно-ориентированного
представления моделей сложных систем.
Хотя некоторые аналитики отмечают
важность знания и применения нотации
IDEF-SADT, ограниченные возможности этой
методологии применительно к реализации
соответствующих графических моделей
в объектно-ориентированном программном
коде существенно сужают диапазон
решаемых с ее помощью задач.
Диаграммы
информационного моделирования.
Структуризация
(объединение информационных объектов
в систему) на верхнем уровне производится
с использованием уже рассмотренных
выше графовых структур (моделей) сетевого
или иерархического типа (диаграммы
ERD). При структуризации информационных
объектов на нижнем уровне (объединении
сведений или данных о них в некоторую
систему) в дополнение к рассмотренным
выше сетевым и иерархическим моделям
применяется методология IDEF1X, основанная
на концепции «Сущность-Связь». Это есть
инструмент для анализа информационной
структуры систем различной природы.
Метод
IDEF1, разработанный Т. Рэмей (T. Ramey), также
основан на подходе П. Чена и позволяет
построить модель данных, эквивалентную
реляционной модели. В настоящее время
на основе совершенствования методологии
IDEF1 создана ее новая версия – методология
IDEF1X. IDEF1X разработана с учетом таких
требований, как простота изучения и
возможность автоматизации. IDEF1X-диаграммы
используются рядом распространенных
CASE-средств (в частности, ERwin, Design/IDEF).
Важнейшая
цель информационной модели заключается
в выработке непротиворечивой интерпретации
данных и взаимосвязей между ними с целью
совместного использования данных и
управления их целостностью.
Процесс
построения информационной модели
состоит из следующих шагов:
-
определение
сущностей; -
определение
зависимостей между сущностями; -
задание
первичных и альтернативных ключей; -
определение
атрибутов сущностей; -
приведение
модели к требуемому уровню нормальной
формы.
Суть
понятий атрибут, первичный и альтернативный
ключ, нормальные формы и т.п. будет
рассмотрена во втором разделе данной
главы, а на рис. 2.5 приведен фрагмент
информационной модели предметной
области «Обучение студента в вузе».
Рис.
2.4.
Информационная модель предметной
области
Использование
структурного подхода при разработке
сначала моделей предметной области, а
затем, на ее основе – самой
информационно-поисковой системы,
несомненно, является целесообразным,
поскольку:
-
появляется
возможность эффективной разработки
сложных информационных систем (при
проектировании системы одновременно
и согласованно могут работать нескольких
аналитиков или программистов); -
упрощается
процесс проверки работоспособности
как системы в целом, так и отдельных
блоков (каждый из этих блоков представляет
собой функционально завершенный
фрагмент); -
обеспечивается
возможность модернизации систем,
например, замены ненадежных блоков с
сохранением их интерфейсов; -
предоставляется
возможность повторного использования
отдельных модулей информационных
систем.
Учитывая,
что настоящее пособие предназначено
для изучения студентами информатики в
рамках базового курса, в дальнейшем
ограничимся рассмотрением лишь
информационной модели предметной
области, необходимость в которой
возникает при решении информационно-поисковых
задач.
Соседние файлы в папке лекции
- #
- #
- #
- #
- #
- #
- #
Построение системных моделей предметных
областей
Решение задач, связанных с хранением,
обработкой и поиском информации на основе концепции баз данных начинается с
этапа построения системных моделей рассматриваемых предметных областей. Этот
процесс носит название этапа анализа и проектирования базы данных. Здесь под
предметными областями понимаются конкретные реальные объекты, системы или
процессы, информацию о которых необходимо хранить, обрабатывать и выдавать по
запросу пользователя. Модели предметных областей часто называют информационными
моделями предметной области. Они являются особым видом моделей систем,
предназначенных для информационного описания и последующего компьютерного
моделирования систем.
Информационные модели появились в 70 гг.
ХХ века в связи с решением задач автоматизированного управления сложными
системами (производственно-экономическими, социальными, военно-техническими и
т.д.). Для решения данных задач потребовалось создание трех видов моделей,
дающих в совокупности исчерпывающее представление о рассматриваемой предметной
области:
·
информационные модели предметной области,
представляющие собой совокупность структурированных данных об объектах
предметной области и связях между ними, которую можно рассматривать как
информационное описание предметной области;
·
функциональные модели предметной области,
описывающих производимые объектами предметной области функции (операции и
действия) в процессе их работы;
·
динамические модели предметной области,
описывающие изменение во времени переменных, характеризующих состояние объекта.
Как видно, совокупность моделей,
используемых для описания и управления сложными системами (в дальнейшем их
стали называть системными моделями). Следует обратить внимание, однако, на
разницу в названии моделей. Так, информационные модели предметной области
соответствуют структурным моделям систем, функциональные модели предметной
области соответствуют структурно-функциональным моделям систем, а динамические
модели предметной области соответствуют функциональным моделям систем.
1.4.1. Информационные модели
предметной области. Данный вид моделей получил
наибольшее распространение на практике и широко применяется при решении задач
хранения, поиска и обработки больших объемов информации. Для решения данных
задач стали создаваться специальные информационно-поисковые системы, получившие
позже название баз данных (Data Base). Основной проблемой, с которой
столкнулись разработчики первых ИПС, стала организация экономного хранения
больших объемов семантически связанной информации, относящейся к различным
объектам одной или нескольких предметных областей, а также организация быстрого
поиска информации по разнообразным запросам пользователя в этом большом
хранилище информации (данных).
Применявшийся до этого времени способ автономной
(несвязанной) организации хранения данных, известный под названием файловой
организации хранения данных, лишь для достаточно примитивных ИПС, содержащих
очень малые объемы информации и принципиально не мог быть положен в основу
создания мощных ИПС, содержащих большие объемы информации и обладающих развитым
языком запросов.
Используемые в ИПС (базах данных),
информационные модели систем (там они называются логическими моделями
предметной области) являются развитием понятия «структурная модель» применительно
к информационному моделированию предметных областей. Данные логические модели
также представляют собой графы, имеющие сетевую или иерархическую структуры,
однако, в отличие от структурных моделей, применяющихся в классической теории
систем, структурные элементы (вершины графов) логических моделей также имеют
ярко выраженную структуру. Это означает, что в информационных моделях имеет
место два уровня структуризации.
Нижний уровень включает в себя
структуризацию отдельных элементов (информационных объектов), верхний уровень
включает в себя структуризацию в целом рассматриваемой предметной области (рис.
3).
Рис. 3. Информационная модель предметной
области
Структуризация (объединение информационных
объектов в систему) на верхнем уровне производится с использованием уже
рассмотренных выше графовых структур (моделей) сетевогоилииерархического типа.
При структуризации информационных объектов на нижнем уровне (объединении
сведений или данных о них в некоторую систему) в дополнение к рассмотренным
выше сетевым и иерархическим моделям используютсяреляционные модели
представления данных.
Интересно отметить следующее. Название ИПС
или базы данных (реляционная, иерархическая и сетевая) определяется выбранным
способом структуризации информации на нижнем уровне. Далее, способы
структуризации информации на нижнем и верхнем уровнях никак не связаны между
собой. Так, на нижнем уровне может быть выбран иерархический способ организации
данных, в то время как на верхнем уровне может использоваться сетевой способ
организации информационных объектов и т.д.
В настоящее время основными моделями
представления (организации) информации на нижнем уровне являются реляционные
модели, их используют подавляющее большинство существующих ИПС (точнее сказать,
систем управления базами данных, с помощью которых разработаны данные ИПС).
Организация информационных объектов на верхнем уровне ИПС осуществляется
преимущественно с использованием сетевых моделей представления информационных
объектов.
Отметим, что в существующих технологиях
системного моделирования модели представления информации на нижнем уровне
организации информационных объектов называются информационными моделями,
а модели представления информации на верхнем уровне –структурными моделями.
1.4.2 Функциональные модели
предметной области. Постепенно, по мере развития
ИПС, задачи, связанные с созданием моделей организации данных применительно к
рассматриваемой предметной области (системе, объекту или процессу) оказались в
той или иной степени решенными. На смену им пришли другие задачи, связанные с
моделированием функций или процессов в рассматриваемой реальной системе (а не
только данных, что осуществлялось с помощью упомянутых выше структурных или
логических моделей ИПС). В конечном итоге, это привело к появлению
функциональных моделей рассматриваемых предметных областей: систем, объектов и
процессов.
Построение подобных моделей направлено на
получение последовательности целесообразных действий (т.е. действий,
направленных на достижение определенной цели) и оказывается незаменимым при
организации эффективного управления сложными системами. В реальных системах
функции всегда порождаются или привязаны к какому-либо структурному элементу
(объекту) системы. Поэтому, функциональные информационные модели, по сути,
относятся к структурно-функциональным моделям систем.
1.4.3. Динамические модели
предметной области. В ряде случаев на
эффективность работы рассматриваемой системы (помимо правильной организации
хранения данных и распределения функций между объектами системы) существенное
влияние оказывает временная последовательность выполнения необходимых действий.
В этом случае необходимо построение динамической модели системы для получения
необходимых показателей ее работы. При системном моделировании сложных систем в
качестве динамических моделей обычно выступают конечно-автоматные модели, сети
Петри и цепи Маркова.
Таким образом, системное моделирование
предметной области включает в себя построение следующих моделей:
·
структурных (логических);
·
информационных;
·
функциональных;
·
динамических.
Каждая из этих моделей характеризует лишь
соответствующий аспект рассматриваемой предметной области, но в совокупности
они дают исчерпывающее представление о предметной области. Все эти четыре
разновидности системных моделей используются при структурном подходе к анализу
и проектированию программного обеспечения (в частности ИПС).
В приложение??? 2.1.3.
Применение методологии IDEF при построении системных моделей. Решение
информационно-поисковых задач обязательно включает этап построения системных
моделей предметной области, так как именно они дают одновременное описание как
данных, так и действий или операций над ними для получения нужной информации.
После того, как разработаны системные модели, пользователь (и разработчик ИПС)
получает исчерпывающую информацию о рассматриваемой предметной области
(объекте, системе, процессе). Данная информация включает в себя:
·
данные и информационные объекты, которые должна хранить ИПС,
необходимые для решения поставленной задачи;
·
организацию (логическую структуру) этих данных и информационных
объектов;
·
состав или перечень необходимых функций по поиску и обработке
данных и информационных объектов, которыми должна обладать ИПС.
Каждый объект исследуемой информационной
системы в процессе проектирования (моделирования), как правило, рассматривается
с нескольких сторон. Различные взгляды на объект проектирования принято
называть аспектом проектирования (структурный аспект
моделирования объекта или аспект данных; аспект взаимоотношений объекта с
внутренними объектами системы и внешней средой или функциональный аспект и
т.д.). Совокупность моделей, отражающих всевозможные аспекты анализа конкретной
предметной области, служат основой для разработки информационно-поисковой
системы.
В основу построения системных моделей предметной
области при применении методологии IDEF положен структурный (с системной точки
зрения) анализ предметной области. При использовании структурного анализа
исследование предметной области начинается с наиболее общего ее описания на
самом верхнем уровне абстракции с последующей детализацией представления
отдельных аспектов ее поведения и функционирования на более низких уровнях.
Для моделирования и описания структур
данных и процессов с использованием методологии IDEF применяются графические
средства в виде различных диаграмм или графических схем. Это отражается в
названиях системных моделей, именуемых диаграммами, хотя по своей сути они не
являются диаграммами в привычном для нас понимании (обычно диаграммы
используются для графического отображения количественных характеристик или
показателей).
При разработке информационных систем (в
нашем случае – при решении информационно-поисковых задач) принято рассматривать
и использовать три типа диаграмм: диаграммы «Сущность-Связь» (Entity-Relationship
Diagrams, ERD), диаграммы функционального моделирования (Structured
Analysis and Design Technique, SADT) и диаграммы потоков данных (Data
Flow Diagrams, DFD). При построении этих диаграмм применяются определенный
набор графических объектов (примитивов) и свод правил их использования.
Совокупность этих показателей получила название графической нотации (или
графического способа отображения моделей).
Диаграммы «Сущность-Связь».
Данный вид диаграмм является формой представления структурной (логической)
модели данных. По своей сути – это верхний уровень структурной модели данных,
имеющий, как указывалось выше, вид сетевой или иерархической структуры. Данный
тип моделей был предложен П. Ченом в 1976 году и получил дальнейшее развитие в
работах Р. Баркера. Диаграммы «Сущность-Связь» (ERD) предназначены для
графического представления логических моделей данных разрабатываемой
программной системы и предлагают некоторый набор стандартных обозначений для
определения данных и отношений между ними. С помощью этого вида диаграмм можно
описать отдельные объекты (компоненты) логической модели данных и совокупность
взаимосвязей между ними, характеризующих рассматриваемую предметную область.
Основными понятиями данной модели
(диаграммы) являются понятия сущности и связи. При этом под сущностью (entity)
понимается произвольное множество реальных или абстрактных объектов, каждый из
которых обладает одинаковыми свойствами и характеристиками. Примерами сущностей
могут быть: банк, клиент банка, счет клиента, аэропорт, пассажир, рейс,
компьютер, терминал, автомобиль, водитель, студент, факультет и т.п. Каждая из
сущностей может рассматриваться с различной степенью детализации и на различном
уровне абстракции, что определяется конкретной постановкой задачи.
Связь (relationship)
определяется как отношение или некоторая ассоциация между отдельными
сущностями. Примерами связей могут являться отношения типа
«Факультет-Специальность», «Обучаться На», «Обладать Свойством». Различные типы
связей также отображаются на данных диаграммах, указывая на смысловую или
семантическую связь между рассматриваемыми объектами. В результате
предоставляется возможность графически отобразить логическую структуру данных
рассматриваемой предметной области.
Рассматриваемая модель данных строится
таким образом, чтобы связи между отдельными сущностями отражали не только
семантический характер соответствующего отношения, но и дополнительные аспекты:
обязательность связей, а также кратность (количество представителей каждой
сущности участвующих в данных отношениях).
Рассмотрим в качестве примера предметную
область, которая описывается четырьмя сущностями: «Факультет», «Специальность»,
«Студент» и «Дисциплина». Если учесть, что факультет организовывает обучение
студентов на нескольких специальностях, а студенты изучают несколько дисциплин,
то данная информация может быть представлена графически в виде следующей
диаграммы «Сущность-Связь» (рис. 2.2).
Рис. 2.1. Диаграмма «Сущность-Связь»
В данном случае в качестве связи
естественно использовать отношение принадлежности (обучения) студента
конкретной специальности (причем одной), отношение принадлежности (включения)
специальности только одному факультету. На данной диаграмме буквы «N» и
«M» около связи обозначают тот факт, что на специальности может обучаться
более одного студента, и каждый студент может изучать более одной дисциплины,
при этом значение N и M заранее не
фиксируется. Цифра «1» на другом конце связи означает, что студент может
обучаться только по одной конкретной специальности, а также то, что каждая
специальность относится только к одному факультету.
Связь между сущностями «Дисциплина» и
«Студент» отражает тот факт, что каждый студент может изучать несколько
дисциплин, но, в свою очередь, каждую дисциплину может изучать несколько
студентов. Данная связь является многозначной и отражается на диаграмме
указанием букв «N» и «М» около соответствующих сущностей, при
этом выбор конкретных букв не является принципиальным.
Ограниченность ERD проявляется при более
детальном представлении моделируемой системы, которое кроме отражения
статических связей должно содержать информацию о поведении или функционировании
отдельных ее компонентов. ERD диаграммы используются для моделирования данных
на самом верхнем (концептуальном) уровне на ранних этапах проектирования
информационной системы.
Функциональные модели.
Начало разработки диаграмм функционального моделирования относится к середине
1960-х годов, когда Дуглас Т. Росс предложил специальную технику моделирования,
получившую название SADT (Structured Analysis & Design Technique).
Военно-воздушные силы США использовали методику SADT в качестве части своей
программы интеграции компьютерных и промышленных технологий (Integrated
Computer Aided Manufacturing, ICAM) и назвали ее IDEF0 (Icam DEFinition). Целью
программы IСАМ было увеличение эффективности компьютерных технологий в сфере
проектирования новых средств вооружений и ведения боевых действий. В результате
этих исследований было выяснено, что описательные языки не эффективны для
документирования и моделирования процессов функционирования сложных систем. Как
уже отмечалось выше, подобные описания на естественном языке не обеспечивают
требуемого уровня непротиворечивости и полноты при решении задач моделирования.
В рамках программы ICAM было разработано
несколько графических языков моделирования, которые получили следующие
названия:
·
нотация IDEF0 – для документирования процессов производства и
отображения информации об использовании ресурсов на каждом из этапов
проектирования систем;
·
нотация IDEF1 – для моделирования и документирования данных о
внешнем окружении системы;
·
нотация IDEF2 – для моделирования и документирования поведения
системы во времени;
·
нотация IDEF3 – для моделирования и документирования
бизнес-процессов.
Наиболее широкое распространение в
настоящее время получила нотация IDEF1, которая в 1985 году была расширена и
переименована в IDEF1X. В начале 1990 года специально образованная группа
пользователей IDEF (IDEF Users Group), в сотрудничестве с Национальным
институтом по стандартизации и технологии США (National Institutes for
Standards and Technology, NIST), предприняла попытку создания стандарта для
IDEF0 и IDEF1X. Эта попытка оказалась успешной и завершилась принятием в 1993
году стандарта правительства США, для данных двух технологий IDEF0 и IDEF1X. В
течение последующих лет этот стандарт продолжал активно развиваться и послужил
основой для реализации в некоторых первых CASE-средствах.
Методология IDEF-SADT представляет собой
совокупность методов, правил и процедур, предназначенных для построения функциональной
модели системы какой-либо предметной области, отображающей структуру процессов
функционирования системы и ее отдельных подсистем, т. е. выполняемые ими
действия и связи между этими действиями. Эти специальные модели позволяют в
наглядной форме представить последовательность определенных действий
(функционирование системы). Исходными строительными блоками любой модели IDEF0
процесса являются деятельность (activity) и стрелки (arrows).
Рассмотрим кратко основные понятия
методологии IDEF-SADT, которые используются при построении диаграмм
функционального моделирования.
Деятельность представляет
собой некоторое действие или набор действий, которые имеют фиксированную цель и
приводят к некоторому конечному результату. Иногда деятельность называют просто
процессом. Модели IDEF0 отражают различные виды деятельности системы (процессы,
происходящие в системе), их описание и взаимодействие с другими процессами.
На диаграммах деятельность или процесс
изображается прямоугольником, который называется блоком. Стрелка служит для
обозначения некоторого носителя или воздействия, которые обеспечивают перенос
данных или объектов от одной деятельности к другой. Стрелки также необходимы
для описания того, кто или что производит деятельность (осуществляет процесс) и
какие ресурсы она потребляет. Это так называемые роли стрелок – IСOМ:
·
I (Input) – вход, т. е. все то, что поступает в процесс или
используется процессом;
·
С (Control) – управление или ограничение на выполнение операций
процесса;
·
О (Output) – выход или результат процесса;
·
М (Mechanism) – механизм, который используется для выполнения
процесса.
Методология IDEF0 однозначно определяет,
каким образом изображаются на диаграммах стрелки каждого вида ICOM. Стрелка
Вход (Input) выходит из левой стороны рамки рабочего поля и входит слева в
прямоугольник процесса. Стрелка Управление (Control) входит сверху. Стрелка
Выход (Output) выходит из правой стороны процесса и входит в левую сторону
рамки. Стрелка Механизм (Mechanism) входит в прямоугольник процесса снизу.
Для иллюстрации основных идей методологии
IDEF-SADT рассмотрим следующий пример. В качестве процесса представим
функционирование системы «Учет успеваемости студентов в деканате». Входом для
данного процесса является информация об абитуриентах, специальностях подготовки
студентов, совокупность дисциплин, преподаваемых в вузе. Выходом – различного
рода сводки по успеваемости студентов, данные для диплома. При этом
управляющими факторами является различного рода нормативная документация,
регламентирующая обучение студентов в вузе (правила приема, приказы,
образовательные стандарты и т.п.). Механизмом данного процесса является
сотрудник деканата.
Пример представления системы «Учет
успеваемости студентов в деканате» изображен на рис. 2.3.
Рис. 2.2. Фрагмент функциональной модели
Одной из наиболее важных особенностей
методологии IDEF-SADT является постепенное введение все более детальных
представлений модели системы по мере разработки отдельных диаграмм.
Построение модели IDEF-SADT начинается с
представления всей системы в виде простейшей диаграммы, состоящей из одного
блока процесса и стрелок IСOМ (рис.2.4), служащих для изображения основных
видов взаимодействия с объектами вне системы (самый верхний уровень
моделирования).
Поскольку исходный процесс представляет
всю систему как единое целое, данное представление является наиболее общим и
абстрактным и подлежит дальнейшей декомпозиции.
Рис. 2.3. Фрагмент функциональной модели
верхнего уровня
В конечном итоге модель IDEF-SADT
представляет собой серию иерархически взаимосвязанных диаграмм с
сопроводительной документацией в виде словарей, которая разбивает исходное
представление сложной системы на отдельные составные (конкретизированные)
части. Детали каждого из основных процессов представляются в виде более
детальных процессов на других диаграммах. В этом случае каждая диаграмма
нижнего уровня является декомпозицией некоторого процесса из более общей
диаграммы. В итоге получаем несколько уровней диаграмм, описывающих
функциональность всей системы.
В настоящее время диаграммы структурного
системного анализа IDEF-SADT продолжают использоваться целым рядом организаций
для построения и детального анализа функциональных моделей как существующих на
предприятии бизнес-процессов, так и для разработки новых. Основной недостаток
данной методологии связан с отсутствием явных средств объектно-ориентированного
представления моделей сложных систем. Хотя некоторые аналитики отмечают
важность знания и применения нотации IDEF-SADT, ограниченные возможности этой
методологии применительно к реализации соответствующих графических моделей в
объектно-ориентированном программном коде существенно сужают диапазон решаемых
с ее помощью задач.
Диаграммы информационного
моделирования. Структуризация (объединение
информационных объектов в систему) на верхнем уровне производится с
использованием уже рассмотренных выше графовых структур (моделей) сетевого или
иерархического типа (диаграммы ERD). При структуризации информационных объектов
на нижнем уровне (объединении сведений или данных о них в некоторую систему) в
дополнение к рассмотренным выше сетевым и иерархическим моделям применяется
методология IDEF1X, основанная на концепции «Сущность-Связь». Это есть
инструмент для анализа информационной структуры систем различной природы.
Метод IDEF1, разработанный Т. Рэмей (T.
Ramey), также основан на подходе П. Чена и позволяет построить модель данных,
эквивалентную реляционной модели. В настоящее время на основе совершенствования
методологии IDEF1 создана ее новая версия – методология IDEF1X. IDEF1X
разработана с учетом таких требований, как простота изучения и возможность
автоматизации. IDEF1X-диаграммы используются рядом распространенных
CASE-средств (в частности, ERwin, Design/IDEF).
Важнейшая цель информационной модели
заключается в выработке непротиворечивой интерпретации данных и взаимосвязей
между ними с целью совместного использования данных и управления их
целостностью.
Процесс построения информационной модели
состоит из следующих шагов:
·
определение сущностей;
·
определение зависимостей между сущностями;
·
задание первичных и альтернативных ключей;
·
определение атрибутов сущностей;
·
приведение модели к требуемому уровню нормальной формы.
На рис. 2.5 приведен фрагмент
информационной модели предметной области «Обучение студента в вузе».
Рис. 2.4. Информационная модель предметной
области
Использование структурного подхода при
разработке сначала моделей предметной области, а затем, на ее основе – самой
информационно-поисковой системы, несомненно, является целесообразным,
поскольку:
·
появляется возможность эффективной разработки сложных
информационных систем (при проектировании системы одновременно и согласованно
могут работать нескольких аналитиков или программистов);
·
упрощается процесс проверки работоспособности как системы в целом,
так и отдельных блоков (каждый из этих блоков представляет собой функционально
завершенный фрагмент);
·
обеспечивается возможность модернизации систем, например, замены
ненадежных блоков с сохранением их интерфейсов;
·
предоставляется возможность повторного использования отдельных
модулей информационных систем.
Сегодня на уроке мы с вами разберём
один из важных примеров в жизни современного общества. Построим и исследуем
модель финансовой системы.
Сегодня на уроке мы с вами:
·
Построим
структурную модель;
·
Опишем
иерархическую структуру данных и определим необходимый набор параметров для
каждого типа объектов;
·
Опишем таблицы
для всех типов объектов и организуем связи между таблицами.
Прежде чем приступить к построению
структурной модели, давайте вспомним, что такое структурная модель системы.
Структурная модель системы упорядочивает элементы системы и
описывает их взаимосвязи.
Различают три основных типа
структурных моделей системы – это табличный, иерархический и сетевой тип.
Табличная модель построена на взаимоотношениях её
частей.
Данные этого типа размещаются в
таблицах и представляют собой однородные объекты с равноправными связями.
Иерархическая модель представляет собой совокупность
элементов, расположенных в порядке подчинения одного элемента другому.
К таким моделям относятся графы.
Граф – это графическое отображение
структурной модели; состоит из вершин и линий (рёбер и дуг).
Модель, построенная по сетевому типу,
напоминает иерархическую. Она также имеет вершины, уровни и связи, но здесь
принята свободная связь между элементами разных уровней.
Теперь мы можем приступить к
построению структурной модели финансовой системы.
В качестве объекта для моделирования, то
есть в качестве предметной области, выберем процесс оформления кредита в
банке.
Построение модели начинается с
системного анализа предметной области. В данном случае предметной областью
является работа кредитного отдела банка.
Выступим в роли системных аналитиков.
Приступим к построению модели.
Финансовая задача, по сути, является
очень сложной. Так как для того, чтобы правильно оформить кредит в банке, нужно
пройти несколько этапов, которые сейчас мы с вами и опишем.
Итак, первый, подготовительный
этап.
На этом этапе происходит поиск
информации о банке, по типам, предоставляемых им кредитов и процентных ставках.
Здесь от нашей информационной модели
потребуются сведения о том, где находится данный банк, то есть удобно ли будет
клиенту погашать кредит, уровень банка и его репутация, а главное условия
получения кредита.
На втором этапе происходит приём документов от
кредиторов и оформление соответствующей документации.
Здесь работники кредитного отдела
будут получать, и обрабатывать информацию, поступающую от клиентов, желающих
получить кредит.
Далее, на третьем этапе,
работники банка проверяют платёжеспособность кредитора и его кредитную историю.
То есть проверяют информацию, брал ли клиент кредиты в других банках, были ли у
него задолженности.
На этом этапе работники банка будут
заносить в информационную базу результаты проверки клиента.
На четвёртом этапе, происходит
процедура принятия решения, по результатам анализа документов и проверок.
Здесь в систему вносятся
окончательные результаты, информацию для каждого клиента о том, одобрен банком
кредит или нет.
На всех этих этапах происходит
получение, хранение, обработка и передача информации, то есть выполняются
информационные процессы.
Представим все этапы кредитования
населения в форме иерархической структуры в виде графа.
Главная вершина нашего графа – это
кредитный отдел банка. Далее следуют виды кредитов, которые данный
банк предоставляет. Например, ипотека, автокредит, потребительский кредит и
другие. Затем, будут следовать конкретные типы кредитов, например,
автокредит можно оформить на новый автомобиль из салона или на подержанный
автомобиль. Также есть другие варианты автокредитов. Потребительский кредит
можно, например, получить наличными деньгами или кредитную карту. Теперь будут
следовать конкретные люди, которым одобрили получение кредита в данном банке.
За каждой из вершин этого графа
скрывается пакет данных по каждому из названных объектов.
Эти пакеты данных представим в виде
таблицы, то есть получим структуру данных в форме табличной модели.
Для каждого уровня, полученного нами графа-дерево,
создаётся таблица своего типа.
Построим таблицу для видов
кредитования.
Также каждый банк назначает
кредитному отделу план кредитования на год. Построим таблицу кредитования
населения с учётом плана.
Данные таблицы представляют собой
экземпляры таблиц, вид кредитования и кредитование населения с учётом плана.
При описании структуры таблицы
достаточно указать её имя и перечислить заголовки всех столбцов.
Третий уровень дерева начинает
формироваться на втором этапе работы кредитного отдела. В это время клиенты
банка заполняют анкету-заявление для получения кредита, подают необходимые
документы (копии паспорта, справку о доходах). Каждому кредитору присваивается
его личный идентификатор – номер регистрации. Далее под этим
номером он будет фигурировать во всех документах.
На каждого кредитора готовится анкета,
назовём её «Кредиторы», куда заносятся его исходные данные (фамилия,
имя, отчество, дата рождения, регистрация и другие сведения, необходимые
кредитному отделу банка). Также сведения о сумме и сроке займа.
На третьем этапе, в процессе
проверок, которые проводит служба безопасности банка, в анкету будут заноситься
их результаты. Последней записью в анкете будет запись «одобрено» или
«отказано». Всю таблицу с перечисленными данными назовём Кредиторы.
Теперь нужно разобраться со следующим
вопросам: как три полученные нами таблицы связаны между собой. Между ними есть
связь, она отражена в графе-дерево, который мы с вами построили ранее.
Все эти таблицы связаны, за счёт
имеющихся в них общих или совпадающих полей.
В таблицах «Вид кредитования» и
«Кредитование населения с учётом плана» есть общее поле «Вид кредита». В таблицах «Вид кредитования» и
«Кредиторы» есть общее поле «Документы». Благодаря этому всегда
можно понять, какой кредит хочет оформить данный клиент, а через название
кредита можно узнать тип кредитования.
Подведём итог нашего
сегодняшнего урока.
Нами построена структура данных,
состоящая из трёх взаимосвязанных таблиц, которые являются табличной формой
информационной модели предметной области «Кредитный отдел в банке».
Перейдём к практической части урока.
Первое задание. Решим задачу будущего. Нам нужно в
графическом редакторе построить сетевую модель по имеющемуся словесному
описанию и ответить на вопрос: можно ли добраться от Земли до Марса?
Вокруг Солнца движутся девять планет
в следующем порядке, начиная от Солнца: четыре сравнительно небольшие планеты
земной группы (Меркурий, Венера, Земля и Марс), четыре планеты-гиганта (Юпитер,
Сатурн, Уран, Нептун), затем идёт малоизученная карликовая планета Плутон.
Между планетами Солнечной системы и
карликовой планетой Плутон введено космическое сообщение. Ракеты летают
по следующим маршрутам туда и обратно: Земля – Меркурий, Плутон – Венера, Земля
– Плутон, Плутон – Меркурий, Меркурий – Венера, Уран – Нептун, Нептун – Сатурн,
Нептун – Венера, Сатурн – Юпитер, Юпитер – Марс и Марс – Уран.
Для того чтобы ответить на вопрос:
можно ли добраться от Земли до Марса? Рассмотрим полученную сетевую модель.
Напомним, отличие сетевой модели от
иерархической заключается в том, что каждый элемент в сетевой структуре может
быть связан с любым другим элементом.
Теперь, по сетевой модели видно, что добраться
от Земли до Марса можно, например, по следующему маршруту: Земля – Плутон,
Плутон – Венера, Венера – Нептун, Нептун – Уран, Уран – Марс.
Ответ: Да, можно от Земли добраться
до Марса.
Второе задание. Продолжаем космическую тему. Нам
нужно построить табличную модель по имеющемуся словесному описанию и ответить
на вопросы: «Какая звезда самая удалённая? Какая звезда самая близкая? Какая
звезда самая яркая?».
По словесному описанию трудно сразу
же ответить на поставленные вопросы. Всю эту информацию нужно
систематизировать. Для этого мы построим табличную модель по имеющемуся
словесному описанию.
По данным вопросам, можно сказать,
что в нашей таблице будет столбец с названием «Звезда», «Расстояние
(световых лет)» и «Во сколько раз ярче Солнца». Создадим ещё столбец с
названием «Созвездие».
Приступим к построению табличной
модели.
Полярная звезда находится в созвездии
Малая Медведица. Бетельгейзе находится в созвездии Орион. Расстояние до Спики –
260 световых лет. Денеб находится в созвездии Лебедь. Акрукс ярче Солнца в 2
200 раз. Расстояние до Бетельгейзе – 650 световых лет. Ригель ярче Солнца в 55
000 раз. Канопус находится в созвездии Стрекоза. Расстояние до Капеллы – 46
световых лет. Спика находится в созвездии Дева. Бетельгейзе ярче Солнца в 22
000 раз. Расстояние до Акрукса – 260 световых лет. Денеб ярче Солнца в 72 500
раз. Расстояние до Канопуса – 181 световой год. Капелла ярче Солнца в 150 раз.
Расстояние до Полярной звезды – 780 световых лет. Ригель находится в созвездии
Орион. Спика ярче Солнца в 2 200 раз. Акрукс находится в созвездии Южный Крест.
Расстояние до Денеба 1600 световых лет. Канопус ярче Солнца в 6 600 раз.
Капелла находится в созвездии Возничий. Полярная звезда ярче Солнца в 6000 раз.
Расстояние до Ригеля – 820 световых лет.
Теперь сравнивая расстояния в столбце
«Расстояние (световых лет)» можно сделать вывод, что самая удалённая
звезда – Денеб, она находится в созвездии Лебедь, расстояние до неё 1600
световых лет, а самая близкая звезда – Капелла, которая находится
в созвездии Возничий, расстояние до неё 46 световых лет. Сравнивая значения в
столбце «Во сколько раз ярче Солнца», получим ответ, что самая яркая
звезда Денеб, она ярче Солнца в 72500 раз.
Подведём итоги урока.
Сегодня на уроке, при построении
структурной модели мы:
·
Определили
предметную область моделирования.
·
Описали
иерархическую структуру данных и определили необходимый набор параметров для
каждого типа объектов;
·
Описали
таблицы для всех типов объектов;
·
Организовали
связи между таблицами.