5,076 research outputs found

    Designing and implementing a tool to transform source code to UML diagrams

    Get PDF
    Currently, reverse engineering is considered as a significant process to extract the design information and abstractions of a system from the present software. The extracted source codes have been converted into a certain structure to be easily analyzed in the following procedure. For facilitating the software process development, it might be optimum to have tools beingcertain which generate automatically or help UML generating models from the codes as a source. The current study focuses on the reverse engineering process regarding the python and java source codes to the behavior diagrams: the use case and the activity diagrams which might be of high importance in the process of software maintenance. This approach is carried out in the current study in the application referred to as the RCUML tool with the use of the python language which helped in understanding python and java source codes in the software application, and enabling visualization regarding the software behavior

    Source code patches from dynamic analysis

    Get PDF
    Dynamic analysis can identify improvements to programs that cannot feasibly be identified by static analysis; concurrency improvements are a motivating example. However, mapping these dynamic-analysis-based improvements back to patch-like source-code changes is non-trivial. We describe a system, Scopda, for generating source-code patches for improvements identified by execution-trace-based dynamic analysis. Scopda uses a graph-based static program representation (abstract program graph, APG), containing inter-procedural control flow and local data flow information, to analyse and transform static source-code. We demonstrate Scopda's ability to generate sensible source code patches for Java programs, though it is fundamentally language agnostic.The first author was funded by the Engineering and Physical Sciences Research Council (EPSRC), the Cambridge Trusts, and the University of Cambridge Department of Computer Science and Technology

    Proceedings of the ICTSS 2012 Ph.D. Workshop

    Get PDF

    Proceedings of the ICTSS 2012 PhD Workshop - Preface

    Get PDF

    An integrated system to manage crosscutting concerns in source code

    Get PDF

    Tapahtumalokien analysointi prosessien mallintamiseen ja poikkeavuuksien havaitsemiseen reaaliajassa

    Get PDF
    Diagnostics and real-time data is crucial to running modern software operations. Different stakeholders need different granularities of information displayed in a quick and informative fashion. In addition, software operations change rapidly which makes it necessary for the diagnostic systems to be able to adapt quickly. In this thesis, I present a method to analyze past event logs to discover the underlying process models; I describe methods to combine these models with real-time information to create visualizations that are useful to even non-technical users; I leverage the models to show the users predictions about future events; I explore the possibilities of using machine learning to improve the accuracy of these predictions; and, I examine how the models can be used in conjunction with real-time events to automatically notify relevant people about any faults or anomalies in a system. I developed a system fulfilling the requirements of this project that was released to production. I tested the machine learning approach against a simple statistical model and, based on the testing, the machine learning models did not significantly increase the prediction accuracy in the data sets used. Despite the lack of benefits of the machine learning component, the system was successful and valuable to the end-users.Diagnostiikka ja reaaliaikainen informaation on elintärkeää nykyaikaisten ohjelmistoprojektien hallinnassa. Projektin eri osapuolilla on erilaisia tarpeita tiedon koostamiseen ja sen esittämiseen. Toisille yksinkertainen tieto on tärkeää, toisia suuret suuntaviivat hyödyttävät enemmän. Lisäksi ohjelmisto-operaatiot muuttuvat nopeasti, ja diagnostiikan on sopeuduttava muutoksiin nopeasti. Tässä diplomityössä esittelen tavan analysoida menneitä tapahtumalokitietoja niiden taustalla olevien prosessien mallintamiseksi. Kuvailen tapoja käyttää näitä malleja reaaliaikaisen informaation visualisointiin tavalla, josta on hyötyä jopa maallikkokäyttäjille. Käytän malleja hyväksi näyttääkseni käyttäjille ennusteita tulevista tapahtumista. Kokeilen myös, mikäli ennustusten tarkkuutta voisi parantaa hyödyntämällä koneoppimista. Lopuksi tarkastelen kuinka malleja voi hyödyntää reaaliaikaisten tapahtumien analysoinnissa mahdollistaen automaattisten virheilmoitusten lähettämisen niistä kiinnostuneille ihmisille. Projektin aikana kehitin järjestelmän joka täytti projektin alussa määritellyt vaatimukset. Tutkin koneoppimisen tehokkuutta verraten sitä yksinkertaisiin tilastollisiin malleihin. Testauksessa koneoppiminen ei merkittävästi lisännyt ennustusten tarkkuutta. Tästäkin huolimatta järjestelmä vastasi sille asetettuja tarpeita ja se julkaistiin loppukäyttäjille, jotka kokivat projektin onnistuneeksi ja arvokkaaksi
    corecore