Automata-Based Programming Anatoly Shalyto Computer Technology Department Saint-Petersburg State University of Information Technology,

Slides:



Advertisements
Similar presentations
Chapter 10: The Traditional Approach to Design
Advertisements

Systems Analysis and Design in a Changing World, Fifth Edition
Creation of Automaton Classes from Graphical Models and Automatic Solution for Inverse Problem Yuri A. Gubin student of SPb SU ITMO supervised by Anatoly.
1-1 Bard, Gerstlauer, Valvano, Yerraballi EE 319K Introduction to Microcontrollers Lecture 1: Introduction, Embedded Systems, Product Life-Cycle, ARM Programming.
SENG521 (Fall SENG 521 Software Reliability & Testing Operational Profiles (Part 5b) Department of Electrical & Computer Engineering,
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
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.
Software Testing and Quality Assurance
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
Detailed Design Kenneth M. Anderson Lecture 21
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
State-Driven Programming for Computer Games Georgiy Korneev Anatoly Shalyto Saint Petersburg State University of Information Technologies, Mechanics and.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
© Copyright Eliyahu Brutman Programming Techniques Course.
Final Overview Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
COMP1007 Intro to Requirements Analysis © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Introduction to Requirements Analysis Lecture.
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
6 Systems Analysis and Design in a Changing World, Fourth Edition.
Traditional Approach to Requirements Data Flow Diagram (DFD)
Methods of teaching programming at high schools and universities Vera Dron,
Your Interactive Guide to the Digital World Discovering Computers 2012.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 6: The Traditional Approach to Requirements
Systems Analysis and Design in a Changing World, Fifth Edition
VIRTUAL PROTOTYPING of ROBOTS DYNAMICS E. Tarabanov.
Chapter 6 The Traditional Approach to Requirements
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Database Design - Lecture 2
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
Successful IT Projects slides © 2007 Darren Dalcher & Lindsey Brodie Successful IT Projects By Darren Dalcher & Lindsey Brodie
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
AMA INTERNATIONAL UNIVERSITY BHARAIN SOFTWARE ENGINEERING PROJECT - SBI 302 SOFTWARE ENGINEERING PROJECT - SBI 302A SOFTWARE ENGINEERING PROJECT - SBI.
6 Systems Analysis and Design in a Changing World, Fifth Edition.
Saint-Petersburg State University ITMO 1Projects in SPb IFMO Yartsev Boris Computer Technology Department, Saint-Petersburg State.
1 Introduction to Software Engineering Lecture 1.
1 6 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 6 The Traditional Approach to Requirements.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
Extended Finite-State Machine Inference with Parallel Ant Colony Based Algorithms PPSN’14 September 13, 2014 Daniil Chivilikhin PhD student ITMO.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
GCSE ICT Systems Analysis. Systems analysis Systems analysis is the application of analytical processes to the planning, design and implementation of.
EGR 115 Introduction to Computing for Engineers Branching & Program Design – Part 1 Monday 29 Sept 2014 EGR 115 Introduction to Computing for Engineers.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Lecture 1: Introduction – Graduation Projects Topics to Discuss in Lectures 1. Project Deliverables 2. Course grading 3. Project Concept Writing.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
6 Systems Analysis and Design in a Changing World, Fourth Edition.
Saint-Petersburg State University ITMO Automata-based Algorithms Visualization Framework Georgiy Korneev Computer Technology Department,
Advanced Higher Computing Science
EGR 115 Introduction to Computing for Engineers
CompSci 280 S Introduction to Software Development
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 6 The Traditional Approach to Requirements.
Unified Modeling Language
Introduction To software engineering
Software Development Chapter 1.
Presentation transcript:

Automata-Based Programming Anatoly Shalyto Computer Technology Department Saint-Petersburg State University of Information Technology, Mechanics and Optics, Russia

2Foundation for Open Project Documentations — Project Documentation in the Real World (1)

3Foundation for Open Project Documentations — 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

4Foundation for Open Project Documentations — 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)

5Foundation for Open Project Documentations — 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

6Foundation for Open Project Documentations — 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

7Foundation for Open Project Documentations — Software Project Documentation In engineering practice projects must be well- documented So on there are not project, but much fewerwww.sourceforge.net The code must be based on the project documentation, not vice versa Project execution flow must be documented, not only final results

8Foundation for Open Project Documentations — 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

9Foundation for Open Project Documentations — Automata-based programming guidelines Logic control State-based procedural programming State-based object-oriented programming Computational algorithms

10Foundation for Open Project Documentations — 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

11Foundation for Open Project Documentations — Automata in Automata-based programming Logic specification language Isomorphic mapping to source code Program works and builds logs in terms of automata

12Foundation for Open Project Documentations — 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

13Foundation for Open Project Documentations — Educational Experiment (2) Common Teaching 1 Lectures and Exams Common Teaching 2 Lectures, Course Works and Exams Experimental Teaching Lectures and Projects Project Documentation Verification More than 150 fully Developed and Documented Projects To be continued

14Foundation for Open Project Documentations — 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 10–15 hours per project

15Foundation for Open Project Documentations — Projects Examples Games Skeleton animation Controlling systems Graphical User Interfaces Parallel problems Transliteration Many others

16Foundation for Open Project Documentations — 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

17Foundation for Open Project Documentations — 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

18Foundation for Open Project Documentations — Diesel-generator Automata Interaction Diagram

19Foundation for Open Project Documentations — Diesel-generator Automata Interface Diagram

20Foundation for Open Project Documentations — Diesel-generator Automata Transition Graph

21Foundation for Open Project Documentations — 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; …

22Foundation for Open Project Documentations — 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

23Foundation for Open Project Documentations — RoboCode Agent Top Five 1. GlowBlowMelee Cigaret Cynical 4. GlowBlow 5. Cynical_3

24Foundation for Open Project Documentations — RoboCode Agent Project Execution Flow Analysis Structuring (Class Decomposition) Classes Diagram All the stages from diesel-generator project execution flow

25Foundation for Open Project Documentations — RoboCode Agent Classes Diagram

26Foundation for Open Project Documentations — RoboCode Agent Class Structure Diagram

27Foundation for Open Project Documentations — RoboCode Agent Automata Interface

28Foundation for Open Project Documentations — RoboCode Agent Transition Graph

29Foundation for Open Project Documentations — RoboCode Agent Debugging through Protocols

30Foundation for Open Project Documentations — Visualization Framework Malhotra, Kumar, Maheshwari network flow algorithm

31Foundation for Open Project Documentations — Visualization Framework Visualizer Structure Model Interactive Automata System Automatically Generated by Algorithm’s XML–Description View User Interface Based on Vizi Library Controller Vizi Library

32Foundation for Open Project Documentations — 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

33Foundation for Open Project Documentations — Visualization Framework Project Documentation (2) Chapter 7. Configuration Description Conclusions References Appendixes Algorithm Implementations Source Code Transformed Implementation Visualizer XML–description Generated Source Codes User Interfaces Source Codes

34Foundation for Open Project Documentations — Visualized Algorithms Malhotra, Kumar, Maheshwari network flow algorithm Dinic’s network flow algorithm Hopcroft–Karp Bipartite Matching algorithm Chu–Liu shortest arborescence of a directed graph Algorithms on 2–3 threes Bitonic salesman problem Ukkonen suffix tree construction algorithm Prim minimum spanning tree algorithm Simple strings and de Bruin cycles construction algorithms

35Foundation for Open Project Documentations — Links Project Examples – Projects Documentation (Russian) – Projects Annotations (English) – Articles (Russian) – Articles (English) – UniMod Project