creation of automaton classes from graphical models and automatic solution for inverse problem yuri...

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 A. Shalyto Ph. D, prof. CTD, SPb SU ITMO

Upload: jazlyn-sharrard

Post on 02-Apr-2015

215 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Thank you!