Что означает понятие обобщенные структуры
Перейти к содержимому

Что означает понятие обобщенные структуры

  • автор:

Обобщенные структуры

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

Число в базе данных и число в языке программирования имеют важное отличие в своих характеристиках, поскольку число в базе данных может быть null. Число в C# не может быть null. Проблема существует не только с базами данных, но также с отображением данных XML на типы .NET.

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

За счет использования структуры Nullable эта проблема может быть легко решена. Ниже показан фрагмент кода с упрощенной версией определения типа Nullable. Структура Nullable определяет ограничение, которое состоит в том, что обобщенный тип T должен быть структурой. С классами в качестве обобщенных типов преимущество минимальных накладных расходов исчезло бы, и поскольку объекты классов все равно могут быть null, то в использовании класса с типом Nullable смысла нет.

Единственное дополнение к типу Т, определенное в Nullable, это поле типа bool hasValue, которое определяет, установлено значение или же оно равно null. Помимо этого, обобщенная структура определяет доступные только для чтения свойства HasValue и Value, а также перегрузки некоторых операций. Перегрузка операции приведения Nullable к T определена явно, так как она может генерировать исключение в случае, если hasValue равно false. Перегрузка операции для приведения к Nullable определена неявно, потому что она всегда успешна:

using System; namespace ConsoleApplication1 < public struct Nullablewhere T : struct < public Nullable(T value) < this.hasValue = true; this.value = value; >private bool hasValue; public bool HasValue < get < return hasValue; >> private T value; public T Value < get < if (!hasValue) < throw new InvalidOperationException("no value"); >return value; > > public static explicit operator T(Nullable value) < return value.Value; >public static implicit operator Nullable(T value) < return new Nullable(value); > public override string ToString() < if (!HasValue) return String.Empty; return this.value.ToString(); >> class Program < static void Main() < Nullablex; x = 4; Console.ReadLine(); > > >

В этом примере экземпляр Nullable создан как Nullable. Переменная х теперь может быть использована как int, т.е. ей можно присваивать значения и применять в операциях для выполнения некоторых вычислений. Такое поведение стало возможным благодаря операциям приведения типа Nullable. Однако х также может быть null. Свойства HasValue и Value типа Nullable могут проверять, есть ли значение, и обращаться к нему.

Обобщенные структурные модели информационных объектов Текст научной статьи по специальности «Математика»

СИСТЕМНЫЙ ПОДХОД / АНАЛИЗ СВЯЗНОСТИ ЭЛЕМЕНТОВ / ИДЕНТИФИКАЦИЯ СТРУКТУР / СИНТЕЗ ОПТИМАЛЬНЫХ СТРУКТУР / THE SYSTEM APPROACH / THE ANALYSIS OF CONNECTIVITY OF ELEMENTS / IDENTIFICATION OF STRUCTURES / SYNTHESIS OF OPTIMUM STRUCTURES

Аннотация научной статьи по математике, автор научной работы — Щербань Александр Борисович, Братцев Константин Евгеньевич, Жашкова Татьяна Валерьевна, Михеев Михаил Юрьевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Щербань Александр Борисович, Братцев Константин Евгеньевич, Жашкова Татьяна Валерьевна, Михеев Михаил Юрьевич

Обобщенные семантические модели виртуальных образовательных структур
Формализация структурных моделей IS-анализа

Теоретико-множественный подход к формированию структурных моделей сложных информационных систем обучения

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

Текст научной работы на тему «Обобщенные структурные модели информационных объектов»

А. Б. Щербань, К. Е. Братцев, Т. В. Жашкова, М. Ю. Михеев

ОБОБЩЕННЫЕ СТРУКТУРНЫЕ МОДЕЛИ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ

Аннотация. Традиционная практика системного подхода дополняется подходом к решению задач, связанных с описанием и анализом связности элементов, идентификацией структур и подструктур, синтезом оптимальных структур, идентификацией режимов функционирования подсистем и системы в целом.

Ключевые слова: системный подход, анализ связности элементов, идентификация структур, синтез оптимальных структур.

