Дисциплина "САПР в компьютерно - интегрированном производстве" Блок 1.3 Основы системологии 2 Московский государственный технический университет им. Н.Э.Баумана.

Презентация:



Advertisements
Похожие презентации
WORK WITH UML Универсальный язык моделирования (UML) Studybook for students Author Dudnik Oxana.
Advertisements

Унифицированный язык моделирования UML является графическим языком для визуализации, конструирования и документирования систем, в которых большая роль.
Теория экономических информационных систем Семантические модели данных.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Методология объектно- ориентированного программирования.
Методология IDEF1X (IDEF1 Extended) – язык для семантического моделирования данных, основанных на концепции « сущность - связь ». Является расширением.
1 Диаграммы реализации (implementation diagrams).
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Методология информационного моделирования IDEF1X.
Алгоритм. Алгоритм это точно определённая инструкция, последовательно применяя которую к исходным данным, можно получить решение задачи. Для каждого алгоритма.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Даталогическое проектирование. 1. Представление концептуальной модели средствами модели данных СУБД Общие представления о моделях данных СУБД С одной.
Диаграммы UML Диаграмма вариантов использования. Основные вопросы Назначение диаграммы вариантов использования Компоненты диаграммы вариантов использования.
Structure Analysis and Design Technique (SADT) Методология: графическое представление блочного моделирования графическое представление блочного моделирования.
Определения Банк данных (БнД) это система специальным образом организованных дан­ных - баз данных, программных, технических, языковых, организационно-
Алгоритмический подход – главное алгоритм решения задачи ( в основном, используется для вычислительных задач ); Структурное программирование – декомпозиция,
Стандарт IDEF1X Рассмотрим методологию IDEF1X. Методология IDEF1X представляет собой формализованный язык семантического (контекстного) моделирования данных,
Разработка объектно- ориентированного ПО Итеративная модель разработки (развитие водопадной модели) анализ проектирование кодирование тестирование.
Докладчик: Проектирование информационных систем всегда начинается с определения цели проекта. Основная задача любого успешного проекта.
Транксрипт:

Дисциплина "САПР в компьютерно - интегрированном производстве" Блок 1.3 Основы системологии 2 Московский государственный технический университет им. Н.Э.Баумана Факультет Робототехники и комплексной автоматизации (РК) Кафедра Компьютерные системы автоматизации производства (РК9) д.т.н., проф. Евгенев Г.Б.

Содержание модуля 1. Онтология инженерных знаний Онтология инженерных знаний Онтология инженерных знаний 2. Модели и алгоритмы. Стандарт IDEF1X Модели и алгоритмыСтандарт IDEF1X Модели и алгоритмыСтандарт IDEF1X 3. Объектно-ориентированные методы проектирования Объектно-ориентированные методы проектирования Объектно-ориентированные методы проектирования 4. Унифицированный язык моделирования UML Унифицированный язык моделирования UML Унифицированный язык моделирования UML 5. Многоагентные системы автоматизации проектирования Многоагентные системы автоматизации проектирования Многоагентные системы автоматизации проектирования

Онтология инженерных знаний В последнее время в области работ по искусственному интеллекту (ИИ), включая интеллектуализацию информационного поиска и создание многоагентных систем, возрастающее внимание привлекают исследования онтологий и онтологических систем. Термин онтология происходит от древнегреческих слов онтос – сущее и логос – учение. С точки зрения проблем, связанных с ИИ, онтология – это эксплицитная (явная) спецификация концептуализации знаний. Формально предметная онтология состоит из иерархии понятий, их определений и атрибутов, а также связанных с ними аксиом и правил вывода. Под формальной моделью онтологии O понимают упорядоченную тройку вида O =, где C – конечное множество концептов (понятий) предметной области, которую представляет онтология O ; R – конечное множество отношений между концептами (понятиями) заданной предметной области (ПрО); F – конечное множество функций интерпретации (аксиоматизация), заданных на концептах и/или отношениях онтологии O. Естественными ограничениями, накладываемыми на множество C, являются конечность и непустота. Что касается множеств R и F, то они могут быть пустыми, что соответствует частным видам онтологии.

Классификация моделей предметных онтологий Класс Компоненты модели Формальное определение модели Пояснение RF 1 R= R= F= F= O= O= Словарь понятий Онтология первого класса при R= и F= трансформируется в простой словарь. Онтологии - словари полезны для спецификации, пополнения и поддержки словарей прикладной области. Такие словари не вводят явно смысла терминов. В области технических знаний, в которых смыслы понятий хорошо согласованы и во многом стандартизованы, такие онтологии применяются на практике. Другими примерами таких онтологий являются индексы машин поиска информации в сети Интернет.

Классификация моделей предметных онтологий Класс Компоненты модели Формальное определение модели Пояснение RF 2 R= R= F O= O= Пассивный словарь В более общих случаях необходимо явно определять смысл терминов словаря с помощью соответствующей аксиоматизации F, целью применения которой является исключение нежелательных моделей и единство интерпретации для всех пользователей. Онтология второго класса соответствует непустому множеству функций интерпретации, т.е. наличию аксиоматизации. В этом случае каждому понятию из C может быть поставлена в соответствие функция интерпретации f из F.

Аксиоматизация понятий Формально аксиоматизация понятий вводится с помощью функций интерпретации. Такие функции вводятся следующим образом. Пусть C = C1 C2, где C1 – множество интерпретируемых понятий, а C2 – множество интерпретирующих терминов. Тогда (y C1; x1, x2,, xk C2) (y C1; x1, x2,, xk C2) такие, что y = f(x1, x2,, xk), где f F. Введение в рассмотрение функции k аргументов призвано обеспечить более полную интерпретацию, Вид отображения f F определяет выразительную мощность и практическую полезность этого вида онтологии Если считать, что функция интерпретации f задается оператором присваивания (C1:=C2), то онтология трансформируется в пассивный словарь Vp. O= Vp =. Такой словарь пассивен, так как формируется с помощью декларативной функции присваивания, не содержащей каких-либо процедур преобразований.

Примеры функций интерпретации F y C 1 x 1, x 2,, x k C 1 f1f1f1f1Изделие Предмет или набор предметов, подлежащих изготовлению на предприятии f2f2f2f2Комплекс Два или более специфицированных изделия, не соединенных на предприятии-изготовителе сборочными операциями, но предназначенных для выполнения взаимосвязанных эксплуатационных функций f3f3f3f3Комплект Два или более специфицированных изделия, не соединенных на предприятии-изготовителе сборочными операциями и представляющих собой набор изделий, имеющих общее эксплуатационное назначение вспомогательного характера f4f4f4f4 Сборочная единица Изделие, составные части которого подлежат соединению между собой на предприятии- изготовителе сборочными операциями f5f5f5f5Деталь Изделие, изготовленное из однородного по наименованию и марке материала без применения сборочных операций

Классификация моделей предметных онтологий Класс Компоненты модели Формальное определение модели Пояснение RF 3 R={is a} F= F= O= O= Таксономия понятий Онтологии класса словарей (R= ) полезны, но малопродуктивны для автоматизации инженерного проектирования. Для создания интеллектуальных САПР необходимы семантические сети, в которых понятия связываются друг с другом различными отношениями. К числу основных отношений такого типа относится родовидовое отношение ЕСТЬ-НЕКОТОРЫЙ или в английской нотации is a. На базе родовидовых отношений строятся обобщения понятий и разного рода классификаторы. Иерархическая система понятий, связанных между собой отношением is a (быть элементом класса) называется таксономической структурой. Этой структуре соответствует специальный подкласс онтологий,- простая таксономия: O =To =. Отношение is a имеет фиксированную заранее семантику и позволяет организовать структуру понятий онтологии в виде дерева.

Классификация моделей предметных онтологий Класс Компоненты модели Формальное определение модели Пояснение RF 4 R={part of} F= F= O= O= Мерономия понятий Вторым важнейшим классом отношений между понятиями является отношение типа целое-часть, с помощью которого осуществляется абстракция агрегации понятий. В русской нотации это отношение обозначается СОСТОИТ-ИЗ, а в английской part of. С помощью этого отношения сложное понятие раскрывается посредством его декомпозиции на составляющие компоненты. Иерархическая система понятий, связанных между собой отношениемpart of («быть частью») называется мерономической структурой. Этой структуре соответствует подкласс онтологий – простая мерономия O= Mo = O= Mo =

Классификация моделей предметных онтологий Класс Компоненты модели Формальное определение модели Пояснение RF 5 R={is a, part of} F= F= O= O= Метасистема понятий Понятия, связанные между собой как родовидовыми отношениями is a, так и отношениями включения part of, образуют метасистему понятий.

Метасистема понятий part of is a is a is a Изделие Комплекс Комплект Сборочная единица Деталь part of part of part of

Формальная модель онтологической системы Под формальной моделью онтологической системы o понимают триплет вида: o =, o =, где O meta – онтология верхнего уровня (метаонтология); {O d&f }={O d } {O f } – множество предметных онтологий и онтологий задач предметной области; inf – модель машины вывода, ассоциированной с онтологической системой o. inf – модель машины вывода, ассоциированной с онтологической системой o. В модели o имеются три онтологические компоненты: метаонтология; метаонтология; предметная онтология; предметная онтология; онтология задач. онтология задач.

МетаонтологияM In OutCMc Метаонтология оперирует общими концептами и отношениями, которые не зависят от конкретной предметной области. Метаонтология должна содержать концепты и отношения, необходимые как для предметной онтологии, так и для онтологии задач. Последние в совокупности должны обеспечивать построение операциональной модели M предметной области. На основе этой модели производится преобразование исходных данных In, необходимых для автоматизированного проектирования изделий и технологических процессов их изготовления, в выходные данные Out, содержащие модель результатов инженерного проектирования.

