3,715 research outputs found

    A Survey of Search-Based Refactoring for Software Maintenance

    Get PDF
    Abstract This survey reviews published materials related to the specific area of Search-Based Software Engineering that concerns software maintenance and, in particular, refactoring. The survey aims to give a comprehensive review of the use of search-based refactoring to maintain software. Fifty different papers have been selected from online databases to analyze and review the use of search-based refactoring in software engineering. The current state of the research is analyzed and patterns in the studies are investigated in order to assess gaps in the area and suggest opportunities for future research. The papers reviewed are tabulated in order to aid researchers in quickly referencing studies. The literature addresses different methods using search-based refactoring for software maintenance, as well as studies that investigate the optimization process and discuss components of the search. There are studies that analyze different software metrics, experiment with multi-objective techniques and propose refactoring tools for use. Analysis of the literature has indicated some opportunities for future research in the area. More experimentation of the techniques in an industrial environment and feedback from software developers is needed to support the approaches. Also, recent work with multi-objective techniques has shown that there are exciting possibilities for future research using these techniques with refactoring. This survey is beneficial as an introduction for any researchers aiming to work in the area of Search-Based Software Engineering with respect to software maintenance and will allow them to gain an understanding of the current landscape of the research and the insights gathered

    A Corpus Driven Computational Intelligence Framework for Deception Detection in Financial Text

    Get PDF
    Financial fraud rampages onwards seemingly uncontained. The annual cost of fraud in the UK is estimated to be as high as £193bn a year [1] . From a data science perspective and hitherto less explored this thesis demonstrates how the use of linguistic features to drive data mining algorithms can aid in unravelling fraud. To this end, the spotlight is turned on Financial Statement Fraud (FSF), known to be the costliest type of fraud [2]. A new corpus of 6.3 million words is composed of102 annual reports/10-K (narrative sections) from firms formally indicted for FSF juxtaposed with 306 non-fraud firms of similar size and industrial grouping. Differently from other similar studies, this thesis uniquely takes a wide angled view and extracts a range of features of different categories from the corpus. These linguistic correlates of deception are uncovered using a variety of techniques and tools. Corpus linguistics methodology is applied to extract keywords and to examine linguistic structure. N-grams are extracted to draw out collocations. Readability measurement in financial text is advanced through the extraction of new indices that probe the text at a deeper level. Cognitive and perceptual processes are also picked out. Tone, intention and liquidity are gauged using customised word lists. Linguistic ratios are derived from grammatical constructs and word categories. An attempt is also made to determine ‘what’ was said as opposed to ‘how’. Further a new module is developed to condense synonyms into concepts. Lastly frequency counts from keywords unearthed from a previous content analysis study on financial narrative are also used. These features are then used to drive machine learning based classification and clustering algorithms to determine if they aid in discriminating a fraud from a non-fraud firm. The results derived from the battery of models built typically exceed classification accuracy of 70%. The above process is amalgamated into a framework. The process outlined, driven by empirical data demonstrates in a practical way how linguistic analysis could aid in fraud detection and also constitutes a unique contribution made to deception detection studies

    Interactive Multi-Objective Refactoring via Decision and Objective Space Exploration

    Full text link
    Peer Reviewedhttp://deepblue.lib.umich.edu/bitstream/2027.42/162566/1/ICSE2020_Decision_Objective_Spaces_copy (2).pdfSEL

    Alamprotsessidest, protsesside variatsioonidest ja nendevahelisest koosmõjust: Integreeritud “jaga ja valitse” meetod äriprotsesside ja nende variatsioonide modelleerimiseks

    Get PDF
    Igat organisatsiooni võib vaadelda kui süsteemi, mis rakendab äriprotsesse väärtuste loomiseks. Suurtes organisatsioonides on tavapärane esitada äriprotsesse kasutades protsessimudeleid, mida kasutatakse erinevatel eesmärkidel nagu näiteks sisekommunikatsiooniks, koolitusteks, protsesside parendamiseks ja infosüsteemide arendamiseks. Arvestades protsessimudelite multifunktsionaalset olemust tuleb protsessimudeleid koostada selliselt, et see võimaldab nendest arusaamist ning haldamist erinevate osapoolte poolt. Käesolev doktoritöö pakkudes välja integreeritud dekompositsioonist ajendatud meetodi äriprotsesside modelleerimiseks koos nende variatsioonidega. Meetodi kandvaks ideeks on järkjärguline äriprotsessi ja selle variatsioonide dekomponeerimine alamprotsessideks. Igal dekompositsiooni tasemel ning iga alamprotsessi jaoks määratletakse esmalt kas vastavat alamprotsessi tuleks modelleerida konsolideeritud moel (üks alamprotsessi mudel kõikide või osade variatsioonide jaoks) või fragmenteeritud moel (üks alamprotsess ühe variatsiooni jaoks). Sel moel kasutades ülalt-alla lähenemist viilutatakse ja tükeldatakse äriprotsess väiksemateks osadeks. Äriprotsess viilutatakse esmalt tema variatsioonideks ning seejärel tükeldatakse dekompositsioonideks kasutades kaht peamist parameetrit. Esimeseks on äri ajendid variatsioonide jaoks – igal äriprotsessi variatsioonil on oma juurpõhjus, mis pärineb ärist endast ja põhjustab protsesside käivitamisel erisusi. Need juurpõhjused jagatakse viide kategooriasse – ajendid kliendist, tootest, operatiivsetest põhjustest, turust ja ajast. Teine parameeter on erinevuste hulk viisides (tegevuste järjekord, tulemuste väärtused jms) kuidas variatsioonid oma väljundit toodavad. Käesolevas töös esitatud meetod on valideeritud kahes praktilises juhtumiuuringus. Kui esimeses juhtumiuuringus on põhirõhk olemasolevate protsessimudelite konsolideerimisel, siis teises protsessimudelite avastamisel. Sel moel rakendatakse meetodit kahes eri kontekstis kahele üksteisest eristatud juhtumile. Mõlemas juhtumiuuringus tootis meetod protsessimudelite hulgad, milles oli liiasust kuni 50% vähem võrreldes tavapäraste meetoditega jättes samas mudelite keerukuse nendega võrreldes enamvähem samale tasemele.Every organization can be conceived as a system where value is created by means of business processes. In large organizations, it is common for business processes to be represented by means of process models, which are used for a range of purposes such as internal communication, training, process improvement and information systems development. Given their multifunctional character, process models need to be captured in a way that facilitates understanding and maintenance by a variety of stakeholders. This thesis proposes an integrated decomposition-driven method for modeling business processes with variants. The core idea of the method is to incrementally construct a decomposition of a business process and its variants into subprocesses. At each level of the decomposition and for each subprocess, we determine if this subprocess should be modeled in a consolidated manner (one subprocess model for all variants or for multiple variants) or in a fragmented manner (one subprocess model per variant). In this manner, a top-down approach of slicing and dicing a business process is taken. The process model is sliced in accordance with its variants, and then diced (decomposed). This decision is taken based on two parameters. The first is the business drivers for the existence of the variants. All variants of a business process has a root cause i.e. a reason stemming from the business that causes the processes to have differences in how they are executed. The second parameter considered when deciding how to model the variants is the degree of difference in the way the variants produce their outcomes. As such, the modeling of business process variations is dependent on their degree of similarity in regards to how they produce value (such as values, execution order and so on). The method presented in this thesis is validated by two real-life case studies. The first case study concerns a case of consolidation existing process models. The other deals with green-field process discovery. As such, the method is applied in two different contexts (consolidation and discovery) on two different cases that differ from each other. In both cases, the method produced sets of process models that had reduced the duplicity rate by up to 50 % while keeping the degree of complexity of the models relatively stable

    Forum Session at the First International Conference on Service Oriented Computing (ICSOC03)

    Get PDF
    The First International Conference on Service Oriented Computing (ICSOC) was held in Trento, December 15-18, 2003. The focus of the conference ---Service Oriented Computing (SOC)--- is the new emerging paradigm for distributed computing and e-business processing that has evolved from object-oriented and component computing to enable building agile networks of collaborating business applications distributed within and across organizational boundaries. Of the 181 papers submitted to the ICSOC conference, 10 were selected for the forum session which took place on December the 16th, 2003. The papers were chosen based on their technical quality, originality, relevance to SOC and for their nature of being best suited for a poster presentation or a demonstration. This technical report contains the 10 papers presented during the forum session at the ICSOC conference. In particular, the last two papers in the report ere submitted as industrial papers

    Software restructuring: understanding longitudinal architectural changes and refactoring

    Get PDF
    The complexity of software systems increases as the systems evolve. As the degradation of the system's structure accumulates, maintenance effort and defect-proneness tend to increase. In addition, developers often opt to employ sub-optimal solutions in order to achieve short-time goals, in a phenomenon that has been recently called technical debt. In this context, software restructuring serves as a way to alleviate and/or prevent structural degradation. Restructuring of software is usually performed in either higher or lower levels of granularity, where the first indicates broader changes in the system's structural architecture and the latter indicates refactorings performed to fewer and localised code elements. Although tools to assist architectural changes and refactoring are available, there is still no evidence these approaches are widely adopted by practitioners. Hence, an understanding of how developers perform architectural changes and refactoring in their daily basis and in the context of the software development processes they adopt is necessary. Current software development is iterative and incremental with short cycles of development and release. Thus, tools and processes that enable this development model, such as continuous integration and code review, are widespread among software engineering practitioners. Hence, this thesis investigates how developers perform longitudinal and incremental architectural changes and refactoring during code review through a wide range of empirical studies that consider different moments of the development lifecycle, different approaches, different automated tools and different analysis mechanisms. Finally, the observations and conclusions drawn from these empirical investigations extend the existing knowledge on how developers restructure software systems, in a way that future studies can leverage this knowledge to propose new tools and approaches that better fit developers' working routines and development processes
    corecore