Abstract. Traditional practice of the system approach is supplemented with the approach to the decision of the problems connected with the description and the analysis of connectivity of elements, identification of structures and substructures, synthesis of optimum structures, identification of modes of functioning of subsystems and systems as a whole.

Keywords: the system approach, the analysis of connectivity of elements, identification of structures, synthesis of optimum structures.

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

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

1 Анализ связности сложных структур

По мере увеличения сложности систем вопросам системной связности как комплексным общесистемным вопросам требуется все большее внимание в рамках совершенствования системного подхода. В этих условиях чрезвычайно актуальными являются задачи разработки новых методологических инструментальных средств структурного представления сложных систем, обеспечивающих реализацию системного подхода путем решения проблем анализа системной связности [1]. В качестве такого методологического инструментального средства предлагается идентификационно-структурный анализ (/^-анализ) как инструментальное средство реализации структурного

подхода к решению задач анализа, синтеза и управления информационными объектами на основе принципа идентификационно-структурного управления (5-принципа) [2].

Реализация 5-принципа в процессе структурного подхода обеспечивается процедурами идентификации структурных моделей различных видов, которые предназначены для решения задач поиска различных видов структурных отображений структурных моделей, идентифицирующих их структурную связность. Такие задачи структурной идентификации объединены под общим названием «задачи /5-анализа», разработаны варианты их классификации [3]. Сформулированное понятие структурной идентификации [2] как положительное решение одной из задач /5-анализа определяется как нахождение одного из видов изоморфных, частично изоморфных, гомоморфных или автоморфных структурных отображений в пространствах структурных моделей. Следовательно, структурный подход и потребность в реализации 5-принципа в первую очередь обусловливают необходимость формирования структурных моделей системного описания информационных объектов. Для решения задач /5-анализа необходимы структурные представления текущих и эталонных состояний и ситуаций исследуемого информационного объекта с использованием единых структурных моделей, обеспечивающих возможности разработки формализованных процедур выявления интегративных (целостных) структурных свойств моделируемых объектов с целью их идентификации. Обобщенная структурная модель и ее интерпретации в рамках конкретного математического аппарата должны обладать возможностями описания как формальных, так и параметрических структур. Под формальными структурами будем понимать структуры, описывающие обобщенные свойства связности элементов объекта (системы) без конкретизации аспекта структурного описания, т. е. семантики этой связности. Такие структуры будем в дальнейшем изложении называть синтаксическими структурами, а их обобщенные модели — обобщенными синтаксическими структурными моделями (ОСМ). Структуры, отражающие не только обобщенную связность элементов системы, но и параметры (атрибуты) элементов и связей, т.е. специфику предметной области системного описания, будем называть семантическими структурами, а обобщенные модели таких структур — обобщенными семантическими структурными моделями (ОССМ).

2 Синтез обобщенной структурной модели

Обобщенную структурную модель представим кортежем вида

где Е = (Е5,Е- носитель модели; Е5 — подмножество основных элементов носителя, задающих элементы (сущности) моделируемой системы на выбранном уровне глубины структурного описания; Е/ с I — подмножество вспомогательных элементов носителя, идентифицирующих элементы подмножества Е5 и их связи; / — универсальное множество элементов;

V = (Уе ,У5) — сигнатура модели; Уе — подмножество предикатов, задающих виды отношений на множестве Е5 и Е/; У5 — подмножество предикатов,

задающих виды отношений на множестве Е$; Р — синтаксические правила формирования обобщенной структурной модели; Я — семантические правила формирования обобщенной структурной модели.

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

Средства описания элементов и их отношений в рамках обобщенной структурной модели разделим на средства синтаксического описания, определяемые синтаксическими правилами Р формирования ОСМ, и средства семантического описания Я, определяемые семантическими правилами формирования ОССМ.

Синтаксические правила Р задают формальные конструктивные процедуры, позволяющие идентифицировать элементы в множестве Е, т.е. определить их принадлежность к Е$. Кроме того, синтаксические правила позволяют идентифицировать виды связей между элементами подмножества Е$, которые по аналогии с [4] назовем синтаксически правильными структурными совокупностями.

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

Синтаксические правила описания элементов ОСМ формализуем как правила формирования подмножества синтаксических предикатов:

Определение 1. Подмножество основных элементов носителя обобщенной структурной модели Е5 будем считать синтаксически заданным (определенным), т.е. идентифицируемым в множестве Е, если на множестве

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

Определение 2. Каждый основной элемент носителя структурной модели еі є Е$ будем считать синтаксически заданным (идентифицированным) в подмножестве Е$, если на подмножестве Е$ и N є Е , где N с Еі — под-

Е = Е5 иЕ/ , где Е/ =яиЕ|, а ие Е/ — некоторый элемент номинальной шкалы, задан двухместный предикат уп , так что

Vеі є еб ^еі є Еі (VР (еі,я) =1 &ур (,я) = 0).

множество элементов номинальной шкалы, задан двухместный предикат уп , так что

Уе,- е К8 е Е \ N Вщ е N(ур (,щ) = 1&ур <,ej) = 0).