Операциональная модель Операциональная модель M представляет собой совокупность концептуальной структуры Sk, отражающей понятийную структуру предметной области, и функциональной структуры Sf, моделирующей функции преобразования входных данных In в выходные Out. Sk представляет собой синтаксический аспект предметной онтологии, содержащий описание семантики понятий, а Sf – синтаксический аспект онтологии задач, содержащий смысловое содержание этих задач. M = (Sk, Sf) Sk выступает как пассивная компонента, содержащая данные, а Sf – как активная компонента, преобразующая данные.

Структура онтологической системы UML IDEF0 Метаонтология Предметная онтология Онтологиязадач Согласованиесловарей

Онтология и системология Системологические уровни знаний Виды онтологий УРОВНИ 4, 5 МЕТАСИСТЕМЫ (отношения между определенными ниже отношениями) ОНТОЛОГИИ: ПРЕДМЕТНАЯ и ЗАДАЧ УРОВЕНЬ 3 СТРУКТУРИРОВАННЫЕ СИСТЕМЫ (отношения между определенными ниже системами) УРОВЕНЬ 2 ПОРОЖДАЮЩИЕСИСТЕМЫ (модели, генерирующие определенные ниже данные) ОНТОЛОГИЯ ЗАДАЧ УРОВЕНЬ 1 СИСТЕМЫ ДАННЫХ (данные, структура которых определена ниже) ПРЕДМЕТНАЯ ОНТОЛОГИЯ УРОВЕНЬ 0 ИСХОДНЫЕ СИСТЕМЫ (язык определения данных)

Модели и алгоритмы Модель и алгоритм, - фундаментальные понятия математики и информатики. Под моделью понимают определенное множество абстрактных объектов или несколько множеств таких объектов разной природы, отличающихся условно приписываемыми им именами, в совокупности с заданной системой отношений между элементами этих множеств. Модель и алгоритм, - фундаментальные понятия математики и информатики. Под моделью понимают определенное множество абстрактных объектов или несколько множеств таких объектов разной природы, отличающихся условно приписываемыми им именами, в совокупности с заданной системой отношений между элементами этих множеств. Алгоритм - это точное предписание последовательности действий, необходимых для получения искомого результата. Алгоритм - это точное предписание последовательности действий, необходимых для получения искомого результата. В настоящее время модель в большинстве случаев используют лишь для формального описания объекта вычислений, определяя, что надо вычислить. Алгоритм как основа вычислительного процесса определяет, как нужно вычислять В настоящее время модель в большинстве случаев используют лишь для формального описания объекта вычислений, определяя, что надо вычислить. Алгоритм как основа вычислительного процесса определяет, как нужно вычислять Модели данных Модели знаний Данные Операционная среда (решатель) Операторы управления Модели данных Данные Операторы обработки Раздел данных Операторы обработки Операторы управления АлгоритмыМодели Этап 1 Этап 2 Этап 3

Системологическая таблица моделей Nпп Уровень знаний НаименованиемоделиМодель Носитель модели Сигнатурамодели0 Исходная система Модель данных объекта (понятие и его интенсионал) B = B = Словарь свойств объектов (множество атрибутов) A = {a1, a2,, ak} Схема отношения (содержание понятия) R k A A A Rk = (ai1, ai2,,aik) Ключ отношения Kp Rr, p k Схема отношени я R A1A1A2A2A3A3A4A4A5A5 Наименование детали Номер детали Диаметр оси стандартный, мм Длина оси стандартная, мм Ширина фаски стандартная, мм K = { A 1, A 2 } - ключ отношения r

Системологическая таблица моделей Nпп Уровень знаний НаименованиемоделиМодель Носитель модели Сигнатурамодели1 Система данных (экстенсионал понятия) E = E = Домены атрибутов (допустимые множества значений атрибутов) Di = dom (ai) Отношение со схемой Rk rk D1 D2 Dk Множество кортежей (денотатов понятия) rk = (di1, di2,, dik) ось гладкая ось с буртиком dom(A1) dom(A2)dom(A3) dom(A4) dom(A5) D1 D2D3 D4 D5 D = D 1 D 2 D 3 D 4 D 5 t1t1 K = { A 1, A 2 } - ключ отношения r Отношение r со схемой R - кортеж ось гладкая

Nпп Уровень знаний НаименованиемоделиМодель Носитель модели Сигнатурамодели2 Порожда ющая система Метод объекта: 1)математическ ая негеометрическ ая модель 2)геометрическ ая модель 3)модель экспертных знаний (продукционное правило) P = P = Свойства объекта и переменные метода Числовые константы и переменные, функции, математические и логические отношения, операторы и операции Точки, линии, поверхности, тела Числовые и нечисловые переменные: входные Vi u(i)=0, выходные Vi u(i)=1, где u(i)- определитель вход выход Функциональное отображение F V1 V2 Vr Системы уравнений и неравенств Объединения, пересечения, вычитания преобразования, расчеты параметров. Отображение входных переменных в выходные Системологическая таблица моделей Вход V1 Выход V3 Управление V2 Механизм F Наименование Модель экспертных знаний

Nпп Уровень знаний НаименованиемоделиМодель Носитель модели Сигнатурамодели3 Структу- рирован- ные системы: 1)исход- ная система 2)система данных 3)порож- дающая система Концептуальная модель системы объектов Модель системы экземпляров объектов Модель базы знаний (метод объекта) SB = SB = SD = SD = SP = SP = Объекты и их свойства B = {b1, b2,,bl} A = {a1, a2,,an} Экземпляры объектов и тип отношений между ними B = {b1, b2,,bl} G = {I, U, D} Правила и переменные модели F = {f1, f2,, fl} V = {v1, v2,, vn} Семантическая сеть объектов C B B A A Структура базы данных J B B G Семантическая сеть правил K F F V V Системологическая таблица моделей ОСЬ-ГЛАДКАЯ Обозначение (FK) Диаметр оси стандартный, мм ТОРЕЦ-ЛЕВЫЙ Обозначение (FK) Диаметр оси стандартный, мм ТОРЕЦ-ПРАВЫЙ Обозначение (FK) Диаметр оси исходный, мм Длина оси исходная, мм 1 Включает / Входит в 1 1 ЦИЛИНДР Обозначение (FK) Диаметр оси стандартный, мм Длина оси стандартная, мм Структурированная исходная система

Системологическая таблица моделей Nпп Уровень знаний НаименованиемоделиМодель Носитель модели Сигнатурамодели4.. Метасис- тема Многоагентная модель метасистемы MB = MB = Агенты и типы связей между ними B = {b1, b2,,bl} M = {AND, OR} И-ИЛИ граф агентов L B B M

Методика формирования моделей систем данных IDEF1X Для построения моделей систем данных произвольных предметных областей разработана стандартная методика IDEF1X, представляющая собой совокупность методов, правил и процедур. В методике IDEF1X выделяют следующие составляющие: 1. концепцию; 2. графический язык; 3. метод построения модели; 4. метод объединения моделей. Модель системы данных в IDEF1X содержит две основные компоненты: диаграмму, отображающую структурные характеристики модели и обеспечивающую выразительное представление ее ; диаграмму, отображающую структурные характеристики модели и обеспечивающую выразительное представление ее ; словарь, содержащий смысловое значение каждого элемента модели. словарь, содержащий смысловое значение каждого элемента модели.

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

Отношения связи Отношение связи - это связь между сущностями, при которой каждый экземпляр одной сущности (родителя) ассоциирован с произвольным количеством экземпляров другой сущности (потомком), а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности- родителя. Такое отношение называют отношением родитель- потомок. Отношению дается имя, выражаемое грамматическим оборотом глагола. Имя отношения всегда формулируется с точки зрения родителя, так что может быть образовано предложение, если соединить имя сущности - родителя, имя отношения и имя сущности- потомка. Отношение связи - это связь между сущностями, при которой каждый экземпляр одной сущности (родителя) ассоциирован с произвольным количеством экземпляров другой сущности (потомком), а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности- родителя. Такое отношение называют отношением родитель- потомок. Отношению дается имя, выражаемое грамматическим оборотом глагола. Имя отношения всегда формулируется с точки зрения родителя, так что может быть образовано предложение, если соединить имя сущности - родителя, имя отношения и имя сущности- потомка. Отношение дополнительно определяется с помощью указания мощности: какое количество экземпляров сущности- потомка может существовать для каждого экземпляра сущности- родителя. В IDEF1X имеются следующие мощности отношений: ноль, один или более; один или более (P); ноль или один (Z); в точности N (N). Отношение дополнительно определяется с помощью указания мощности: какое количество экземпляров сущности- потомка может существовать для каждого экземпляра сущности- родителя. В IDEF1X имеются следующие мощности отношений: ноль, один или более; один или более (P); ноль или один (Z); в точности N (N).

Типы отношений В IDEF1X рассматриваются следующие типы отношений: 1.Специфические отношения, в том числе: Идентифицирующие (I)Идентифицирующие (I) Неидентифицирующие (U) Неидентифицирующие (U) Отношения категоризации (D)Отношения категоризации (D) 2. Неспецифические отношения

Специфические отношения Специфические отношения родитель - потомок удовлетворяют следующим правилам: 1.Специфическое отношение всегда имеет место между двумя сущностями, объектом - родителем и объектом - потомком. 2.Экземпляр объекта-потомка всегда должен быть связан в точности с одним экземпляром объекта- родителя. 3.Экземпляр объекта-родителя может быть связан с любым числом (от нуля и более) экземпляров сущности-потомка; это число зависит от указанной мощности отношения. 4.В идентифицирующем отношении объект-потомок всегда является зависимым от идентификатора объекта-родителя. 5.Объект может быть связан с любым количеством других объектов в качестве как потомка, так и родителя. В идентифицирующих отношениях экземпляры объектов- потомков однозначно определяются своей связью с объектом - родителем. Такие отношения необходимы для агрегации понятий. В неидентифицирующих отношениях объект-потомок однозначно определяется без относительно его связи с объектом- родителем.

Виды отношений «целое-часть» Иерархическая подсхема Имя атрибута Сетевая подсхема Имя роли Неспецифическое отношение

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

Виды отношений «род-вид» Неполная категория Полная категория

