Реалізація чат-ботів із поведінкою, що керується скінченним автоматом, у графічному конструкторі
DOI:
https://doi.org/10.18523/2617-3808.2022.5.31-40Ключові слова:
скінченний автомат, СА, model driven development, генерація кода, чат-бот, Telegram месенджер, мікросервісна архітектура, документна база даних, резидентна база данихАнотація
Окреслено основні методи використання скінченних автоматів (СА) для моделювання й програмної реалізації поведінки об’єктів різної природи. Як приклад інтерактивної програми розглянуто чат-боти: основні поняття, методи класифікації, способи реалізації. Запропоновано розширення СА для моделювання поведінки текстового чат-бота, побудованого на правилах. Дано короткий огляд методів перетворення СА на програмний код у різних парадигмах програмування. Запропоновано динамічний підхід для виконання такого перетворення, зі збереженням специфікації СА в базі даних. Розроблено графічний конструктор, який дає змогу створювати модель чат-бота, базованого на правилах, у вигляді скінченного автомата та виконує трансформацію побудованої моделі для безпосереднього використання в месенджер-платформі Telegram.
Посилання
- Aabidi, M. H., Jakimi, A., Kinani, E. H., & Elkoutbi, M. (2013). A New Approach for Code Generation from UML State Machine. International Review on Computers and Software, 8, 500–506.
- Adamopoulou, E., & Moussiades, L. (2020). An Overview of Chatbot Technology. In IFIP International Conference on Artificial Intelligence Applications and Innovations, 373–383. https://doi.org/10.1007/978-3-030-49186-4_31
- Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2007). Compilers: Principles, Techniques, and Tools (2nd Edition). Pearson/Addison Wesley.ArgoUML. https://argouml-tigris-org.github.io/.
- Badreddin, O. B., Lethbridge, T. C., Forward, A., Elaasar, M., Aljamaan, H. I., & Garzón, M. (2014). Enhanced code generation from UML composite state machines. In 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2014), 235–245.
- Boost Meta State Machine. https://www.boost.org/doc/libs/1_79_0/libs/msm/doc/HTML/index.html.
- BotSailor. https://botsailor.com/.
- BOUML. https://www.bouml.fr.
- BridgePoint/xtUML. https://xtuml.org/.
- C and C++ Finite State Machine Framework. https://www.blocknet.de/Programmierung/cpp/fsm/fsm.html.
- Cargill, T. (1992). C++ Programming Style. Addison-Wesley.
- Concurrent Hierarchical State Machine (CHSM). http://chsm.sourceforge.net/.
- David, R., Rothe, S., & Söffker, D. (2021). Lane changing behavior recognition based on Artificial Neural Network-based State Machine approach. In 2021 IEEE International Intelligent Transportation Systems Conference (ITSC), 3444–3449. https://doi.org/10.1109/ITSC48978.2021.9564919
- Domínguez, E., Pérez, B., Rubio, A., & Zapata, M. (2012). A systematic review of code generation proposals from state machine specifications. Information and Software Technology, 54 (10), 1045–1066. https://doi.org/10.1016/j.infsof.2012.04.008
- Enterprise Architect. https://www.sparxsystems.com.au/.
- Fauzi, R., Hariadi, M., Nugroho, S., & Lubis, M. (2019). Defense behavior of real time strategy games: Comparison between HFSM and FSM. Indonesian Journal of Electrical Engineering and Computer Science, 13, 634–642. https://doi.org/10.11591/ijeecs.v13.i2.pp634-642
- Fogel, L. J., Owens, A. J., & Walsh, M. J. (1966). Artificial Intelligence through Simulated Evolution. J. Wiley&Sons.
- Følstad, A., Araujo, T., Law, E., Brandtzaeg, P., Papadopoulos, S., Reis, L., ..., Luger, E. (2021). Future directions for chatbot research: an interdisciplinary research agenda. Computing, 103, 2915–2942. https://doi.org/10.1007/s00607-021-01016-7
- FSMGenerator. http://fsmgenerator.sourceforge.net/.
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: elements of reusable object-oriented software. Addison-Wesley.
- Gulayeva, N. (2005). Avtomatnyi pidkhid do orhanizatsii pidtrymky merezhevykh kamer u bahatokliientskykh systemakh. In Tez. dop. II Mizhnar. konf. TAAPSD2005, 82–86 [in Ukrainian].
- Harel, D. (1987). Statecharts: A visual formalism for complex systems. Scientific Computer Programming, 8 (3), 231–274. https://doi.org/10.1016/0167-6423(87)90035-9
- Harel, D., & Pnueli, A. (1985). On the development of reactive systems. Logics and Models of Concurrent Systems, 13, 477–498. https://doi.org/10.1007/978-3-642-82453-1_17
- Hung, M. (2019). A Generalized FSM Implementation Framework. Advances in Smart Vehicular Technology, Transportation, Communication and Applications, 465–470. https://doi.org/10.1007/978-3-030-04582-1_54
- Hussain, S., Ameri Sianaki, O., & Ababneh, N. (2019). A Survey on Conversational Agents/Chatbots Classification and Design Techniques. Workshop on Web, Artificial Intelligence and Network Applications (WAINA-2019), 946–956. https://doi.org/10.1007/978-3-030-15035-8_93
- Korotunov, S., &. Tabunshchyk, H. (2020). Analiz pidkhodiv do modeliuvannia ta veryfikatsii kiberfizychnykh system. Radioelektronika, informatyka, upravlinnia, 3, 57–68 [in Ukrainian]. https://doi.org/10.15588/1607-3274-2020-3-5
- Krukovskij, M. (2006). Avtomatno-grafovaja formal’naja model’ kompozitnogo dokumentooborota. Matematicheskie mashiny i sistemy, 2, 87–95 [in Russian].
- Lopes, S. F., Silva, S., & Monteiro, J. L. (2012). An easy-to-use and flexible object-oriented framework for extended finite state machines. In IEEE 10th International Conference on Industrial Informatics, 35–40. https://doi.org/10.1109/INDIN.2012.6301360
- Machina.js. http://machina-js.org/.
- Manybot. https://manybot.io/.
- Miao, H., Qian, Z., & He, T. (2007). Modeling Web Browser Interactions Using FSM. In 2nd IEEE Asia-Pacific Service Computing Conference (APSCC 2007), 211–217. https://doi.org/10.1109/APSCC.2007.13
- OMG, Unified Modeling Language (OMG UML) Ver. 2.5.1 Specification. https://www.omg.org/spec/UML/2.5.1/PDF.
- Park, H., Van Messem, A., & De Neve, W. (2020). Item Measurement for Logistics-Oriented Belt Conveyor Systems Using a Scenario-Driven Approach and Automata-Based Control Design. In 2020 IEEE 7th International Conference on Industrial Engineering and Applications (ICIEA), 271–280. https://doi.org/10.1109/ICIEA49774.2020.9102044
- Pham, V. C., Radermacher, A., Gérard, S., & Li, S. (2017). Complete Code Generation from UML State Machine. In 5th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2017), 208–219. https://doi.org/10.5220/10.5220/0006274502080219
- Ricca, F., Leotta, M., Reggio, G., Tiso, A., Guerrini, G., & Torchiano, M. (2012). Using UniMod for Maintenance Tasks: An Experimental Assessment in the Context of Model Driven Development. In 2012 4th International Workshop on Modeling in Software Engineering, MiSE, 77–83. https://doi.org/10.1109/MISE.2012.6226018
- Rosmaro. https://rosmaro.js.org/.
- Salmre, I. (2005). Chapter 5. Our Friend, the State Machine. In Writing Mobile Code: Essential Software Engineering for Building Mobile Applications. Addison-Wesley.
- Samek, M. (2008). Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems, 2nd Edition. CRC Press. https://doi.org/10.1201/b16463
- Selic, B. (2003). The pragmatics of model-driven development. IEEE Software, 20 (5), 19–25.
- Sendpulse. https://sendpulse.com/ru/features/chatbot.
- Shalyto, A. A., & Tukkel’, N. I. (2001). SWITCH Technology: An Automated Approach to Developing Software for Reactive Systems. Programming and Computer Software, 27, 260–276. https://doi.org/10.1023/A:1012392927006
- Spinke, V. (2013). An object-oriented implementation of concurrent and hierarchical state machines. Information and Software Technology, 55. https://doi.org/10.1016/j.infsof.2013.03.005
- Stateflow. https://www.mathworks.com/products/stateflow.html.
- StateWORKS. http://www.stateworks.com/.
- Thompson, S. (2000). Regular Expressions and Automata using Haskell (Technical report). University of Kent. https://kar.kent.ac.uk/22057/.
- UModel. https://www.altova.com/umodel.
- UMPLE. https://cruise.umple.org/umpleonline/.
- van Gurp, J., & Bosch, J. (1999). On the implementation of finite state machines. In Proceedings of the 3rd Annual IASTED International Conference Software Engineering and Applications, 172–178.
- Visual Paradigm. https://www.visual-paradigm.com/.
- Wagner, F., Schmuki, R., Wagner, T., & Wolstenholme, P. (2006). Modeling Software with Finite State Machines: A Practical Approach. New York: Auerbach Publications CRC Press. https://doi.org/10.1201/9781420013641
- Weizenbaum, J. (1966). ELIZA – a computer program for the study of natural language communication between man and machine. Communications of the ACM, 9 (1), 36–45. https://doi.org/10.1145/365153.365168
- YAKINDU Statechart Tools. https://www.itemis.com/en/yakindu/state-machine/.
- Zuzak, I., Budiselic, I., & Delac, G. (2011). A Finite-State Machine Approach for Modeling and Analyzing RESTful Systems. Journal of Web Engineering (JWE), 10 (4), 353–390.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2023 Nataliya Gulayeva, Mykhailo Kobieliev
Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Автори, які публікуються у цьому журналі, погоджуються з такими умовами:
а) Автори зберігають за собою авторські права на твір на умовах ліцензії CC BY 4.0 Creative Commons Attribution International License, котра дозволяє іншим особам вільно поширювати (копіювати і розповсюджувати матеріал у будь-якому вигляді чи форматі) та змінювати (міксувати, трансформувати, і брати матеріал за основу для будь-яких цілей, навіть комерційних) опублікований твір на умовах зазначення авторства.
б) Журнал дозволяє автору (авторам) зберігати авторські права без обмежень.
в) Автори мають право укладати самостійні додаткові угоди щодо поширення твору (наприклад, розміщувати роботу в електронному репозитарії), за умови збереження посилання на його першу публікацію. (Див. Політика Самоархівування)
г) Політика журналу дозволяє розміщення авторами в мережі Інтернет (наприклад, у репозитаріях) тексту статті, як до подання його до редакції, так і під час його редакційного опрацювання, оскільки це сприяє виникненню продуктивної наукової дискусії та позитивно позначається на оперативності та динаміці цитування опублікованої роботи (див. The Effect of Open Access).