Приведенное определение 2 задает синтаксическое правило, согласно которому основной элемент носителя обобщенной структурной модели в, е Е$ считается синтаксически заданным, если ему поставлена в соответствие точка ^мерного евклидова пространства, где N — число заданных (сформированных) элементов моделируемой структуры.

Поскольку в соответствии с введенным определением подмножество Е$ счетное, то простейшим способом синтаксического задания его элементов является формирование эквивалентного множества N =

тивно (существует биекция Е$ на N, описываемая уп ). Таким образом, синтаксические правила описания элементов ОСМ формализуются введением

в сигнатуру модели подмножества Уе =< уп , уп |.

Для описания синтаксически правильных структурных совокупностей

на множестве элементов носителя ОСМ введем подмножество синтаксиче-

7-ю синтаксически правильную структурную совокупность на множестве Е$ .

Определение 3. Подмножество основных элементов носителя ОСМ р Гр р 1

е У$ , определяющий 7-е отношение связности между парами элементов Е$ , так что

Из определения 3 следует, что введение подмножества синтаксических

предикатов У$ позволяет использовать ОСМ в качестве моделей формальных структур, состоящих из т синтаксически правильных структурных совокупно-

рр стей, где т — мощность подмножества У$ . На подмножество У$ не накладывается никаких ограничений, и это подмножество определяет систему аксиом формирования синтаксически правильных структурных совокупностей [3].

Таким образом, совокупность синтаксических правил Р формирования ОСМ, задаваемая в виде системы аксиом описания элементов и синтаксически правильных структурных совокупностей на множестве элементов, фор-

