<<  Authors Purpose. Modes of Writing Automig  >>
Automata-Based Programming
Automata-Based Programming
Project Documentation in the Real World (1)
Project Documentation in the Real World (1)
Project Documentation in the Real World (2)
Project Documentation in the Real World (2)
Hardware Documentation vs
Hardware Documentation vs
Open Project Documentation
Open Project Documentation
Why Only Open Project Documentation
Why Only Open Project Documentation
Software Project Documentation
Software Project Documentation
Automata-Based Programming
Automata-Based Programming
Automata-based programming guidelines
Automata-based programming guidelines
Automata-based programming basics
Automata-based programming basics
Automata in Automata-based programming
Automata in Automata-based programming
Educational Experiment (1)
Educational Experiment (1)
Educational Experiment (2)
Educational Experiment (2)
Educational Experiment (3)
Educational Experiment (3)
Projects Examples
Projects Examples
Three Examples
Three Examples
Diesel Generator Project Execution Flow
Diesel Generator Project Execution Flow
Diesel-generator Automata Interaction Diagram
Diesel-generator Automata Interaction Diagram
Diesel-generator Automata Interface Diagram
Diesel-generator Automata Interface Diagram
Diesel-generator Automata Transition Graph
Diesel-generator Automata Transition Graph
Diesel-generator Isomorphic Source Code
Diesel-generator Isomorphic Source Code
Diesel-generator Verification Logs
Diesel-generator Verification Logs
RoboCode Agent
RoboCode Agent
RoboCode Agent Project Execution Flow
RoboCode Agent Project Execution Flow
RoboCode Agent Classes Diagram
RoboCode Agent Classes Diagram
RoboCode Agent Class Structure Diagram
RoboCode Agent Class Structure Diagram
RoboCode Agent Automata Interface
RoboCode Agent Automata Interface
RoboCode Agent Transition Graph
RoboCode Agent Transition Graph
RoboCode Agent Debugging through Protocols
RoboCode Agent Debugging through Protocols
Visualization Framework
Visualization Framework
Visualization Framework Visualizer Structure
Visualization Framework Visualizer Structure
Visualization Framework Project Documentation (1)
Visualization Framework Project Documentation (1)
Visualization Framework Project Documentation (2)
Visualization Framework Project Documentation (2)
Visualized Algorithms
Visualized Algorithms
Links
Links

: Automata-Based Programming. : Georgiy Korneev. : Automata-Based Programming.ppt. zip-: 1001 .

Automata-Based Programming

Automata-Based Programming.ppt
1 Automata-Based Programming

Automata-Based Programming

Anatoly Shalyto shalyto@mail.ifmo.ru

Computer Technology Department Saint-Petersburg State University of Information Technology, Mechanics and Optics, Russia

2 Project Documentation in the Real World (1)

Project Documentation in the Real World (1)

Foundation for Open Project Documentations http://is.ifmo.ru

3 Project Documentation in the Real World (2)

Project Documentation in the Real World (2)

Commercial Software Critical Objects Control Software Main by standards Extra by customer needs Other By customers requirements Non commercial software Educational Good quality Other By developers wishes

Foundation for Open Project Documentations http://is.ifmo.ru

4 Hardware Documentation vs

Hardware Documentation vs

Software Documentation

Designers and manufacturers are different people Hardware Documentation Project Documentation Design Basis Verification Results User Guide

Designers and manufacturers are same people Software Documentation User Manual Developers Guide Source Code (for open source projects)

Foundation for Open Project Documentations http://is.ifmo.ru

5 Open Project Documentation

Open Project Documentation

Why Project Documentation? Software quality improvement Better verification Faster and safer modification Why Open Project Documentation? Open project documentation increases freedom Better project understandability Project design borrowing Educational purposes For students For specialists

Foundation for Open Project Documentations http://is.ifmo.ru

6 Why Only Open Project Documentation

Why Only Open Project Documentation

Open = Must be available for further using and development Foundation for Open project Documentation is Free, but it is in different area comparing with Free Software Foundation or Open Source Foundation Foundation results is applicable not only for free software, but also for commercial, secret and other kinds of software

Foundation for Open Project Documentations http://is.ifmo.ru

7 Software Project Documentation

Software Project Documentation

In engineering practice projects must be well-documented So on www.sourceforge.net there are not 76000 project, but much fewer The code must be based on the project documentation, not vice versa Project execution flow must be documented, not only final results

Foundation for Open Project Documentations http://is.ifmo.ru

8 Automata-Based Programming

Automata-Based Programming

