Главная » Просмотр файлов » Норенков И.П. - Основы автоматизированного проектирования

Норенков И.П. - Основы автоматизированного проектирования (1060628), страница 78

Файл №1060628 Норенков И.П. - Основы автоматизированного проектирования (Норенков И.П. - Основы автоматизированного проектирования) 78 страницаНоренков И.П. - Основы автоматизированного проектирования (1060628) страница 782017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 78)

Для этого введены понятия супертипа (supertype), как более общего типа,и подтипов (subtypes), как подчиненных типов. На рис. 6.9 верхняя сущностьотносится к супертипу, а три нижних прямоугольника изображают подтипы, линиисвязи прямоугольников должны быть утолщенными.Рассмотрим пример фрагмента И-ИЛИ-дерева, в котором имеются вершина ИЛИ al и две подчиненные ей альтернативные вершины Ы и Ь2. Общиматрибутом для Ы и Ь2 является size типа real, специфичным для Ы атрибут vol типа real, а специфичным для Ь2 -атрибут met типа string. Этот фрагментможет быть описан следующим образом:entity alsupertype of (oneof (Ы,Ь2));size: real;I1end_entity;—'entitybl1subtype of (al);IIvol: real;end_entity;IIentity b2subtype of (al);Рис. 6.9.

Изображениеmet: string;иерархии типов в Express-Gend_entity;3126 4 Краткое описание языка ExpressИспользуются также следующие правила записи супертипов и подтипов:в случае, если al есть И-вершина, вместо oneof используется зарезервированное слово and (в более общем случае andor), т. е. вторая строчка примера будет выглядеть так:supertype of (bl and Ь2);если между подтипами нет взаимосвязи, выражаемой логической функцией(в частности, ИЛИ- или И-вершинами), то указание в al факта, что это супертип, не требуется; достаточно упоминание о подчиненности подтипов в их декларациях в виде subtype of (al);перед декларацией supertype записывается зарезервированное словоabstract, если вершине al не соответствуют какие-либо экземпляры сущности,т.

е. если al введена только для указания общих для подтипов атрибутов;у одного подтипа может быть больше одного супертипа; подтип наследуетатрибуты всех своих супертипов; если в декларациях супертипов используются одинаковые идентификаторы атрибутов, то ссылка на них должна быть ввиде составного идентификатора, например а 1.size.Пример:entity devicesupertype of (oneof (transistor, diode));(* device есть ИЛИ-вершина И-ИЛИ-дерева с двумя альтернативамиtransistor и diode*)end_entity;entity transistorsubtype of (device);b: real;end_entity;entity diodesubtype of (device);r: real;end_entity;ОграниченияОграничения, накладываемые на экземпляры сущности, выражаются с помощью правил (rules). Правила могут быть общими или локальными.Описание правила, общего для ряда сущностей, начинается со служебногослова rule, далее следуют идентификатор правила, служебное слово for, ссылки на сущности, на которые правило распространяется, и, наконец, собственноограничения.Локальные правила могут описывать ключевые атрибуты (uniqueness rules)или выражать ограничения, накладываемые на атрибуты некоторой сущности(domain rules).

Например, если ключевой атрибут сущности Z есть составнойатрибут X. Y или, другими словами, одному сочетанию значений атрибутов X иY должен соответствовать единственный экземпляр сущности Z, то313б. Информационная поддержка этапов жизненного цикла изделий — CALS-технологииentity Z;X: integer;Y: string;uniqueX,Y;end_entity;Ограничение на атрибуты некоторой сущности выражается с помощью правила в теле этой сущности. Ограничение записывается после слова where ввиде выражения, значениями которого могут быть true, false или unknown.Допустимыми значениями атрибута будут только те, для которых выражение принимает значение true. Например, можно записать, что длина вектора vect = (x,y,z) должна быть равна единице, в виде правила cons:entity vect;x,y,z: real;wherecons: x**2 + y**2 + z**2 = 1.0;end_entity;Процедуры и функцииПроцедуры и функции служат для описания процедурной части модели.Как и в алгоритмических языках, используется концепция формальных и фактических параметров.

