creation of automaton classes from graphical models and automatic solution for inverse problem yuri...
TRANSCRIPT
![Page 1: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/1.jpg)
Creation of Automaton Classes from Graphical Models and Automatic
Solution for Inverse Problem
Yuri A. Gubin student of SPb SU ITMO
supervised by Anatoly A. ShalytoPh. D, prof. CTD, SPb SU ITMO
![Page 2: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/2.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer from
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 3: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/3.jpg)
Automata-based programming overview
Introduced by A. Shalyto in 1991;Sort of synchronous programming;Programs are treated as systems of automated controlled
objects; Each system consists of control system and controlled
objects;Control system - system of co-operating automata.
![Page 4: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/4.jpg)
Automata-based programming benefits
Formally describes application logic and behaviour;Perfect solution for reliable application development
for reactive and embedded systems;Defines two types of diagrams for application
description – connectivity schema and transition
graphs; Partition usage
![Page 5: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/5.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 6: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/6.jpg)
Reverse engineering
Repair lost documentation. Product analysis. Security auditing. Academic/learning purposes. Curiosity. Competitive technical intelligence. Learning: Learn from others mistakes
Aspects of usage:
Graphical model is an important part of reverse engineering process
![Page 7: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/7.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 8: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/8.jpg)
Graphviz
Graphviz is a package of open source tools initiated by
AT&T Research Labs for drawing graphs specified in
DOT language scripts. Graphviz is free software licensed under the Common
Public License. Graphviz consists of a graph description language
named the DOT language and a set of tools
![Page 9: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/9.jpg)
DOT & dot
Modeling languageDirected/undirected graphsAttributes
ToolCross platformSVG, PNG, GIF, JPG
digraph graphname { a -> b -> c; b -> d; }
![Page 10: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/10.jpg)
More about DOT
Behavior diagram. Graphs. Describe logic.Concurrent processesEntire structure
Reverse engineering of
automata-based programs
![Page 11: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/11.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automata-based programs from graphical
models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 12: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/12.jpg)
We can: Use visual tools (Real, UniMod). Use DSL (in Ruby, Groovy, others). Use automaton libraries (Java, C#).
Creation of automata-based programs
![Page 13: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/13.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 14: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/14.jpg)
Overview
Classes:Automaton components: State, Transition,
StateGroup, DSL.Other classes: Entity, DOTConverter*.
Interfaces:GuardAction
![Page 15: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/15.jpg)
Sample
package demo;
import automaton.*;
public class PureStates extends DSL {
public State a = new State("a");
public State b = new State("b");
public Transition t1 = new Transition("t1", "Event",
new Guard() {
public boolean is() {
System.out.println("Stub guard");
return true;}
public String toDOT() {
return "Stub guard";}
},
null,a, b);
public Transition t2 = new Transition(
"t2", "Event2",null, null, b, a);
}
![Page 16: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/16.jpg)
Usage and Benefits
import automaton.*;
import demo.*;
public class Main {
public static void main(String[] args) {
PureStates pureStates= new PureStates() ;
DSL.compile(pureStates, pureStates.a);
pureStates.saveToFile(“pure_states.dat");
pureStates.printImageToFile(“pure_states.gif");
pureStates.process("Event");
…
Benefits:Anonymous classesInheritance of automaton classesSyntactic attractivenessDesigned for isomorphic transformation to model
![Page 17: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/17.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 18: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/18.jpg)
Overview
ProblemsDuplicated nodesTransitions between states and groupsTransitions between groupsNested groups, states
Input data:Meta informationProperties of automaton class and componentsDescription of each component in DOT
![Page 19: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/19.jpg)
Step by step
states that don’t belongs to any group
groups and nested states
transitions
Objects are self-describedObject transforms itself to simple DOT
![Page 20: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/20.jpg)
Output
digraph veryuniqname {compound=true;subgraph cluster0{"c"[ label = "c"]"axstart"[shape=point]"axstart" -> "a""a"[ label = "a"]"b"[ label = "b"]"b"->"c"[label = " E "]"c"->"a"[label = " E "]"a"->"b"[label = " E(G)/ACT "]"b"->"a"[label = " E "]
label=" StatesInheritance : demo.PureStates "}}
saveToFile() –
save as plain text
printImageToFile() –
save as Image
![Page 21: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/21.jpg)
Outline
Automata-based programmingReverse engineeringDOT modeling languageCreation of automaton classes from graphical models Library for creation of automaton classesDescription of the algorithm of automatic transfer of
the executable code to isomorphic graphical modelHow it works. Automaton for user registration.
![Page 22: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/22.jpg)
BasicUser model
![Page 23: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/23.jpg)
AdvancedUser model
![Page 24: Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly](https://reader035.vdocument.in/reader035/viewer/2022070308/551c5a0f5503469d6a8b5067/html5/thumbnails/24.jpg)
Thank you!