Норенков И.П. - Основы автоматизированного проектирования (1060628), страница 77
Текст из файла (страница 77)
Информационная поддержка этапов жизненного цикла изделий — CALS-технологиитур и их свойств в различных предметных областях, несмотря на то что языкразрабатывался прежде всего в качестве средства представления моделейпромышленных изделий на разных этапах их жизненного цикла.Описание некоторого приложения на языке Express в рамках стандарта STEPназывают моделью (Model).
В модели декларируются множества понятий иобъектов, входящих в приложение, свойства и взаимосвязи объектов.Модель состоит из одной или нескольких частей, называемых схемами(schema). Схема - раздел описания, являющийся областью определения данных. В ней вводятся необходимые типы данных.
При описании свойств типовданных могут применяться средства процедурного описания: процедуры, функции, правила, константы.СхемаОписание схемы начинается с заголовка, состоящего из служебного словаschema и идентификатора - имени схемы. Далее следует содержательнаячасть - тело схемы. Описание заканчивается служебным словом end_schema(в этом и последующих примерах служебные слова языка Express выделеныполужирным шрифтом):schema <имя схемы>;<имя схемы><тело схемы>;end_schema;В языке Express-G схема представляется прямоРис. 6.3. Изображение угольником с разделительной горизонтальной линией,схемы в Express-Gнад этой линией записывается имя схемы, как это показано на рис.
6.3.В теле схемы декларируются типы данных (Data Type}. Тип данных множество значений некоторой величины или множество объектов (набор экземпляров). В языке Express используются следующие типы данных: сущность(entity), простой (simple type), агрегативный (aggregation data type), определяемый (defined data type), нечисловой (enumeration data type) и выделяемый (select data type) типы.Сущности и атрибутыСущность - тип данных, представляющий собой набор концептуальных илиреальных физических объектов с некоторыми общими свойствами и служащийдля описания объектов предметной области. Свойства сущности выражаютсяв виде атрибутов (attributes). К характеристикам сущностей относятся также ограничения, накладываемые на значения атрибутов или на отношения междуатрибутами.Описание сущности начинается со служебного слова entity, за которым следуют идентификатор сущности, описание ее атрибутов и, возможно, также правил, каждый из атрибутов представлен его идентификатором и типом:entity <имя сущности>;<идентификатор атрибута>:<тип атрибута>;• • •end_entity;3086.4.
Краткое описание языка ExpressНапример, задание прямой линии (line) в виде двухинцидентных точек рО и р 1 (атрибутов типа point) выглядит следующим образом:entity line;pO,pl: point;end_entity;I <имя Сущности>'Рис. 6.4. Изображениесущности в Express-GАтрибуты и переменные сами могут быть сущАтрибутСущностьностями; так, тип атрибутов предыдущего примера[_декларируется, как сущность, атрибутами которой вслучае З.Ь-пространства являются геометрическиекоординаты х, у, z:Необязательныйатрибутentity point;x,y,z: real;Рис.
6.5. Атрибуты вend_entity;Express-GВ Express-G сущности изображаются прямоугольниками, внутри прямоугольника записывается имя сущности (рис. 6.4).Если свойство является необязательным для данной сущности, то его выражают так называемым необязательным (optional) атрибутом. В его описании перед типом атрибута добавляется служебное слово optional:<идентификатор атрибута>: optional <тип атрибута>;Изображение атрибутов в Express-G поясняет рис. 6.5, из которого, в частности, ясно, что атрибут представлен прямоугольником, а связи сущность атрибут или сущность - сущность отображаются линиями, причем в случаесвязи с optional атрибутом используется пунктирная линия.
Направление связи обозначается окружностью на конце линии, ведущей к атрибуту. Имя атрибута записывается рядом с этой линией. В прямоугольнике атрибута записывается тип атрибута.Некоторые из атрибутов могут определяться через другие атрибуты. Тогдаатрибуты, выражаемые через другие атрибуты, называют порожденными(derived), что отображается служебным словом derive в декларации атрибута.
Например, описание окружности кроме обязательных атрибутов, которымив приведенном ниже примере выбраны радиус и центр окружности, может включать порожденный атрибут площадь круга:entity point;x,y,z: real;end_entity;entity circle;center: point;radius: real; ~ явные атрибуты center, radiusderivearea: real := pi*radius**2; (* порожденный атрибут area *)end_entity;309б Информационная поддержка этапов жизненного цикла изделий — CALS-технологииОтметим, что между символами «(*» и «*)» записывается комментарий произвольный текст по усмотрению автора модели.
Если комментарий умещается в одной строчке, то достаточно перед его текстом поставить двойнойдефис (--).Простые типы данныхК простым типам данных относятся следующие типы:integer (целые числа);real (действительные числа);number — тип, объединяющий типы integer и real;logical - его значениями могут быть true, false или unknown (неопределенность);Boolean - с возможными значениями true или false;binary - последовательность битов 1 или 0;string - строка символов.Их изображения на схемах на языке Express-G показаны на рис.
6.6.Для binary и string в круглых скобках можно указать максимально возможное число элементов множества, например, если строка А может включать до24 символов, то:A: string(24);если ровно 24 символа, тоA: string(24) fixed;если ограничений нет, тоA: string;Если переменная аЪс имеет тип binary, то выражение abc[5:7] означает битыс 5-го по 7-й в коде аЪс.Значения простых типов выражаются с помощью литералов.
Литералы это числа (целые, действительные), двоичные коды, логические значения (true,false, unknown), фрагменты текста (строковый тип). Примеры записи литералов:• двоичный (начинается со знака %)-%!00101110• целое десятичное число - 1052• действительный (обязательна десятичная точка) - З4.е-3 или 0.034• строковый (занимает не более одной строки) - 'first name'BINARY||NUMBERLOGICAL||BOOLEANINTEGER||STRINGREALGENETIC |Рис. 6.6. Изображение простых типов данных в Express-G3106.4. Краткое описание языка ExpressАгрегативный тип данныхАгрегативный тип данных - множество элементов некоторого типа. Различают четыре разновидности агрегативных типов, сведения о которых приведены в табл. 6.2.Т а б л и ц а 6.2Тип данныхУпорядоченностьРазличие элементовarrayДаНеобязательноbagНетНеобязательноlistДаОбязательноsetНетОбязательноПри описании типа array после слова array в квадратных скобках указываются нижняя и верхняя границы индексов.
Для остальных агрегативных типовзаписываются не граничные значения индекса, а нижняя и верхняя границычисла элементов. Например:Fl: array[2:8] of real; (* описание семиэлементного массива F1, его элементы имеют тип real и нумеруются, начиная со значения индекса 2*);F2: list[l:?] of integer; (*множество F2 содержит по крайней мере один элемент типа integer; *)matr: array[l:10] of array[9:12] of atrac; (*массив matr состоит из 10 четырехэлементных массивов, элементы типа atrac.*)Записи вида аггау[2:8] или list[l:?] в»,,.,.„ „,Express-G преобразуются в форму А[2:8] илиREALL[l:?], указываемую около линии атрибутаагрегативного типа после имени этого атриРис. 6.7. Обозначение атрибутабута.
Так, первый из приведенных выше приагрегативного типа в Express-Gмеров представлен на рис. 6.7.Определяемый, нечисловой, выделяемый типыОпределяемый тип обычно вводится пользователем для улучшения читаемости модели. Нечисловой тип - тип данных, экземплярами которого являются нечисловые (предметные) переменные. Выделяемый тип соответствуетпоименованной совокупности других типов. Описание этих типов данных начинается со служебного слова type, за которым следует идентификатор типа иего определение.
Пример описания определяемого типа:type volume = real;end_type;entity manual;name: string;vl,v2,v3: volume;end_entity;Определение нечислового типа начинается со служебных слов enumerationof, после которых в скобках перечисляются элементы множества. Например:3116. Информационная поддержка этапов жизненного цикла изделий — CALS-технологии*УРе c°l°r = enumeration of(red, green, blue);•end type;enumeration i~Ссылка на значение red теперь возможна в видеге(electГ1*илиc°l°r-red-'Выделяемый тип соответствует одному из неРис.
6.8. Изображениякоторого списка уже введенных типов. Этот спи\-.~сок записывается после служебногослова select.Jтипов данных в Express-G.-,vСсылка на имя выделяемого типа означает, чтовыбирается один из типов совокупности:type a_c = select (one, two, three);end_type;definedii'1.1'• • •proc: a_c; (* proc может быть объектом одного из типов one, two, three*)Графические изображения определяемых, нечисловых и выделяемых типовданных показаны на рис. 6.8. Внутри прямоугольников, ограничиваемых пунктирными линиями, записывается имя типа.Супертипы и подтипыОтношения типа целое - часть или функция - вариант реализации, характерные для представления структур объектов в виде альтернативных (И-ИЛИ)деревьев, в языке Express выражаются в форме отношений между типами данных.