Связь компонентной и объектной моделей
При этом ОСц, ОС12, ОС2, ОС3 — исходные интерфейсы в компонентной модели. Между объектными и компонентными интерфейсами установлено однозначное отображение, а для объектной и компонентной моделей такого отображения не существует, так как компонент Сотр3 имеет два входных интерфейса, т. е. функциональность классов 03 и 04 реализована в одном компоненте. Между объектным и компонентным… Читать ещё >
Связь компонентной и объектной моделей (реферат, курсовая, диплом, контрольная)
Результатом сопоставления определений алгебраических систем и изоморфизма этих систем является следующая теорема.
Теорема 7.5. Отображение О —> С создает сложный объект из КИИ и его реализацию, изоморфизм объектной и компонентной моделей задается моделью типа .
Отображение сопоставляет каждому объекту входной интерфейс. Изоморфизмы алгебраических моделей типа 2(0; R0), (/; RI) и (/; RI), {С, RC) превращают точки вариабельности / варианты сложных объектов в точки вариабельности / варианты интерфейсов и КИИ.
Связь компонентной модели с объектной ОМ проследим с помощью процесса функционирования компонентов Create и интерфейса Cfac, порождающего экземпляры компонентов:
где Cins — экземпляр-компонента, который предоставляет свою функциональность с помощью интерфейса IntFunc1 и обеспечивает реализацию этого интерфейса с помощью Imp Fund; IinsV — уникальный идентификатор экземпляра компонента.
Пусть существует некоторая объектная система, представленная диаграммой классов:
где OClass = {OClass'} — множество классов; G — объектный граф, отражающий связи и отношения между классами и экземплярами.
Каждый класс представлен в виде.
где ClassNamd — имя класса; Method'* = {Methodj) — множество методов; Field1 — {FieldJ,} — множество переменных, определяющих состояние экземпляров класса.
Переход от объектной к компонентной структуре связан с преобразованием объектов и интерфейсов ОМ к компонентам и интерфейсам (рис. 7.5).
Рис. 7.5. Структура связи компонентов и интерфейсов в классе.
На рисунке показаны структура компонентов Сотр{ и Сотръ соответствующие интерфейсы. Int]} Intox и IntI2> IntI02 в классе компонентов OClass, OClass2 и OClass3.
Каждый Oclass представляется как модель класса.
где OClass = {ОClass1} — множество классов; ClassNamd — имя класса; Method'= = {Methodj} — множество методов; Field = {Field'п} — множество переменных, определяющих состояние экземпляров класса.
Пусть Pfield1 с Field1 — множество внешних переменных {public), доступные извне. Каждому Pfieldj, е Pfield7 ставятся в соответствие методы ln> и set ln> для присвоения и выборки значений переменной. Другими словами, эти переменные становятся атрибутами в современных компонентных моделях.
В других классах вместо непосредственного обращения к таким переменным будут использоваться указанные методы.
Введем новое множество методов:
которым сопоставим интерфейс Ifunc*, состоящий из прототипов методов, которые входят в Imethod*.
Вместе с Osyst рассмотрим систему Isyst = {Ifunc, IG), где Ifunc = = {Ifunc1} — множество интерфейсов; IG — интерфейсный граф, идентичный графу G.
Класс Oclass' порождает свои экземпляры (объекты) Objf = {ObjName, Method1, Field1}, которым в системе Isyst будут соответствовать интерфейсные элементы Iobj = [Inamelk, Ifunc1}.
Для каждого такого элемента не определена реализация соответствующего интерфейса. Сопоставив некоторому интерфейсу реализацию ImpFund (которая обеспечивает выполнения методов интерфейса), сформируем элемент Iobjf = {1пате, Ifunc1, ImpFund), который, по своей сути, эквивалентен экземпляру компонента Cins = {IinsIntFund, ImpFund).
Основные расхождения определяются следующими факторами. Во-первых, выбор реализации в процессе развертывания, а не на ранних стадиях, как это есть в ООН. Во-вторых, экземпляр объектного класса порождается его описанием и не может содержать элементов больше, чем существует в самом классе или его суперклассах. Противоположно этому реализация компонента может поддерживать несколько не связанных между собою интерфейсов. Эти две системы (объектная и интерфейсная) эквивалентны.
При построении компонентной системы используются соответствующие инструментальные средства. Согласно логико-математическому проектированию создается ОМ и соответствующая интерфейсная система без конкретизации реализации этих интерфейсов. Результат такого проектирования — совокупность интерфейсов, для которой рассматривается задача покрытия интерфейсов соответствующими компонентными реализациями. При этом нет необходимости учитывать реализацию функциональности ПС в виде конфигурации компонентов, которая выполняется путем сборки компонентов в стандартной форме и развертывания ПС.
Типы отношений между компонентами в ОКМ задаются в виде.
К ним относятся следующие отношения:
- • наследование двух компонентов определяется установлением отношения наследования для входных интерфейсов (как наследования в ООП);
- • экземпляризация создастся соответственно определенному входному интерфейсу CIntP. Выражение Clns’l = (Ilnstf, IntFunc*, Imp Fund) описывает экземпляр компонента Comp. Здесь IIns% — уникальный идентификатор экземпляра, IntFunc* — функциональность интерфейса CIntP е Clnt, ImpFund — программный элемент, который обеспечивает реализацию CImp1 е е CImp]
- • интерфейс между компонентами Сотрх и Сотр2 в виде выражения Cont2 = (Clnt", Clnt2, IМар1™), где CInt e CIntx — исходный интерфейс первого компонента, Clnt™ е CInt2 — входной интерфейс второго компонента; Шарх™ — отображение соответствия между методами, входящими в состав обоих интерфейсов с учетом сигнатур и ТД, которые передаются. Отношения контракта существует, если компонент Сотр2 имеет реализацию интерфейса Clnt™, выполняющего функциональность IntFuncх и интерфейс CInt
- • связывание компонентов Сотрх и Сотр2 с помощью отношения контракта Cont" !}, в котором между экземплярами CInslJ{k = (Ilns^ IntFund, ImpFund) и CIns™(; = (IlnsIntFuncmf ImpFunc(i) существует отношение связывания через контракт Cont™, который описывается выражением Bind (Ilnsfa, IIns™jj> Cont™).
Между объектным и компонентным представлениями систем существует неоднозначность, которая порождается тем, что определенный компонент может иметь несколько интерфейсов Isyst. В случае если каждый отдельный компонент использует один интерфейс, то существует единое эквивалентное отображение между объектными и компонентными представлениями.
Пример объектного и компонентного описания сложной системы из объектов и компонентов показан на рис. 7.6.
В нем используются:
Сотрх(ОС1{у ОС12), Сотр2 (1С2, ОС2), Сотр3 (/С3, 1С4 ОС3) — компоненты ПрО с входными и выходными параметрами;
Oj, 02, 03, 04 — классы объектов ОМ;
/02, /03, Юа — входные объектные интерфейсы;
1С2 /С3, 1С4 — входные параметры компонентов (штрихпунктирные линии).
В интерфейсном представлении ISyst существуют компонентные интерфейсы /С2, /С3,1СА (штрихпунктирные линии).
При этом ОСц, ОС12, ОС2, ОС3 — исходные интерфейсы в компонентной модели. Между объектными и компонентными интерфейсами установлено однозначное отображение, а для объектной и компонентной моделей такого отображения не существует, так как компонент Сотр3 имеет два входных интерфейса, т. е. функциональность классов 03 и 04 реализована в одном компоненте.
В ОКМ объектный анализ — это первая фаза объектно-компонентного метода проектирования ПС, при котором выявляются объекты и строится ОМ, адекватно отображающая ее структуру, объекты и отношения между ними и т. п. Главная задача второй фазы — проектирование конкретных компонентов и ПС по результатам моделирования ПрО. В ОКМ процессы определения объектов начинаются с отдельных сущностей ПрО и заканчиваются заданием компонентов с учетом их поведения в компонентной среде. Объектная модель отображается в компонентную модель путем интерфейсов для компонентов на основе компонентной алгебры.
Рис. 7.6. Структура программы в ОКМ:
— связи между объектами; — информационные связи.