Josef Kufner


State Machines and SQL Database (2019)

Comming soon.

From a BPMN Black Box to a Smalldb State Machine (2019)

J. Kufner and R. Mařík.
Download: Full paper (PDF), BibTeX citation. DOI: 10.1109/ACCESS.2019.2912567. Published in: IEEE Access. See for more details.

The state of a state machine is a path between two actions; however, it is the rest of the world who walks the path. The development of a web application, especially of an information system, starts with use cases, i.e., model scenarios of how users interact with the application and its entities. The goal of this paper is to turn the use cases into a useful specification and automatically convert them into a model layer of a web application, in our case using finite automata. BPMN (Business Process Model and Notation) provides a graphical syntax to capture the use cases, which is based on the theoretical background of Petri Nets. However, because BPMN does not capture the state of the modeled entities, it is impractical to use it as a specification of a persistent storage and model layers of the web application. To overcome this problem, we propose a new STS algorithm to infer a finite automaton that implements a chosen participant in a BPMN diagram that represents a given entity of the web application.

Self-generating Programs – Cascade of the Blocks (2014)

J. Kufner and R. Mařík.
Download: Full paper (PDF, submitted version), BibTeX citation. DOI: 10.1007/978-3-642-55032-4_20. Published in: Lecture Notes in Computer Science.

When building complex applications the only way not to get lost is to split the application into simpler components. Current programming languages, including object oriented ones, offer very good utilities to create such components. However, when the components are created, they need to be connected together. Unluckily, these languages are not a very suitable tool for that. To help with composition of the components we introduce cascade – a dynamic acyclic structure built from blocks, inspired by the Function Block approach. The cascade generates itself on-the-fly during its evaluation to match requirements specified by input data and automatically orders an execution of the individual blocks. Thus the structure of a given cascade does not need to be predefined entirely during its composing/implementation and fixed during its execution as it is usually assumed by the most approaches. It also provides a real-time and fully automatic visualization of all blocks and their connections to ease debugging and an inspection of the application.

State Machine Abstraction Layer (2014)

J. Kufner and R. Mařík.
Download: Full paper (PDF, submitted version), BibTeX citation. DOI: 10.1007/978-3-642-55032-4_21. Published in: Lecture Notes in Computer Science. See for more details.

Smalldb uses a non-deterministic parametric finite automaton combined with Kripke structures to describe lifetime of an entity, usually stored in a traditional SQL database. It allows to formally prove some interesting properties of resulting application, like access control of users, and provides primary source of metadata for various parts of the application, for example automatically generated user interface and documentation.

Presentation at ICT-EurAsia 2014

J. Kufner
Download: Slides (PDF), movie mentioned in the presentation (AVI, 19 MB).

Presentation of “Self-generating Programs – Cascade of the Blocks” and “State Machine Abstraction Layer” at ICT-EurAsia 2014 conference (Bali, Indonesia, April 14-17, 2014).