Ключи На IDEF1X-диаграммах имена ключей располагаются внутри прямоугольников над горизонтальной чертой. Простой ключ состоит из единственного ключевого атрибута. Составной ключ состоит из более чем одного атрибута, каждый из которых располагается в отдельной строке над чертой и разделяются запятыми. Возможны альтернативные или эквивалентные ключи, которые могут быть также простыми или составными. Каждый альтернативный ключ помещается под горизонтальной чертой и заключаются в круглые скобки. В определенных случаях возникает миграция ключей, когда ключевые атрибуты перемещаются из одной сущности в другую. Миграция ключей подчиняется следующим правилам: 1.Миграция всегда имеет место в связанной паре из независимой в зависимую сущность. 2.Ключи в целом должны мигрировать по каждому отношению, разделяемому парой сущностей. 3.Неключевые атрибуты не мигрируют. Атрибуты, которые мигрируют из одного объекта в другой, называются наследуемыми или разделенными. Для того чтобы быть наследованным атрибутом, такой атрибут безусловно должен быть ключевым в объекте, из которого он мигрировал. Однако, наследованный атрибут не всегда должен быть ключевым в объекте, в который он мигрировал.

Диаграмма IDEF1X Редукторцилиндрический одноступенчатый /R2 Материал/ R3 Технологический процесс/ R5 Колесо зубчатое/ R4 Редуктор /R1 Обозначение редуктора Передаточное число Частота вращения выходная, об / мин Вращающий момент выходной, Нм Время работы передачи, ч Взаимное расположение входного и выходного валов Вид редуктора Обозначение редуктора Передаточное число Частота вращения выходная, об / мин Вращающий момент выходной, Нм Время работы передачи, ч Взаимное расположение входного и выходного валов … Обозначение редуктора Передаточное число Частота вращения выходная, об / мин Вращающий момент выходной, Нм Время работы передачи, ч Взаимное расположение входного и выходного валов Вид редуктора Марка материала колеса Термообработка колеса Марка материала шестерни Термообработка шестерни Межосевое расстояние, мм … Редуктор волновой /Rn Марка материала Стандарт Твердость сердцевины HB Знак твердости поверхности Величина твердости поверхности Обозначение редуктора Обозначение детали Наименование детали Марка материала Модуль, мм Число зубьев Угол наклона, град. Направление зуба Термообработка колеса Нормальный исходный контур Коэффициент смещения Степень точности Делительный диаметр, мм Величина твердости HB Радиусы скруглений, мм Наружный диаметр, мм Отклонение наружного диаметра, мм Ширина зубчатого венца, мм Длина ступицы, мм Основное отклонение длины ступицы Квалитет длины ступицы Шероховатость торца ступицы Ra, мкм … Обозначение редуктора Обозначение детали Обозначение технологического процесса N операции Код операции Наименование операции Содержание операции Код оборудования Модель оборудования Степень механизации Код профессии Разряд работы Код условий труда Количество исполнителей Колич. одновременно обраб. деталей....

Структурированные порождающие системы Модули инженерных знаний, представляющие собой элементарные порождающие системы, объединяют в структурированные порождающие системы, носителем моделей которых они являются. Моделью структурированных порождающих систем являются семантические сети. Семантическая сеть МИЗ представляет собой ациклический ориентированный граф. Ацикличность необходима для выполнения семантической сетью ее функционального назначения обеспечивать определение значений выходных переменных по заданным входным. Из-за наличия циклов в сети блокируется возможность нахождения значений всех или части искомых переменных МИЗ 01 МИЗ 11 МИЗ 21 МИЗ 31 МИЗ 12 Ранг 4 Ранг 3 Ранг 2 Ранг 1 МИЗ 00 Ранг 0 МИЗ 41 МИЗ 22 МИЗ 13 МИЗ 32 МИЗ 33 a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 b5 b6 a7 a8

Формирование метода

Объектно-ориентированные методы проектирования При создании больших программных комплексов широко используются объектно - ориентированные методы. Объектный подход имеет следующие преимущества: существенно повышается качество разработки в целом и ее фрагментов; существенно повышается качество разработки в целом и ее фрагментов; системы получаются более компактными и дешевыми; системы получаются более компактными и дешевыми; обеспечивается большее удобство в планировании разработок; обеспечивается большее удобство в планировании разработок; упрощается процесс внесения изменений; упрощается процесс внесения изменений; изменение исходных требований не приводит к полной переработке системы; изменение исходных требований не приводит к полной переработке системы; уменьшается риск в разработке сложных систем; уменьшается риск в разработке сложных систем; подход ориентирован на человеческое восприятие, т.к. для человека более естествен объектный, а не процедурный подход. подход ориентирован на человеческое восприятие, т.к. для человека более естествен объектный, а не процедурный подход. Выделяют три существенных момента объектно - ориентированного подхода (ООП): Выделяют три существенных момента объектно - ориентированного подхода (ООП): 1.ООП использует в качестве элементов объекты, а не алгоритмы; 2.каждый объект является реализацией какого-либо определенного класса; 3.классы организованы иерархически.

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

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

Объектно-ориентированные методы Признаки сложных систем 1. Сложные системы часто являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разложены на подсистемы, и т.д., вплоть до самого нижнего уровня. 2. Выбор, какие компоненты в данной системе считаются элементарными, относительно произволен и в большой степени оставляется на усмотрение разработчика. 3. Внутрикомпонентная связь обычно сильнее, чем связь между компонентами. Это обстоятельство позволяет отделять "высокочастотные" взаимодействия внутри компонентов от "низкочастотной" динамики взаимодействия между компонентами. 4. Иерархические системы обычно состоят из немногих типов подсистем, по-разному скомбинированных и организованных. 5. Любая работающая сложная система является результатом развития работавшей более простой системы. Сложная система спроектированная "с нуля", никогда не заработает. Следует начинать с работающей простой системы.

Объектно-ориентированные методы проектирования сложных систем В машиностроении все сложные системы являются иерархическими. Это обстоятельство зафиксировано в соответствующих стандартах и классификаторах. Иерархическая структура представляет собой важнейший фактор, позволяющий человеку с его ограниченными физическими возможностями понять, описать и спроектировать сложную систему. Как показывают эксперименты психологов максимальное количество структурных единиц информации, за которыми человеческий мозг может одновременно следить, приблизительно равно 7 2. Дополнительным ограничивающим фактором является скорость обработки мозгом поступающей информации: на восприятие каждой новой единицы информации ему требуется около 5 секунд. Для борьбы со сложностью человечество издревле сформулировало принцип декомпозиции "разделяй и властвуй". При проектировании сложного изделия необходимо разделять его на подсистемы, стремясь при этом к максимально возможному использованию стандартных компонентов или покупных комплектующих. Декомпозируя систему до нужного уровня мы не превысим пропускной способности человеческого мозга: для понимания любого уровня системы нам необходимо одновременно держать в уме информацию лишь о немногих ее частях.

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

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

Каноническая форма сложной системы A0A0 Сборочные единицы A2A2 Подшипники A1A1 Редукторы P0P0 Детали P1P1 Валы P2P2 Валы- шестерни P3P3 Колеса зубчатые P4P4 Корпусы Объекты Классы Метасис тема Редуктор цилиндрический одноступенчатый Корпус Подши пник Колесо Вал Вал-шестерня Подши пник S0 S5 D1 S4 S2 S3 D2 D3 D4 Сборочные единицы Редукторы Редукторы цилиндрические Редукторы цилиндрические одноступенчатые Вал-шестерня Колесо Вал Корпус

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

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

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

Объектная модель Объектный подход известен издавна. Идея о том, что мир можно рассматривать в терминах как объектов, так и событий, принадлежит древним грекам. В XVII веке Декарт отмечал, что люди обычно имеют объектно-ориентированный взгляд на мир. Это подтверждает инженерно-техническая литература, в которой до появления компьютеров не использовались алгоритмические описания. В информатике термин "объект" появился практически независимо в различных областях, связанных с компьютерами, и почти одновременно в начале 70-х годов ХХ века для обозначения того, что может иметь различные проявления, оставаясь целостным. На становление объектного подхода оказали влияние развитие теории баз данных, исследования в области искусственного интеллекта и достижения в теории познания.

Объектно-ориентированное проектирование изделий машиностроения Объектно-ориентированное проектирование изделий машиностроения это методология проектирования, основанная на представлении изделия виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. В этом определении можно выделить три части: 1) ООПИ использует в качестве базовых элементов изделий и методов их структурно-параметрического синтеза иерархически структурированные объекты, а не алгоритмы; 1) ООПИ использует в качестве базовых элементов изделий и методов их структурно-параметрического синтеза иерархически структурированные объекты, а не алгоритмы; 2) каждый объект является экземпляром какого-либо определенного класса; 2) каждый объект является экземпляром какого-либо определенного класса; 3) классы организованы иерархически. 3) классы организованы иерархически. Модели, на которых основывается ООПИ, создаются в результате объектно-ориентированного анализа изделий (ООА). Объектно-ориентированный анализ это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.

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

Абстрагирование Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные свойства и особенности поведения от несущественных. В рамках ООПИ используются абстракции сущностей, в рамках которых объект представляет собой полезную модель некой сущности в предметной области. При автоматизации конструирования модель является полезной, если она позволяет сгенерировать документацию на изделие, обеспечивающее выполнение требований технического задания.

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

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

Атрибуты объекта Каждый объект должен быть обеспечен уникальным и значимым именем, а также уникальным ключевым литералом: короткой формой имени объекта. В большой модели объекты должны быть пронумерованы. Атрибут - абстракция одной характеристики, которой обладают все абстрагированные как объект сущности. Каждый атрибут имеет имя, уникальное в пределах объекта. Диапазон допустимых значений атрибута называется доменом. Идентификатор (ключ) - множество из одного или более атрибутов, значения которых однозначно определяют каждый экземпляр объекта. Различают три типа атрибутов: 1) описательные; 2) указывающие; 3) вспомогательные. Описательные атрибуты - факты, внутренне присущие каждому экземпляру объекта. Изменение описательного атрибута указывает на изменение некоторого аспекта экземпляра, который остался прежним. Указывающие атрибуты необходимы для присвоения имени или обозначения экземпляра. Часто используются как идентификатор или часть его. Изменение такого атрибута указывает на то, что этому же экземпляру дается новое имя. Вспомогательные атрибуты необходимы для связи экземпляра одного объекта с экземпляром другого. Изменение такого атрибута указывает на то, что между собой связываются другие экземпляры.

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

