Verslo žinių išgavimo iš egzistuojančių programų sistemų tyrimas
Abstract
Darbe nagrinėjama programų sistemų palaikymo ir vystymo problema. Nustatyta, jog sąnaudos šiose programų sistemos gyvavimo ciklo fazėse siekia iki 80% visų sąnaudų, skiriamų programų sistemai kurti. Pagrindinis šio reiškinio veiksnys yra nuolatinis poreikis pritaikyti sistemų funkcionalumą prie besikeičiančių verslo reikalavimų, o tokios užduotys apima didžiąją dalį visų palaikymo veiklų. Nagrinėti tyrimai parodė, kad programų sistemose įgyvendintai verslo logikai suprasti sugaištama 40–60% pakeitimams atliki skirto laiko, kadangi atsakingi už sistemų palaikymą žmonės paprastai nėra jų projektuotai, todėl turi dėti dideles pastangas, kad išsiaiškintų sistemos veikimo principus. Be to, pakeitimai, atliekami palaikymo metu, yra retai dokumentuojami (ar net nedokumentuojami visai), o supratimas įgytas įgyvendinant pakeitimus lieka individualių programuotojų galvose. Tuo tarpu kiti tyrimai atskleidė, jog paprastai tik trečdalis programų sistemos kodo įgyvendina verslo logiką, o kita dalis yra skirta platformos ir infrastruktūros funkcijoms įgyvendinti. Iš to darytina išvada, jog išgaunant dalykinės srities žinias bei išlaikant atsekamumą tarp jų ir jas įgyvendinančio programinio kodo, galima sumažinti sistemų palaikymo ir vystymo kaštus. Todėl pagrindinis šio darbo tikslas yra patobulinti verslo žinių išgavimo ir vaizdavimo procesą, pasiūlant metodą ir palaikančias priemones, kurios palengvintų egzistuojančių programų sistemų suvokimą. Darbas susideda iš įvado, 4 dalių, bendrųjų išvadų, literatūros sąrašo bei 6 priedų. Pirmoje darbo dalyje pateikiama sisteminė susijusios literatūros apžvalga, kuria siekiama apibendrinti tyrimus šioje srityje, nustatyti trūkumus bei įžvelgti naujas tyrimų kryptis. Antroje darbo dalyje formuojamas siūlomo metodo teorinis pagrindas. Apžvelgiamas pasirinktas meta-modelis žinioms vaizduoti, šio meta-modelio kontekste apibrėžiami taisyklingų modelių sudarymo principai bei apibrėžiamos statinės programų sistemų analizės technikos, kurios naudojamos žinioms išgauti ir išgryninti. Trečioje darbo dalyje pristatomas metodas automatizuotam verslo žinių išgavimui iš egzistuojančių programų sistemų bei apibūdinamas palaikančių priemonių karkasas. Ketvirtoje darbo dalyje pristatomas siūlomo metodo pritaikymo žinioms išgauti iš įmonės turinio valdymo sistemos tyrimas, kuriuo siekiama patikrinti metodo įgyvendinamumą bei įvertinti jo efektyvumą. Tyrimo rezultatų įvertinimas tikslumo, patikimumo bei atkuriamumo aspektais parodo, jog pasiūlytas metodas yra pakankamai efektyvus, jog galėtų būti tobulinamas ir pritaikomas praktikoje. Darbas apibendrinamas ir padaromos bendrosios darbo išvados paskutiniajame darbo skyriuje. The dissertation addresses the problem of software maintenance and evolution. It identifies that spending within these software lifecycle phases may account for up to 80% of software’s total lifecycle cost, whereas the inability to adopt software quickly and reliably to meet ever-changing business requirements may lead to business opportunities being lost. The main reason of this phenomenon is the fact that the most of maintenance effort is devoted to understanding the software to be modified. On the other hand, related studies show that less than one-third of software source code contains business logic implemented within it, while the remaining part is intended for platform or infrastructure relevant activities. It follows that if the most of changes in software are made due to the need to adopt its functionality to changed business requirements, then facilitating software comprehension with automated business knowledge extraction methods may significantly reduce the cost of software maintenance and evolution. Therefore the main goal of this thesis is to improve business knowledge extraction process by proposing a method and supporting tool framework that would facilitate comprehension of existing software systems. The dissertation consists of the following parts: Introduction, 4 chapters, General Conclusions, References, and 6 Annexes. Chapter 1 presents a systematic literature review of related studies in order to summarize the state-of-the art in this research field, identify any gaps in the current research and explore possible directions for the further research. Chapter 2 formulates theoretical background for the business knowledge extraction method by introducing selected standard for the intermediate knowledge representation, defining well-formedness rules for this representation, and by revising and applying static program analysis techniques to this representation. Chapter 3 describes the proposed method for automated business knowledge extraction from existing software systems and introduces the supporting tools framework. Chapter 4 presents the case study on applying the method for knowledge extraction from the existing enterprise content management system, and evaluates study results in respect with the precision, recall, and accuracy measures. The evaluation shows that the proposed method is feasible and efficient enough to be further improved and applied in practice. The main observations are summarised and concluded within the General Conclusions chapter.