Determination of inheritance relations and restructuring of software class models in the process of developing information systems
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет "Запорізька політехніка"
Abstract
EN: Context. The implementation of different use-cases may be performed by different development teams at different times. This results in a poorly structured code. The problem is exacerbated when developing medium and large projects in a short time.
Objective. Since inheritance is one of the effective ways to structure and improve the quality of code, the aim of the study is to determine possible inheritance relationships for a variety of class models.
Method. It is proposed to select from the entire set of classes representing the class model at a certain design stage, subsets for which a common parent class (in a particular case, an abstract class) is possible. To solve the problem, signs of the generality of classes have been formulated. The mathematical model of the conceptual class has been improved by including information about the responsibilities of the class, its methods and attributes. The connection of each class with the script items for which it is used has been established. A system of data types for class model elements is proposed. Description of class method signatures has been extended. A method for restructuring the class model, which involves 3 stages, has been developed. At the first stage, the proximity coefficients of classes are determined. At the second, subsets of possible child classes are created. At the third stage, an automated transformation of the class structure is performed, considering the identified inheritance relationships.
Results. A software product for conducting experiments to identify possible inheritance relationships depending on the number of classes and the degree of their similarity has been developed. The results of the conducted tests showed the effectiveness of the decisions made.
Conclusions. The method uses an algorithm for forming subsets of classes that can have one parent and an algorithm for automatically creating and converting classes to build a two-level class hierarchy. An experiment showed a threefold reduction in errors in detecting inheritance and a multiple reduction in time in comparison with the existing technology.
UK: Актуальність. Реалізація різних варіантів використання може виконуватись різними командами розробників у різний час. Це призводить до створення погано структурованого коду. Проблема ускладнюється при розробці середніх та великих проектів у стислий термін.
Мета. Оскільки успадкування є одним із ефективних способів структурування та покращення якості коду, метою дослідження є визначення можливих зв’язків успадкування для різноманітних моделей класів.
Метод. Запропоновано виділення з множини класів, що представляють модель класів на певному етапі проектування, підмножин, для яких можливий загальний батьківський клас (в окремому випадку абстрактний клас). Для вирішення завдання сформульовано ознаки спільності класів. Удосконалено математичну модель концептуального класу за рахунок включення інформації про обов’язки класу, його методи та атрибути. Встановлено зв’язок кожного класу з сценаріями, для яких він використовується. Запропоновано систему типів даних для елементів моделі класу. Розширено опис сигнатур методів класів. Розроблено метод реструктуризації моделі класів, що передбачає 3 етапи. У першому визначаються коефіцієнти близькості класів. На другому створюються підмножини можливих дочірніх класів. На третьому виконується автоматизоване перетворення структури класів з урахуванням виявлених відносин спадкування.
Результати. Розроблено програмний продукт для проведення експериментів щодо виявлення можливих відносин успадкування залежно від кількості класів та ступеня їхньої подібності. Результати проведених випробувань показали ефективність ухвалених рішень.
Висновки. Метод використовує алгоритм формування підмножин класів, які можуть мати одного предка та алгоритм автоматичного створення та перетворення класів для побудови дворівневої ієрархії класів. Результати дослідження реалізовані у програмному продукті. Експеримент показав триразове скорочення помилок при виявленні наслідування та багаторазове скорочення часу порівняно з існуючою технологією.
Description
Kungurtsev O. B. Determination of inheritance relations and restructuring of software class models in the process of developing information systems / O. B. Kungurtsev, A. I. Vytnova // Радіоелектроніка, інформатика, управління. – 2022. – № 4 (63). – C. 98-106.