Инкапсуляция Чаще всего инкапсуляция выполняется посредством сокрытия информации, касающейся внутренней структуры объекта и реализации его методов. Метод это операция над объектом, определенная как часть описания класса. Применительно к автоматизации конструирования в состав метода могут входить модули прочностных, точностных и прочих расчетов, а также генерации геометрических моделей и чертежей. Как правило, абстракция работает вместе с инкапсуляцией. Это означает наличие двух частей в классе: интерфейса и реализации. Интерфейс отражает внешнее поведение объекта, описывая абстракцию поведения всех объектов данного класса. Внутренняя реализация описывает механизмы достижения желаемого поведения объекта. Принцип разделения интерфейса и реализации соответствует сути вещей: в интерфейсной части собрано все, что касается взаимодействия данного объекта с остальными; реализация скрывает от других объектов все детали, не имеющие отношения к процессу взаимодействия объектов. Инкапсуляция это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение.

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

Иерархия Значительное упрощение понимания сложных задач достигается за счет образования из абстракций иерархической структуры. Иерархия это упорядочение абстракций, расположение их по уровням. Как было отмечено выше, основными видами иерархических структур применительно к сложным системам являются структура классов (родовидовая иерархия или "is-a") и структура объектов (иерархия по отношению "целое-часть" или "part of"). Родовидовая иерархия содержится в классификаторах изделий, а второй тип иерархии в членении изделий на составные части.

Природа объекта С точки зрения восприятия человеком объектом может быть: осязаемый и (или) видимый предмет; осязаемый и (или) видимый предмет; нечто, воспринимаемое мышлением; нечто, воспринимаемое мышлением; нечто, на что направлена мысль или действие. нечто, на что направлена мысль или действие. Применительно к проблематике проектирования в машиностроении наиболее ценным является следующее определение: "Объект представляет собой конкретный опознаваемый предмет, единицу или сущность (реальную или абстрактную), имеющую четко определенное функциональное назначение в данной предметной области". Ценность этого определения, данного специалистами, работающими в области информационных технологий в машиностроении, заключается в том, что в нем во главу угла поставлена функциональность объекта. Все, что проектируют инженеры, предназначено для выполнения определенных функций. Свое целевое назначение (функциональность) имеют как изделия основного и вспомогательного производств, так и связанные с ними технологические процессы. Проекты, разрабатываемые с помощью компьютеров конструкторами, представляют собой предметы, видимые с помощью средств вычислительной техники. Затем эти проекты превращаются в осязаемые предметы посредством осязаемых средств технологического оснащения и технологических процессов, представляющих объекты, воспринимаемые мышлением.

Природа объекта На основе имеющегося опыта сформулировано следующее определение: Объект обладает состоянием, поведением и идентичностью; структура и поведение схожих объектов определяет общий для них класс; термины "экземпляр класса" и "объект" взаимозаменяемы. Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств. Конструкторская и технологическая документации содержат отображение формы сущностей имеющих определенное содержание. Содержанием этих сущностей и являются объекты. Все свойства имеют некоторые значения. Эти значения могут быть простыми количественными или качественными (символьными) характеристиками, а могут ссылаться на другой объект. Количественными характеристиками изделий являются их размеры с величинами допустимых отклонений, значения допусков формы и положения поверхностей и величин их шероховатости и т.д. К числу качественных характеристик относятся наименование детали и марка ее материала, основное отклонение размера и т.п. К количественным характеристикам технологической операции относятся подготовительно-заключительное и штучное времена, количество рабочих, выполняющих операция, а к качественным код и наименование операции, код и наименование оборудования, обозначения документов по охране труда.

Природа объекта Чтобы разработать рабочий проект изделия или технологического процесса необходимо присвоить конкретные значения всем свойствам соответствующего объекта и всех объектов, связанных с ним отношениями "целое-часть". При этом формируется экземпляр объекта. Динамический характер текущих значений свойств объекта связан с часто возникающей необходимостью производить изменения. Поведение это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений. Иными словами, поведение объекта это его наблюдаемая и проверяемая извне деятельность. В области проектирования в машиностроении поведение объектов проявляется в процессе структурно-параметрического синтеза конструкций и технологий.

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

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

Отношения между объектами Участвуя в связи, объект может выполнять одну из следующих трех ролей: Актор объект, воздействующий на другие объекты, но сам никогда не подвергающийся такому воздействию; соответствует понятию активный объект. Сервер объект, подвергающийся только воздействию со стороны других объектов, но никогда не выступающий в роли воздействующего объекта. Агент объект, выступающий как в активной, так и в пассивной роли; как правило, создается для выполнения операций в интересах какого-либо объекта-актора или агента. Применительно к проблематике автоматизированного проектирования актор это объект верхнего уровня в иерархической метасистеме, соответствующий проектируемому изделию. Сервер это объект нижнего уровня в метасистеме, рассматриваемый как элементарный. Все остальные объекты, входящие в метасистему являются агентами.

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

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

Унифицированный язык моделирования UML Унифицированный язык моделирования (Unified Modeling Language, UML) является графическим языком для визуализации, специфицирования, конструирования и документирования систем, в которых большая роль принадлежит программному обеспечению. С помощью UML можно разработать детальный план создаваемой системы, отображающий не только ее концептуальные элементы, такие как системные функции и бизнес- процессы, но и конкретные особенности реализации, в том числе классы, написанные на специальных языках программирования, схемы баз данных и программные компоненты многократного использования.

Краткая история UML Объектно-ориентированные языки моделирования появились в период с середины 70-х до конца 80-х годов, когда исследователи, поставленные перед необходимостью учитывать новые возможности объектно-ориентированных языков программирования и требования, предъявляемые все более сложными приложениями, вынуждены были начать разработку различных альтернативных подходов к анализу и проектированию. С 1989 по 1994 год число различных объектно- ориентированных методов возросло с десяти более чем до пятидесяти. Официально создание UML началось в октябре 1994 года, когда Рамбо перешел в компанию Rational Software, где работал Буч. Первоначальной целью было объединение методов Буча и ОМТ. Первая пробная версия 0.8 Унифицированного Метода (Unified Method), как его тогда называли, появилась в октябре 1995 года. Приблизительно в это же время в компанию Rational перешел Джекобсон, и проект UML был расширен с целью включить в него язык OOSE. В результате совместных усилий в июне 1996 года вышла версия 0.9 языка UML. Версия 1.0 языка появилась в результате совместных усилий компаний Digital Equipment Corporation, Hewlett Packard, I-Logix, Intellicprp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational, Texas Instruments и Unisys. UML 1.0 оказался хорошо определенным, выразительным, мощным языком, применимым для решения большого количества разнообразных задач. Дальнейшая работа по развитию UML проводилась Группой по усовершенствованию (Revision Task Force, RTF) OMG под руководством Криса Кобрина. В июне 1998 года вышла версия UML 1.2, а осенью UML 1.3.

Основы структурного моделирования. Классы Классом (Class) называется описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Графически класс изображается в виде прямоугольника. Имя Атрибуты Операции

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

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

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

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

Основы структурного моделирования. Классы Обязанности (Responsibilities) класса - это своего рода контракт, которому он должен подчиняться. Определяя класс, вы постулируете, что все его объекты имеют однотипное состояние и ведут себя одинаково. Выражаясь абстрактно, соответствующие атрибуты и операции как раз и являются теми свойствами, посредством которых выполняются обязанности класса. Например, класс Wall (Стена) отвечает за информацию о высоте, ширине и толщине. Моделирование классов лучше всего начинать с определения обязанностей сущностей, которые входят в словарь системы. В принципе число обязанностей класса может быть произвольным, но на практике хорошо структурированный класс имеет по меньшей мере одну обязанность; с другой стороны, их не должно быть и слишком много. При уточнении модели обязанности класса преобразуются в совокупность атрибутов и операций, которые должны наилучшим образом обеспечить их выполнение. Графически обязанности изображают в особом разделе в нижней части пиктограммы класса

Основы структурного моделирования. Классы Словарь системы С помощью классов обычно моделируют абстракции, извлеченные из решаемой задачи или технологии, применяемой для ее решения. Такие абстракции являются составной частью словаря вашей системы, то есть представляют сущности, важные для пользователей и разработчиков. Ниже показан набор классов для системы розничной торговли: Customer (Клиент), Order (Заказ) и Product (Товар). Представлено несколько соотнесенных с ними абстракций, взятых из словаря проблемной области: Shipment (Отгрузка), Invoice (Накладная) и Warehouse (Склад). Одна абстракция, а именно Transaction (Транзакция), применяемая к заказам и отгрузкам, связана с технологией решения задачи.

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

Основы структурного моделирования. Классы При моделировании классов в UML всегда помните, что каждому классу должна соответствовать некоторая реальная сущность или концептуальная абстракция из области, с которой имеет дело пользователь или разработчик. Хорошо структурированный класс обладает следующими свойствами: является четко очерченной абстракцией некоторого понятия из словаря проблемной области или области решения; является четко очерченной абстракцией некоторого понятия из словаря проблемной области или области решения; содержит небольшой, точно определенный набор обязанностей и выполняет каждую из них; содержит небольшой, точно определенный набор обязанностей и выполняет каждую из них; поддерживает четкое разделение спецификаций абстракции и ее реализации; поддерживает четкое разделение спецификаций абстракции и ее реализации; понятен и прост, но в то же время допускает расширение и адаптацию к новым задачам. понятен и прост, но в то же время допускает расширение и адаптацию к новым задачам. Изображая класс в UML, придерживайтесь следующих правил: показывайте только те его свойства, которые важны для понимания абстракции в данном контексте; показывайте только те его свойства, которые важны для понимания абстракции в данном контексте; разделяйте длинные списки атрибутов и операций на группы в соответствии с их категориями; разделяйте длинные списки атрибутов и операций на группы в соответствии с их категориями; показывайте взаимосвязанные классы на одной и той же диаграмме. показывайте взаимосвязанные классы на одной и той же диаграмме.

