Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly.

Slides:



Advertisements
Similar presentations
Automata-Based Programming Technology Extension for Generation of JML Annotated Java Card Code Andrey Klebanov, CTD, SPb SU ITMO supervised by Anatoly.
Advertisements

DOCUMENT TYPES. Digital Documents Converting documents to an electronic format will preserve those documents, but how would such a process be organized?
Comparison of Several Meta-modeling Tools 2 Yi Lu Computer Science Department McGill University
Based on Java Software Development, 5th Ed. By Lewis &Loftus
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Unified Modeling Language
Automata Based Programming Anatoly Shalyto, Fedor Tsarev Saint-Petersburg State University of Information Technologies, Mechanics and Optics.
Linux Summit 2004, Helsinki Foundation for Open Project Documentation Anatoly Shalyto Lev Naumov Computer Technology.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Analysis Modeling Over view of today’s lesson T he analysis model is the first technical representation of a system. Analysis modeling uses a combination.
Aalborg Media Lab 21-Jun-15 Software Design Lecture 1 “ Introduction to Java and OOP”
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
Modeling and the simulator of Digital Circuits in Object-Oriented Programming Stefan Senczyna Department of Fundamentals of Technical Systems The Silesian.
State-Driven Programming for Computer Games Georgiy Korneev Anatoly Shalyto Saint Petersburg State University of Information Technologies, Mechanics and.
© Copyright Eliyahu Brutman Programming Techniques Course.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Automata-Based Programming Anatoly Shalyto Computer Technology Department Saint-Petersburg State University of Information Technology,
An Introduction to Rational Rose Real-Time
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
State and Sequence Diagrams Modelling dynamic information So far we have seen: Use Case Diagrams – requirements capture, interface.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
SOA, BPM, BPEL, jBPM.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
On the Formal Specification of Automata- based Programs via Specification Patterns Spring/Summer Young Researchers' Colloquium on Software Engineering.
 Dipl.-Ing. Lars Grunske, 1 Hasso-Plattner-Institute for Software System Engineering at the University of Potsdam Department of Software Engineering and.
Chapter 9 Moving to Design
1 Programming Fundamentals AITI-GP. 2 Introduction to Programming.
Systems Analysis and Design in a Changing World, 3rd Edition
Copyright © 2013 Curt Hill UML Unified Modeling Language.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Michael Schloh von Bennewitz 1. Oktober 2002 The Unified Modeling Language Overview of theory and practice of the OMG Unified Modeling.
Unified Modelling Language (UML) Software Engineering Lab. Sharif University of Technology.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Collaboration Entities on Deterministic Finite Automata Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University, U.S.A.
Lab 5 CPIT 250 System Analysis and Design.
OMT Modeling 1. Object Model : presented by the object model and the data dictionary. 2. Dynamic Model: presented by the state diagrams and event flow.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Chapter 3: Introducing the UML
Inheritance of Automata Classes Using Dynamic Programming Languages (Using Ruby as an Example) Kirill Timofeev
Enterprise Systems Modeling EGN 5623 Enterprise Systems Optimization Fall, 2012.
DETAILED DESIGN, IMPLEMENTATION AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Enterprise Systems Modeling EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Comparison of ZOOM with other Formal Methodologies Hsiu-Chien Jing SE690 Initial Presentation School of CTI, DePaul University Supervised by Dr. Jia October,
Chapter 1 Overview of UML for Java Programmers. 2 Outline Diagram Types Diagram Types Class Diagrams Class Diagrams Object Diagrams Object Diagrams Sequence.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Appendix 3 Object-Oriented Analysis and Design
CHAPTER
Passing from design to implementation
Component and Deployment Diagrams
Information systems modeling tools
Physical Data Model – step-by-step instructions and template
Unified Modeling Language
Online Shopping APP.
UML dynamic Modeling (Behavior Diagram)
Software Engineering Chapter 5 (Part 3) System Modeling Dr.Doaa Sami.
BPMN - Business Process Modeling Notations
Software Design Lecture : 15.
Java Programming Course
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
Graphical Modeling of INFOD applications
Information systems modeling tools
Presentation transcript:

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

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer from the executable code to isomorphic graphical model  How it works. Automaton for user registration.

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.

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

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

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

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

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

DOT & dot  Modeling language  Directed/undirected graphs  Attributes  Tool  Cross platform  SVG, PNG, GIF, JPG digraph graphname { a -> b -> c; b -> d; }

More about DOT  Behavior diagram.  Graphs.  Describe logic.  Concurrent processes  Entire structure  Reverse engineering of automata-based programs

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automata-based programs from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

We can:  Use visual tools (Real, UniMod).  Use DSL (in Ruby, Groovy, others).  Use automaton libraries (Java, C#). Creation of automata-based programs

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

Overview Classes:  Automaton components: State, Transition, StateGroup, DSL.  Other classes: Entity, DOTConverter*. Interfaces:  Guard  Action

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); }

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 classes  Inheritance of automaton classes  Syntactic attractiveness  Designed for isomorphic transformation to model

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

Overview Problems  Duplicated nodes  Transitions between states and groups  Transitions between groups  Nested groups, states Input data:  Meta information  Properties of automaton class and components  Description of each component in DOT

Step by step states that don’t belongs to any group groups and nested states transitions  Objects are self-described  Object transforms itself to simple DOT

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

Outline  Automata-based programming  Reverse engineering  DOT modeling language  Creation of automaton classes from graphical models  Library for creation of automaton classes  Description of the algorithm of automatic transfer of the executable code to isomorphic graphical model  How it works. Automaton for user registration.

BasicUser model

AdvancedUser model

Thank you!