В этом разделе приведены графические нотации некоторых информационных моделей, поддерживающих методы структурной методологии. Описание и предназначение методов уже было дано в разд. 3.2.3. Поскольку нотация языков моделирования значительно проще нотации языков программирования, то можно достаточно компактно привести изображения базовых строительных блоков (без правил, определяющих, как эти блоки могут сочетаться между собой). Мы предлагаем использовать материал данного раздела в качестве краткого справочника.
На рис. 4.11 приведена нотация диаграммы потока данных в варианте Гейна-Сарсона.
На рис, 4.12 также приведена нотация диаграммы потока данных, но в варианте Йордона.
1.2. Диаграммы функционального моделирования
На рис. 4.13 приведена нотация диаграммы функционального моделирования.
Рис. 4.14 демонстрирует пять типов взаимосвязей между блоками.
1.3. Диаграммы "сущность-связь"
На рис. 4.15 приведена нотация диаграммы "сущность-связь".
2. Моделирование на основе объектно-ориентированной методологии
В этом разделе мы приведем графические или текстовые нотации некоторых информационных моделей, поддерживающих методы объектно-ориентированной методологии. Описание и предназначение методов также было дано в разд. 3.2.3. Еще раз подчеркнем, что поскольку нотация языков моделирования значительно проще нотации языков программирования, то можно достаточно компактно привести изображения базовых строительных блоков (без правил, определяющих, как эти блоки могут сочетаться между собой). Предлагается использовать материал данного раздела в качестве краткого справочника.
2.1 . Язык описания архитектур ACME
Данный язык имеет и текстовую, и графическую нотацию представления элементов.
Тестовое формализованное описание системы клиент-сервер на языке ACME [Ахтырченко, Леонтьев 2001] приведено в листинге 4.2.
Листинг 4.2. Пример описания системы на языке ACME
System simple_cs={
Component server=(Port receive-request}
Connector rpc={ Roles {caller, receiver}}
Client.send-request to rpc-caller;
Server.receive-request to rpc-receiver}
2.2. КОК-карты (класс-ответственность-кооперация)
На рис. 4.16 приведена нотация карт класс-ответственность-кооперация.
|
|
|
|
|
|
|
|
Рис. 4.16. Нотация КОК-карт
Язык UML включает три вида строительных блоков [Буч, Рамбо, Джекобсон 2000]. (подробнее см. введение в язык UML)
На рис. 4.17 приведена нотация диаграммы классов.
Для отдельных классов сначала может быть указано только имя класса (рис. 4.17, а), а при дальнейшей разработке - добавлены атрибуты и операции класса (рис. 4.17, б). На рис. 4.17, в изображена схема задания отношения бинарной ассоциации между классами.
Нотация четырех типов отношений между классами приведена на рис. 4.18. Каждому типу отношений соответствует свое изображение связи.
2.5. Диаграммы вариантов использования
На рис. 4.19 приведена нотация диаграммы вариантов использования.
На рис. 4.20 приведена нотация диаграммы состояний.
Для отдельных состояний может быть указано либо только имя состояния (рис. 4.20, а), либо имя и список внутренних действий или переходов в данном состоянии (рис. 4.20, б). На рис. 4.20, в приведен переход между состояниями, а на рис. 4.20, г - графическое изображение начального и конечного состояний.
На рис. 4.21 приведена нотация диаграммы деятельности.
На рис. 4.21, а приведено графическое изображение состояния действия. На рис. 4.21, б приведен пример ветвления, а на рис. 4.21, в и 4.21, г - графическое изображение разделения и слияния параллельных потоков управления.
2.8. Диаграммы последовательности
На рис. 4.22, а приведен простейший графический примитив диаграммы последовательности. Фокус управления изображается в форме вытянутого узкого прямоугольника (рис. 4.22, б).
На рис. 4.23 приведено графическое изображение различных видов сообщений между объектами на диаграмме.
На рис. 4.24 и 4.25 приведена нотация диаграмм кооперации уровня спецификации и уровня примеров соответственно.
На рис. 4.26 приведена нотация диаграммы компонентов.
Компоненты различных видов имеют свои изображения, представленные на рис. 4.27:
На рис. 4.28 приведен пример использования нотации диаграммы развертывания.
Мы уже отметили, что данные - это отдельные элементы, .которые могут быть собраны вместе некоторым образом. Термин "данные" происходит от латинского "datum", означающего "факт". Однако данные могут описывать и нечто, не имеющее место в реальной действительности.
Моделью данных будем называть средство, позволяющее реализовать интерпретацию данных в соответствии с указанными требованиями. Модель данных является средством абстрагирования, дающим возможность увидеть информационное содержание данных, а не их конкретные значения. Модели данных разделяются на два класса.
Модель данных определяет правила порождения допустимых структур данных и возможные операции над такими структурами. Это связано с ограничениями, вытекающими из особенностей используемых типов структур данных и операций, которые можно выполнять над структурами. Структуризация основывается на использовании отношений типа обобщение и агрегация.
Языки моделирования данных являются комбинацией, по крайней мере, двух языков:
Основные компоненты модели данных:
3.2. Реляционная модель данных
Реляционная модель данных - это способ рассмотрения данных, т. е. предписание для способа представления данных (посредством таблиц) и для способа работы с таким представлением (посредством операторов) [Дейт 2000].
Реляционную модель можно рассматривать как набор двумерных таблиц, где вертикальные колонки соответствуют элементам данных или полям, а горизонтальные строки образуют связь между этими элементами. Разработка модели включает идентификацию объектов, их атрибутов и первичных ключей.
Первичный ключ - атрибут или набор атрибутов, который может быть использован для однозначной идентификации строки таблицы.
Основными проблемами работы с данными является достижение непротиворечивости данных и отсутствие их дублирования. Эти задачи решаются с помощью нормализации. Концепции и методы нормализации были разработаны Эдгаром Коддом (Edgar Codd). На рис. 4.29 изображен процесс нормализации.
Процесс нормализации, вообще говоря, не ограничивается третьей нормальной формой, но ее, в большинстве случаев, вполне достаточно для обеспечения непротиворечивости и отсутствия дублирования.
В первой половине 70-х годов XX века велись споры о преимуществах трех моделей данных:
Эти споры завершились "ничейным" исходом в открытой дискуссии Бахмана и Кодда в 1975 году. В настоящее время сформировалась новая тройка конкурентов.
Знание - это препятствие на пути неизвестности.
С. Паронен
Знание - особый, специфический вид информации. Знание характеризуется очень важным свойством - активностью, т. е. способностью самостоятельно обрабатывать информацию. Знание традиционно разделяется на два вида: декларативное и процедурное.
Существует ряд более детальных классификаций. Например, классификация Лаврова [Лавров 1986] включает следующие типы знаний:
4.2. Модели представления знаний
Существует две основных модели представления знаний - логическая и эвристическая [Попов 1987].
В основе логических моделей лежит понятие формальной системы (теории). В формальных системах можно выделить множество базовых элементов, синтаксических правил, аксиом и правил вывода. Применяя правила вывода к аксиомам, можно получать синтаксически правильные совокупности, к которым можно снова применить правила. Правила вывода - наиболее сложная составляющая системы. Примеры формальных теорий - исчисление предикатов, конкретные системы продукций. В логических моделях отношения между отдельными единицами знаний выражаются только с помощью тех небогатых средств, которые предоставляются синтаксическими правилами используемой формальной системы.
В отличие от формальной модели, эвристические модели имеют разнообразный набор средств, передающих специфические особенности той или иной проблемной области. Здесь повышается эффективность использования правил вывода. Среди эвристических моделей можно выделить три основные группы.
4.3. Метрики левой и правой моделей мира
Головной мозг - это орган, которым мы думаем, будто мы думаем.
А. Бирс
Модели представления знаний во многом определяются человеческим восприятием модели мира. Как известно, мозг человека состоит из двух полушарий, каждое из которых по-своему преобразует информацию [Грановская, Березная 1991]. Данная особенность организации мозга с возрастом и развитием человека усиливается и оказывается столь существенной, что постепенно оба полушария начинают совсем по-разному участвовать во всех психических процессах.
Каждое полушарие мозга получает информацию только от одной половины поля зрения, однако образ строится целостный - обо всем поле. Получая половину картины, каждое полушарие стремится к завершению образа, т. е. достраивает объект, но делает это на свой манер. Правое полушарие,, сохраняя целостность образа, усиливает в нем стереотипность за счет упрощения деталей, левое - удерживает отдельные детали, не сохраняя целостности.
Модель мира как представление о себе и мире составляет центральную часть психической жизни человека. Эту модель можно представить в виде взаимодействия нескольких крупных блоков: высших психических функций, структуры ценностей, системы психологической защиты. Построение внутренней модели мира осуществляется в памяти в большей мере по законам доминирующего полушария.
Память - это процесс запечатления, сохранения и воспроизведения следов прошлого опыта. Допуская экстраполяцию и интерполяцию, память раздвигает границы восприятия временных и пространственных характеристик.
Левополушарная память обнаруживает себя как хранилище знаний, выраженных словами, символами, значениями и отношениями между ними в формулах и алгоритмах. Относящаяся к ней семантическая память - это "умственный лексикон" абстрактного знания, хранимый без ссылки на обстоятельства, при которых оно приобретено. Осуществляемое в ней обобщение, с одной стороны, обогащает память за счет введения запоминаемого в рамки определенных категорий, а с другой - обедняет ее за счет сохранения в понятиях только типовых деталей.
Правополушарная память - эпизодическая, данная в контексте, в противоположность левополушарной памяти - классифицированной по различным основаниям и данной вне контекста. Использование первой дает возможность быстро узнавать., а второй - произвольно воспроизводить и экстраполировать свойства объектов, повышая предсказуемость ситуации.
Все сказанное о памяти подводит к выводу, что специфика правого и левого полушарий определяется используемым способом объединения материала. Правополушарная классификация - ситуативная, она опирается на практический опыт человека, а левополушарная - категориальная, основанная на логике и понятийном мышлении.