11 research outputs found

    A Refactoring Technique for Large Groups of Software Clones

    Get PDF
    Code duplication, also known as software clones, is a persistent problem in software systems that is usually associated with error-proneness and poor software maintainability. Despite the fact that clone detection is a mature research field, clone refactoring has not been equally investigated. Clone refactoring requires the unification and merging of duplicated code, which is a challenging problem because of the changes that take place on the initial clones after their introduction. In recent years, more research works attempted to address the challenges around clone refactoring by applying different techniques; however, they suffer from poor accuracy or performance issues, especially for large clone groups containing more than two clone instances. We contribute to this field by proposing an automated approach that a) finds refactorable subgroups (consisting of three clones or more) within the original group of clones, b) finds the statements that to be merged and extracted in a fast yet accurate way, and c) assesses the refactorability of clone subgroups. We evaluated our approach in comparison to the state-of-the-art, and the results show that we have a high accuracy in matching the clone statements, while maintaining high performance. In a case study, where we carefully examined all clone groups in project JFreeChart 1.0.10, we found that around 49% of the 98 clone subgroups are actually refactorable. Finally, we conducted a large-scale study on over 44k clone groups (13.6k groups containing 3 clones or more) detected by four clone detection tools in nine open source projects to assess the refactorability for clone groups. The outcome of this study revealed the presence of 2,833 refactorable clone subgroups that contain in total 13,398 clone instances

    Prijedlog ontoloŔki utemeljenog metodoloŔkog okvira za razvoj viŔe-platformskih mobilnih aplikacija

    Get PDF
    Software development teams are faced with the lack of interoperability during the development of mobile applications for two or more target platforms. The development for second and every other platform means a new project with a need to repeat almost all the phases defined by the chosen methodology but with a narrow possibility of reuse of the already defined artifacts. The existing efforts of professional and scientific community to solve this problem have a similar approach (code once, run everywhere) with similar advantages and drawbacks. Thus, this dissertation aims to propose a different solution and is concerned with: (1) analyzing the methodologies suitable for mobile applications development, (2) observing the implementation of prototype application in order to define artifacts that are created during the development process for two target platforms, (3) semantic description of artifacts and their meaning, and (4) defining unique ontological definition as a base for methodological interoperability. The results of a systematic literature review performed on 6761 primary studies, show that current state-of-the-art literature brings only 22 development methodologies and 7 development approaches which can be identified as eligible for multi-platform mobile applications development. Among these, Mobile-D methodology accompanied with Test Driven Development was chosen and used in the observed development processes for Android and Windows Phone platforms. Total of 71 artifacts were identified and the artifacts reusability level when developing for second target platform was 66.00%. In the last research phase, the artifacts for both platforms were semantically described into a single ontological description comprising 213 classes, 14 object properties and 2213 axioms defined in ALCRIF DL expression sub-language. Having this ontology proved as correct and valid, flexible, reusable and extensible we created the basis for development of an information system to guide the development teams in a more efficient and interoperable process of multiplatform mobile applications development.Razvojni timovi susreću se s problemom neinteroperabilnosti prilikom razvoja aplikacija za dvije ili viÅ”e mobilnih platformi. Razvoj aplikacije za drugu i svaku sljedeću platformu znači novi projekt u kojem je potrebno ponovno provesti većinu faza definiranih odabranom metodikom razvoja, pri čemu se kreirani artefakti teÅ”ko ili uopće ponovno ne koriste. Napori profesionalne i znanstvene zajednice za rjeÅ”enjem ovog problema imaju sličan pristup (kodiraj jednom, koristi svugdje), slične prednosti, ali i zajedničke nedostatke. Stoga ova disertacija navedenom problemu pristupa na nov način i bavi se: (1) analiziranjem metodika pogodnih za razvoj mobilnih aplikacija, (2) promatranjem razvoja prototipne aplikacije u svrhu definiranja artefakata koji nastaju pri razvoju mobilne aplikacije za dvije ciljane platforme, (3) semantičkim opisivanjem definiranih artefakata i njihovih značenja, te (4) definiranjem jedinstvene ontoloÅ”ke definicije kao osnove za metodoloÅ”ku interoperabilnost. Rezultati sustavnog pregleda literature provedenog nad 6761 radom pokazali su da se trenutno u literaturi spominju 22 metodike i 7 pristupa koji su pogodni za razvoj viÅ”e-platformskih mobilnih aplikacija. Između identificiranih metodika odabrani su Mobile-D metodika i pristup razvoju vođen testiranjem, koji su koriÅ”teni pri implementaciji prototipnog rjeÅ”enja za Android i Windows Phone platformu. Ukupno je identificiran 71 artefakt pri čemu je ponovna iskoristivost artefakata pri razvoju za drugu platformu bila 66.00%. U posljednjoj su fazi istraživanja artefakti semantički opisani u zajedničku ontoloÅ”ku definiciju koja u konačnici sadrži 213 klasa, 14 objektnih svojstava i 2213 aksioma definiranih pomodu ALCRIF-DL jezika izraza. U radu je dokazano da je ontologija valjana, fleksibilna, ponovno iskoristiva i nadogradiva, čime je kreirana osnova za razvoj informacijskog sustava koji bi vodio razvojne timove u efikasnijem i bolje interoperabilnom procesu razvoja viÅ”e-platformskih mobilnih aplikacija

    Prijedlog ontoloŔki utemeljenog metodoloŔkog okvira za razvoj viŔe-platformskih mobilnih aplikacija

    Get PDF
    Software development teams are faced with the lack of interoperability during the development of mobile applications for two or more target platforms. The development for second and every other platform means a new project with a need to repeat almost all the phases defined by the chosen methodology but with a narrow possibility of reuse of the already defined artifacts. The existing efforts of professional and scientific community to solve this problem have a similar approach (code once, run everywhere) with similar advantages and drawbacks. Thus, this dissertation aims to propose a different solution and is concerned with: (1) analyzing the methodologies suitable for mobile applications development, (2) observing the implementation of prototype application in order to define artifacts that are created during the development process for two target platforms, (3) semantic description of artifacts and their meaning, and (4) defining unique ontological definition as a base for methodological interoperability. The results of a systematic literature review performed on 6761 primary studies, show that current state-of-the-art literature brings only 22 development methodologies and 7 development approaches which can be identified as eligible for multi-platform mobile applications development. Among these, Mobile-D methodology accompanied with Test Driven Development was chosen and used in the observed development processes for Android and Windows Phone platforms. Total of 71 artifacts were identified and the artifacts reusability level when developing for second target platform was 66.00%. In the last research phase, the artifacts for both platforms were semantically described into a single ontological description comprising 213 classes, 14 object properties and 2213 axioms defined in ALCRIF DL expression sub-language. Having this ontology proved as correct and valid, flexible, reusable and extensible we created the basis for development of an information system to guide the development teams in a more efficient and interoperable process of multiplatform mobile applications development.Razvojni timovi susreću se s problemom neinteroperabilnosti prilikom razvoja aplikacija za dvije ili viÅ”e mobilnih platformi. Razvoj aplikacije za drugu i svaku sljedeću platformu znači novi projekt u kojem je potrebno ponovno provesti većinu faza definiranih odabranom metodikom razvoja, pri čemu se kreirani artefakti teÅ”ko ili uopće ponovno ne koriste. Napori profesionalne i znanstvene zajednice za rjeÅ”enjem ovog problema imaju sličan pristup (kodiraj jednom, koristi svugdje), slične prednosti, ali i zajedničke nedostatke. Stoga ova disertacija navedenom problemu pristupa na nov način i bavi se: (1) analiziranjem metodika pogodnih za razvoj mobilnih aplikacija, (2) promatranjem razvoja prototipne aplikacije u svrhu definiranja artefakata koji nastaju pri razvoju mobilne aplikacije za dvije ciljane platforme, (3) semantičkim opisivanjem definiranih artefakata i njihovih značenja, te (4) definiranjem jedinstvene ontoloÅ”ke definicije kao osnove za metodoloÅ”ku interoperabilnost. Rezultati sustavnog pregleda literature provedenog nad 6761 radom pokazali su da se trenutno u literaturi spominju 22 metodike i 7 pristupa koji su pogodni za razvoj viÅ”e-platformskih mobilnih aplikacija. Između identificiranih metodika odabrani su Mobile-D metodika i pristup razvoju vođen testiranjem, koji su koriÅ”teni pri implementaciji prototipnog rjeÅ”enja za Android i Windows Phone platformu. Ukupno je identificiran 71 artefakt pri čemu je ponovna iskoristivost artefakata pri razvoju za drugu platformu bila 66.00%. U posljednjoj su fazi istraživanja artefakti semantički opisani u zajedničku ontoloÅ”ku definiciju koja u konačnici sadrži 213 klasa, 14 objektnih svojstava i 2213 aksioma definiranih pomodu ALCRIF-DL jezika izraza. U radu je dokazano da je ontologija valjana, fleksibilna, ponovno iskoristiva i nadogradiva, čime je kreirana osnova za razvoj informacijskog sustava koji bi vodio razvojne timove u efikasnijem i bolje interoperabilnom procesu razvoja viÅ”e-platformskih mobilnih aplikacija

    Prijedlog ontoloŔki utemeljenog metodoloŔkog okvira za razvoj viŔe-platformskih mobilnih aplikacija

    Get PDF
    Software development teams are faced with the lack of interoperability during the development of mobile applications for two or more target platforms. The development for second and every other platform means a new project with a need to repeat almost all the phases defined by the chosen methodology but with a narrow possibility of reuse of the already defined artifacts. The existing efforts of professional and scientific community to solve this problem have a similar approach (code once, run everywhere) with similar advantages and drawbacks. Thus, this dissertation aims to propose a different solution and is concerned with: (1) analyzing the methodologies suitable for mobile applications development, (2) observing the implementation of prototype application in order to define artifacts that are created during the development process for two target platforms, (3) semantic description of artifacts and their meaning, and (4) defining unique ontological definition as a base for methodological interoperability. The results of a systematic literature review performed on 6761 primary studies, show that current state-of-the-art literature brings only 22 development methodologies and 7 development approaches which can be identified as eligible for multi-platform mobile applications development. Among these, Mobile-D methodology accompanied with Test Driven Development was chosen and used in the observed development processes for Android and Windows Phone platforms. Total of 71 artifacts were identified and the artifacts reusability level when developing for second target platform was 66.00%. In the last research phase, the artifacts for both platforms were semantically described into a single ontological description comprising 213 classes, 14 object properties and 2213 axioms defined in ALCRIF DL expression sub-language. Having this ontology proved as correct and valid, flexible, reusable and extensible we created the basis for development of an information system to guide the development teams in a more efficient and interoperable process of multiplatform mobile applications development.Razvojni timovi susreću se s problemom neinteroperabilnosti prilikom razvoja aplikacija za dvije ili viÅ”e mobilnih platformi. Razvoj aplikacije za drugu i svaku sljedeću platformu znači novi projekt u kojem je potrebno ponovno provesti većinu faza definiranih odabranom metodikom razvoja, pri čemu se kreirani artefakti teÅ”ko ili uopće ponovno ne koriste. Napori profesionalne i znanstvene zajednice za rjeÅ”enjem ovog problema imaju sličan pristup (kodiraj jednom, koristi svugdje), slične prednosti, ali i zajedničke nedostatke. Stoga ova disertacija navedenom problemu pristupa na nov način i bavi se: (1) analiziranjem metodika pogodnih za razvoj mobilnih aplikacija, (2) promatranjem razvoja prototipne aplikacije u svrhu definiranja artefakata koji nastaju pri razvoju mobilne aplikacije za dvije ciljane platforme, (3) semantičkim opisivanjem definiranih artefakata i njihovih značenja, te (4) definiranjem jedinstvene ontoloÅ”ke definicije kao osnove za metodoloÅ”ku interoperabilnost. Rezultati sustavnog pregleda literature provedenog nad 6761 radom pokazali su da se trenutno u literaturi spominju 22 metodike i 7 pristupa koji su pogodni za razvoj viÅ”e-platformskih mobilnih aplikacija. Između identificiranih metodika odabrani su Mobile-D metodika i pristup razvoju vođen testiranjem, koji su koriÅ”teni pri implementaciji prototipnog rjeÅ”enja za Android i Windows Phone platformu. Ukupno je identificiran 71 artefakt pri čemu je ponovna iskoristivost artefakata pri razvoju za drugu platformu bila 66.00%. U posljednjoj su fazi istraživanja artefakti semantički opisani u zajedničku ontoloÅ”ku definiciju koja u konačnici sadrži 213 klasa, 14 objektnih svojstava i 2213 aksioma definiranih pomodu ALCRIF-DL jezika izraza. U radu je dokazano da je ontologija valjana, fleksibilna, ponovno iskoristiva i nadogradiva, čime je kreirana osnova za razvoj informacijskog sustava koji bi vodio razvojne timove u efikasnijem i bolje interoperabilnom procesu razvoja viÅ”e-platformskih mobilnih aplikacija

    A new parallelisation technique for heterogeneous CPUs

    Get PDF
    Parallelization has moved in recent years into the mainstream compilers, and the demand for parallelizing tools that can do a better job of automatic parallelization is higher than ever. During the last decade considerable attention has been focused on developing programming tools that support both explicit and implicit parallelism to keep up with the power of the new multiple core technology. Yet the success to develop automatic parallelising compilers has been limited mainly due to the complexity of the analytic process required to exploit available parallelism and manage other parallelisation measures such as data partitioning, alignment and synchronization. This dissertation investigates developing a programming tool that automatically parallelises large data structures on a heterogeneous architecture and whether a high-level programming language compiler can use this tool to exploit implicit parallelism and make use of the performance potential of the modern multicore technology. The work involved the development of a fully automatic parallelisation tool, called VSM, that completely hides the underlying details of general purpose heterogeneous architectures. The VSM implementation provides direct and simple access for users to parallelise array operations on the Cellā€™s accelerators without the need for any annotations or process directives. This work also involved the extension of the Glasgow Vector Pascal compiler to work with the VSM implementation as a one compiler system. The developed compiler system, which is called VP-Cell, takes a single source code and parallelises array expressions automatically. Several experiments were conducted using Vector Pascal benchmarks to show the validity of the VSM approach. The VP-Cell system achieved significant runtime performance on one accelerator as compared to the master processorā€™s performance and near-linear speedups over code runs on the Cellā€™s accelerators. Though VSM was mainly designed for developing parallelising compilers it also showed a considerable performance by running C code over the Cellā€™s accelerators

    INTELLIGENT VOICE-BASED E-EDUCATION SYSTEM: A FRAMEWORK AND EVALUATION

    Get PDF
    Voice-based web e-Education is a technology-supported learning paradigm that allows phone-access of learners to e-Learning web-based applications. These applications are designed mainly for the visually impaired. They are however lacking in attributes of adaptive and reusable learning objects, which are emerging requirements for applications in these domain. This paper presents a framework for developing intelligent voice-based applications in the context of e-Education. The framework presented supports intelligent components such as adaptation and recommendation services. A prototype Intelligent Voice-based E-Education System (iVEES) was developed and subjected to test by visually impaired users. A usability study was carried out using the International Standard Organizationā€™s (ISO) 9241-11 specification to determine the level of effectiveness, efficiency and user satisfaction. Report of our findings shows that the application is of immense benefit, based on the systemā€™s inherent capacity for taking autonomous decision that are capable of adapting to usersā€™ requests

    Grid application meta-repository system

    Get PDF
    As one of the most popular forms of distributed computing technology, Grid brings together different scientific communities that are able to deploy, access, and run complex applications with the help of the enormous computational and storage power offered by the Grid infrastructure. However as the number of Grid applications has been growing steadily in recent years, they are now stored on a multitude of different repositories, which remain specific to each Grid. At the time this research was carried out there were no two well-known Grid application repositories sharing the same structure, same implementation, same access technology and methods, same communication protocols, same security system or same application description language used for application descriptions. This remained a great limitation for Grid users, who were bound to work on only one specific repository, and also presented a significant limitation in terms of interoperability and inter-repository access. The research presented in this thesis provides a solution to this problem, as well as to several other related issues that have been identified while investigating these areas of Grid. Following a comprehensive review of existing Grid repository capabilities, I defined the main challenges that need to be addressed in order to make Grid repositories more versatile and I proposed a solution that addresses these challenges. To this end, I designed a new Grid repository (GAMRS ā€“ Grid Application Meta-Repository System), which includes a novel model and architecture, an improved application description language and a matchmaking system. After implementing and testing this solution, I have proved that GAMRS marks an improvement in Grid repository systems. Its new features allow for the inter-connection of different Grid repositories; make applications stored on these repositories visible on the web; allow for the discovery of similar or identical applications stored in different Grid repositories; permit the exchange and re-usage of application and applicationrelated objects between different repositories; and extend the use of applications stored on Grid repositories to other distributed environments, such as virtualized cluster-on-demand and cloud computing

    A Software Engineered Voice-Enabled Job Recruitment Portal System

    Get PDF
    The inability of job seekers to get timely job information regarding the status of the application submitted via conventional job portal system which is usually dependent on accessibility to the Internet has made so many job applicants to lose their placements. Worse still, the epileptic services offered by Internet Service Providers and the poor infrastructures in most developing countries have greatly hindered the expected benefits from Internet usage. These have led to cases of online vacancies notifications unattended to simply because a job seeker is neither aware nor has access to the Internet. With an increasing patronage of mobile phones, a self-service job vacancy notification with audio functionality or an automated job vacancy notification to all qualified job seekers through mobile phones will simply provide a solution to these challenges. In this paper, we present a Voice-enabled Job Recruitment Portal (JRP) System. The system is accessed through two interfaces ā€“ the voice userā€™s interface (VUI) and web interface. The VUI was developed using VoiceXML and the web interface using PHP, and both interfaces integrated with Apache and MySQL as the middleware and back-end component respectively. The JRP proposed in this paper takes the hassle of job hunting from job seekers, provides job status information in real-time to the job seeker and offers other benefits such as, cost, effectiveness, speed, accuracy, ease of documentation, convenience and better logistics to the employer in seeking the right candidate for a job

    Test suite prioritization techniques applied to Web-based applications

    Full text link
    Web applications have rapidly gained importance in many businesses. The increased usage of web applications has created a challenging need for efficient and effective web application testing strategies. This thesis examines one aspect of web testing, that of test suite prioritization. We examine new test suite prioritization strategies that may improve the rate of fault detection for user-session based test suites. These techniques consider test-lengths and systematic coverage of parameter-values and their interactions. Experimental results show that some of these prioritization strategies often improve the rate of fault detection of test suites when compared to random ordering of the test cases. In general the most effective prioritization strategies consider the systematic coverage of the combinations of parameter-values as early as possible
    corecore