Proposed in 1991 Based on states decomposition Model-driven development Usage scope systems with complex behavior Applicable for different type of computing devices Logic Controllers Programming Microcontrollers Microprocessors

Foundation for Open Project Documentations http://is.ifmo.ru

9 Automata-based programming guidelines

Automata-based programming guidelines

Logic control State-based procedural programming State-based object-oriented programming Computational algorithms

Foundation for Open Project Documentations http://is.ifmo.ru

10 Automata-based programming basics

Automata-based programming basics

State Set of states Input variables + Events = Input Actions States + Input Actions = Automata With No Output Automata With No Output + Output Actions = Automata States are encoded with multiple values Observation of the automata states Correlated automata systems Logging Project documentation

Foundation for Open Project Documentations http://is.ifmo.ru

11 Automata in Automata-based programming

Automata in Automata-based programming

Logic specification language Isomorphic mapping to source code Program works and builds logs in terms of automata

Foundation for Open Project Documentations http://is.ifmo.ru

12 Educational Experiment (1)

Educational Experiment (1)

Computer Technology Department in University of Information Technology, Mechanics and Optics, Saint Petersburg, Russia Chosen students from the whole Russia International Olympiads in Informatics medalists ACM International Collegiate Programming contest medalists

Foundation for Open Project Documentations http://is.ifmo.ru

13 Educational Experiment (2)

Educational Experiment (2)

1998-2001 Common Teaching 1 Lectures and Exams 2001-2002 Common Teaching 2 Lectures, Course Works and Exams 2002-2009 Experimental Teaching Lectures and Projects Project Documentation Verification More than 150 fully Developed and Documented Projects To be continued

Foundation for Open Project Documentations http://is.ifmo.ru

14 Educational Experiment (3)

Educational Experiment (3)

Project Contents Project Documentation (at least 60 hours) Problem Definition User Interface Description Justifications Automata and Classes Descriptions Automata and Classes Diagrams Verification Protocols References Source Code (at least 20 hours) Anatoly Shalyto spent approximately 1015 hours per project

Foundation for Open Project Documentations http://is.ifmo.ru

15 Projects Examples

Projects Examples

Games Skeleton animation Controlling systems Graphical User Interfaces Parallel problems Transliteration Many others

Foundation for Open Project Documentations http://is.ifmo.ru

16 Three Examples

Three Examples

Diesel-generator modeling Procedural automata-based programming RoboCode Agent Object-oriented automata-based programming Visualization Framework Automata-based visualization of calculation algorithms Object-oriented realization of procedural algorithms

Foundation for Open Project Documentations http://is.ifmo.ru

17 Diesel Generator Project Execution Flow

Diesel Generator Project Execution Flow

Analysis Structuring (Automata Decomposition) Automata Interaction Diagrams Automata Verbal Descriptions Automata Interface Definition Automata Transitional Graph Definition Isomorphic Source Code Generation Verification logs

Foundation for Open Project Documentations http://is.ifmo.ru

18 Diesel-generator Automata Interaction Diagram

Diesel-generator Automata Interaction Diagram

Foundation for Open Project Documentations http://is.ifmo.ru

19 Diesel-generator Automata Interface Diagram

Diesel-generator Automata Interface Diagram

Foundation for Open Project Documentations http://is.ifmo.ru

20 Diesel-generator Automata Transition Graph

Diesel-generator Automata Transition Graph

Foundation for Open Project Documentations http://is.ifmo.ru

21 Diesel-generator Isomorphic Source Code

Diesel-generator Isomorphic Source Code