мализуется в виде синтаксической сигнатуры ОСМ У = (УЕ ,Уs /.

Все вышеизложенное позволяет сформулировать следующее формализованное определение ОСМ.

Определение 4. Обобщенную структурную модель 5 = (Е,У,р, построенную в виде множества синтаксически правильных структурных совокупностей с использованием исходной системы аксиом Р и представленную

/ Р Р Р Р Р \ кортежем Бр =( Е, Уп , \п , , . , . ), назовем обобщенной синтак-

сической структурной моделью (ОСМ).

В процессе реализации структурного подхода, т.е. решения задач структурного анализа в соответствии с 5-принципом, ОСМ вида

щенной структурной модели для формализации модификаций ОСМ сложных структур различных порядков сложности и инвариантных методов решения задач /5-анализа.

Весь класс синтаксических структур в зависимости от структурной сложности разделим на четыре подкласса:

— вырожденные синтаксические структуры (С_1);

— синтаксические структуры нулевого порядка сложности (Со);

— синтаксические структуры первого порядка сложности (базовые синтаксические структуры (С));

— синтаксические структуры произвольного к-го порядка сложности

Синтаксические структуры, в отличие от семантических, описывают нечто общее, присущее системам (совокупность элементов и их связность), имеющим различные качественные описания атрибутов элементов и видов связей.

Формализуем типы ОСМ, которые предлагаются для структурного оценивания в соответствии с 5-принципом и соответствуют синтаксическим структурам выделенных подклассов.

Определение 5. ОСМ вида 5р = назовем вырожденной, а моделируемую структуру С_і вырожденной синтаксической структурой.

В соответствии с введенным определением вырожденная ОСМ представлена кортежем, в котором Е = ^Е5, п> — носитель модели; Е5 — подмножество основных элементов носителя, задающих элементы моделируемой системы на выбранном уровне глубины структурного описания; п -некоторый элемент номинальной шкалы; Уп — двухместный предикат, заданный так, что

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

предлагается использовать в качестве обоб-

Определение 6. ОСМ вида 5 или вида 50 = (Е,назовем обобщенной синтаксической структурной моделью нулевого порядка, а моделируемую ею структуру Со — синтаксической структурой нулевого порядка сложности.

В кортеже 5° содержатся: Е = (Е$, Е^ — носитель модели, где Е/ с I —

подмножество вспомогательных элементов, идентифицирующих подмножество Е$ вцелом и его элементы; I — универсальное множество элементов; Е/ = яи^; N — подмножество элементов номинальной шкалы, для которого существует биекция на Е$; уп — двухместный предикат, определяющий биекцию Е$ на N и заданный так, что

Vе; е е5 Уе]- е Е \N 3щ е N(уп (■,щ ) = 1& уп (,е>-) = °).

Введенную ОСМ нулевого порядка условно можно назвать структурной моделью «параметрического» объекта, поскольку здесь в явном виде отсутствуют отношения на множестве элементов носителя. Однако такие отношения можно неявно задать значениями параметров элементов, используя подмножество N . Варианты ОСМ нулевого порядка 5° = (Е,уп,уп>

и 50 =(Е,уп> эквивалентны с точки зрения формализованного структурного

описания С°, однако 50 = ^Е,ур^ имеет меньшую мощность сигнатуры,

а следовательно, более предпочтительна в качестве базовой для последующей интерпретации.

Определение 7. ОСМ вида = ( Е, уп , уп , ур\ или 51 = (Е, уп , у5;) на-

зовем обобщенной синтаксической структурной моделью первого порядка, а моделируемую структуру С1 — синтаксической структурой первого порядка

сложности. Сигнатуры ОСМ 5^,, 51 содержат по сравнению с Б^р, 50 дор

полнительный элемент — двухместный предикат у5 , определяющий отношение связности между парами элементов Е5 , так что

Vер, ед е Е5 ^ек е ЕI

(ур (ер, ед ) = 1 V у5 (ер , ед ) = 0 )&) (ер, ек ) = 0

ОСМ вида 5^, (51) позволяет задавать одну синтаксически правильную

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

Определение 8. ОСМ вида Бр = (е,уп,уп,Ур^ или Бк = (е,уп,Ур^,

где У$ = к, назовем ОСМ к-го порядка, а моделируемую структуру — синтаксической структурой к-го порядка сложности (Ск).

Синтаксическая структура к-го порядка сложности содержит к видов отношений на множестве элементов, в нашем случае на подмножестве Е$,

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

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

Семантические правила Я расширяют формальные конструктивные процедуры описания элементов и отношений р с учетом количественных и качественных характеристик элементов Е5 и видов отношений между ними, определяемых конкретным первичным описанием моделируемой системы.

Семантические правила описания элементов ОССМ предлагается формализовать путем введения подмножества семантических предикатов

Определение 9. Основные элементы носителя структурной модели е; е Е$ будем считать семантически заданными (идентифицированными)

Приведенное определение указывает, что любому элементу структуры, представленному основным элементом носителя обобщенной структурной модели е; е Е$ , может быть поставлено в соответствие в рамках модели ко-

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

поэтому сигнатуры ОСМ Бр и Бк включают множества синтаксических

предикатов Уб = | у^ , у^ ,. | .

в пространстве по к-му подмножеству атрибутов

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

где в общем случае |Е^ | Ф т, если на множестве Е$ и Ак с Е , где Ак с Е/,

задан двухместный предикат Уе , так что

личественное или качественное значение ак любого конкретного к-го атри-

ру модели подмножества семантических предикатов Уе . Тогда составляющая сигнатуры ОССМ, предназначенная для описания подмножества основ/ Р Я

ных элементов носителя Е$ , будет иметь вид Уе = ( Уе Уе

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

где V^ (,ej | — двухместный предикат, задающий г-й вид отношения,

на подмножестве Е$ и определяемый семантикой предметной области.

Определение 10. Подмножество семантических заданных элементов обобщенной структурной модели Е$ , описанное с помощью Уе = |vp, V]R |,

образует г-ю семантически правильную структурную совокупность, если

на Е$ задан двухместный предикат ^ , определяющий г-й вид отношения

связности между парами элементов Е$, так что

Vek е Е1 [(^ (ер,ед ) = 1V ^(ер,^ ) = о) & ^ (,ек ) = 0&^ (,ек ) = 0

Совокупность семантических правил описания модели определяет сеЯ / Я Я

мантическую составляющую сигнатуры модели У = (Уе ,У$

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

Определение 11. Обобщенную структурную модель, построенную в виде множества семантически правильных структурных совокупностей на основе расширения семантическими правилами исходного множества аксиом, назовем обобщенной семантической структурной моделью (ОССМ). Таким образом, ОССМ может быть представлена кортежем вида

Оя =( Е, vp, vp, У#, У/

Сравнение кортежа Бр = ^Е, ур, ур, У$1, представляющего ОСМ, / р р я я \

с кортежем Бр = ( Е, ул , Уп , Уе , Уб ) показывает, что их различия опреде-

ляются наличием в сигнатуре ОССМ компонентов дополнительного (сея Г я я я «I

мантического) описания атрибутов элементов Уе = |Уе , ^ , • • •, Уе |, а

также компонентов Уб = іує , у„ , . уе , . уе І описания семантически

I Б1 Б2 Бг Бт J

правильных структурных совокупностей, используемых вместо компонен-

тов Уб =|уб , уб , •••, УБ-, «•( описания синтаксически правильных структурных совокупностей.

Детальное рассмотрение конструктивных процедур формирования Уе

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

формального включения УЕ в УЕ и формировании подмножества УЕ в вир \ р р р р р 1 р

де Уе = |ул , Уп , уе , уЕ , •, уЕ І, а также о возможности представления У$

в виде Уб . Тогда кортеж Бд = (Е, уп , Уп , Уе , Уб ) будет представлен в виде

Бя = (Е, ул , Уп , уе , •, Уе , •, Уб ), следовательно, ОССМ можно формально заменить ОСМ.

Приведенные рассуждения являются формальным доказательством следующего утверждения.

Утверждение. Любая ОССМ к-го порядка вида

Бя = (Е,ур,Ур,У#,У/) или вида Бя = ^Е,ур,У^ ,Уя^ ^-атрибутной семантической структуры к-го порядка сложности ССЦ может быть интерпретирована в системе аксиом ОСМ и представлена ОСМ вида Брц = ^ Е ,У7р,Ур ^ или

—р г р р р р р р 1

Здесь У^ =^ У^ , Уп , Уі , У2 , •, Уь , •, Уц І — множество синтаксиче-

ских предикатов, расширяющее базовую систему аксиом ОСМ с целью возможности описания ц-атрибутности элементов подмножества Еб , а

р I р р р р I —р р р

УЕ =|уЕо, уЕі, •••, уЕ , •••, уЕ | — модификация Уп при Уе^ = Уп .

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

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

1. Касти, Дж. Большие системы. Связность, сложность и катастрофы : пер. с анг. / Дж. Касти. — М. : Мир, 1982. — 216 с.

2. Михеев, М. Ю. Ситуационно-структурный подход к анализу информационных объектов / М. Ю. Михеев, А. Б. Щербань // Известия высших учебных заведений. Поволжский регион. — 2006. — № 6. — С. 128-135. — (Технические науки).

3. Щерб ань, А. Б. Задачи /Б-анализа информационных структур / А. Б. ТЩербань // Информационные системы и технологии «ИСТ — 2006» : материалы международной научно-технической конференции. — Нижний Новгород : НГТУ, 2006. -С. 148-150.

4. Поспелов, Д. А. Ситуационное управление: теория и практика / Д. А. Поспелов. — М. : Наука, 1986. — 288 с.

Щербань Александр Борисович

кандидат технических наук, доцент, кафедра информационных технологий и систем,

Пензенская государственная технологическая академия

Sh^erban Alexander Borisovich a Cand.Tech.Sci., the senior lecturer, chair information technologies and systems,

the Penza state technological academy

Братцев Константин Евгеньевич

кандидат технических наук, доцент, кафедра информационных технологий и систем,

Пензенская государственная технологическая академия

Bratcev Konstantin Evgenevich a Cand.Tech.Sci., the senior lecturer, chair information technologies and systems,

the Penza state technological academy

Жашкова Татьяна Валерьевна

Пензенская государственная технологическая академия

Zhashkova Tatyana Valerevna

the post-graduate student,

the Penza state technological academy

Михеев Михаил Юрьевич доктор технических наук, профессор, заведующий кафедрой информационных технологий и систем, Пензенская государственная технологическая академия

УДК 621.396.6 Щербань, А. Б.

Обобщенные структурные модели информационных объектов /

А. Б. Щербань, К. Е. Братцев, Т. В. Жашкова, М. Ю. Михеев // Известия высших учебных заведений. Поволжский регион. Технические науки. -2009. — № 1 (9). — С. 12-22.

Mikheyev Michail Jurevich a Dr.Sci.Tech., the professor, managing chair

of information technologies and systems, the Penza state technological academy

Что означает понятие обобщенные структуры

Кроме обычных типов фреймворк .NET также поддерживает обобщенные типы (generics), а также создание обобщенных методов. Чтобы разобраться в особенности данного явления, сначала посмотрим на проблему, которая могла возникнуть до появления обобщенных типов. Посмотрим на примере. Допустим, мы определяем класс для хранения данных пользователя:

class Person < public int Id < get;>public string Name < get;>public Person(int id, string name) < Name = name; >>

Класс Person определяет два свойства: Id — уникальный идентификатор пользователя и Name — имя пользователя.

Здесь идентификатор пользователя задан как числовое значение, то есть это будут значения 1, 2, 3, 4 и так далее.

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

И на первый взгляд, чтобы выйти из подобной ситуации, мы можем определить свойство Id как свойство типа object. Так как тип object является универсальным типом, от которого наследуется все типы, соответственно в свойствах подобного типа мы можем сохранить и строки, и числа:

class Person < public object Id < get;>public string Name < get;>public Person(object id, string name) < Name = name; >>

Затем этот класс можно было использовать для создания пользователей в программе:

Person tom = new Person(546, "Tom"); Person bob = new Person("abc123", "Bob"); int tomId = (int)tom.Id; string bobId = (string) bob.Id; Console.WriteLine(tomId); // 546 Console.WriteLine(bobId); // abc123

Все вроде замечательно работает, но такое решение является не очень оптимальным. Дело в том, что в данном случае мы сталкиваемся с такими явлениями как упаковка (boxing) и распаковка (unboxing) .

Так, при передаче в конструктор значения типа int, происходит упаковка этого значения в тип Object:

Person tom = new Person(546, "Tom"); // упаковка в значения int в тип Object

Чтобы обратно получить данные в переменную типов int, необходимо выполнить распаковку:

int tomId = (int)tom.Id; // Распаковка в тип int

Упаковка (boxing) предполагает преобразование объекта значимого типа (например, типа int) к типу object. При упаковке общеязыковая среда CLR обертывает значение в объект типа System.Object и сохраняет его в управляемой куче (хипе). Распаковка (unboxing), наоборот, предполагает преобразование объекта типа object к значимому типу. Упаковка и распаковка ведут к снижению производительности, так как системе надо осуществить необходимые преобразования.

Кроме того, существует другая проблема — проблема безопасности типов. Так, мы получим ошибку во время выполнения программы, если напишем следующим образом:

Person tom = new Person(546, "Tom"); string tomId = (string)tom.Id; // !Ошибка - Исключение InvalidCastException Console.WriteLine(tomId); // 546

Мы можем не знать, какой именно объект представляет Id, и при попытке получить число в данном случае мы столкнемся с исключением InvalidCastException. Причем с исключением мы столкнемся на этапе выполнения программы.

Для решения этих проблем в язык C# была добавлена поддержка обобщенных типов (также часто называют универсальными типами). Обобщенные типы позволяют указать конкретный тип, который будет использоваться. Поэтому определим класс Person как обощенный:

class Person  < public T Id < get; set; >public string Name < get; set; >public Person(T id, string name) < Name = name; >>

Угловые скобки в описании class Person указывают, что класс является обобщенным, а тип T, заключенный в угловые скобки, будет использоваться этим классом. Необязательно использовать именно букву T, это может быть и любая другая буква или набор символов. Причем сейчас на этапе написания кода нам неизвестно, что это будет за тип, это может быть любой тип. Поэтому параметр T в угловых скобках еще называется универсальным параметром , так как вместо него можно подставить любой тип.

Например, вместо параметра T можно использовать объект int, то есть число, представляющее номер пользователя. Это также может быть объект string, либо или любой другой класс или структура:

Person tom = new Person(546, "Tom"); // упаковка не нужна Person bob = new Person("abc123", "Bob"); int tomId = tom.Id; // распаковка не нужна string bobId = bob.Id; // преобразование типов не нужно Console.WriteLine(tomId); // 546 Console.WriteLine(bobId); // abc123

Поскольку класс Person является обобщенным, то при определении переменной после названия типа в угловых скобках необходимо указать тот тип, который будет использоваться вместо универсального параметра T. В данном случае объекты Person типизируются типами int и string :

Person tom = new Person(546, "Tom"); // упаковка не нужна Person bob = new Person("abc123", "Bob");

Поэтому у первого объекта tom свойство Id будет иметь тип int, а у объекта bob — тип string. И в случае с типом int упаковки происходить не будет.

При попытке передать для параметра id значение другого типа мы получим ошибку компиляции:

Person tom = new Person("546", "Tom"); // ошибка компиляции

А при получении значения из Id нам больше не потребуется операция приведения типов и распаковка тоже применяться не будет:

int tomId = tom.Id; // распаковка не нужна

Тем самым мы избежим проблем с типобезопасностью. Таким образом, используя обобщенный вариант класса, мы снижаем время на выполнение и количество потенциальных ошибок.

При этом универсальный параметр также может представлять обобщенный тип:

// класс компании class Company  < public P CEO < get; set; >// президент компании public Company(P ceo) < CEO = ceo; >> class Person  < public T Id < get;>public string Name < get;>public Person(T id, string name) < Name = name; >>

Здесь класс компании определяет свойство CEO, которое хранит президента компании. И мы можем передать для этого свойства значение типа Person, типизированного каким-нибудь типом:

Person tom = new Person(546, "Tom"); Company microsoft = new Company(tom); Console.WriteLine(microsoft.CEO.Id); // 546 Console.WriteLine(microsoft.CEO.Name); // Tom

Статические поля обобщенных классов

При типизации обобщенного класса определенным типом будет создаваться свой набор статических членов. Например, в классе Person определено следующее статическое поле:

class Person  < public static T? code; public T Id < get; set; >public string Name < get; set; >public Person(T id, string name) < Name = name; >>

Теперь типизируем класс двумя типами int и string:

Person tom = new Person(546, "Tom"); Person.code = 1234; Person bob = new Person("abc", "Bob"); Person.code = "meta"; Console.WriteLine(Person.code); // 1234 Console.WriteLine(Person.code); // meta

В итоге для Person и для Person будет создана своя переменная code.

Использование нескольких универсальных параметров

Обобщения могут использовать несколько универсальных параметров одновременно, которые могут представлять одинаковые или различные типы:

class Person  < public T Id < get;>public K Password < get; set; >public string Name < get;>public Person(T id, K password, string name) < Name = name; Password = password; >>

Здесь класс Person использует два универсальных параметра: один параметр для идентификатора, другой параметр — для свойства-пароля. Применим данный класс:

Person tom = new Person(546, "qwerty", "Tom"); Console.WriteLine(tom.Id); // 546 Console.WriteLine(tom.Password);// qwerty

Здесь объект Person типизируется типами int и string. То есть в качестве универсального параметра T используется тип int , а для параметра K — тип string .

Обобщенные методы

Кроме обобщенных классов можно также создавать обобщенные методы, которые точно также будут использовать универсальные параметры. Например:

int x = 7; int y = 25; Swap(ref x, ref y); // или так Swap(ref x, ref y); Console.WriteLine($»x= y=»); // x=25 y=7 string s1 = «hello»; string s2 = «bye»; Swap(ref s1, ref s2); // или так Swap(ref s1, ref s2); Console.WriteLine($»s1= s2=»); // s1=bye s2=hello void Swap(ref T x, ref T y)

Здесь определен обощенный метод Swap, который принимает параметры по ссылке и меняет их значения. При этом в данном случае не важно, какой тип представляют эти параметры.

При вызове метода Swap типизируем его определенным типом и передаем ему соответствующие этому типу значения.

  • Вопросы для самопроверки
  • Упражнения

Что означает понятие обобщенные структуры

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

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

Любые данные могут быть отнесены к одному из двух типов: основному (простому), форма представления которого определяется архитектурой ЭВМ, или сложному, конструируемому пользователем для решения конкретных задач.

Данные простого типа это — символы, числа и т.п. элементы, дальнейшее дробление которых не имеет смысла. Из элементарных данных формируются структуры (сложные типы) данных.

  • Массив (функция с конечной областью определения) — простая совокупность элементов данных одного типа, средство оперирования группой данных одного типа. Отдельный элемент массива задается индексом. Массив может быть одномерным, двумерным и т.д. Разновидностями одномерных массивов переменной длины являются структуры типа кольцо, стек, очередь и двухсторонняя очередь .
  • Запись (декартово произведение) — совокупность элементов данных разного типа. В простейшем случае запись содержит постоянное количество элементов, которые называют полями . Совокупность записей одинаковой структуры называется файлом . (Файлом называют также набор данных во внешней памяти, например, на магнитном диске). Для того, чтобы иметь возможность извлекать из файла отдельные записи, каждой записи присваивают уникальное имя или номер, которое служит ее идентификатором и располагается в отдельном поле. Этот идентификатор называют ключом .

Имеется ряд структур, которые могут изменять свою длину — так называемые динамические структуры . К ним относятся дерево, список, ссылка.

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

Рис. 1.1 Классификация типов данных.

1.1.2. Обобщенные структуры или модели данных.

Выше мы рассмотрели несколько типов структур, являющихся совокупностями элементов данных: массив, дерево, запись. Более сложный тип данных может включать эти структуры в качестве элементов. Например, элементами записи может быть массив, стек, дерево и т.д.

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

  1. структура данных — описывает точку зрения пользователя на представление данных.
  2. набор допустимых операций , выполняемых на структуре данных. Модель данных предполагает, как минимум, наличие языка определения данных (ЯОД), описывающего структуру их хранения, и языка манипулирования данными (ЯМД), включающего операции извлечения и модификации данных.
  3. ограничения целостности — механизм поддержания соответствия данных предметной области на основе формально описанных правил.

  • иерархическая (параграф 3.1),
  • сетевая (параграф 3.2),
  • реляционная (глава 4).

Литература: Н.Вирт. Алгоритмы и структуры данных.-М.:"Мир",1989. М.Сибуя, Т.Ямамото. Алгоритмы обработки данных.-М.:"Мир",1986.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *