Based on the foregoing, architectural considerations let's form the static class diagram of the VCA, given the separation of the conceptual part (engine) and the part of self-realization of the VCA (Figure 4.11.1). Table 4.11 describes the classes of the class diagram.
Table 4.11. VCA classes
Class | Responsibility | Links |
TSecurity | Provides the information about the users, and also implements their authentication in the OpenSCADA system. | It is used by the widgets and frames of the VCA to verify the access rights. |
TFunction | Is used to access the mechanism of user programming when describing the logic of derived widgets, as well as to include the API functions of the object model into the derived widgets. | Stores the structure if parameters with the logic in the derived widgets. Passed to the module, which provides the user programming language implementation in order to connect the mechanism of processing the program's logic. |
TUI | The root object of the module of subsystem "User interfaces" which is used for integration into the kernel of the OpenSCADA system. | Is inherited by the root objects of the module of the VCA concept and by modules of implementation of the VCA interface. |
VCA::Engine | The root object of the module of the VCA concept/engine. It contains the containers of objects of the engine, as well as general methods and data. | It is used by the visualization interfaces to access the data of the projects' sessions and concepts in general. Integrates the concepts' f code of the VCA in the OpenSCADA system. |
VCA::WidgetLib | Object of the library of widgets/frames, contains the objects of library widgets (VCA::LWidget). The library of widgets structure can be freely formed by the user. | Contains the objects of library widgets (VCA::LWidget). |
VCA::Widget | Abstract object of the widget. | Is inherited by the objects of library widget(VCA::LWidget), of the container widget(VCA::CWidget), of the frame's of the project(VCA::Win) and by the objects of the execution session of the project(VCA::SessWin,VCA::SessWdg). The widget-container contains the function associated with the implementation of the user programming language. Uses the object OpenSCADA API TSecurity for managing the access rights. Uses events from an event's manager. Contact the theme's managers in order to obtain the immediate values of the fonts, colors in accordance with the current theme. |
VCA::LWidget | Object of the library widget/frame. | Is stored in the library (VCA::WidgetLib). It can contain the embedded widgets, represented by the objects of the container widgets (VCA::CWidget). |
VCA::CWidget | The object of the container widget of the library widget/frame (VCA::LWidget). In fact, it serves as link to the library widget. | It is stored in the library frame/widget (VCA::LWidget). |
VCA::Project | The object of the project of the user interface. It contains windows (VCA::Win) with the hierarchical name. | Is stored in the container of the object of concept (VCA::Engine). Contains the objects of windows (VCA::Win) of the project. |
VCA::Page | The Object of the VC interface page. It is closely related to the frame from the library of widgets, the frame itself has the elements of the interface. The object of the window itself, in addition to the frame, allows the links to the dynamics and provides the mechanism for the dynamics interleaving of the frame on the pages, with the possibility of forming the template of the dynamics. | Is stored in the container of the project. Is inherited from the abstract widget (VCA::Widget). Is connected with frame of the interface (VCA::LWidget) in the library of widgets. |
VCA::Theme | Object of the theme of the visualization interface. It contains the elements of the theme (VCA::ThemeEl). | Is stored in the container of the object of concept (VCA::ConcVCA). Stores elements of the theme (VCA::ThemeEl). |
VCA::ThemeEl | Object of the theme's element. Contains an association of the element with the code of the color and font. | Is contained in the container of the theme (VCA::Theme). Is used by the widget's object (VCA::Widget) for obtaining the color and font values by the name of the theme's element. |
VCA::EventMap | Object of the events' card. Contains the events' objects (VCA::Event). | Is contained in the container of the conception object (VCA::ConcVCA). Stores the descriptions of events (VCA::Event). |
VCA::Event | Event's object contains the association of the object(event)'s name with the real event. | Is contained in the container of the events' map (VCA::EventMap). |
VCA::Session | Object of the execution session of the visualization project. Is opened by the module of the visualization interface and uses in the future the session data for the visualization by its own method. All calculations of the visualization interfaces are made in the session. | Is contained in the visualization interface project. Contains the objects of the session windows with the execution data. Is used by the modules of the visualization interfaces to display the data of the session. |
VCA::SessPage | Object of the session's page. Contains the dynamic data of the window of the project on which it makes the required calculations. | Is contained in the object of the session of the project (VCA::SessProj). Is inherited from the abstract widget (VCA::Widget). Uses the object of the project's page (VCA::Page) as the source of the parameters' values. |
VCA::SessWdg | Object of the session's widget. Contains the dynamic data of the separate element of the frame over which it makes the required calculations. May be enclosed in one another in accordance with the hierarchy of widgets of the frame. | Is contained in the object of the session's window (VCA::SessPage) or in the higher on the hierarchy object of this type. Is inherited from the abstract widget (VCA::Widget). Uses the object of library (VCA::LWidget) and/or container (VCA::CWidget) widget as the source of initial parameters. Is used by the visualization interface module as the source of dynamic data for visualization. |
Vision, WebGUI | Root objects of the visualization interface module, built on the basis of Qt library and Web-based technologies. They provide access to the means of execution and development of visualization interfaces used in the environment of used technology. | Provide an access to runtime and development modes. Integrate the visualization interface code into the OpenSCADA system. |
VRunTime, WebRunTime | Objects of runtime of the visualization interface based on Qt library and Web-based technologies. Directly provides the user visualization and control interface. | Is contained in the root objects of the visualization modules. They are connected and used the data of the project's session object (VCA::SesProj) of the VCA concept. In accordance with the structure of the session they contain the great number of specialized objects of the direct visualization. |
VDevelop, WebDevelop | Objects of the development framework of the visualization interface based on Qt library and Web-based technologies. Provide an interface of the tool over the conception data for the development of VC interfaces. | They are contained in the root object of the visualization modules. They are connected to the object of the root of the VCA conception (VCA::Engine) and provide the graphical interface for managing it. In accordance with the structure of the conception they include the great number of specialized control objects. |
The static class diagram (Fig.4.11.1) does not reveal the entire hierarchy of interaction of objects, based on an abstract object VCA::Widget. This is due to the implicit inheritance of these properties of the widget across all segments of the engine, as well as with the intricacies of inheritance, built by using the data of some widgets in the other ones. To explain these features represented the comprehensive map of "using" inheritance into section 4.5.