Development and implementation of a method for checking the integrity of the design of an object-oriented system
Abstract
Creating modern software products is a complex and long process consisting of many parts. To achieve quality, it is necessary to carry out various measures for testing and verifying software at all stages of development. This article discusses the software design stage, which is integral and one of the most important. In most software development life cycle (SDLC) models, this stage is one of the first, so design mistakes will lead to problems in all subsequent stages. Thus, due to the high cost of error, it is very important to check the integrity of the developed design at the design stage. The article examines the problem of finding contradictions in object-oriented design. The authors present a set of contradictions that can arise in such a design and aim to develop methods and algorithms for detecting and searching for these contradictions in order to improve the quality of the design, as well as writing software that will implement these algorithms and methods. The program "diagrams.net" was chosen as a tool for creating object-oriented design, the main useful feature of which is the ability to present the created diagrams in the form of an XML file in the popular drawio format. The authors of the study propose a method for parsing the XML file of the diagram and presenting it as a set of objects, such as dependency arrows, classes, methods, etc. These objects must interact according to the established rules.The violation of these rules is a contradiction of the object-oriented design. As a result of the study, a method of finding contradictions was presented and implemented in the Java programming language.
Downloads
References
Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, & Jim Conallen. (2007). Object-Oriented Analysis and Design with Applications (3rd ed.). https://zjnu2017.github.io/OOAD/reading/Object.Oriented.Analysis.and.Design.with.Applications.3rd.Edition.by.Booch.pdf
Craig Larman. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. https://bsituos.weebly.com/uploads/2/5/2/5/25253721/applying-umland-patterns-3rd.pdf
Vanessa Weber, Kleinner Farias, Lucian Gonçales & Vinícius Bischoff. (2016). Detecting Inconsistencies in Multi-view UML Models. International Journal of Computer Science and Software Engineering (IJCSSE), Volume 5, Issue 12. https://www.researchgate.net/publication/313837603_Detecting_Inconsistencies_in_Multi-view_UML_Models
OMG. Unified Modeling Language 2.5.1 Specification. (2017). https://www.omg.org/spec/UML/2.5.1/
Gamma Erich, Helm Richard, Johnson Ralph & Vlissides John. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. https://www.javier8a.com/itc/bd1/articulo.pdf
Robert C. Martin. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. https://ptgmedia.pearsoncmg.com/images/9780132928472/samplepages/0132928477.pdf
Martin Fowler, Kent Beck, John Brant, William Opdyke & Don Roberts. (1999). Refactoring: Improving the Design of Existing Code. https://ptgmedia.pearsoncmg.com/images/9780201485677/samplepages/9780201485677.pdf
Joyce Farrell. (2017). Programming Logic and Design, Introductory. https://jamborebook.co/download/4867679-program-logic-and-design
Iryna Zaretska, Oleksandra Kulankhina & Hlib Mykhailenko. Cross-Diagram UML Design Verification. ICT in Education, Research and Industrial Applications. CCIS, Vol. 347, Springer-Verlag, Berlin Heidelberg (2013). – pp. 165-176. http://dx.doi.org/10.1007/978-3-642-35737-4_10
Iryna Zaretska, Oleksandra Kulankhina, Hlib Mykhailenko & Tamara Butenko. Consistency of UML Design. International Journal of Information Technology and Computer Science (IJITCS), Vol.10, No.9, 2018. – pp. 47-56. https://doi.org/10.5815/ijitcs.2018.09.06
Rational Rose. https://www.ibm.com/docs/en/rational-clearquest/7.1.0?topic=developing-schemasclearquest-designer
Diagrams.Net. https://app.diagrams.net/
Copyright (c) 2024 Computer Science and Cybersecurity
This work is licensed under a Creative Commons Attribution 4.0 International License.