OpenSCADAWiki: Doc/VCA/part4/part11
 
Исходя из вышеизложенных, архитектурных, соображений сформируем статическую диаграмму классов СВУ, учитывая разделение на концептуальную часть (движок) и часть индивидуальной реализации СВУ (рис. 4.11.1). В таблице 4.11 представлено описание классов диаграммы классов.

Статическая диаграмма классов. (69 Kb)
Рис.4.11.1 Статическая диаграмма классов.


Таблица 4.11. Классы СВУ
Класс Ответственность Связи
TSecurity Предоставляет информацию о пользователях, а также выполняет их аутентификацию в системе OpenSCADA. Используется виджетами и кадрами СВУ для проверки прав на доступ к ним.
TFunction Используется для доступа к механизму пользовательского программирования при описании логики производных виджетов, а также для включения функций API объектной модели в производные виджеты. Хранит структуру параметров обвязываемых логикой в производных виджетах. Передаётся модулю, предоставляющего реализацию языка пользовательского программирования, с целью подключения механизма обработки логики программы.
TUI Корневой объект модуля подсистемы "Пользовательские интерфейсы", используемый для интеграции в ядро системы OpenSCADA. Наследуется корневыми объектами модуля концепции СВУ и модулями реализации интерфейса СВУ.
VCA::Engine Корневой объект модуля концепции/движка СВУ. Содержит контейнеры объектов движка, а также общие методы и данные. Используется интерфейсами визуализации для доступа к данным сеансов проектов и концепции в целом. Интегрирует код концепции СВУ в систему OpenSCADA.
VCA::WidgetLib Объект библиотеки виджетов/кадров, содержит объекты библиотечных виджетов (VCA::LWidget). Состав библиотек виджетов может свободно формироваться пользователем. Содержит объекты библиотечных виджетов (VCA::LWidget).
VCA::Widget Абстрактный объект виджета. Наследуется объектами: библиотечного виджета (VCA::LWidget), контейнерного виджета (VCA::CWidget), кадра проекта (VCA::Win) и объектами сеанса исполнения проекта (VCA::SessWin, VCA::SessWdg). Виджет-контейнер содержит функцию связанную с реализацией языка пользовательского программирования. Использует объект "OpenSCADA API TSecurity" для управления правами доступа. Использует события из менеджера событий. Обращается к менеджеру тем для получения непосредственных значений цветов шрифтов в соответствии с текущей темой.
VCA::LWidget Объект библиотечного виджета/кадра. Хранится в библиотеке (VCA::WidgetLib). Может содержать вложенные виджеты, в лице объектов контейнерных виджетов (VCA::CWidget).
VCA::CWidget Объект контейнерного виджета библиотечного виджета/кадра (VCA::LWidget). Фактически выполняет роль ссылки на библиотечный виджет. Содержится в библиотечном кадре/виджете (VCA::LWidget).
VCA::Project Объект проекта пользовательского интерфейса. Содержит окна (VCA::Win) с иерархическим наименованием. Содержится в контейнере объекта концепции (VCA::Engine). Содержит объекты окон (VCA::Win) проекта.
VCA::Page Объект страницы интерфейса ВУ. Тесно связан с кадром из библиотеки виджетов, собственно кадр и несёт в себе элементы интерфейса. Сам объект окна, в дополнении к кадру, разрешает ссылки на динамику и предоставляет механизм расслоения динамики кадра на страницы, с возможностью формирования шаблона динамики. Содержится в контейнере проекта. Наследуется от абстрактного виджета (VCA::Widget). Связывается с кадром интерфейса (VCA::LWidget) в библиотеке виджетов.
VCA::Theme Объект темы интерфейса визуализации. Содержит элементы темы (VCA::ThemeEl) Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит элементы темы (VCA::ThemeEl).
VCA::ThemeEl Объект элемента темы. Содержит ассоциацию имени элемента с кодом цвета и шрифта. Содержится в контейнере темы (VCA::Theme). Используется объектом виджета (VCA::Widget) для получения значений цвета и шрифта по имени элемента темы.
VCA::EventMap Объект карты событий. Содержит объекты событий (VCA::Event). Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит описания событий (VCA::Event).
VCA::Event Объект события, содержит ассоциацию имени объекта(события) с реальным событием. Содержится в контейнере карты событий (VCA::EventMap).
VCA::Session Объект сессии исполнения проекта визуализации. Открывается модулем интерфейса визуализации и использует, в дальнейшем, данные сессии для визуализации своим методом. Все вычисления интерфейсов визуализации выполняются именно в сессии. Содержится в проекте интерфейса визуализации. Содержит объекты окон сессии с данными исполнения. Используется модулями интерфейсов визуализации для отображения данных сессии.
VCA::SessPage Объект страницы сессии. Содержит динамические данные окна проекта над которыми выполняет требуемые вычисления. Содержится в объекте сессии проекта (VCA::SessProj). Наследуется от абстрактного виджета (VCA::Widget). Использует объект страницы проекта (VCA::Page) как источник исходных параметров.
VCA::SessWdg Объект виджета сессии. Содержит динамические данные отдельного элемента кадра над которыми выполняет требуемые вычисления. Может вкладываться один в другой в соответствии с иерархией виджетов кадра. Содержится в объекте окна сессии (VCA::SessPage) или в высшем по иерархии объекте этого типа. Наследуется от абстрактного виджета (VCA::Widget). Использует объект библиотечного (VCA::LWidget) и/или контейнерного (VCA::CWidget) виджета как источник исходных параметров. Используется модулем интерфейса визуализации в роли источника динамических данных для визуализации.
Vision, WebGUI Корневые объекты модуля интерфейса визуализации, построенные на основе библиотеки Qt и Web-технологий. Предоставляют доступ к средствам исполнения и разработки интерфейсов визуализации в среде используемой технологии. Предоставляют доступ к среде исполнения и разработки. Интегрируют код интерфейса визуализации в систему OpenSCADA.
VRunTime, WebRunTime Объекты среды исполнения интерфейса визуализации на основе библиотеки Qt и Web-технологий. Непосредственно предоставляют пользовательский интерфейс визуализации и управления. Содержаться в корневых объектах модулей визуализации. Подключаются и используют данные объекта сеанса проекта (VCA::SesProj) концепции СВУ. В соответствии со структурой сеанса содержат множество специализированных объектов непосредственного отображения.
VDevelop, WebDevelop Объекты среды разработки интерфейса визуализации на основе библиотеки Qt и Web-технологий. Предоставляют интерфейс инструмента над данными концепции для разработки интерфейсов ВУ. Содержаться в корневых объектах модулей визуализации. Подключаются к объекту корня концепции СВУ (VCA::Engine) и предоставляют графический интерфейс для управления ею. В соответствии со структурой концепции содержат множество специализированных объектов управления.

Статическая диаграмма классов не раскрывает всей иерархии взаимодействия объектов, основанных на абстрактном объекте VCA::Widget. Это связано с неявным наследованием данных свойств виджетов через все слои движка, а также тонкостями наследования, выстроенного путём использования данных одних виджетов в других. Для разъяснения этих особенностей изображена исчерпывающая карта "использующего" наследования в разделе 4.5.