Основы структурного моделирования. Отношения На языке UML способы, которыми элементы связаны друг с другом, моделируются в виде отношений. В объектно-ориентированном моделировании выделяют три типа наиболее важных отношений: зависимости, обобщения и ассоциации. Отношения зависимости - это отношения использования. Например, трубы отопления зависят от нагревателя, подогревающего воду, которая в них течет. Отношения обобщения связывают общие классы со специализированными; здесь также применяются термины "субкласс/суперкласс" или "потомок/родитель". Например, "фонарь" - это окно с большой нераздвижной рамой, а патио -окно, раздвигающееся в стороны. Отношения ассоциации - структурные взаимосвязи между объектами: комнаты состоят из стен, в которые могут быть встроены двери и окна; иногда через стены проходят трубы отопления. Эти три типа отношений охватывают большую часть способов взаимодействия элементов и хорошо отображаются на способы связи объектов, принятые в объектно- ориентированных языках программирования.

Основы структурного моделирования. Отношения Для каждого из названных типов отношений язык UML предоставляет графическое изображение Зависимость Обобщение Ассоциация

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

Основы структурного моделирования. Обобщения Обобщение (Generalization) - это отношение между общей сущностью (суперклассом, или родителем) и ее конкретным воплощением (субклассом, или потомком). Обобщения иногда называют отношениями типа "является", имея в виду, что одна сущность (например, класс BayWindow) является частным выражением другой, более общей (скажем, класса Window). Обобщение означает, что объекты класса-потомка могут использоваться всюду, где встречаются объекты класса-родителя, но не наоборот. Другими словами, потомок может быть подставлен вместо родителя. При этом он наследует свойства родителя, в частности его атрибуты и операции. Часто, хотя и не всегда, у потомков есть и свои собственные атрибуты и операции, помимо тех, что существуют у родителя. Операция потомка с той же сигнатурой, что и у родителя, замещает операцию родителя; это свойство называют полиморфизмом (Polymorphism). Графически отношение обобщения изображается в виде линии с большой незакрашенной стрелкой, направленной на родителя.

Основы структурного моделирования. Обобщения

Класс может иметь одного или нескольких родителей или не иметь их вовсе. Класс, у которого нет родителей, но есть потомки, называется базовым (base) или корневым (root), а тот, у которого нет потомков, - листовым (leaf). О классе, у которого есть только один родитель, говорят, что он использует одиночное наследование (Single inheritance); если родителей несколько, речь идет о множественном наследовании (Multiple inheritance). Обобщение чаще всего используют между классами и интерфейсами, чтобы показать отношения наследования. Обобщение может обладать именем, хотя это требуется редко - лишь тогда, когда в модели много обобщений и вам нужно ссылаться на них или отличать друг от друга.

Основы структурного моделирования. Ассоциации Ассоциацией (Association) называется структурное отношение, показывающее, что объекты одного типа неким образом связаны с объектами другого типа. Если между двумя классами определена ассоциация, то можно перемещаться от объектов одного класса к объектам другого. Вполне допустимы случаи, когда оба конца ассоциации относятся к одному и тому же классу. Это означает, что с объектом некоторого класса позволительно связать другие объекты из того же класса. Ассоциация, связывающая два класса, называется бинарной. Можно, хотя это редко бывает необходимым, создавать ассоциации, связывающие сразу несколько классов; они называются n- арными. Графически ассоциация изображается в виде линии, соединяющей класс сам с собой или с другими классами.

Основы структурного моделирования. Ассоциации Помимо описанной базовой формы существует четыре дополнения, применимых к ассоциациям Имя. Ассоциации может быть присвоено имя, описывающее природу отношения. Чтобы избежать возможных двусмысленностей в понимании имени, достаточно с помощью черного треугольника указать направление, в котором оно должно читаться, как показано выше. Обычно имя ассоциации не указывается, если только вы не хотите явно задать для нее ролевые имена или в вашей модели настолько много ассоциаций, что возникает необходимость ссылаться на них и отличать друг от друга. Имя будет особенно полезным, если между одними и теми же классами существует несколько различных ассоциаций. Обычно имя ассоциации не указывается, если только вы не хотите явно задать для нее ролевые имена или в вашей модели настолько много ассоциаций, что возникает необходимость ссылаться на них и отличать друг от друга. Имя будет особенно полезным, если между одними и теми же классами существует несколько различных ассоциаций.

Основы структурного моделирования. Ассоциации Роль. Класс, участвующий в ассоциации, играет в ней некоторую роль. По существу, это "лицо", которым класс, находящийся на одной стороне ассоциации, обращен к классу с другой ее стороны. Вы можете явно обозначить роль, которую класс играет в ассоциации. Ниже показано, что класс Человек, играющий роль работника, ассоциирован с классом Компания, играющим роль работодателя. Роли тесно связаны с семантикой интерфейсов. Один класс может играть в разных ассоциациях как одну и ту же роль, так и различные.

Основы структурного моделирования. Ассоциации Кратность. Ассоциации отражают структурные отношения между объектами. Часто при моделировании бывает важно указать, сколько объектов может быть связано посредством одного экземпляра ассоциации (то есть одной связи). Это число называется кратностью (Multiplicity) роли ассоциации и записывается либо как выражение, значением которого является диапазон значений, либо в явном виде, как показано ниже. Указывая кратность на одном конце ассоциации, вы тем самым говорите, что на этом конце именно столько объектов должно соответствовать каждому объекту на противоположном конце. Кратность можно задать равной единице (1), можно указать диапазон: "ноль или единица" (0..1), "много" (0..*), "единица или больше" (1..*). Разрешается также указывать определенное число (например, 3). С помощью списка можно задать и более сложные кратности, например 0.. 1, 3..4, 6..*, что означает "любое число объектов, кроме 2 и 5"

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

Основы структурного моделирования Примечание (Note) - это графический символ, используемый для изображения ограничений или комментариев, присоединенных к элементу модели или их совокупности. Примечание выглядит как прямоугольник с загнутым углом, содержащий текстовый или графический комментарий. Стереотипом (Stereotype) называют расширение словаря UML, позволяющее создавать новые виды строительных блоков, аналогичные существующим, но специфичные для данной задачи. Стереотип представлен в виде имени, заключенного в кавычки и расположенного над именем другого элемента. Стереотипный элемент можно изображать также с помощью новой связанной с ним пиктограммы. Помеченное значение (Tagged value) - это расширение свойств элемента UML, позволяющее вводить новую информацию в его спецификацию. Помеченные значения изображаются в виде строки в скобках, расположенной под именем другого элемента. Ограничение (Constraint) - это расширение семантики элемента UML, позволяющее создавать новые или изменять существующие правила. Изображаются ограничения в виде строки в скобках, которая расположена возле ассоциированного элемента или связана с ним отношениями зависимости. Можно также представить ограничение в виде примечания.

Основы структурного моделирования. Примечания Содержащее комментарий примечание не оказывает влияния на семантику, то есть не изменяет структуру модели. Поэтому примечания, наряду с ограничениями, используются для специфицирования таких элементов, как требования, наблюдения, обзоры и пояснения. Примечание может содержать любые сочетания текста и графики. Если позволяет реализация, можно включить в примечание гиперссылку на Web-страницу, связать его с другим документом либо встроить в него. Таким образом UML можно использовать для организации всех артефактов, создаваемых или используемых в процессе разработки, как показано ниже. Примечание можно присоединять не только к одному, но и к нескольким элементам с помощью зависимостей. В UML определен один стандартный стереотип, прилагаемый к примечаниям, - требования (Requirements). Так именуется распространенная категория примечаний, используемая для формулирования обязанностей или обязательств.

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

Основы структурного моделирования. Дополнения UML - это язык для описания структурных, поведенческих, группирующих и аннотационных сущностей. Эти четыре основных вида сущностей позволяют моделировать огромное количество систем. Однако время от времени приходится вводить новые сущности, которые специфичны для словаря предметной области, хотя выглядят подобно примитивным строительным блокам, уже имеющимся в языке. Стереотип - это не то же самое, что родительский класс в отношении обобщения "родитель/потомок". Точнее было бы охарактеризовать его как некоторый метатип, поскольку каждый стереотип создает эквивалент нового класса в мета-модели UML. Например, при моделировании бизнеспроцесса вам потребуется ввести в модель элементы, представляющие работников, документы и стратегии. В самом простом случае стереотип изображается в виде имени в кавычках (например, "name"), расположенного над именем другого элемента. Для наглядности стереотипу можно назначить пиктограмму, разместив ее справа от имени (если вы пользуетесь базовой нотацией для элемента) или применяя как базовый символ для стереотипной сущности.

Основы структурного моделирования. Дополнения

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

Основы структурного моделирования

Основы структурного моделирования. Комментарии

Основы структурного моделирования. Диаграммы классов Диаграммой классов (Class diagram) называют диаграмму, на которой показано множество классов, интерфейсов, коопераций и отношений между ними. Ее изображают в виде множества вершин и дуг. Диаграмме классов присущи общие для всех диаграмм свойства: имя и графическое содержание, являющееся одной из проекций модели. Вместе с тем диаграммы такого рода отличаются от остальных специфичным содержанием. Диаграммы классов обычно содержат следующие сущности: классы;интерфейсы;кооперации; отношения зависимости, обобщения и ассоциации. Подобно всем остальным диаграммам, они могут включать в себя примечания и ограничения.

Основы структурного моделирования. Диаграммы классов

