11 research outputs found
A Refactoring Technique for Large Groups of Software Clones
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
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
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
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
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
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
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
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
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