Описание процедуры начинается со служебного словаprocedure, за которым следуют идентификатор процедуры и описание формальных параметров в круглых скобках. Пример описания заголовка процедуры:procedure eq (x,y: real; n: integer; var result: route);Аналогично описываются функции, их отличает только описание в заголовке типа результата после закрывающей скобки:function log (a: real; m: integer): real;Локальные переменные, описанные в блокеlocalend_local;действуют только в пределах данных функции или процедуры.Ряд функций и процедур относятся к стандартным и потому не требуютописания во вновь разрабатываемых моделях. Отметим следующие стандартные функции:Abs - абсолютная величина; Sqrt - корень квадратный; Ехр - экспонента;Log, Log2, LoglO - логарифмы натуральный, двоичный, десятичныйсоответственно; Sin, Cos, Tan, Acos, Asin, ATan - тригонометрические и обратные тригонометрические функции sin, cos, tg, arccos, arcsin, arctg.В число стандартных входят также функции: BLength - подсчет числа битов в двоичном коде; HiBound - верхняя граница индекса у типа array иливерхняя граница числа элементов у типов set, bag, list; LoBound - то же в3146.4.

Краткое описание языка Expressотношении нижних границ; Length - подсчет числа символов в строке; Odd возвращает значение true, если аргумент - нечетное число; SizeOf - возвращает число элементов в объекте агрегативного типа; TypeOf - возвращаетсписок типов, к которым принадлежит параметр этой функции; Exists - возвращает значение true, если аргумент этой функции входит в число атрибутов соответствующей сущности, и др.К стандартным процедурам относятся процедуры Insert и Remove - вставка или изъятие элемента в заданной позиции у объекта агрегативного типа.При описании алгоритмов в телах процедур и функций могут использоваться операторы пустой (null), присваивания (assignment), выбора (case), составной (compound statement), условный ( i f .

. . then ... else), цикла (repeat),выхода из функции или процедуры (return), перехода на конец цикла (skip).В выражениях используются операнды, знаки операций, вызовы функций.Так, для арифметических операций над числами типа real применяются следующие знаки:«*» — умножение,«/» — деление, DIV — целочисленное деление,«+» — сложение, «-» — вычитание, «**» — возведение в степень, MOD — деление по модулю.Знаки логических операций: not - отрицание, and - конъюнкция, or - дизъюнкция, хог - исключающее ИЛИ. В применении к величинам типа logical этиоперации выполняются по правилам действий в трехзначном алфавите.

Логическое выражение al in a2 принимает значение true, если al содержится в а2.Оператор like используется для посимвольного сравнения строк. Для сравнения экземпляров сущностей используют операции «равно» и «не равно» со знаками «:=:» и «:<>:» соответственно.Операции над множествами (типами bag и set) - пересечение (Intersection),объединение (Union), разность (Difference). Их знаки суть «*» (умножение),«+» (голос), «-» (минус) соответственно. Оператор Query (A <* В | С) возвращает подмножество тех элементов из агрегативного типа В, для которых выполняется условие С, здесь А - простая переменная, используемая в С.Знак «+» (плюс) по отношению к операндам типа binary или string есть знакконкатенации.В качестве формальных параметров процедур и функций кроме типов данных, применяемых в других конструкциях языка и охарактеризованных выше,могут использоваться обобщенные типы: generic, aggregate и некоторые другие.

