Spelling suggestions: "subject:"sistematica"" "subject:"sistematic""
1 |
[pt] COMPLETUDE DE REFATORAÇÕES COMPOSTAS DE CÓDIGO-FONTE PARA A REMOÇÃO BENÉFICA DE ANOMALIAS DE CÓDIGO / [en] ON THE COMPLETENESS OF COMPOSITE CODE REFACTORINGS FOR BENEFICIAL SMELL REMOVAANA CARLA GOMES BIBIANO 22 June 2023 (has links)
[pt] A refatoração de código é uma transformação de código que visa aprimorar
a estrutura interna do código. Uma refatoração isolada raramente é
suficiente para remover completamente uma estrutura de código ruim, como
uma anomalia de código. Os desenvolvedores então aplicam refatorações
compostas para remover totalmente uma anomalia de código. Uma refatoração
composta consiste em duas ou mais refatorações inter-relacionadas. Um
refatoração composta é considerada completa quando elimina totalmente
a anomalia de código alvo. Estudos relatam que os desenvolvedores geralmente
falham em remover completamente as anomalias de código alvo por
meio de refatorações compostas. Refatorações compostas concluídas podem
não ser totalmente benéficas para a estrutura do código. Pois, estas podem
induzir efeitos colaterais, como a introdução de anomalias de código ou a
propagação de anomalias existentes. Há uma compreensão limitada sobre
a completude das refatorações compostas e seus possíveis efeitos colaterais.
Esta tese investiga como as refatorações compostas removem totalmente
as anomalias de código sem induzir efeitos colaterais. Descobrimos que 64 por cento
das refatorações compostas completas são formadas por tipos de refatoração
não recomendados anteriormente. Dessa forma, derivamos um catálogo de
recomendações para apoiar os desenvolvedores na aplicação de refatorações
compostas. Na avaliação do catálogo, 85 por cento de 21 desenvolvedores relataram
que usariam as recomendações do catálogo e que suas próprias soluções
de refatoração teriam induzido efeitos colaterais. Também avaliamos qualitativamente
três abordagens existentes para recomendar automaticamente
refatorações compostas. Nesse estudo, a maioria (80 por cento) dos 10 desenvolvedores
relatou que as abordagens existentes frequentemente induzem efeitos
colaterais. No geral, as descobertas e o catálogo proposto podem ajudar os
desenvolvedores a realizar refatorações compostas completas. / [en] Code refactoring is a code transformation that aims to enhance the
internal code structure. A single refactoring is rarely sufficient to achieve the
full removal of a poor code structure, such as a code smell. Developers then
apply composite refactorings to fully remove a code smell. A composite
refactoring (or, simply, composite) consists of two or more interrelated
single refactorings. A composite is considered complete when it fully
eliminates the target smell. However, studies report that developers often
fail in completely removing target code smells through composites. Even
when composite refactorings are complete they may still not be entirely
beneficial to the code structure. They may induce side effects, such as the
introduction of new smells or the propagation of existing ones. There is a
limited understanding of the completeness of composite refactorings and
their possible effects on structural quality. This thesis investigates whether
and how composite refactorings fully remove smells without inducing side
effects. We found that 64 per cent of complete composites in several software
projects are formed of refactoring types not previously recommended in the
literature. Based on this study, we derived a catalog of recommendations
for supporting developers in applying composite refactorings. Out of twenty
one developers evaluating our catalog, 85 per cent reported that they would use
the catalog recommendations and that their own refactoring solutions
would have induced side effects. We also qualitatively evaluated three
existing approaches to automatically recommend composite refactorings.
In our study with ten developers, most (80 per cent) developers reported that
existing approaches frequently induce side effects. Overall, the findings and
the proposed catalog can help developers to perform complete composite
refactorings with better awareness of possible side effects.
|
2 |
[en] GAMIFICATION GUIDELINES TO PREVENT NEGATIVE EFFECTS IN DIGITAL EDUCATION/LEARNING SYSTEMS / [pt] GUIDELINES DE GAMIFICAÇÃO PARA PREVENIR EFEITOS NEGATIVOS EM SISTEMAS DIGITAIS DE EDUCAÇÃO/APRENDIZAGEMCLAUVIN ERLAN J DA C C DE ALMEIDA 13 July 2021 (has links)
[pt] Enquanto a maioria da pesquisa relata efeitos positivos de gamificação, o
foco em seus efeitos adversos é consideravelmente menor. Tendo isso em mente, conduzimos um mapeamento sistemático dos efeitos negativos de elementos de
game design em sistemas de aprendizado/educação. O estudo revelou 77 papers reportando efeitos não desejados de game design. Descobrimos que badges,
competição, leaderboards e pontos são os elementos de game design mais encontrados
sendo declarados como causadores de efeitos adversos. Os efeitos
mais citados foram falta de efeito, falta de entendimento, irrelevância, problemas
motivacionais e performance piorada. Então usamos os dados recolhidos
para criar 7 diretrizes sobre alguns dos efeitos negativos encontrados e como
lidar com eles. A dissertação pode ajudar designers de gamificação a tomarem
decisões mais bem informadas quando selecionando elementos de game design
a serem encontrados em sistemas de educação/aprendizado, criando percepção
de efeitos adversos. / [en] While most research shows positive effects of gamification, the focus on
its adverse effects is considerably smaller. Having this in mind, we conducted
a systematic mapping study of the negative effects of game design elements
on education/learning systems. The study revealed 77 papers reporting undesired
effects of game design elements. We found that badges, competitions,
leaderboards, and points are the game design elements most often reported as
causing negative effects. The most cited negative effects were lack of effect, lack
of understanding, irrelevance, motivational issues, and worsened performance. The ethical issue of cheating was also often reported. Then we used the data gathered to create 7 guidelines about some of the negative effects found and how to deal with those. This dissertation can help gamification designers make more informed decisions when selecting game design elements to be included
in education/learning systems, raising awareness on potential negative effects.
|
3 |
[en] A SYSTEMATIC MAPPING STUDY AND PRACTITIONER INSIGHTS ON THE USE OF SOFTWARE ENGINEERING PRACTICES TO DEVELOP MVPS / [pt] UM MAPEAMENTO SISTEMÁTICO E PERCEPÇÕES DE PRATICANTES SOBRE O USO DE PRÁTICAS DE ENGENHARIA DE SOFTWARE PARA DESENVOLVER MVPSSILVIO ALONSO MARQUES 24 May 2022 (has links)
[pt] Muitas startups e até mesmo empresas de software tradicionais adotaram
o uso de MVPs (sigla em inglês para Produto Mínimo Viável) para permitir
experimentar rapidamente possibilidades de solução. O conceito de MVP tem
influenciado a forma como as equipes de desenvolvimento aplicam as práticas
de Engenharia de Software (ES). Entretanto, o entendimento geral desta
influência dos MVPs sobre as práticas de ES ainda é pobre.
Nosso objetivo é caracterizar o panorama de publicações sobre práticas
que têm sido utilizadas no contexto dos MVPs de software e reunir insights
dos profissionais sobre as práticas identificadas.
Conduzimos um estudo de mapeamento sistemático usando uma estratégia de busca híbrida que consiste em uma busca em banco de dados e um
snowballing das referências, para frente e para trás, de forma paralela. Posteriormente, discutimos os resultados do mapeamento em duas sessões de grupos
de foco envolvendo doze profissionais da indústria que utilizam amplamente os
MVPs em seus projetos para capturar suas percepções sobre os resultados do
mapeamento.
Identificamos 33 artigos publicados entre 2013 e 2020. Observamos algumas tendências relacionadas às práticas de ideação e avaliação de MVPs.
Por exemplo, com relação à ideação, encontramos seis abordagens diferentes
(e.g., Design Thinking, Lean Inception) e principalmente práticas informais
de envolvimento do usuário final (e.g., workshops, entrevistas). Com relação à
avaliação, há uma ênfase nas validações do usuário final baseadas em práticas
como testes de usabilidade, testes A/B, e análise dos dados de uso. Entretanto, ainda há pesquisas limitadas relacionadas à avaliação de viabilidade
técnica do MVP e estimativa de esforço. Os praticantes das sessões do grupo
de foco reforçaram a confiança em nossos resultados no que diz respeito às
práticas de ideação e avaliação, estando cientes da maioria das práticas identificadas. Eles também relataram como lidam com as avaliações de viabilidade
técnica (envolvendo desenvolvedores durante a ideação e conduzindo experimentos informais) e estimativa de esforço na prática (com base na opinião de
especialistas e usando práticas comuns a metodologias ágeis, como o Planning
Poker).
Nossa análise sugere que há oportunidades para propostas de soluções e
estudos de avaliação para tratar de lacunas na literatura relativas à avaliação de
viabilidade técnica e estimativa de esforço. Em geral, é necessário investir mais
esforço na avaliação empírica das práticas existentes relacionadas ao MVP. / [en] Many startup environments and even traditional software companies
have embraced the use of MVPs (Minimum Viable Products) to allow quickly
experimenting solution options. The MVP concept has influenced the way in
which development teams apply Software Engineering (SE) practices. However,
the overall understanding of this influence of MVPs on SE practices is still poor.
Our goal is to characterize the publication landscape on practices that
have been used in the context of software MVPs and to gather practitioner
insights on the identified practices.
We conducted a systematic mapping study using a hybrid search strategy
that consists of a database search and parallel forward and backward snowballing. Thereafter, we discussed the mapping study results in two focus groups
sessions involving twelve industry practitioners that extensively use MVPs in
their projects to capture their perceptions on the findings of the mapping study.
We identified 33 papers published between 2013 and 2020. We observed
some trends related to MVP ideation and evaluation practices. For instance,
regarding ideation, we found six different approaches (e.g., Design Thinking,
Lean Inception) and mainly informal end-user involvement practices (e.g.,
workshops, interviews). Regarding evaluation, there is an emphasis on enduser validations based on practices such as usability tests, A/B testing, and
usage data analysis. However, there is still limited research related to MVP
technical feasibility assessment and effort estimation. Practitioners of the focus
group sessions reinforced the confidence in our results regarding ideation and
evaluation practices, being aware of most of the identified practices. They also
reported how they deal with the technical feasibility assessments (involving
developers during the ideation and conducting informal experiments) and effort
estimation in practice (based on expert opinion and using practices common
to agile methodologies, such as Planning Poker).
Our analysis suggests that there are opportunities for solution proposals
and evaluation studies to address literature gaps concerning technical feasibility assessment and effort estimation. Overall, more effort needs to be invested
into empirically evaluating the existing MVP-related practices.
|
4 |
[en] REUSE-ORIENTED APPROACH FOR INCREMENTAL AND SYSTEMATIC DEVELOPMENT OF INTENTIONAL UBIQUITOUS APPLICATIONS / [pt] ABORDAGEM ORIENTADA À REUTILIZAÇÃO DE SOFTWARE PARA DESENVOLVIMENTO INCREMENTAL E SISTEMÁTICO DE APLICAÇÕES UBÍQUAS INTENCIONAISMILENE SERRANO 26 January 2017 (has links)
[pt] Aplicações ubíquas estão inseridas em ambientes inteligentes integrados ao mundo físico e compostos de usuários com diferentes preferências, dispositivos heterogêneos e vários provedores de serviço e conteúdo. Além disso, essas aplicações são especializadas em oferecer serviços e conteúdos em qualquer lugar
e momento, auxiliando os usuários em suas atividades diárias sem incomodá-los. Baseado nesse mundo idealizado, o paradigma em qualquer lugar e momento impõe alguns desafios para a comunidade de Engenharia de Software, tais como: heterogeneidade de dispositivos, ambientes distribuídos, mobilidade, satisfação de usuário, adaptação de conteúdo, sensibilidade de contexto, privacidade, personalização, transparência, invisibilidade e constante evolução das tendências tecnológicas. Visando lidar com esses novos desafios tecnológicos, é proposta uma abordagem orientada à reutilização de software para desenvolvimento incremental e sistemático de aplicações ubíquas intencionais. Foram escolhidos dois principais objetivos para conduzir a pesquisa dessa tese: (i) a construção de conjuntos de apoio, orientados à reutilização de software, com base em uma investigação detalhada de aplicações ubíquas e do paradigma de Sistemas Multi-Agentes Intencionais – ou seja, Desenvolvimento para Reutilização; e (ii) o desenvolvimento incremental e sistemático de aplicações ubíquas, dirigidas por Sistemas Multi-Agentes Intencionais, com base na abordagem orientada à reutilização de software – ou seja, Desenvolvimento com Reutilização. Algumas contribuições do nosso trabalho são: (i) uma arquitetura orientada à reutilização de software e baseada nos conjuntos de apoio – i.e. blocos de construção principalmente compostos de modelos conceituais, frameworks, padrões e bibliotecas – obtidos a partir da Engenharia de Domínio das Aplicações Ubíquas; (ii) uma Engenharia de Aplicações Ubíquas orientada à reutilização de software visando o desenvolvimento incremental e sistemático de aplicações ubíquas com base nos blocos de construção propostos; (iii) um modelo de raciocínio focado em regras condicionais de lógica nebulosa e no modelo Crença-Desejo-Intenção para melhorar a capacidade cognitiva dos agentes; (iv) um mecanismo específico, baseado em agentes intencionais, para lidar com questões de privacidade, balanceando privacidade e personalização bem como transparência e invisibilidade; (v) um catálogo que graficamente apresenta os principais requisitos não-funcionais ubíquos, as interdependências entre eles e formas de se operacionalizá-los com base na combinação de tecnologias tradicionais e emergentes; (vi) ontologias para permitir a construção dinâmica de interfaces e melhorar a comunicação e inter-operabilidade dos agentes de software; e (vii) um modelo de banco de dados dinâmico para carregar e recuperar os perfis ubíquos (ex. perfis de usuário, dispositivo, rede e contrato), melhorando o gerenciamento de dados em tempo de execução. A abordagem proposta foi avaliada desenvolvendo diferentes aplicações ubíquas (ex. aplicações ubíquas de comércio eletrônico e de clínica odontológica). / [en] Ubiquitous applications are embedded in intelligent environments integrated into the physical world and composed of users with different preferences, heterogeneous devices and several content and service providers. Moreover, they focus on offering services and contents anywhere and at any time by assisting the users in their daily activities without disturbing them. Based on this idealized world, the anywhere and at any time paradigm poses some challenges for the Software Engineering community, such as: device heterogeneity, distributed environments, mobility, user satisfaction, content adaptability, context awareness, privacy, personalization, transparency, invisibility and constant evolution of technological trends. In order to deal with these new technological challenges, we propose a Reuse-Oriented Approach for Incremental and Systematic Development of Intentional Ubiquitous Applications. We have chosen two main goals that drive our research in this thesis: (i) the construction of reuse-oriented support sets based on an extensive investigation of ubiquitous applications and the Intentional-Multi-Agent Systems paradigm – i.e. Development for Reuse; and (ii) the incremental and systematic development of Intentional-Multi-Agent-Systems-driven ubiquitous applications based on the reuse-oriented approach – i.e. Development with Reuse. Some contributions of our work are: (i) a reuse-oriented architecture centered on support sets – i.e. building blocks mainly composed of conceptual models, frameworks, patterns and libraries – obtained from the Domain Engineering of Ubiquitous Applications; (ii) a reuse-oriented Ubiquitous Application Engineering for incremental and systematic development of intentional ubiquitous applications centered on the proposed building blocks; (iii) a reasoning engine focused on fuzzy conditional rules and the Belief-Desire-Intention model to improve the agents cognitive capacity; (iv) a specific mechanism based on intentional agents to deal with privacy issues by balancing privacy and personalization as well as transparency and invisibility; (v) a catalogue that graphically presents the main ubiquitous non-functionalrequirements, their interdependencies and ways to operationalize them based on the combination of traditional and emergent technologies; (vi) ontologies to allow the dynamic construction of interfaces and to improve the communication and inter-operability of software agents; and (vii) a dynamic database model to store and retrieve the ubiquitous profiles (e.g. user, device, network and contract profiles) by improving the data management on the fly. The proposed approach was evaluated by developing different ubiquitous applications (e.g. e-commerce and dental clinic ubiquitous applications).
|
Page generated in 0.0881 seconds