void A0(int e, dg_t *dg) { int y_old = dg->y0; switch(dg->y0) { case 0: A8(e, dg); if (x220(dg)) dg->y0 = 4; else if (dg->y7 == 2) dg->y0 = 7; else if (dg->y8 == 2) dg->y0 = 1; break; case 1: A4(e, dg); A3(e, dg); A1(e, dg); if (dg->y4 != 0) dg->y0 = 6; else if (dg->y7 == 2 || dg->y7 == 4) dg->y0 = 8; else if (dg->y3 != 0) dg->y0 = 5; else if (dg->y1 == 0) dg->y0 = 0; else if (dg->y1 == 3) dg->y0 = 7;

Foundation for Open Project Documentations http://is.ifmo.ru

22 Diesel-generator Verification Logs

Diesel-generator Verification Logs

11:34:02.507{ DG1: A20: started at state 2 with event e10 11:34:02.507{ DG1: A7: started at state 0 with event e10 11:34:02.507{ DG1: A71: started at state 0 with event e10 11:34:02.507> DG1: x320 lubricting oil temperature less than Tmm 11:34:02.507> DG1: x330 - lubricting oil temperature greater than Tmpr 11:34:02.507} DG1: A71: stopped at state 0 11:34:02.507{ DG1: A72: started at state 0 with event e10 11:34:02.507> DG1: x220 rotation frequency greater than RCV 11:34:02.507} DG1: A72: stopped at state 0 11:34:02.507{ DG1: A73: started at state 0 with event e10 11:34:02.507> DG1: x220 rotation frequency greater than RCV 11:34:02.507} DG1: A73: stopped at state 0 11:34:02.507{ DG1: A74: started at state 0 with event e10 11:34:02.507> DG1: x430 water temperature less than Tvm 11:34:02.507> DG1: x440 - water temperature greater than Tvpr 11:34:02.517} DG1: A20 stopped at state 0

Foundation for Open Project Documentations http://is.ifmo.ru

23 RoboCode Agent

RoboCode Agent

http://robocode.alphaworks.ibm.com Top Five GlowBlowMelee 1.1 Cigaret 1.20 Cynical GlowBlow Cynical_3

Foundation for Open Project Documentations http://is.ifmo.ru

24 RoboCode Agent Project Execution Flow

RoboCode Agent Project Execution Flow

Analysis Structuring (Class Decomposition) Classes Diagram All the stages from diesel-generator project execution flow

Foundation for Open Project Documentations http://is.ifmo.ru

25 RoboCode Agent Classes Diagram

RoboCode Agent Classes Diagram

Foundation for Open Project Documentations http://is.ifmo.ru

26 RoboCode Agent Class Structure Diagram

RoboCode Agent Class Structure Diagram

Foundation for Open Project Documentations http://is.ifmo.ru

27 RoboCode Agent Automata Interface

RoboCode Agent Automata Interface

Foundation for Open Project Documentations http://is.ifmo.ru

28 RoboCode Agent Transition Graph

RoboCode Agent Transition Graph

Foundation for Open Project Documentations http://is.ifmo.ru

29 RoboCode Agent Debugging through Protocols

RoboCode Agent Debugging through Protocols

Foundation for Open Project Documentations http://is.ifmo.ru

30 Visualization Framework

Visualization Framework

Malhotra, Kumar, Maheshwari network flow algorithm

Foundation for Open Project Documentations http://is.ifmo.ru

31 Visualization Framework Visualizer Structure

Visualization Framework Visualizer Structure

Model Interactive Automata System Automatically Generated by Algorithms XMLDescription View User Interface Based on Vizi Library Controller Vizi Library

Foundation for Open Project Documentations http://is.ifmo.ru

32 Visualization Framework Project Documentation (1)

Visualization Framework Project Documentation (1)

Annotation Introduction Chapter 1. Literature Analysis Chapter 2. Algorithm Description Chapter 3. Algorithm Implementation Chapter 4. Data Model Definition Chapter 5. Implementation Transformation Chapter 6. User Interface Description

Foundation for Open Project Documentations http://is.ifmo.ru

33 Visualization Framework Project Documentation (2)

Visualization Framework Project Documentation (2)

Chapter 7. Configuration Description Conclusions References Appendixes Algorithm Implementations Source Code Transformed Implementation Visualizer XMLdescription Generated Source Codes User Interfaces Source Codes

Foundation for Open Project Documentations http://is.ifmo.ru

34 Visualized Algorithms

Visualized Algorithms

Malhotra, Kumar, Maheshwari network flow algorithm Dinics network flow algorithm HopcroftKarp Bipartite Matching algorithm ChuLiu shortest arborescence of a directed graph Algorithms on 23 threes Bitonic salesman problem Ukkonen suffix tree construction algorithm Prim minimum spanning tree algorithm Simple strings and de Bruin cycles construction algorithms

Foundation for Open Project Documentations http://is.ifmo.ru

35 Links

Links

Project Examples http://is.ifmo.ru/?i0=projects Projects Documentation (Russian) http://is.ifmo.ru/?i0=projects_en Projects Annotations (English) http://is.ifmo.ru/?i0=works Articles (Russian) http://is.ifmo.ru/?i0=english Articles (English) http://unimod.sourceforge.net/ UniMod Project

Foundation for Open Project Documentations http://is.ifmo.ru

Automata-Based Programming
http://900igr.net/prezentacija/bez_uroka/automata-based-programming-227321.html
c

1
900igr.net > > > Automata-Based Programming