Обычно диаграммы классов используются в следующих целях: для моделирования словаря системы. Моделирование словаря системы предполагает принятие решения о том, какие абстракции являются частью системы, а какие - нет. С помощью диаграмм классов вы можете определить эти абстракции и их обязанности; для моделирования простых коопераций. Кооперация - это сообщество классов, интерфейсов и других элементов, работающих совместно для обеспечения некоторого кооперативного поведения, более значимого, чем сумма составляющих его элементов. Например, моделируя семантику транзакций в распределенной системе, вы не сможете понять происходящие процессы, глядя на один-единственный класс, поскольку соответствующая семантика обеспечивается несколькими совместно работающими классами. С помощью диаграмм классов удается визуализировать и специфицировать эти классы и отношения между ними; для моделирования логической схемы базы данных. Логическую схему можно представлять себе как чертеж концептуального проекта базы данных. Во многих сферах деятельности требуется хранить устойчивую (persistent) информацию в реляционной или объектно-ориентированной базе данных. Моделировать схемы также можно с помощью диаграмм классов.

Основы структурного моделирования. Диаграммы классов Классы не существуют сами по себе. Любой класс функционирует совместно с другими, реализуя семантику, выходящую за границы каждого отдельного элемента. Таким образом, кроме определения словаря системы нужно уделить внимание визуализации, специфицированию, конструированию и документированию различных способов совместной работы вошедших в словарь сущностей. Для моделирования такого "сотрудничества" применяются диаграммы классов. Создавая диаграмму классов, вы просто моделируете часть сущностей и отношений, описываемых в представлении системы с точки зрения проектирования. Желательно, чтобы каждая диаграмма описывала только одну кооперацию. Моделирование кооперации осуществляется следующим образом: Идентифицируйте механизмы, которые вы собираетесь моделировать. Механизм - это некоторая функция или поведение части моделируемой системы, появляющееся в результате взаимодействия сообщества классов, интерфейсов и других сущностей. (Механизмы, как правило, тесно связаны с прецедентами) Для каждого механизма идентифицируйте классы, интерфейсы и другие кооперации, принимающие участие в рассматриваемой кооперации. Идентифицируйте также отношения между этими сущностями. Проверьте работоспособность системы с помощью прецедентов. По ходу дела вы, возможно, обнаружите, что некоторые ее части оказались пропущены, а некоторые - семантически неправильны. Заполните идентифицированные элементы содержанием. Что касается классов, начните с правильного распределения обязанностей; позже можно будет превратить их в конкретные атрибуты и операции.

Диаграммы классов В качестве примера здесь показаны классы, взятые из реализации автономного робота. Основное внимание здесь уделено тем классам, которые участвуют в механизме движения робота по заданной траектории. Как видно из рисунка, существует один абстрактный класс Мотор с двумя конкретными потомками, Мо- торПоворотногоМеханизма и ГлавныйМотор, которые наследуют пять операций их родителя. Эти два класса, в свою очередь, являются частью класса Привод. Класс АгентТраектории связан отношением ассоциации "один к одному" с классом Привод и отношением "один ко многим" - с классом ДатчикСтолкновений. Для класса АгентТраектории не показано ни атрибутов, ни операций, хотя приведены обязанности.

Диаграммы классов Диаграммы классов UML включают в себя, как частный случай, диаграммы "сущность-связь" (E-R диаграммы), которые часто используются для логического проектирования баз данных. Но если в классических E-R диаграммах внимание сосредоточено только на данных, диаграммы классов - это шаг вперед: они позволяют моделировать также и поведение. В реальной базе данных подобные логические операции обычно трансформируются в триггеры или хранимые процедуры. Моделирование схемы производится следующим образом: Идентифицируйте классы вашей модели, состояние которых должно сохраняться и после завершения работы создавшего их приложения. Создайте содержащую эти классы диаграмму классов и характеризуйте их как устойчивые с помощью стандартного помеченного значения persistent (устойчивый). Для работы со специфическими деталями базы данных вы можете определить и свои собственные помеченные значения. Раскройте структурные особенности классов. В общем случае это означает, что надо детально специфицировать их атрибуты и обратить особое внимание на ассоциации и их кратности. Поищите типичные структурные образцы, усложняющие проектирование физической базы данных, например циклические ассоциации, ассоциации "один к одному" и n-арные ассоциации. При необходимости создайте промежуточные абстракции для упрощения логической структуры. Рассмотрите поведение этих классов, раскрывая операции, важные для доступа к данным и поддержания их целостности. В общем случае для лучшего разделения обязанностей бизнес-правила, отвечающие за манипуляции наборами объектов, должны быть инкапсулированы в слое, находящемся над этими устойчивыми классами. Старайтесь использовать в своей работе инструментальные средства, позволяющие преобразовать логический проект в физический

Диаграммы классов На рис. показана совокупность классов, взятых из информационной системы вуза. Этот рисунок содержит достаточное количество деталей для конструирования физической базы данных. В левой нижней части диаграммы расположены классы Студент, Курс и Преподаватель. Между классами Студент и Курс есть ассоциация, показывающая, что студенты могут посещать курсы. Более того, каждый студент может посещать любое количество курсов и на каждый курс может записаться любое число студентов. Все шесть классов на диаграмме помечены как устойчивые (persistent), то есть их экземпляры должны содержаться в базе данных или каком-то ином хранилище. Приведены также атрибуты всех шести классов. Обратите внимание, что все атрибуты являются примитивными типами. Моделируя схему, отношения с непримитивными типами лучше всего представлять с помощью явного агрегирования, а не с помощью атрибутов. Два класса (Вуз и Факультет) содержат несколько операций, позволяющих манипулировать их частями. Эти операции включены из-за их важности для поддержания целостности данных (например, добавление или удаление Факультета затрагивает целый ряд других объектов).

Экземпляры В языке UML можно представлять как абстракции, так и их экземпляры. Почти все строительные блоки этого языка, в особенности классы, могут быть промоделированы в терминах своей сущности или своей материализации. Графическое представление экземпляра показано на рисунке. Эта нотация позволяет визуализировать именованные, равно как и анонимные экземпляры. Болт обозначение = «Болт 2М12х1,25.6gх60.58.С.029 ГОСТ » диаметрРезьбы: М12 шагРезьбы: 1.25 Экземпляром (Instance) называется конкретная материализация абстракции, к которой могут быть применены операции и которая может сохранять их результаты. Понятия "экземпляр" и "объект" практически синонимичны. Экземпляр изображают с подчеркнутым именем.

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

Диаграмма объектов Диаграммой объектов (Object diagram) называется диаграмма, на которой показаны объекты и их отношения в некоторый момент времени. Графически диаграмму объектов представляют в виде графа, состоящего из вершин и ребер. Диаграммы объектов позволяют моделировать экземпляры сущностей, которые содержатся в диаграммах классов. На диаграмме объектов показывается множество объектов и отношений между ними в некоторый момент времени. Например, при завершении проектирования диаграмма объектов представляет результат проектирования. В языке UML статические аспекты строительных блоков системы визуализируют с помощью диаграмм. Диаграмма объектов содержит множество экземпляров сущностей, представленных на диаграмме классов.

Моделирование поведения В UML для моделирования динамических аспектов поведения системы используется ряд диаграмм, из которых в данном контексте нас будут интересовать диаграммы состояний. Состояние (State) объекта – это ситуация в его жизни, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события. Автомат (State machine) описывает поведение в терминах последовательности состояний, через которые проходит объект в течение своего жизненного цикла, отвечая на различные события, а также его реакций на эти события. Событие (Event) – это спецификация существенного факта, имеющего место в пространстве и во времени. В контексте автоматов событие - это некий стимул, инициирующий переход из одного состояния в другое. Событие (Event) – это спецификация существенного факта, имеющего место в пространстве и во времени. В контексте автоматов событие - это некий стимул, инициирующий переход из одного состояния в другое. Переход (Transition) – это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во второе состояние, как только произойдет указанное событие и будут удовлетворены определенные условия. Переход (Transition) – это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во второе состояние, как только произойдет указанное событие и будут удовлетворены определенные условия. Деятельность (Activity) – это протяженное во времени неатомарное вычисление внутри автомата. Деятельность (Activity) – это протяженное во времени неатомарное вычисление внутри автомата. Действие (Action) – это атомарное вычисление, которое приводит к изменению состояния модели или возврату значения. Состояние изображается в виде прямоугольника с закругленными углами. Переход обозначается линией со стрелкой. Действие (Action) – это атомарное вычисление, которое приводит к изменению состояния модели или возврату значения. Состояние изображается в виде прямоугольника с закругленными углами. Переход обозначается линией со стрелкой.

Диаграмма состояний Диаграмма состояний (Statechart diagram) показывает автомат, фокусируя внимание на потоке управления от состояния к состоянию. При моделировании динамических аспектов класса диаграммы состояний обычно используются только с целью моделирования реактивных объектов. Реактивный, или управляемый событиями, объект - это такой объект, поведение которого лучше всего характеризовать его реакцией на внешние события. Как правило, реактивный объект находится в состоянии ожидания, пока не получит событие, а когда это случается, его реакция зависит от предшествующих событий. После того как объект отреагирует на событие, он снова переходит в состояние ожидания следующего события. Для таких объектов интерес представляют, прежде всего, устойчивые состояния, события, инициирующие переходы из одного состояния в другое, и действия, выполняемые при смене состояния. В интеллектуальных системах проектирования используются реактивные объекты.

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

Диаграмма прецедентов Можно специфицировать поведение прецедента путем описания потока событий в текстовой форме - в виде, понятном для постороннего читателя. В описание необходимо включить указание на то, как и когда прецедент начинается и заканчивается, когда он взаимодействует с пользователями и какими объектами они обмениваются. Важно обозначить также основной и альтернативный потоки поведения системы. Кроме того, прецеденты можно организовать, определив между ними отношения обобщения, включения и расширения. Эти отношения применяют, чтобы выделить некоторое общее поведение (извлекая его из других прецедентов, которые его включают) или, наоборот, вариации (поместив такое поведение в другие прецеденты, которые его расширяют). Отношение обобщения между прецедентами аналогично отношениям обобщения между классами. Это означает, что прецедент-потомок наследует поведение и семантику своего родителя, может замещать его или дополнять его поведение, а, кроме того, может быть подставлен всюду, где появляется его родитель (как родитель, так и потомок могут иметь конкретные экземпляры).

