Journal "Software Engineering"
a journal on theoretical and applied science and technology
Issue N3 2017 year
Automata-based software engineering is intended to develop the simple, reliable, and effective programs from the class of reactive systems. A formal rule-based language is used for a specification of functional requirements of a reactive system. This specification language is easily translated to the automata-based programming language that extends the predicate programming language P. In this article, automata-based methods of software engineering are presented in the form of true balance between integrated automata-based, predicate, and object-oriented software engineering. These methods are applied for the lift control programs, which are often used for illustration of new software engineering methods. The lift control program is not trivial. Being automata-based in general, it includes fragments that are not automata-based and should be programmed in other paradigms. To simplify the complex environment of the lift control program, only objects of the Lift class interface are used in the main program. The implementation of the Lift class hides numerous details of the environment. The lift control program presented is the most easy and short among other six lift control programs demonstrated in the articles and books as illustrations of different successful methods. There are three factors why our lift control program is the best: hypergraph automata composition of the program with the usage of the hyperfunctions, hiding detail inside Lift, and development primitives outside of automata-based engineering.