This tutorial adds SmartDG Dependency Graphs to an existing SmartMDSD system project.
|Assumptions||This tutorial assumes you know how to compose components in a system (see Develop Your First System by Composing Software Components), and that you have a basic understanding of OPC UA.|
|System Requirements||Virtual Machine Image Installed, see ready-to-go virtual machine|
|You will learn||How to add SmartDG Dependency Graphs to existing SmartMDSD system projects|
Dependency Graphs are networks of dependencies that emerge from the flow of system-level characteristics, controlled by evidence and business logic. This tutorial adds SmartDG Dependency Graphs to an existing SmartMDSD system project.
This tutorial is also available as video tutorial.
In an existing SmartMDSD system project.
Component instances that are of components with the existing SmartDG component models.
Add a new SmartDG model to the system project “SurveillanceSystem”.
The “dg” (Dependency Graph) and “de” (Tier-3 dependency environment) models will be generated. The “de” model is empty by default.
The “dg” default model will import the Tier-2 Dependency base environment from SMART_ROOT_ACE and make a Tier-3 User Environment model at HOME after it is built. SmartDG source code and the corresponding executable is generated at the HOME location. It is possible to replace HOME with a user-defined file path in the model.
“Unnamed” connectors and random placements for components in GUI are generated by the default “dg” model.
Connectors (CS05, DF etc.) from the Tier-2 Environment model can be specified for specific Dependency connections.
Specifying the placement of components in the GUI is essential for a clean SmartDG execution GUI.
SmartDG models (source code and executables) are regenerated after every change in the model files.
Interlinked windows are generated for “Component Views” and “Dependency Object” views.
SmartDG Component View “Cam1” : An instance of Component “ZeroCamera” from Tier-3 User Environment. This uses generic transfer functions.
SmartDG Component View “Cam2” : A second instance of Component “ZeroCamera” from Tier-3 User Environment. This too uses generic transfer functions.
SmartDG Component View “Mapper”: An instance of Component “TwoMapMaker” from Tier-3 User Environment. This Transfer Functions provided by a Tier-2 Environment model.
SmartDG Component View “Louie” : An instance of Component “OneUser” from Tier-3 User Environment. This uses generic transfer functions.
SmartDG Component View “Huey” and “Dewey” : Another two instances of Component “OneUser” from Tier-3 User Environment. Both of these uses generic functions as well.
SmartDG Dependency Object View “DGSecurity” : Presents editable linked instances of Dependency Object “DGSecurity” across the complete system “SurveillanceSystem”.
The Dependency Object “DGSecurity” is defined in the Tier-2 Environment model.
SmartDG Dependency Object View “DGPrivacy” : Presents editable linked instances of Dependency Object “DGPrivacy” across the complete system “SurveillanceSystem”.
The Dependency Object “DGPrivacy” is defined in the Tier-2 Environment model.
“Component Views” are specific to a component's activity while the “Dependency Object” represents the system-wide activity of a particular Dependency Object.
Changes in dependency objects across views are available for standalone (detached) or synced (attached) observation modes.
The additional Download and Upload options give the user control over when to display the results of the most recent inward or outward Sync.
Value of Dependency Object instance “DGPrivacy” in Output Port “RGBImage” of Component “Cam1” is changed by the most recent inward (Download) Sync.
Solver and Transfer Function activity can be checked on the console.
SmartDG source code and the corresponding executable is generated at the HOME location.
In addition to the SmartDG General Component and Dependency Object views, an additional system-wide multi-view representation (SmartDG Lite Mode) is generated by SmartDG.
At present, the web-browser-based “SmartDG Lite Mode” is only available to observe (and not edit) the dependency object associations. This mode will be more functional in future releases.
A SmartDG execution for a system model generates a folder named “SmartDGlite” in the directory of the executable file.
To use the “SmartDG Lite Mode”, Execute the “LaunchServer.sh” script from another terminal window. This is to launch the data-sync server.
Note that this step is NOT REQUIRED to run the SmartDG system execution model in “General Mode”. The user can avoid the steps given hereafter if “SmartDG Lite Mode” is not required.
The Data-sync server launch is confirmed by the automatic launch of the browser window.
The “SmartDG Lite Mode” can be launched by opening the “DGlite.html” file in any browser.
An animated “Live” dot indicates that the “SmartDG Lite Mode” is synced with the General SmartDG system execution model.
“SmartDG Lite Mode” provides greater functionality in terms of handling and observing the components and individual dependency links.
Changes made in any of the General SmartDG component or dependency object views are reflected immediately in “SmartDG Lite Mode”.
“SmartDG Lite Mode” is in the experimental stage. Plans to make this the principal GUI are in the pipeline.
Functionality to add/delete dependencies and change the values of dependency object instances in “SmartDG Lite Mode” is imagined as a future possibility.
☎ Watch video SmartDG Dependency Graph Model using SmartDGlite
* SmartDG : Dependency-Graph extensions for SmartMDSD Toolchain
* Go through SmartDG Library Tutorials linked above and make your first Dependency Graph executable model.