Диаграмма прецедентов Диаграммой прецедентов, или использования (Use case diagram), называется диаграмма, на которой показана совокупность прецедентов и пользователей, а также отношения между ними. Диаграммы прецедентов представляют собой один из типов диаграмм, применяемых в UML для моделирования динамических аспектов системы. Диаграммы прецедентов играют основную роль в моделировании поведения системы, подсистемы или класса. Каждая такая диаграмма показывает множество прецедентов, пользователей и отношения между ними. Диаграммы прецедентов применяются для моделирования вида системы с точки зрения прецедентов (или вариантов использования). Чаще всего это предполагает моделирование контекста системы, подсистемы или класса либо моделирование требований, предъявляемых к поведению указанных элементов. Диаграммы прецедентов имеют большое значение для визуализации, специфицирования и документирования поведения элемента. Они облегчают понимание систем, подсистем или классов, представляя взгляд извне на то, как данные элементы могут быть использованы в соответствующем контексте. Диаграмма прецедентов обладает стандартными свойствами, присущими любой диаграмме, - именем и графическим содержанием, которое представляет собой одну из проекций модели. Диаграмма прецедентов отличается от прочих своим конкретным содержанием. Диаграммы прецедентов обычно включают в себя: прецеденты; пользователи; отношения зависимости, обобщения и ассоциации. Как и все остальные диаграммы, они могут содержать примечания и ограничения.

Реляционные модели данных и UML

Системология и UML МЕТАСИСТЕМЫ Диаграммы классов

Системология и UML СТРУКТУРИРОВАННЫЕ СИСТЕМЫ Диаграмма объектов

Системология и UML ПОРОЖДАЮЩИЕ СИСТЕМЫ СИСТЕМЫ ДАННЫХ Болт обозначение = «Болт 2М12х1,25.6gх60.58.С.029 ГОСТ » диаметрРезьбы: М12 шагРезьбы: 1.25 ИСХОДНЫЕ СИСТЕМЫ

Связь системологии с онтологией Системологические уровни знаний Виды онтологий УРОВНИ 4, 5… МЕТАСИСТЕМЫ (отношения между определенными ниже отношениями) ОНТОЛОГИИ: ПРЕДМЕТНАЯ и ЗАДАЧ УРОВЕНЬ 3 СТРУКТУРИРОВАННЫЕ СИСТЕМЫ (отношения между определенными ниже системами) УРОВЕНЬ 2 ПОРОЖДАЮЩИЕ СИСТЕМЫ (модели, генерирующие определенные ниже данные) ОНТОЛОГИЯ ЗАДАЧ УРОВЕНЬ 1 СИСТЕМЫ ДАННЫХ (данные, структура которых определена ниже) ПРЕДМЕТНАЯ ОНТОЛОГИЯ УРОВЕНЬ 0 ИСХОДНЫЕ СИСТЕМЫ (язык определения данных)

Многоагентные системы автоматизации проектирования В настоящее время в области искусственного интеллекта (ИИ) происходят революционные преобразования. Источниками этих преобразований служат: В настоящее время в области искусственного интеллекта (ИИ) происходят революционные преобразования. Источниками этих преобразований служат: 1) распределенный искусственный интеллект (РИИ) 1) распределенный искусственный интеллект (РИИ) 2) активный объектно-ориентированный подход (АООП). 2) активный объектно-ориентированный подход (АООП). Центральной идеей РИИ является кооперативное взаимодействие распределенных интеллектуальных систем. Эти преобразования аналогичны и часто взаимосвязаны с теми, которые произошли в области баз данных с появлением сетевых технологий. Они базируются на классических основах ИИ с добавлением новых идей в части распределения данных и знаний, децентрализованного управления и распределенной обработки. Эти новые подходы иногда обозначают термином распределенные проблемно-ориентированные решающие сети. Центральной идеей РИИ является кооперативное взаимодействие распределенных интеллектуальных систем. Эти преобразования аналогичны и часто взаимосвязаны с теми, которые произошли в области баз данных с появлением сетевых технологий. Они базируются на классических основах ИИ с добавлением новых идей в части распределения данных и знаний, децентрализованного управления и распределенной обработки. Эти новые подходы иногда обозначают термином распределенные проблемно-ориентированные решающие сети.

Традиционная схема автоматизации конструирования Субъект- инженер Объект- проект (рабочая документа ция) Инструмент -САПР

Новая схема автоматизации конструирования Субъект- инженер Объект-проект (модель и рабочая документация) Агент-САПР Разработк а проекта Делегирова ние функций Активация и интеллекту ализация

Комбинированная схема автоматизации конструирования Субъект- инженер Объект-проект (модель и рабочая документация) Агент-САПР Разработк а проекта Делегирова ние функций Активация и интеллекту ализация Инструмент -САПР

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

Свойства агентов При построении искусственных агентов минимальный набор базовых характеристик должен включать следующие: 1.активность, означающая способность к организации и реализации действий; 2.реактивность или способность воспринимать состояние среды; 3.автономность, то есть относительная независимость, обеспечивающая собственное поведение, основанное на имеющихся у агента данных и знаний; 4.общительность, вытекающая из необходимости решать свои задачи совместно с другими агентами; 5.целенаправленность, предполагающая наличие собственных источников мотивации.

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

Обобщенная модель агентов САПР ПРОЦЕССОР ( методы агента ) ПАМЯТЬ ( значения свойств ) ВНЕШНЯЯ СРЕДА ( реляционная база данных ) РЕЦЕПТОРЫ (импортируем ые свойства) РЕЦЕПТОРЫ (импортируем ые свойства) РЕЦЕПТОРЫ ( импортируе- мые свойства ) РЕЦЕПТОРЫ (импортируем ые свойства) РЕЦЕПТОРЫ (импортируем ые свойства) ЭФФЕКТОРЫ ( экспортируе- мые свойства ) ВНУТРЕНЯЯ СРЕДА ( объектная модель ) Любой агент представляет собой открытую систему, помещенную в некоторую среду. В случае САПР этой средой является проект, формируемый в базах данных, в качестве которых целесообразно использовать базу данных объектного типа для представления модели изделия (внутренняя среда), и реляционную базу данных для поиска стандартных и покупных изделий, свойств материалов и т.п. информации (внешняя среда). Внешняя среда, как правило, является сетевой. Свойства агента САПР могут принадлежать трем различным категориям: импортируемых, экспортируемых и внутренних. Импортируемые свойства являются рецепторами, агента САПР, формирующими его систему восприятия. Экспортируемые свойства агента САПР являются его эффекторами, функция которых состоит в воздействии на среду, то есть на состояние проекта. Свойства агента САПР всех трех категорий образуют его память, в которой хранится текущее состояние агента. Процессор агента САПР формируют его методы, обеспечивающие объединение и переработку разнородных данных, выработку соответствующих реакций на информацию о состоянии среды (проекта), принятие решений о выполнении тех или иных действий. В целом процессор определяет поведение агента САПР, которое можно наблюдать, используя инспектор модели агента, с помощью которого инженер следит за состоянием свойств агента, либо в графическом окне, в котором отображаются сгенерированные чертежи и другая геометрическая информация.

Архитектура агента САПР ПРОЦЕССОР (методы агента) ПАМЯТЬ (значения свойств) ВНЕШНЯЯ СРЕДА (реляционная база данных) РЕЦЕПТОРЫ (импортируе мые свойства) РЕЦЕПТОРЫ (импортируе мые свойства) РЕЦЕПТОРЫ (импортируем ые свойства) РЕЦЕПТОРЫ (импортируе мые свойства) РЕЦЕПТОРЫ (импортируе мые свойства) ЭФФЕКТОРЫ (экспортируем ые свойства) ВНУТРЕНЯЯ СРЕДА (объектная модель) Привод +Обозначение +Наименование +>Вращающий момент, Нм +>Частота вращения, об/мин +>Расположение осей +>Режим +

Классификация агентов Агенты ЕстественныеИскусственные ВиртуальныеФизические НеподвижныеМобильные Имеется много различных классификаций агентов. Наиболее общими являются классификации, связанные с полярными шкалами "естественное - искусственное" и "материальное - идеальное". По первому критерию выделяются естественные агенты (например, коллективы людей) и искусственные агенты (например, программные системы). Согласно второму критерию все искусственные агенты подразделяются на материальные (например, интегральные роботы) и виртуальные, существующие лишь в программной среде. Еще одним критерием классификации является разделение "неподвижное - мобильное". Мобильные виртуальные рассматриваются как чисто коммуникационные агенты, которые не имеют собственных средств восприятия и осуществления действий, в связи с чем они не манипулируют никакими объектами. Локализованные объекты не могут двигаться по сети Согласно второму критерию все искусственные агенты подразделяются на материальные (например, интегральные роботы) и виртуальные, существующие лишь в программной среде. Еще одним критерием классификации является разделение "неподвижное - мобильное". Мобильные виртуальные рассматриваются как чисто коммуникационные агенты, которые не имеют собственных средств восприятия и осуществления действий, в связи с чем они не манипулируют никакими объектами. Локализованные объекты не могут двигаться по сети. Многоагентные САПР как таковые, принадлежат к числу искусственных и могут быть названы "виртуальными инженерами". Вместе с тем подобные системы являются человеко-машинными, то есть в процессе их работы осуществляется взаимодействие естественных и виртуальных агентов. Многоагентные САПР представляют собой программное обеспечение автоматизированных рабочих мест различного профиля и поэтому относятся к классу неподвижных

