Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Многомерные агрегированные типы
Агрегированные типы языка EXPRESS являются одномерными по своей природе. Однако в EXPRESS существует возможность получения многомерных агрегированных типов. Для этого необходимо задать в качестве базы одного агрегированного типа другой подобный тип. Таким способом можно получать агрегированные типы неограниченной вложенности, поддерживающие произвольное количество измерений. Пример объявления многомерного агрегированного типа: SET OF LIST OF INTEGER — множество списков, содержащих элементы типа INTEGER. Поименованный тип В отличие от простых и агрегированных, поименованные типы данных не являются встроенными в язык EXPRESS, а должны быть обязательно объявлены в информационной модели. Таким образом, поименованным типом называется специально объявленный в информационной модели тип данных, имеющий уникаль- 70 ное имя. Поименованные типы предназначены для двух случаев. Во-первых, если необходимо использовать сущность в качестве типа данных. Во-вторых, когда не хватает выразительных возможностей, встроенных в EXPRESS, и требуется их расширение. Для каждого из этих случаев есть свой поименованный тип: для первого — тип данных «Сущность», а для второго — определяемый тип данных. Тип данных «Сущность» возникает автоматически одновременно с объявлением самой сущности в информационной модели. Ему присваивается идентификатор сущности, который используется в дальнейшем для ссылок на этот тип. Пример: ENTITY POINT; x, y, z: REAL; ENDENTITY Определяемый тип данных задается на основе какого-либо другого типа данных, в том числе и определяемого. С его помощью можно наложить некоторые ограничения на тот тип, на основе которого он создан и таким образом расширить выразительные возможности языка EXPRESS путем создания типа данных с новыми свойствами. Например, можно создать новый определяемый тип данных «length» (длина), взяв за основу встроенный целочисленный тип REAL и наложив требование неотрицательности его значений. При этом будут расширены выразительные возможности EXPRESS, так как в нем нет встроенного типа с неотрицательными целочисленными значениями. Вполне возможен вариант, при котором определяемый тип не накладывает никаких ограничений на свой базовый тип. В таких случаях он используется для повышения наглядности информационной модели или для простоты управления ею (например, изменения). Пример объявления определяемого типа данных: TYPE length = REAL WHERE POS: SELF > = 0; END TYPE. И сущность, и определяемый тип данных относятся к категории понятий языка EXPRESS и поэтому более подробно рассмотрены ниже. Составной тип Составные типы данных, как и поименованные, предназначены для задания типов с нестандартными для EXPRESS областями значений. Составные типы используются в тех случаях, когда более легким путем является не наложение ограничений на какой-либо тип данных, а простое перечисление всех его возможных значений или всех возможных областей значений. Таким образом, составным типом данных языка EXPRESS называется специально объявленный в информационной модели тип, область значений которого задана путем явного перечисления ее элементов или составляющих ее других областей значений. При этом составные типы данных могут быть использованы только для формирования определяемых типов и не подходят для прямого указания областей значений атрибутов сущностей. В EXPRESS всего два составных типа данных: «Перечисление» (ENUMERATION) и «Выбор» (SELECT). 71 УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ С помощью типа «Перечисление» можно задавать область значений путем явного перечисления всех значений, входящих в нее, то есть путем явного определения всех экземпляров типа. Таким образом, атрибут сущности (естественно, через некоторый определяемый тип) принимает одно из перечисленных значений. Ниже дан пример определяемого типа «trafficjights» (светофор), заданного на основе типа «Перечисление». Он включает только три значения: красный (red), желтый (yellow) и зеленый (green): (red, yellow, green); YПеречень экземпляров типа В отличие от «Перечисления», тип «Выбор» позволяет задавать не перечень возможных значений типа данных, а перечень возможных областей значений типа данных. Следовательно тип «SELECT» определяет область значений, состоящую из нескольких других областей значений путем их явного перечисления. Таким образом, в общем случае атрибут сущности (естественно, через некоторый определяемый тип) может принимать значения, относящиеся к одной из перечисленных областей. Рассмотрим пример: В этом примере для окружности, представленной сущностью «circle» существует выбор системы координат, двумерной или трехмерной, где она будет задана. Способ представления окружности зависит от того, экземпляром какой сущности будет выражен ее центр (атрибут «center»). Для представления точки в двумерном пространстве объявлена сущность «point2D», заданная двумя координатами, а в трехмерном пространстве — сущность «poinGD», заданная тремя координатами. В данном примере также указан определяемый тип «point» (точка), являющийся объединением областей значений типов «point2D» и «poinGD». В свою очередь, атрибут «center» сущности «circle» представлен именно типом «point», что позволяет ему принимать в качестве своих значений экземпляры сущностей «point2D» и «point3D». Сам вопрос о выборе той или иной сущности выходит за рамки языка EXPRESS. Семантические элементы (понятия) любого языка несут смысловую нагрузку и определяют содержание представляемой информации. В EXPRESS они выражают содержание информационной модели, сформированной из конкретных сущностей, определяемых типов и прочих строительных блоков, каждый из которых задается путем объявления некоторого понятия языка EXPRESS. Упомянутые блоки, присутствующие в схеме, имеют идентификаторы (имена), присваиваемые им при их возникновении. В дальнейшем на строительные блоки модели можно ссылаться, используя идентификатор. Всего в EXPRESS существуют семь основных понятий: 1. Схема. 2. Константы. 3. Определяемый тип. 4. Сущность. 5. Глобальное правило. 6. Функция. 7. Процедура. Необходимо еще раз напомнить, что, несмотря на наличие в EXPRESS функций и процедур, он не является языком программирования, а представляет собой язык информационного моделирования. Смысл функций и процедур состоит в вычислении и/или проверке корректности значений отдельных атрибутов сущностей. Схема ( SCHEMA ) Понятие «схема» (SCHEMA) выражает отдельную информационную модель на языке EXPRESS. Схема является самым общим понятием EXPRESS, все остальные понятия языка могут быть указаны только внут ри некоторой схемы. Информационная модель состоит из строительных блоков (сущностей, типов и т. д.), и схема включает все строительные блоки информационной модели. Для того чтобы существовала возможность связывания нескольких мелких информационных моделей, каждая из которых задана в отдельной схеме, в единую модель (как в случае с интегрированными ресурсами STEP), используются интерфейсные спецификации, то есть ссылки на соответствующие строительные блоки других схем. Наличие ссылок позволяет использовать строительные блоки других схем при построении данной. Объявление схемы начинается с ключевого слова «SCHEMA», за которым следует ее имя, и заканчивается ключевым словом «ENDSCHEMA». Все то, что находится между именем и концом объявления, называется телом схемы. Оно содержит необязательное указание интерфейсных спецификаций, за которым следует также необязательное обозначение констант. В дальнейшем все объявления остальных компонентов схемы (сущностей, типов, глобальных правил, функций и процедур) идут в произвольном порядке. 72 УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ Константы (CONSTANT ) Понятие «константа» выражает поименованное значение не которого типа данных языка EXPRESS, которое нельзя изме нить. Базовым типом константы могут быть простой, агрегированный или поименованный типы. Константы используются для повышения наглядности информационной модели, а также для упрощения управления ею. Например, максимальную длину строковых типов, присутствующих в информационной модели, задают константой «maxlength», присвоив ей значение «10». Тогда при объявлении строковых типов их максимальную длину можно обозначить не числом «10», а константой «max_length», что повышает наглядность. Кроме того, если вдруг потребуется ее изменить, достаточно сменить объявление только константы, а не каждого типа в отдельности. Константы могут быть заданы в рамках схемы, глобального правила, функции или процедуры. При этом все константы данного строительного блока указываются в единой конструкции CONSTANT. Любое упоминание имени константы в рамках блока, в котором она объявлена, эквивалентно употреблению ее значения. Структура обозначения констант начинается с ключевого слова CONSTANT и завершается ключевым словом ENDCONSTANT. Между ними располагаются объявления отдельных констант, которые содержат их имена и базовый тип с его значением в явном виде или в виде вычисляемого выражения. Рассмотрим пример. Здесь показана структура, содержащая объявления трех констант, имеющих соответственно простой, агрегированный и поименованный типы в качестве базо- 74 вого. Константа простого типа «intval» базируется на целочисленном типе INTEGER и явно указанном значении «100». Константа агрегированного типа «intarray» имеет в качестве базы массив из трех элементов INTEGER, а в качестве своего значения — экземпляр агрегированного типа, причем третий элемент массива задан в виде выражения, содержащего уже объявленную константу «int_val». Наконец, третья константа обладает поименованным типом «point» (предположим, что сущность с таким именем и тремя вещественными атрибутами объявлена где-то в другом месте), а ее значение представляет собой экземпляр сущности. Определяемый тип (ТУРЕ) Понятие «определяемый тип» (TYPE) выражает поименованный тип данных языка EXPRESS, заданный на основе какого-либо другого типа данных. Его назначением является расширение выразительных воз можностей EXPRESS за счет создания типа с новыми свойствами. Определяемый тип обязательно основан на каком-либо другом типе данных, называемом исходным типом. В качестве исходного могут выступать простой, агрегированный, другой определяемый или составной типы. При этом область значений вновь создаваемого определяемого типа задается на основе области значений исходного типа. Они могут либо полностью совпадать, либо первая является подмножеством второй. |
Последнее изменение этой страницы: 2019-03-29; Просмотров: 367; Нарушение авторского права страницы