Saint-Petersburg State University ITMO Overview of the projects, developed by the students of SPb IFMO under the supervision of professor A.A.Shalyto Yartsev Boris yartsev@rain.ifmo.ru Computer Technology Department, Saint-Petersburg State University of Information Technology, Mechanics and Optics. Russia Projects in SPb IFMO 1 Projects in SPb IFMO Saint-Petersburg State University ITMO • Managed under the supervision of professor A.A.Shalyto • Developed in the context of automata programming and open project documentation • Are available from the Informatic Systems dept. site – http://is.ifmo.ru Projects in SPb IFMO 2 Project development Saint-Petersburg State University ITMO • Students work at the projects in the third year of studies • During the third course students regulary meet their scientific advisor A.A.Shalyto and discuss new ideas and documentation • There are 45 projects, that have already been developed, they are available from the site • All the documentation is written in russian language. There is an abstract in english. Projects in SPb IFMO 3 Documentation structure Saint-Petersburg State University ITMO • • • • • • • • Introduction The formulating of the tasks The description of the approach Screenshots of the programs Class diagrams Automata documents Conclusion Source code Projects in SPb IFMO 4 Automata documents Saint-Petersburg State University ITMO For each automata: • Verbal description (declaration of intent) • Scheme of automata connections (automata interfaces) • State transition diagram • Code, isomorphic to the diagram For the whole system: • Scheme of automata intercommunication Projects in SPb IFMO 5 Overview of several projects Saint-Petersburg State University ITMO The most interesting and maniford projects are presented here Projects in SPb IFMO 6 Examples of the projects Saint-Petersburg State University ITMO • • • • • • Traffic lights controller SMTP protocol implementation CodeRally project Robocode project Automata graph designer Translator between different Japanese alphabets Projects in SPb IFMO 7 Traffic lights controller Saint-Petersburg State University ITMO • Developed by A. Distel and D. Kobak • Demonstrates the simple critical object control program • Handles the malfunctioning – automatically switches to blinking yellow Projects in SPb IFMO 8 Traffic lights controller Saint-Petersburg State University ITMO Projects in SPb IFMO 9 Traffic lights controller Saint-Petersburg State University ITMO Projects in SPb IFMO 10 Traffic lights. Conclusions Saint-Petersburg State University ITMO • Automata approach can be used in critical objects control Projects in SPb IFMO 11 Saint-Petersburg State University ITMO SMTP protocol implementation • K. Agafonov and D. Poroh implemented the SMTP protocol. • Windows gui and command line client, Unix command line client and server • Handles several exceptions – connect termination and server shutdown Projects in SPb IFMO 12 Saint-Petersburg State University ITMO SMTP protocol implementation • The usage of logging • Standartized logging protocol for all the classes • Three modes – silent, full, only open/close connection events. Different automata can be logged • Via logging, one can quickly find the place in the code, where the execution went wrong. Projects in SPb IFMO 13 SMTP protocol implementation Saint-Petersburg State University ITMO Projects in SPb IFMO 14 SMTP protocol implementation Saint-Petersburg State University ITMO Projects in SPb IFMO 15 Saint-Petersburg State University ITMO SMTP procotol implementation. Conclusions • Automata approach can be used in server side programming • Debugging of services is quite hard. Logging eases it Projects in SPb IFMO 16 CodeRally Saint-Petersburg State University ITMO • Developed by gold-winner of ACM 2003 finals Eugene Yuzhakov • The game created by Alphaworks company (IBM) • Emulates the track for several little cars • Cars acquire points by passing through checkpoints and shooting • The winner is the car with maximum points at the end of the round. Projects in SPb IFMO 17 Coderally Saint-Petersburg State University ITMO • In the documentation the author makes global strategy analysis, on which the code of the program is based. • The analysis is supported by pictures, describing the way of movement as it is shown on the pictures Projects in SPb IFMO 18 Screenshot from the game Saint-Petersburg State University ITMO Projects in SPb IFMO 19 Coderally Saint-Petersburg State University ITMO • Automata state transition diagram of the car controller. The states and events are named with short identificators Projects in SPb IFMO 20 Events and states Saint-Petersburg State University ITMO • The explanation is given before the graph in the following form – • z0 – choosing the optimal checkpoint • z1 – choosing the optimal trajectory • z2 – moving towards the refuelling station • e3 – the car was hit by the bullet • ... And so on Projects in SPb IFMO 21 Coderally. Conclusions Saint-Petersburg State University ITMO • There was no open documentation available for this game • The conclusion and the source code go at the end of the documentation. • In the conclusion the author tells about the accomplishments and drawbacks of the project. The conclusion is created after the documentation has been written and the program has been developed • The automata diagram for this project is simple, the main attention is paid to the mathematical aspect of the game Projects in SPb IFMO 22 Robocode ver. 1 and 2 Saint-Petersburg State University ITMO • The Robocode project is pretty much the same as the CodeRally. But on it’s example the ease of refactoring of the open source code and open documentation can be shown. • Robocode is the Java game, created by Alphaworks company (IBM). The aim is to program the artificial intelligence of the tank Projects in SPb IFMO 23 Robocode ver. 1 and 2 Saint-Petersburg State University ITMO • Several tanks fight on the field • They can shoot and move • With radar they can scan the bullets and other tanks • The winner is the tank, that destroys all other tanks. Projects in SPb IFMO 24 Robocode ver. 1 and 2 Saint-Petersburg State University ITMO • Originally it was developed by N. I. Tukkel and A.A. Shalyto • Then Denis Kuznetcov, the gold-winner of the 2001 ACM finals, modified the original version • The ease of modification proved the advantages of open project documentation and automata programming Projects in SPb IFMO 25 Robocode ver. 1 and 2 Saint-Petersburg State University ITMO Projects in SPb IFMO 26 The graph model for the ver. 1 Saint-Petersburg State University ITMO Projects in SPb IFMO 27 The graph model for the ver. 2 Saint-Petersburg State University ITMO Projects in SPb IFMO 28 Robocode. Conclusions Saint-Petersburg State University ITMO • To modify the logic of the program there is no need to look through the source codes • Such approach eases the support of the software in the companies • The time needed for the adaptation of the new member of the team decreases Projects in SPb IFMO 29 Robocode. Conclusions Saint-Petersburg State University ITMO • Cynical was the best tank at the robocode competition for several weeks • During the year it still remained in the top list of the tanks • The authors aim was not the creation of the best tank in the world, they wanted to create the best technology in the world =) Projects in SPb IFMO 30 Saint-Petersburg State University ITMO Robocode. Conclusions. Javadoc and OPD Projects in SPb IFMO 31 Saint-Petersburg State University ITMO Robocode. Conclusions. Javadoc and OPD Projects in SPb IFMO 32 Saint-Petersburg State University ITMO Robocode. Conclusions. Javadoc and OPD • Javadoc does not provide the enough information for the developer to understand the logic of the program • However javadoc can be used as the supporting tool Projects in SPb IFMO 33 Automata graph designer Saint-Petersburg State University ITMO • Developed by I. Anichkin • Designed to work with automata graphs • Faster and easier to use than Microsoft Visio and Rational software Projects in SPb IFMO 34 Automata graph designer Saint-Petersburg State University ITMO Projects in SPb IFMO 35 Automata graph designer Saint-Petersburg State University ITMO Projects in SPb IFMO 36 Saint-Petersburg State University ITMO Automata graph designer. Conclusions • GUI applications can be programmed with automata approach Projects in SPb IFMO 37 Japanese translator Saint-Petersburg State University ITMO • Developed by Ekaterina Lysenko and Pavel Skakov • Four different system of written language in Japan • The program makes the transliteration between the systems Projects in SPb IFMO 38 Japanese translator Saint-Petersburg State University ITMO • This translator shows, how the automata can deal with the strings and lexemes. Projects in SPb IFMO 39 Japanese translator Saint-Petersburg State University ITMO Projects in SPb IFMO 40 Japanese translator Saint-Petersburg State University ITMO Projects in SPb IFMO 41 Saint-Petersburg State University ITMO Japanese translator. Conclusions Projects in SPb IFMO 42 Conclusions Saint-Petersburg State University ITMO • Simplicity needs projection and good taste. L. Torvalds • It is a mistake to think that programmers wares are programs. Programmers have to produce trustworthy solutions and present it in the form of cogent arguments. Programs source code is just the accompanying material to which these arguments are to be applied to. E. Dijkstra Projects in SPb IFMO 43 Conclusions Saint-Petersburg State University ITMO • The introducted approach, as we think, satisfies the requirements given before. Projects in SPb IFMO 44 Saint-Petersburg State University ITMO Projects in SPb IFMO 45