Классы интеллектуальности агентов Агенты ИнтеллектуальныеСинергетическиеРеактивные РассуждающиеИмпульсивные По уровню интеллектуальности агенты могут быть разделены на три класса: интеллектуальные, синергетические и реактивные. Интеллектуальные (когнитивные) агенты обладают хорошо развитой и пополняемой символьной моделью внешнего мира, что достигается благодаря наличию у них базы знаний, механизмов решения и анализа действий. Близкий термин "рассуждающий" используется для обозначения агента, который на основании символьной модели внешней среды способен проводить собственные рассуждения и на их основе выполнять действия, изменяющие среду. Различие между когнитивными и рассуждающими интеллектуальными агентами связано с их функциональным назначением: либо на получение знаний о среде, либо на рассуждениях о возможных действиях. Реактивные агенты не имеют ни развитого представления внешней среды, ни механизма пошаговых рассуждений, ни достаточного количества собственных ресурсов. По типу поведения интеллектуальные агенты делятся на интенциональных и рефлекторных, а реактивные – на импульсивных и трофических. Большинство интеллектуальных агентов относится к числу интенциональных, наделенных собственными механизмами мотивации, которые порождают цели, определяющие их действия. Рефлекторные агенты не имеют внутренних источников мотивации и собственных целей. Импульсивные агенты побуждаются к действию внешними обстоятельствами, а трофические простейшими связями типа "кто кого ест". Синергетические автономные агенты обладают гибридной архитектурой, сочетающей достоинства реактивных и интеллектуальных агентов. В многоагентных САПР используются синергетические агенты. Когнитивные агенты не могут быть использованы для создания многоагентных САПР. В связи со сложностью таких агентов многоагентные системы, как правило, содержат не более 7+2 автономных единиц, что недопустимо мало для САПР. С другой стороны реактивные агенты слишком примитивны для создания интеллектуальных САПР. В многоагентных САПР агенты объединены в иерархическую структуру. У таких агентов нет необходимости обладать богатыми представлениями внешней среды. Вполне достаточно знаний о смежных на упомянутой структуре агентах. Рассуждения агентов в САПР относятся к категории средней сложности. Эти рассуждения, как правило, реализуются одним или несколькими методами различного функционального назначения, каждый из которых содержит несколько десятков сложных правил продукционного типа. Мотивация агентов САПР заключается в таком изменении среды (проекта), которое обеспечивает выполнение требований заказчика и указаний проектировщика. Каждый агент представляет собой класс объектов и его задача в процессе проектирования заключается в генерации одного экземпляра из этого класса, который помещается в проект. В отличие от когнитивных агенты САПР в настоящее время не обладают способностями предвидения, обучения и самосохранения. Синергетические агенты в большей мере реактивны, чем когнитивные. При работе САПР перед ними не ставится задача прогнозирования изменения среды (проекта). Эти функции остаются за человеком. Человек также занимается проблемами обучения, эволюции и адаптации многоагентных САПР.

Сравнительный анализ свойств агентов ХарактеристикиИнтеллектуальныеСинергетическиеРеактивные Внутренняя модель внешнего мира РазвитаяОграниченная смежными агентами Примитивная РассужденияСложные и рефлексивные Средней сложностиПростые одношаговые МотивацияРазвитая, включающая убеждения, желания, намерения Намерения самореализации и изменения среды Простейшая, связанная с выживанием ПамятьЕсть Нет РеакцияМедленнаяСредней скоростиБыстрая АдаптивностьМалаяСредняяВысокая Модульная архитектура Есть Нет Состав МАСНебольшое число автономных агентов Среднее число взаимосвязанных агентов Большое число зависимых друг от друга агентов

Многоагентные системы Классическая теория искусственного интеллекта (ИИ) была основана на решении задачи одной интеллектуальной системой (агентом), обладавшей всеми необходимыми знаниями и ресурсами для решения этой задачи. Применительно к проблематике проектирования в машиностроении такой подход может быть использован лишь для разработки простейших изделий таких, как, например, режущий инструмент. Проектирование сложных изделий осуществляется конструкторскими бюро в составе многих отделов, каждый из которых отвечает за разработку узлов определенного класса. Этой организационной схеме как раз и соответствует конструкция многоагентной системы (МАС). В теории МАС предполагается, что отдельный агент может иметь лишь частичное представление о задаче и способен решить лишь некоторую ее подзадачу. Поэтому для решения сколько-нибудь сложной проблемы требуется взаимодействие агентов. Распределение задач предполагает назначение ролей каждому из агентов, определения требований к его знаниям. В зависимости от того, идет ли это распределение от поставленной задачи или от целей и возможностей конкретного агента, выделяют системы распределенного решения задач и децентрализованного ИИ. В первом случае процесс декомпозиции исходной задачи и обратный процесс композиции получаемых решений носит централизованный характер. При этом МАС проектируется сверху вниз на основе разбиения общей задачи на относительно независимые подзадачи и определения ролей агентов. Во втором случае распределение задач происходит в значительной мере спонтанно в процессе взаимодействия агентов. Многоагентные САПР принадлежат к классу систем распределенного решения задач. Их основу составляет иерархическая метасистема агентов, проектируемая сверху вниз.

Многоагентные системы Многоагентные системы состоят из следующих основных компонентов: множество системных единиц, в котором выделяются подмножество активных единиц – агентов, манипулирующих подмножеством других агентов и пассивных единиц – объектов; множество системных единиц, в котором выделяются подмножество активных единиц – агентов, манипулирующих подмножеством других агентов и пассивных единиц – объектов; среда, то есть некоторое пространство, в котором существуют агенты и объекты; среда, то есть некоторое пространство, в котором существуют агенты и объекты; множество задач (функций, ролей), которые поручают агентам; множество задач (функций, ролей), которые поручают агентам; множество отношений (взаимодействий) между агентами; множество отношений (взаимодействий) между агентами; множество организационных структур (конфигураций), формируемых агентами и объектами; множество организационных структур (конфигураций), формируемых агентами и объектами; множество действий агентов (например, различных операций над другими агентами и объектами). множество действий агентов (например, различных операций над другими агентами и объектами). На основе выше изложенного формальную модель МАС можно представить так MAS = (A, E, R, ORG), где A – множество агентов с порученными им задачами и действиями; E={e} – среда, в которой находится данная МАС; R – множество взаимодействий между агентами; ORG – множество базовых организационных структур, соответствующих конкретным функциям (ролям) агентов, устанавливающая отношения между ними.

Многоагентные САПР В многоагентных САПР множество агентов A формируется из оригинальных сборочных единиц и деталей, подлежащих разработке при проектировании. В качестве пассивных объектов выступают неструктурированные элементы формы деталей, занимающие в конструкторской иерархии нижний уровень (цилиндры, торцы, фаски, канавки и т.п.). Эти объекты обладают знаниями, необходимыми для проектирования переходов механической обработки. В качестве среды E={e} многоагентной САПР выступает разрабатываемый проект изделия, состоящий из множества экземпляров e из классов задействованных в проекте агентов. Задачи, порученные агентам, определяются инкапсулированными в них методами. Множество взаимодействий R между агентами САПР определяется ребрами графа экспорта и импорта свойств агентов и объектов. Эти взаимодействия носят как вертикальный, так и горизонтальный характер. Вертикальные взаимодействия осуществляются между агентами, связанными друг с другом по иерархии организационной структуры ORG,а горизонтальные – между иерархически не связанными агентами. Организационная структура ORG в многоагентной САПР представляет собой иерархическую метасистему, моделируемую И/ИЛИ графом. Связки типа И описывают отношения класса "целое–часть", а связки типа ИЛИ – отношения класса "род–вид". Последние используются при принятии решений в процессе структурного синтеза изделий.

Многоагентные системы Многоагентные системы (МАС) являются, как правило, существенно распределенными: пространственно - распределенными и/или функционально - распределенными. Многоагентные системы обладают по сравнению с централизованными следующими преимуществами: 1.сокращением сроков решения проблем за счет параллелизма; 2.уменьшением объема передаваемых данных за счет передачи другим агентам высокоуровневых частичных решений; 3.гибкостью за счет использования агентов различной мощности, обеспечивающих совместное динамическое решение проблемы; 4.надежностью за счет передачи решающих функций от одних агентов, которые не в состоянии решить поставленной задачи, - другим. МАС может состоять из чисто искусственных агентов (программных модулей) или включать также человека. В первом случае мы имеем машинную, а во втором человеко-машинную систему.

Модель агента Каждый агент соответствует некоторому понятию P и обладает схемой shm P. В число характеристических признаков агента входят указывающий атрибут, определяющий уникальное имя агента, и идентификатор, задающий уникальное имя каждого конкретного агента, входящего в объем понятия. С другой стороны агент представляет собой особую категорию объектов, которое осуществляет преобразование среды. Эта категория носит название объект-функция. Неключевые атрибуты A объект-функций делятся на два класса: входные A i и выходные A o. Преобразование входных атрибутов в выходные осуществляется методом агента M, который определяет его поведение. Таким образом, архитектура агента Ag определяется парой Ag= shm P, M Ag= shm P, M Метод агента может быть реализован с помощью традиционных технологий процедурного типа с использованием алгоритмических языков. В таком случае агент не может быть отнесен к числу интеллектуальных.

Метод агента Наиболее прогрессивной технологией реализации метода является использование баз знаний продукционного типа. В этом случае метод представляет собой систему, состоящую из множества продукционных правил R, связанных в семантическую сеть N, которая определяет структуру метода. M= R, N M= R, N Определение выходных атрибутов агента при его функционировании осуществляется посредством логического вывода на этой сети. Агент, функционирующий в многоагентной системе, обладает тремя подфункциями: восприятия, решения и трансформирования. Подфункция восприятия Подфункция восприятия Per: E A i обеспечивает отбор информации из среды и присвоение значений входным атрибутам. Подфункция решения Dec: A i A o определяет значения выходных переменных по значениям входных. Подфункция трансформирования Подфункция трансформирования Tran: A o E' изменяет состояние среды.

Архитектура агента Выходные атрибуты Входные атрибуты Метод 1 Метод 2 Вышерасположенные агенты Нижерасположенные агенты От смежных агентов К смежным агентам База данных

Формирование иерархической структуры метасистемы агентов

Генерация свойств агентов

Подключение методов к агентам