Spelling suggestions: "subject:"pode migration"" "subject:"mode migration""
1 |
Perception and effects of implementing Kotlin in existing projects : A case study about language adoptionSundin, Emil January 2018 (has links)
The Kotlin programming language has seen an increase of adoption since its launch in 2011. In late 2017 Google announced first-class support for Kotlin on the Android platform which further popularized the language. With this increase in popularity we felt it was interesting to investigate how Kotlin affects the developer experience. We performed a case study to see how Java developers perceive the Kotlin language, and how it meets the requirements of these developers. To gather the developer requirements and their perception of Kotlin we performed two sets of interviews and rewrote parts of their codebase. The first set of interviews identified developer requirements and the second set of interviews showcased the Kotlin language and its potential use in their codebase. The results show that Kotlin can meet most of the developer requirements and that the perception of Kotlin is positive. Kotlin’s ability to be incrementally adopted was a prominent feature which reduced the inherent risks of technology adoption while providing them the ability to further evaluate the language. The expressiveness of a programming language has previously been found to be a prominent factor of language adoption. In this study, we identified the expressive nature of Kotlin as a major factor of its adoption potential.
|
2 |
Code migration of reactive programming components, from JavaScript to C++ / Kodmigrering av reaktiva programmeringskomponenter, från JavaScript till C++Rönbeck Lindahl, Sebastian January 2021 (has links)
The demands we put on the mobile applications we use continues to grow. They should be useful, elegantly designed, secure and effective. If an app does not meet those demands, it is likely that the user will replace it with another one. This thesis work was performed at Visiarc, which is a small company that is specialized at development of mobile- and web applications. They are looking for new ways of improving the performance of their apps. This study investigates whether a performance enhancement can be achieved through migrating the reactive programming components, which are being used to update the graphical user interface of their apps, from JavaScript where they currently are residing in Visiarc's system, to C++. The study explains how the new C++ system for managing reactive programming components was constructed. Two performance tests were created to compare the performance of the C++ system to the existing JavaScript system. The test results showed that further improvements to the native system are required in order to surpass the performance of the JavaScript system. What these improvements are and how to achieve them is briefly discussed.
|
3 |
Helping Developers Migrate their Code across Programming LanguagesElarnaoty, Mohammed Elsayed 15 October 2024 (has links)
Migrating source code from one programming language to another is a common task in software development.
This migration can be done by completely rewriting the code in the target language, or it can be facilitated through code-reuse or automation techniques.
This thesis explores both approaches.
For code-reuse, two new cross-language code search techniques are proposed that enable developers to search for code in one language using code from another.
These techniques address the limitations of existing methods in the context of code migration.
The first technique leverages a Siamese network combined with Word2Vec embeddings, while the second employs transformers.
For code automation, the concept of Translation Types is introduced to categorize code translations.
An empirical study was conducted to analyze the differences between human-translated and machine-translated code.
Based on these findings, two multi-output code translation techniques were developed that produce multiple translations aligned with the different styles that developers use when translating their code.
The first tool employs a denoising autoencoder and a blueprint-guided beam search algorithm to generate translations of specific types.
This algorithm mimics the translation operations that developers apply in similar software projects.
The second tool utilizes GPT-4 with a specialized prompt to generate translations tailored to the requested types.
In the evaluation, these approaches produced automated code translations that better aligned with developer preferences while maintaining correctness compared to existing methods. / Doctor of Philosophy / In the world of software development, it is often necessary to convert code written in one programming language into another. This process can be quite time-consuming, especially if developers have to rewrite everything from scratch. To make this task easier, this thesis explores two approaches: finding reusable code snippets in other languages and using automated tools to translate code.
Firstly, this thesis presents two techniques that help developers search for similar code written in different programming languages. These techniques aim to accurately retrieve potential code snippets, ensuring that developers find what they need quickly, with the most relevant results appearing at the top of the list. The two techniques use machine learning models to understand and match code across languages.
Additionally, this thesis explores ways to automate code translation by recognizing that different developers have their own style when translating code. A taxonomy of "Translation Types" is introduced to capture these differences. After studying how human and machine translations vary, two existing tools were adapted to generate translations. The first tool uses machine learning to create translations based on common developer patterns, while the second employs the powerful GPT-4 model to produce translations tailored to specific developer styles.
Overall, the presented approaches in this thesis enable developers to convert code accurately and efficiently, reducing the time and effort needed for software migration.
|
4 |
Migrace a refaktorizace Netfox Detective na .NET 5 / Migration and Refactorization of Netfox Detective for .NET 5Pokorný, Šimon January 2021 (has links)
Every second, there are many attempts to attack various entities on the Internet. This is why high-quality, fast, and up-to-date tools are needed to easily analyze network traffic. Netfox Detective is one of such tools. Specifically, it is used for forensic analysis of network communication. The aim of this work is to migrate Netfox Detective to the newest version of .NET platform (.NET 5), including refactoring with respect to user experience and correct use of software design patterns. This thesis deals not only with the migration itself, but is listing common mistakes programmers make along with possible solutions to these mistakes. The chapters contain a detailed decision log that can help guide other developers to better solutions. Furthermore, the work deals with analysis and creation of unit tests and with correct use of tools for CI/CD. Fully migrated project is not the only output of this thesis. A development environment for the project has been prepared in GitLab and it is ready to be used.
|
5 |
MME-MDD : um método para manutenção e evolução de sistemas baseados no MDDArndt, Bruno Felipe 08 March 2016 (has links)
Submitted by Alison Vanceto (alison-vanceto@hotmail.com) on 2017-02-07T10:21:15Z
No. of bitstreams: 1
DissBFA.pdf: 12687971 bytes, checksum: 19789fb95e5c01987f5067e083d04248 (MD5) / Approved for entry into archive by Camila Passos (camilapassos@ufscar.br) on 2017-02-08T12:04:07Z (GMT) No. of bitstreams: 1
DissBFA.pdf: 12687971 bytes, checksum: 19789fb95e5c01987f5067e083d04248 (MD5) / Approved for entry into archive by Camila Passos (camilapassos@ufscar.br) on 2017-02-08T12:08:22Z (GMT) No. of bitstreams: 1
DissBFA.pdf: 12687971 bytes, checksum: 19789fb95e5c01987f5067e083d04248 (MD5) / Made available in DSpace on 2017-02-08T12:09:45Z (GMT). No. of bitstreams: 1
DissBFA.pdf: 12687971 bytes, checksum: 19789fb95e5c01987f5067e083d04248 (MD5)
Previous issue date: 2016-03-08 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Model-Driven Development (MDD) is proposed to reduce the semantic gap
between problem and solution/implementation domains. Some tools are used, and
the code generator is commonly used in this context. These generators are often
implemented using templates. A Reference Implementation (RI) favoring the development/
maintenance of software facilitates this implementation’s types. However,
RI requires a code migration process which consists in artifacts’ synchronization,
and it is responsible for 20% to 25% of the time spent on development. The literature
has no describe automatic solutions, but the group that this reaserch was
included has develop tools that automate this process and reduce the time spent on
some tasks. But each task has a different performance in relation to time spent, so
automation of some tasks can be disadvantageous. Few reports describe such tasks
and which ones are capable of automatic code migration. The aim of this study is
to investigate the maintain and evolution process to identify and describe the types
of maintain and evolution tasks that are essentially. Based on this study, a method
(MME-MDD) that drives the developer during that proccess to guide the developer
during the realization of each task, with the aim to maximize the benefits of this
approach. The MME-MDD was validated by a case study and a empirical study
and the method showed effective in most of tasks. In addition, studies show that
using the proposed method brought a gain in the quality of the source code. / O MDD (Model-Driven Development) tem como proposta a redução da
distância semântica entre os domínios problema e solução/implementação. Para
isso, são utilizadas algumas ferramentas, sendo o gerador de código comumente
usado neste contexto. Os geradores de código são frequentemente implementados
com a utilização de templates. Para facilitar este tipo de implementação, usualmente
é empregado uma Implementação de Referência (IR), favorecendo a evolução/
manutenção do software. Contudo, a IR traz a necessidade do processo de
migração de código, que consiste na sincronização entre o seu código-fonte e os
templates, sendo que este é responsável por 20 a 25% do tempo gasto no desenvolvimento.
Na literatura não há relatos de solução automatizada, mas o grupo no qual
esta pesquisa se insere vem desenvolvendo ferramentas que automatizam este processo
e reduzem o tempo aplicado em algumas tarefas testadas. Porém, cada tarefa
tem um desempenho diferente em relação ao tempo gasto e, portanto, a automação
de algumas tarefas pode ser desvantajosa. Existem poucos relatos na literatura descrevendo
tais tarefas e quais são os passos necessários para realizá-las. O objetivo
deste estudo foi a investigação do processo de manutenção e evolução de sistemas
baseados em MDD com a finalidade de identificar e descrever os tipos de tarefas
de manutenção e evolução. Com base nesse estudo, foi elaborado o método MMEMDD
que conduz o desenvolvedor durante o processo de manutenção e evolução de
sistemas, visando guiar o desenvolvedor durante a realização de cada um dos tipos
de tarefas, com o intuito de maximizar os benefícios da utilização dessa abordagem.
O método foi validado por meio de um estudo de caso e um estudo experimental,
sendo que o método se mostrou efetivo em grande parte das tarefas testadas. Além
disso, os estudos apontaram que a utilização do método proposto trouxe ganho na
qualidade do código-fonte.
|
6 |
Uma abordagem para migração automática de código no contexto do desenvolvimento orientado a modelosPossatto, Marcos Antonio 22 October 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:10Z (GMT). No. of bitstreams: 1
5666.pdf: 3321258 bytes, checksum: c402c2fb8a619d07842991622736ea5a (MD5)
Previous issue date: 2013-10-22 / Universidade Federal de Minas Gerais / Code generators play a key role in model-driven software development. They are responsible for transforming high-level assets (models) into implementation assets (code). Most generators are based on templates, which are pieces of text instrumented with code expansion elements. They receive an input and produce an output according to the template's programming. To build such template-based generators, the code of an existing implementation, already tested and validated, can be used as a reference, in a process known as code migration. With software evolution and the need for changes in the code generator, the templates start to differ from this reference implementation. In order to restablish the synchronization, additional effort is required. Tackling the challenge of keeping these assets synchronized (reference implementation and templates) is this dissertation's subject. The goal is to provide some automation to the code migration process, even if partial, in order to increase productivity in the maintenance of code generators. A mechanism was developed to make it possible to automatically reproduce changes that are performed in the reference implementation into one or more code generation templates. This mechanism was evaluated through an empirical study, yielding good performance in a controlled environment. This indicates that automation can help to reduce the effort in the maintenance of code generators in a model-driven development context. / Os geradores de código desempenham um papel fundamental no desenvolvimento de software orientado a modelos. São responsáveis pela transformação dos artefatos de alto nível de abstração (modelo) em elementos de implementação (código). Os tipos mais comuns de geradores são os baseados em template. São compostos fundamentalmente por elementos de expansão de código, que recebem uma entrada e a convertem em código, conforme a programação inserida nesses templates. O código de uma implementação já testado e validado pode servir de referência para a criação de templates, por meio de um processo conhecido como migração de código. Com a dinâmica da evolução do software e a necessidade de efetuar mudanças no gerador de código ocorre a perda de sincronismo entre os templates e esse código de referência, sendo necessário um esforço adicional para mantê-los sincronizados. O desafio de manter esses artefatos sincronizados constituiu o objetivo desta dissertação de mestrado, que proporcionou ganhos de produtividade, por meio de uma automação, ainda que parcial, desse processo. Nesse sentido, foi desenvolvido um mecanismo para propagar automaticamente as alterações introduzidas no código de referência para os templates, que reduziu o tempo e facilitou a manutenção de geradores de código que sofrem com o problema da perda de sincronismo nesses artefatos. O protótipo para a migração automática de código desenvolvido nesta dissertação foi submetido a um estudo empírico, atingindo um bom desempenho com a sua utilização na maioria das tarefas de migração de código avaliadas, o que indica que a automação pode ajudar a resolver o problema e reduzir o esforço de manutenção no desenvolvimento de software orientado a modelos.
|
Page generated in 0.1044 seconds