Title Extension of dynamic software update model for class hierarchy changes and run-time phenomena detection
Title (croatian) Proširenje modela dinamičkog ažuriranja softvera na promjenu hijerarhije klasa i detekciju fenomena izvođenja
Author Danijel Mlinarić
Mentor Boris Milašinović (mentor)
Committee member Boris Milašinović (član povjerenstva)
Granter University of Zagreb Faculty of Electrical Engineering and Computing (Department of Applied Computing) Zagreb
Defense date and country 2020, Croatia
Scientific / art field, discipline and subdiscipline TECHNICAL SCIENCES Computing
Universal decimal classification (UDC ) 004 - Computer science and technology. Computing. Data processing
Abstract Software maintenance requires a software update that causes unavailability during the update. Software downtime introduces costs in business processes and can negatively affect critical processes, such as the software controlling bank transactions or traffic systems. One of the solutions to provide software updating without interruption is Dynamic Software Updating (DSU). However, there are several challenges in dynamic software updating. It is necessary to detect changes between versions of
... More the program, apply them dynamically, and ensure the program's correct operation and stable performance. Aspect programming (AOP - Aspect Oriented Programming) by cross-cutting concerns allows modification of object-oriented programs, making it convenient to describe program changes. Furthermore, dynamic AOP (DAOP) allows program changes at run time, but currently available solutions contain limitations in the form of supported changes, such as changing the class hierarchy. Meanwhile, the state correctness of the dynamically updated program can be compromised, known as the occurrence of runtime phenomena. By detecting runtime phenomena, such program states can be prevented. Furthermore, a dynamically updated program may cause performance degradation due to an additional layer that allows dynamic updating. Therefore, dynamic updating implies the need to evaluate and compare the performance in order to use solutions that minimally affect execution performance. In object-oriented programming, a class is the main construct and relationship between classes in the form of inheritance abstracts the software domain. Therefore, changes between program versions and runtime phenomena are considered from the class hierarchy perspective. Consequently, an extended DAOP model is proposed that extends the set of supported changes to class hierarchy and changes related to the class hierarchy. Furthermore, program analysis is used to detect and estimate runtime phenomena based on the changes between different program versions. In addition, the proposed methodology for performance evaluation of the various approaches is used to detect the impact on computer resources. The prototype system is developed by implementing the proposed update model with runtime phenomena detection. Prototype evaluation is performed by several experiments, validating the proposed approach in terms of efficiency, applicability, and performance. Efficiency is evaluated by generated trees, whereas open-source programs are used for empirical analysis of supported changes to evaluate applicability. Moreover, a variant of the \textit{Snake} game is developed, with two update versions used as a use case example to validate the model. As for performance evaluation, the prototype system and currently available approaches are compared using the proposed methodology implemented as a benchmark tool. Less
Abstract (croatian) Održavanje softvera zahtjeva ažuriranje softvera koje uzrokuje nedostupnost tijekom ažuriranja. Nedostupnost softvera uvodi troškove u poslovnim procesima i može negativno utjecati na kritične procese, poput softvera koji kontrolira bankovne transakcije ili sustav koji kontrolira promet. Dinamičko ažuriranje softvera (Dynamic Software Updating) jedno je od rješenja za ažuriranje softvera bez prekida rada. Međutim, postoji nekoliko izazova u dinamičkom ažuriranju softvera. Potrebno je
... More detektirati promjene između verzija programa i primijeniti ih dinamički. Tijekom i nakon dinamičkog ažuriranja potrebno je osigurati ispravan rad programa i stabilne performance. Slijedom toga, programiranje pomoću aspekata (AOP – Aspect Oriented Programming) omogućuje horizontalnu modifikaciju objektno-orijentiranih programa, što ga čini prikladnim za opisivanje promjena programa. Nadalje, dinamički AOP (DAOP – Dynamic AOP) omogućuje promjene programa tijekom izvođenja, ali trenutno dostupna rješenja sadrže ograničenja u obliku podržanih promjena, poput promjene hijerarhije klasa. S druge strane, ispravnost stanja dinamički ažuriranog programa može biti narušena, što je poznato kao nastanak fenomena izvođenja. Detektiranjem fenomena izvođenja takva stanja se mogu spriječiti. Nadalje, dinamički ažurirani program može uzrokovati pogoršanje performanci izvođenja zbog dodatnog sloja koji omogućuje dinamičko ažuriranje. Stoga dinamičko ažuriranje podrazumijeva potrebu za evaluacijom i usporedbom performanci, kako bi se koristila rješenja koja minimalno utječu na performance izvođenja. U objektno orijentiranom programiranju klasa je glavna konstrukt i odnos između klasa u obliku nasljeđivanja predstavlja apstrakciju softverske domene. Stoga se promjene između verzija programa i fenomena izvođenja razmatraju iz perspektive hijerarhije klasa. Slijedom toga, predložen je prošireni DAOP model koji proširuje skup podržanih promjena hijerarhijom klasa i promjenama povezanim s hijerarhijom klasa. Nadalje, analiza programa koristi se za detektiranje i procjenu fenomena izvođenja na temelju promjena između različitih verzija programa. Uz to, predložena metodologija za evaluaciju performanci različitih pristupa koristi se za određivanje utjecaja na računalne resurse. Prototipni sustav razvijen je primjenom predloženog modela ažuriranja s detekcijom fenomena izvođenja. Evaluacija prototipa izvodi se u nekoliko eksperimenata, vrednujući predloženi pristup u smislu učinkovitosti, primjenjivosti i performanci. Učinkovitost se procjenjuje generiranim stablima, dok se programi otvorenog koda koriste za empirijsku analizu podržanih promjena za evaluaciju primjenjivosti. Nadalje, razvijena je inačica igre Snake, s dvije verzije ažuriranja koje se koriste kao primjer za provjeru valjanosti modela. Za evaluaciju performanci, prototipni sustav i trenutno dostupni pristupi uspoređuju se pomoću predložene metodologije koja je implementirana kao alat za mjerenje. Less
Keywords
dynamic software updating
dynamic AOP
class hierarchy
OOP
runtime phenomena
performance evaluation
Keywords (croatian)
dinamičko ažuriranje softvera
dinamički AOP
hijerarhija klasa
OOP
fenomeni izvođenja
evaluacija performanci
Language english
URN:NBN urn:nbn:hr:168:087042
Study programme Title: Computer Science Study programme type: university Study level: postgraduate Academic / professional title: Doktor znanosti (Doktor znanosti)
Catalog URL http://lib.fer.hr/cgi-bin/koha/opac-detail.pl?biblionumber=52324
Type of resource Text
Extent 150 str.
File origin Born digital
Access conditions Open access
Terms of use
Created on 2022-03-09 13:27:56