Тип generic формального параметра означает, что соответствующий фактический параметр может иметь любой тип данных из числа предусмотренных при описании процедуры. Аналогично тип aggregate обобщает агрегативныетипы данных - array, bag, list, set. Например:function add (a,b: generic: intype): generic: intype;localnr: number;vr: vector;end_local;3156 Информационная поддержка этапов жизненного цикла изделий — CALS-технологииif ("number" in typeof (a)) and ("number" in typeof (b))then nr := a+b;(* функция typeof (а) возвращает тип аргумента а и, если этот тип естьnumber, то первый операнд логического выражения равен true *)return (nr);elseif ("this schema.vector" in typeof (a)) and ("this schema.vector" in typeof (b))thenvr.i := a.i + b.i;vr.j:=a.j+b.j;vr.k := a.k + b.k;(* подразумевается, что декларация типа vector была произведена в схемес именем this schema *)return (vr);end_if;end_if;end_function;В языке Express-G специальные символы для изображения правил, процедур и функций не оговорены.КонстантыСпособ описания констант очевиден из следующего примера:constantyear: integer: = 1995;start: date := date(12,16,1982); (""подразумевается, что при описании типа dateуказаны три атрибута: месяц, число, год*)end_constant;Взаимосвязи схемДля установления интерфейса между двумя схемами вводятся спецификации интерфейса.

Применяют два типа спецификаций - use и reference. Например:schema si;entity par 1;name: string;end_entity;end_schema;schema s2; (* в схеме s2 в качестве параметра х используется name изsl.parl *)use from sl.parl ( name as x);end_schema;3166.4. Краткое описание языка ExpressСсылки типа use отличаются тем, что декларации сущностей из другой схемы используются в данной схеме как свои локальные, в то же время referenceпросто позволяет обращаться к декларациям другой сущности.В языке Express-G используются диаграммы двух уровней.

На схемномуровне (schema level) изображаются схемы и их взаимосвязи в виде линий, насущностном уровне (entity level) - типы, сущности, атрибуты, а для ссылок наобъекты другой схемы применяются специальные символы.Эти символы представляют овальными фигурами. В овале записывают имясхемы-источника и имя используемого определения. В нашем примере этоссылка на S1 .par 1.

Овал помещается внутрь прямоугольника, в котором дополнительно указывается имя атрибута (в примере это name).Для указания межстраничной связи, что требуется, если Express-G-модельразмещается более чем на одной странице, используется овальный символ,внутри которого указьшаются через запятую номер страницы и номер ссылки.Примеры моделейПример «person_organization_schema» взят из тома 41 «Интегрированныересурсы» стандарта STEP (ISO 10303-41).schema person_organization_schema;entity address;internaMocation: optional label;street_number: optional label;street: optional label;postal_box: optional label;town: optional label;region: optional label;postal_code: optional label;country: optional label;facsimile_number: optional label;telephone_number: optional label;electronic_mail_address: optional label;telex_number: optional label;wherewrl : exists(internaMocation) or exists(street_number) or exists(street) orexists(postal_box) or exists(town) or exists(region) or exists(postal_code) orexists(country) or exists(facsimile_number) or exists(telephone_number) orexists(electronic_mail_address) or exists(telex_number);end_entity;entity personal_addresssubtype of (address);people : set[l:?] of person;description: text;end_entity;3176.

Информационная поддержка этапов жизненного цикла изделий — CALS-технологииentity person;id: identifier;last_name : optional label;first_name : optional label;middle_names : optional list[l:?] of label;prefix_titles : optional Iist[[l:?J of label;suffbcjitles : optional Iist[[l:?] of label;uniqueurl : id;wherewrl : exists(last_name) or exists(first_name);end_entity;end_schema;На рис. 6.10 показан небольшой фрагмент модели из прикладного протоколаАР202, относящийся к сущности «Оболочка» и ее атрибутам. Свойства этойсущности - модель, тип и границы поверхности.

Тип поверхности - супертип, аподтипами являются возможные варианты. Граница задана в виде контура,выраженного либо своими вершинами, либо совокупностью линий. Связи этогофрагмента с другими частями протокола АР202 на рис. 6.10 не показаны.ОболочкаГеометрия*j1 1 Тип поверхности [Полигональная-ОВращения-0Вытягивания—0Коническая—ОЦилиндрическая-^Модель поверхностиПоверхность Sfl:?]ЛОграниченнаяповерхность-С{Элемент S[0:?]5-сплайн-0Тороидальная—о—оСферическаяАЭле менты границы S[l:?]ГраницыI KOHTJ •п[оОриентация'Тип контура—яСBooleanI''Контур из линийКонтур из вершинТочки S[l;?]ОВершинаПлоскостьРис.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее