SELECTION OF A COMPUTATIONAL PROCESS MODELING TOOL FOR IMPROVING SOFTWARE QUALITY
DOI:
https://doi.org/10.32782/tnv-tech.2023.4.9Keywords:
software product, state machine model, FA technology, SWITCH technology, Petri net, Unified Modeling Language, review, analysis, selection criterion, expressive power, process modeling language, algorithmization, computational process, trial and error method, program debugging, insertion sortAbstract
A pressing problem in the IT sector is obtaining software products of proper quality. Software modeling tools play an important role in solving this problem. The most widespread tools are the following: technologies for designing software products based on automated models built on finite state machines (FSMs), Petri nets, and the unified modeling language (UML). The aim of this paper is to improve the quality of software by applying the best of these tools at an early stage of software design. The paper reviews and analyzes modern means (approaches, methods and tools) for modeling software with the aim of improving its quality, analyzing 30 sources over the past 25 years. It is shown that over the years, the scope of applications of these tools has expanded, but nothing new has emerged in theoretical terms. The above-mentioned tools are compared with each other by the criterion of the greatest expressive power of the language describing the modeling process. It is shown that Petri nets (PNs) have the greatest expressive power. At the same time, we propose to use PNNs at the beginning of the design of the software, i.e., at the stage of algorithmization (development of the computational process). This avoids many errors that can be eliminated at the stage of program debugging only by trial and error, which greatly lengthens the debugging process. To demonstrate the capabilities of the tools under consideration, each of them builds its own model of the same insertion sorting process.
References
"ISO/IEC/IEEE International Standard – Systems and software engineering -- Software life cycle processes," in ISO/IEC/IEEE 12207:2017(E) First edition 2017-11, vol., no., pp.1-157, 15 Nov. 2017, doi: 10.1109/IEEESTD.2017.8100771.
Harel D. Modeling reactive systems with statecharts: The statemate approach. New York : McGraw-Hill, 1998. 258 p.
Shalyto A. Software automaton design: Algorithmization and programming of problems of logical control. Journal of Computer and Systems Sciences International. 2000.
Radford P. Petri Net Theory and the Modeling of Systems. The Computer Journal. 1982. Vol. 25, № 1. P. 129. URL: https://doi.org/10.1093/comjnl/25.1.129.
Booch G. The unified modeling language user guide. Second ed. Upper Saddle River, NJ : Addison-Wesley, 2005. 475 p.
Baranov S. Automata. Logic Synthesis for Control Automata. Boston, MA, 1994. P. 1–66. URL: https://doi.org/10.1007/978-1-4615-2692-6_1.
Simulation and Testing of Deterministic Finite Automata Machine / K. B. Vayadande et al. International Journal of Computer Sciences and Engineering. 2022. Vol. 10, no. 1. P. 13–17. URL: https://doi.org/10.26438/ijcse/v10i1.1317.
Alon N., Dewdney A. K., Ott T. J. Efficient simulation of finite automata by neural nets. Journal of the ACM (JACM). 1991. Vol. 38, № 2. P. 495–514. URL: https://doi.org/10.1145/103516.103523.
Holzer M., Kutrib M. Descriptional and computational complexity of finite automata–A survey. Information and Computation. 2011. Vol. 209, № 3. P. 456–470. URL: https://doi.org/10.1016/j.ic.2010.11.013.
Izakovič L. Using Finite-state Automata for Text Lexicons Building. Glottotheory. 2008. Vol. 1, № 1. URL: https://doi.org/10.1515/glot-2008-0003.
Sinya R., Matsuzaki K., Sassa M. Simultaneous Finite Automata: An Efficient Data-Parallel Model for Regular Expression Matching. 2013 42nd International Conference on Parallel Processing (ICPP), Lyon, France, 1–4 October 2013. 2013. URL: https://doi.org/10.1109/icpp.2013.31.
Introduction to Algorithms / V. J. Rayward-Smith et al. The Journal of the Operational Research Society. 1991. Vol. 42, no. 9. P. 816. URL: https://doi.org/10.2307/2583667.
Kristensen L. M., Simonsen K. I. F. Applications of Coloured Petri Nets for Functional Validation of Protocol Designs. Transactions on Petri Nets and Other Models of Concurrency VII. Berlin, Heidelberg, 2013. P. 56–115. URL: https://doi.org/10.1007/978-3-642-38143-0_3.
Valk R. Petri Nets as Token Objects. Application and Theory of Petri Nets 1998. Berlin, Heidelberg, 1998. P. 1–24. URL: https://doi.org/10.1007/3-540-69108-1_1.
David R., Alla H. Petri nets for modeling of dynamic systems. Automatica. 1994. Vol. 30, № 2. P. 175–202. URL: https://doi.org/10.1016/0005-1098(94)90024-8.
Nandanwar M. Formal Verification with Petri Nets. TU Kaiserslautern – Computer Science – Embedded Systems Group: Welcome! URL: https://es.cs.rptu.de/publications/datarsg/Nand22.pdf (date of access: 15.08.2023).
Lin C.-P., Dai H.-L. Applying Petri Nets on Project Management. Universal Journal of Mechanical Engineering. 2014. Vol. 2, № 8. P. 249–255. URL: https://doi.org/10.13189/ujme.2014.020801.
Kristensen L. M., Jørgensen J. B., Jensen K. Application of Coloured Petri Nets in System Development. SpringerLink. URL: https://link.springer.com/chapter/10.1007/978-3-540-27755-2_18.
Riera B. Identification of discrete event systems using ordinary Petri nets. Academia.edu – Share research. URL: https://www.academia.edu/ 64731436 /Identification_of_discrete_event_ systems_using_ordinary_Petri_nets.
Integrated formal verification of safety-critical software / N. Ge et al. International Journal on Software Tools for Technology Transfer. 2017. Vol. 20, no. 4. P. 423–440. URL: https://doi.org/10.1007/s10009-017-0475-0.
Petri net and rewriting logic based formal analysis of multi-agent based safety-critical systems / A. Boucherit et al. Multiagent and Grid Systems. 2020. Vol. 16, no. 1. P. 47–66. URL: https://doi.org/10.3233/mgs-200320.
Aliee F. S. A Comparison of Petri Net Based Approaches Used for Specifying the Executable Model of Software Architecture. ResearchGate. URL: https://www.researchgate.net/publication/221615992_A_Comparison_of_Petri_Net_Based_Approaches_Used_for_Specifying_the_Executable_Model_of_Software_Architecture.
Agarwal R., Tanniru M. A Petri-Net based approach for verifying the integrity of production systems. International Journal of Man-Machine Studies. 1992. Vol. 36, № 3. URL: https://doi.org/10.1016/0020-7373(92)90043-k.
Suprunenko O. O. COMBINED APPROACH TO SIMULATION MODELING OF THE DYNAMICS OF SOFTWARE SYSTEMS BASED ON INTERPRETATIONS OF PETRI NETS. KPI Science News. 2019. № 5-6. P. 43–53. URL: https://doi.org/10.20535/kpi-sn.2019.5-6.174596.
Sulaiman N., Syed Ahmad S. S., Ahmad S. Logical Approach: Consistency Rules between Activity Diagram and Class Diagram. International Journal on Advanced Science, Engineering and Information Technology. 2019. Vol. 9, № 2. P. 552. URL: https://doi.org/10.18517/ijaseit.9.1.7581.
Abdulsahib M. A methods of ensuring consistency between UML Diagrams. ResearchGate. URL: https://www.researchgate.net/publication/326901133_A_methods_of_ensuring_consistency_between_UML_Diagrams.
Khan A. H., Porres I. Consistency of UML class, object and statechart diagrams using ontology reasoners. Journal of Visual Languages & Computing. 2015. Vol. 26. P. 42–65. URL: https://doi.org/10.1016/j.jvlc.2014.11.006.
UML models consistency management: Guidelines for software quality manager / R. S. Bashir et al. International Journal of Information Management. 2016. Vol. 36, no. 6. P. 883–899. URL: https://doi.org/10.1016/j.ijinfomgt.2016.05.024.
UML Diagrams in Software Engineering Research: A Systematic Literature Review / H. Koç et al. Proceedings. 2021. Vol. 74, no. 1. P. 13. URL: https://doi.org/10.3390/proceedings2021074013.
A systematic identification of consistency rules for UML diagrams / D. Torre et al. Journal of Systems and Software. 2018. Vol. 144. P. 121–142. URL: https://doi.org/10.1016/j.jss.2018.06.029.
Costa V., Monteiro R. Detecting Semantic Equivalence in UML Class Diagrams. ResearchGate. URL: https://www.researchgate.net/publication/ 289465971_Detecting_semantic_equivalence_in_UML_class_diagrams.