Merge e conflitos
Detecção proativa, análise contextual e resolução de conflitos na integração de código e modelos.
Código · Modelos · GovernançaSou Kleinner Farias, professor e pesquisador na UNISINOS. Investigo integração de software, modelos, inteligência artificial e os processos cognitivos de desenvolvedores.

Investigações que conectam técnicas de engenharia de software com evidência empírica.
Detecção proativa, análise contextual e resolução de conflitos na integração de código e modelos.
Código · Modelos · GovernançaDetecção de inconsistências em UML, avaliação de modelos e suporte à qualidade do design.
UML · Arquitetura · FerramentasEEG, microestados e medidas psicofisiológicas para compreender esforço mental em tarefas de software.
EEG · Microestados · Estudos empíricosExploração de sistemas inteligentes para apoiar análise, explicação e decisões durante o desenvolvimento.
IA · Agentes · EvidênciaContexto: O desenvolvimento paralelo permite que equipes implementem funcionalidades simultaneamente, mas aumenta a ocorrência de conflitos durante a integração do código-fonte. Esses conflitos podem permanecer ocultos até o merge, quando sua resolução se torna mais complexa e onerosa. Problemática: As ferramentas tradicionais identificam principalmente conflitos sintáticos no momento da integração. Elas oferecem suporte limitado para antecipar conflitos indiretos ou semânticos produzidos por mudanças aparentemente independentes, mas relacionadas por dependências estruturais e comportamentais. Objetivo: O projeto ProMerge busca apoiar desenvolvedores na detecção, compreensão e resolução proativa de conflitos de integração, antes da execução definitiva do merge. A proposta pretende reduzir erros, retrabalho e esforço cognitivo durante a integração. Método: A pesquisa combinou revisão sistemática da literatura, análise de cenários reais de desenvolvimento paralelo, modelagem do processo de integração e desenvolvimento de uma abordagem automatizada. O ProMerge utiliza informações sobre mudanças concorrentes, dependências do código e contexto de desenvolvimento para identificar riscos antecipadamente e fornecer recomendações aos desenvolvedores. Resultados: O projeto produziu uma abordagem apoiada por ferramentas, composta por serviços de análise e integração ao ambiente de desenvolvimento. Os resultados demonstraram a viabilidade de monitorar mudanças paralelas, detectar situações potencialmente conflitantes e apresentar informações contextuais antes do merge. A contribuição central consiste em transformar a resolução reativa de conflitos em um processo preventivo, contínuo e orientado por evidências.
Contexto: Diagramas de classes UML são amplamente utilizados no ensino de modelagem de software. Entretanto, sua avaliação exige tempo e conhecimento especializado, especialmente em turmas numerosas e atividades que admitem diferentes soluções corretas. Problemática: A correção manual pode produzir avaliações inconsistentes e dificultar o fornecimento de feedback rápido aos estudantes. As ferramentas existentes concentram-se, em geral, na validação sintática, oferecendo suporte limitado para analisar qualidade, complexidade e possíveis problemas estruturais dos modelos. Objetivo: O projeto ModelGuru busca auxiliar instrutores na detecção e avaliação de problemas em diagramas de classes UML. A proposta não substitui o julgamento docente. Ela oferece indicadores objetivos para apoiar decisões, padronizar critérios de correção e orientar feedbacks mais claros. Método: A pesquisa envolveu a definição de métricas e regras de qualidade aplicáveis a diagramas de classes, o desenvolvimento de uma ferramenta automatizada e sua avaliação com usuários. O ModelGuru analisa elementos como classes, atributos, operações, relacionamentos, herança, acoplamento e complexidade estrutural, apresentando os resultados em uma interface de apoio ao instrutor. Resultados: O projeto produziu uma abordagem capaz de identificar características relevantes dos modelos e organizar evidências para sua avaliação. Em uma avaliação baseada no Technology Acceptance Model, realizada com 37 participantes, 94,6% reconheceram a facilidade de uso e 89,2% perceberam sua utilidade. Os resultados indicam que o ModelGuru pode tornar a avaliação mais sistemática, transparente, escalável e pedagogicamente informativa.
Contexto: Ambientes de desenvolvimento tradicionais oferecem amplo suporte técnico para edição, depuração e manutenção de código, mas desconsideram o estado cognitivo do desenvolvedor. Aspectos como atenção, sobrecarga mental e fadiga podem influenciar diretamente a produtividade e a qualidade das decisões. Problemática: Ferramentas convencionais tratam todos os desenvolvedores e situações de maneira uniforme. Elas não identificam momentos de elevado esforço cognitivo nem adaptam seus recursos às necessidades mentais do usuário durante tarefas complexas, como compreensão, depuração, integração e refatoração de código. Objetivo: O projeto ColgenIDE busca construir um ambiente inteligente de desenvolvimento de software ciente de cognição. A proposta visa reconhecer indicadores cognitivos e utilizá-los para oferecer assistência contextualizada, reduzir interrupções inadequadas e melhorar a interação entre desenvolvedores e ferramentas. Método: A pesquisa combina engenharia de software, interação humano-computador e neurociência. O ambiente integra recursos do Visual Studio Code com dados psicofisiológicos, incluindo sinais de EEG, para estimar estados como atenção e carga cognitiva. Esses indicadores são processados e apresentados por meio de componentes visuais e mecanismos adaptativos. Resultados: O projeto produziu uma abordagem funcional para integrar indicadores cognitivos ao ambiente de desenvolvimento. Avaliações iniciais de aceitação indicaram percepções positivas sobre utilidade e facilidade de uso. Os resultados demonstram a viabilidade de ambientes capazes de compreender não apenas o código, mas também as condições cognitivas sob as quais ele é produzido.
Contexto: Code smells representam indícios de problemas estruturais que podem comprometer a compreensibilidade, a manutenibilidade e a evolução do software. Embora existam ferramentas para sua identificação, muitas utilizam regras fixas e pouco sensíveis ao contexto de cada projeto. Problemática: A definição de um code smell pode variar conforme domínio, arquitetura, equipe e decisões de projeto. Ferramentas convencionais dificultam a criação, adaptação e reutilização de estratégias próprias de detecção, limitando a participação dos desenvolvedores na especificação dos critérios utilizados. Objetivo: O projeto iSmellDSL propõe uma linguagem específica de domínio para permitir que desenvolvedores descrevam padrões de code smells de maneira declarativa, compreensível e contextualizada. Essas especificações são interpretadas e executadas pelo ambiente iSmellHunter, responsável pela detecção automatizada das anomalias. Método: A pesquisa envolveu o desenvolvimento da linguagem SmellDSL, a implementação de mecanismos de interpretação e a construção do iSmellHunter. O ambiente analisa o código, avalia as regras definidas na linguagem e apresenta evidências sobre as ocorrências detectadas. A solução foi avaliada experimentalmente com 35 participantes realizando oito tarefas de especificação e identificação. Resultados: Os participantes alcançaram aproximadamente 87% de respostas corretas, com tempo médio próximo de cinco minutos por tarefa. Os resultados indicam que a abordagem torna a especificação de code smells mais acessível, flexível e alinhada ao contexto dos projetos, aproximando conhecimento humano e detecção automatizada.
Contexto: Atividades de desenvolvimento de software, como compreensão, depuração, refatoração e integração de código, exigem diferentes níveis de atenção e esforço mental. Entretanto, os ambientes de desenvolvimento atuais não consideram as variações cognitivas dos desenvolvedores durante a execução dessas tarefas. Problemática: Ambientes tradicionais apresentam informações, notificações e recomendações de maneira uniforme, mesmo quando o desenvolvedor enfrenta sobrecarga cognitiva, perda de atenção ou fadiga. Essa limitação pode aumentar interrupções, erros e tempo de resolução, além de prejudicar a experiência de interação com as ferramentas. Objetivo: O projeto Neuro Studio Code propõe um ambiente integrado de desenvolvimento neuroadaptativo, capaz de interpretar indicadores neurofisiológicos e adaptar seus recursos ao estado cognitivo do desenvolvedor. A proposta busca oferecer suporte no momento adequado, reduzir distrações e promover decisões mais seguras. Método: A pesquisa integra Engenharia de Software, neurociência e interação humano-computador. O ambiente utiliza o Visual Studio Code como plataforma e recebe dados de dispositivos de EEG. Esses sinais são processados para estimar indicadores como atenção, carga cognitiva, fadiga e engajamento, que orientam mecanismos adaptativos e intervenções contextuais. Resultados: O projeto estabeleceu uma arquitetura para integrar aquisição neurofisiológica, processamento cognitivo e adaptação da interface. Os resultados demonstram a viabilidade técnica de construir ambientes que ajustem notificações, visualizações e recomendações conforme o estado cognitivo, criando uma interação mais personalizada, responsiva e centrada no desenvolvedor.
Artigos, livros e trabalhos acadêmicos sobre engenharia de software. Explore, leia e reutilize as referências.
PDFs abrem em uma nova aba. Artigos com acesso pela editora podem exigir assinatura. 126 registros importados da página original, além de três artigos recentes já presentes neste site. Dados e status bibliográficos seguem a fonte consultada em 5 de outubro de 2026. Consultar a fonte ↗
Professor e pesquisador do Programa de Pós-Graduação em Computação Aplicada da UNISINOS. Doutor em Informática pela PUC-Rio, com atuação em engenharia de software, estudos empíricos e desenvolvimento orientado a modelos.
Meu trabalho reúne estudantes e colaboradores para investigar como as pessoas constroem, compreendem e integram sistemas de software.
Aberto a colaborações científicas, projetos de pesquisa e oportunidades de orientação.
Escreva para mim ↗kleinnerfarias@unisinos.br