• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 106
  • 17
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 127
  • 46
  • 34
  • 34
  • 33
  • 33
  • 32
  • 31
  • 31
  • 22
  • 20
  • 18
  • 14
  • 13
  • 11
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
81

A expectativa de consumo no comércio eletrônico / The expectation of consumption in e-Commerce

Quadrante, Rodrigo Eduardo 11 September 2007 (has links)
Made available in DSpace on 2016-04-26T20:25:54Z (GMT). No. of bitstreams: 1 Rodrigo Eduardo Quadrante.pdf: 433902 bytes, checksum: 2c4f62329eb7657bdf651c8fd9c10381 (MD5) Previous issue date: 2007-09-11 / The selected theme is the result of the observation of the mass consumption phenomenon, as well as of its development on the Internet. The paper will be based on the data issued by IBOBE (Brazilian Institute of Public Opinion and Statistics), by Fundação de Proteção e Defesa do Consumidor do Estado de São Paulo (Foundation for Consumer Protection and Defense of the State of São Paulo) and by Instituto de Defesa do Consumidor (Institute for Consumer Defense). These data reflect the problems most commonly faced by consumers when they are purchasing goods and services on the Internet. Today, it is clear that the consumers mistrust towards the electronic media is the strongest obstacle to the development of the E-Commerce. It should be clear that the correct disclosure of information has proven to be the best instrument in fighting this mistrust. This paper will, therefore, approach the purchase of goods and services on the Internet, by analyzing the electronic consumer s distrust as well as the influence of the information in this complex relationship, in the light of our Consumer Defense Code, and other international laws on the matter / O presente trabalho, para obtenção do grau de mestre em Direito das Relações Sociais, tem por tema A expectativa de consumo no Comércio Eletrônico . O tema escolhido é fruto da observação do fenômeno do consumo de massa e de seu desenvolvimento no ambiente da Internet. O trabalho se baseará nos dados publicados pelo Ibope, pela Fundação de Proteção e Defesa do Consumidor do Estado de São Paulo e pelo Instituto de Defesa do Consumidor, os quais demonstram os problemas mais comuns enfrentados pelos consumidores ao adquirirem bens e serviços através da Internet. Hoje, resta claro que a desconfiança dos consumidores no meio eletrônico é a maior barreira ao desenvolvimento do Comércio Eletrônico, devendo-se destacar que a divulgação correta de informações se mostra o melhor instrumento ao combate desta desconfiança. Assim, o presente trabalho abordará a aquisição de produtos e serviços através da Internet, abordando a desconfiança do consumidor eletrônico e a influência da informação nesta complexa relação, sob a luz do nosso Código de Defesa do Consumidor e das demais legislações mundiais sobre o tema
82

O erro como consequência da desestabilização da vontade e do consentimento do consumidor na compra e venda consumerista

Trigueiros, Ângelo Mário Costa e 01 November 2007 (has links)
Made available in DSpace on 2016-04-26T20:26:09Z (GMT). No. of bitstreams: 1 Angelo Mario Costa e Trigueiros.pdf: 727905 bytes, checksum: ba9b8709346a264b0b9e729de78a00be (MD5) Previous issue date: 2007-11-01 / The Consumers Defense Code (law nº 8.078, from September, 11th, 1990) brought to the national legal system not only novelty, but mainly a discipline mechanism and practical tools to solve conflicts arising from consumer connections. This modest study intends to broach some important aspects from consumers purchase agreement, specially those related to the development of the volitive element of its formation and to the error as a consequence of both the will and the consumer consentment destabilization. Convinced that the agreements resulting from consumer connections so far have been studied incompletely, this study tries to demonstrate that it s composing elements, as usually described, must be developed, since the authors, apparently, mix the parties volition with their consentment. On the other hand, at the same time, this study tries to demonstrate the consentment and volitive defects must be examined under a different point of view, and, therefore, must be redefined. More specifically, this studies efforts to demonstrate that the error, understood as a defect from the consumer connection, is not a fact by itself, but a mere consequence of the consumers volition and consentment destabilization originated by a malevolent cause to his rights, interests or conveniences. Consumers rights, even though without a great chronological tradition among us, soon has distinguished itself, not only due to its practical and moralizing magnitude in the business scenario, but mainly due to its authors qualitative relevance. The emerging of mass societies forced old conceptions regarding the purchase agreement to be revised. One of those revisions was the verification that, in certain agreements, one of the parties (the consumer) is so diluted that becomes almost invisible, imperceptible. This fact heavily renders difficult to the study of consumer agreements formation, based on doctrinaire fundaments belonging exclusively to this area of the law. This is the reason why this study frequently recurred to the old civil law doctrine. This approach to the matter does not make this study ill at ease since, as is well known, consumers´ law must not be seen as a totally separated branch of the legal tree. For all this reasons this study understands to have contributed modestly and unpretentiously to the study of consumers purchase agreement and the error resulting from the destabilization of consumer s volition and consentment / O advento do Código de Defesa do Consumidor (lei nº 8.078, de 11.9.990) trouxe para o ordenamento jurídico nacional não apenas uma novidade, mas principalmente um mecanismo de disciplina e um instrumento prático para a solução dos conflitos oriundos dos relacionamentos de consumo. Este modesto trabalho visa a abordagem de alguns aspectos importantes do contrato de compra e venda de consumo, notadamente os que dizem respeito ao desdobramento do elemento volitivo de sua constituição e ao erro como conseqüência da desestabilização da vontade e do consentimento do consumidor. Convencidos de que os contratos resultantes das relações de consumo vêm sendo estudados de maneira incompleta, tomamos a liberdade de tentar demonstrar que seus elementos constitutivos, da forma como vêm sendo descritos, precisam ser desdobrados, uma vez que os autores, aparentemente, confundem vontade com consentimento das partes. Por outro lado, ao mesmo tempo, procuramos demonstrar que os vícios do consentimento e da vontade precisam ser vistos sob uma ótica diferente e, portanto, devem ser redefinidos. Mais especificamente, nos esforçamos para lograr demonstrar que o erro, como vício de uma relação de consumo, não é um fato em si mesmo, mas uma mera conseqüência da desestabilização da vontade e do consentimento do consumidor por uma causa maléfica aos seus direitos, interesses ou conveniências. O direito do consumidor, embora sem grande tradição cronológica entre nós, bem cedo se destacou, não apenas por causa de sua magnitude prática e moralizadora no cenário dos negócios, mas, principalmente, pela relevância qualitativa de seus doutrinadores. O surgimento das sociedades de massa fez com que velhas concepções sobre o contrato de compra e venda fossem revistas. Uma dessas revisões foi a constatação de que, em certos tipos de contrato, a figura de um de seus participantes (o consumidor) é tão diluída que se torna quase invisível. Esse fato dificulta sobremaneira o estudo da formação do contrato de consumo com base em fundamentos doutrinários exclusivamente pertencentes a essa área do direito. E foi por essa razão que nos valemos, freqüentemente, de ensinamentos do velho direito civil. Essa forma de abordagem do tema não nos constrange, uma vez que - como se sabe - o direito do consumidor não deve ser visto como ramo da árvore jurídica totalmente afastado dos demais. Por todas essas razões entendemos ter prestado uma despretensiosa e modesta contribuição ao estudo da compra e venda de consumo e do erro resultante da desestabilização da vontade e do consentimento dos consumidores
83

Uma análise da hipoteca convencional sobre bens imóveis no código civil de 2002

Bufulin, Augusto Passamani 11 March 2009 (has links)
Made available in DSpace on 2016-04-26T20:28:46Z (GMT). No. of bitstreams: 1 Augusto Passamani Bufulin.pdf: 1916277 bytes, checksum: 39bb4fd5a8bf06cad0df7182482d28d9 (MD5) Previous issue date: 2009-03-11 / The theme of the present paper is the analysis of the conventional mortgage in the Civil Code of 2002. It talks about the General Theory of the Mortgage Law, focusing on the meaning of mortgage, its general characteristics, the mortgage as kind of real right of pledge, since it's already outdone any discussion about it, the principles of the real rights of pledge and the basic requisites for its constitution. It also talks about the mortgage's indivisibility, the antecipated conquest of debt and the situations that allow it, the fencing of the comissary claus, ahead or not, and the results wagoned by the deficient of the sale at auction, after its indeed. It studies the contents of the mortgage law, focusing on different kinds os mortgage, its purposes, the possibility of estranging the mortgage property and the constitution of sub-mortages. It also analysis the remission of the mortgaged property through its different lawful, the need or not of valuing in a judicial way the mortgaged thing, the mortgage's duration and the subjects about the register, the extinction and the cancellation of the mortgage / O tema da presente dissertação é a análise da hipoteca convencional no Código Civil de 2002. Trata da teoria geral do direito hipotecário, analisando-se o conceito de hipoteca, suas características gerais, a hipoteca como espécie do direito real de garantia, porquanto já está superada qualquer discussão a esse respeito, os princípios dos direitos reais de garantia e os requisitos básicos para sua constituição. Aborda, também, a indivisibilidade da hipoteca, o vencimento antecipado da dívida e as situações que o permitem, a vedação da cláusula comissória, de forma direta ou indireta, e as conseqüências acarretadas pela insuficiência do produto da arrematação, após excutida a coisa. Estuda o conteúdo do direito hipotecário, voltando-se às modalidades de hipoteca, ao seu objeto, à possibilidade de se alienar o imóvel hipotecado e à constituição de sub-hipotecas. Verifica, ademais, a remição do imóvel hipotecado, através de seus diferentes legitimados, a necessidade ou não de se avaliar judicialmente o bem hipotecado, a duração da hipoteca e as questões a respeito do registro, da extinção e do cancelamento da hipoteca
84

A constrição da cota de sociedade empresária limitada

Sousa, Marcos Andrey de 08 June 2009 (has links)
Made available in DSpace on 2016-04-26T20:29:18Z (GMT). No. of bitstreams: 1 Marcos Andrey de Sousa.pdf: 1978174 bytes, checksum: 512ba7d9b756c9f2c321b0c70e29ad0a (MD5) Previous issue date: 2009-06-08 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / This dissertation defends the delimitation of the applicable norm to rule the judicial constriction of private limited company share, having in mind the advent of the 2002 Civil Code, the Civil Procedure Code reforms ruled by Law number 11.382/2006, and the bankruptcy laws in force. This subject is relevant because it faces institutions which are important to the socio-economic society: the limited company, which is the most used societary type in this country; the business activity, with the social interests that surround it; and the trust recovery, which is supported nowadays by fundamental rights concerning actual jurisdictional guardianship. This subject choice is due to the criticism made by the distinguished doctrine arguing about the harm that bankruptcy can cause on business activity, reaching inherent social interests, not to mention the procedural hindrances in attaining the obligee s satisfaction. Furthermore, foreign legislations, which inspired the national ones, offer dedicated and specific solutions to companies comprised by people with unlimited responsibility, and to limited companies, showing the impropriety of supplementarily applying on them the simple society rules. This defence is supported by the invocation of principles to determine the normative meanings, to avoid antinomies and to delimitate the application of the most appropriate normative position. This work is developed through research of doctrine and legislations, both national and foreign, using descriptive language on the analysis of legislations, and prescriptive language to build up the defended position / Esta tese defende a delimitação da norma aplicável para reger a constrição judicial da cota de sociedade empresária limitada, tendo em vista o advento do Código Civil de 2002, as reformas do Código de Processo Civil ditadas pela Lei 11.382/2006 e as legislações falimentares vigentes. O tema é relevante porque enfrenta institutos importantes para a comunidade sócio-econômica: a sociedade limitada, que é o tipo societário mais utilizado no país; a atividade empresarial, com os interesses sociais que em torno dela gravitam; e a recuperação do crédito, hoje amparada por direitos fundamentais à tutela jurisdicional efetiva. A justificativa da escolha do tema decorre das críticas de abalizada doutrina argüindo os malefícios que a liquidação da cota pode provocar na atividade empresarial, atingindo os interesses sociais inerentes, além dos entraves procedimentais para a satisfação do credor. Ademais, as legislações estrangeiras, que inspiraram a nacional, apresentam soluções diferenciadas e específicas para as sociedades de pessoas com responsabilidade ilimitada e para a sociedade limitada, demonstrando a impropriedade de se aplicar supletivamente a esta as regras da sociedade simples que regem o tema. A defesa ampara-se na invocação de princípios para determinar os significados normativos, evitar antinomias e delimitar a aplicação da normativa que mais se coadune com os seus fins. O trabalho é desenvolvido através de pesquisa de doutrina e legislações, nacionais e estrangeiras, utilizando de linguagem descritiva, na análise das legislações e prescritiva para a construção da posição defendida
85

Como a prática de TDD influencia o projeto de classes em sistemas orientados a objetos / How the practice of TDD influences the class design on object-oriented systems

Aniche, Mauricio Finavaro 25 April 2012 (has links)
Desenvolvimento Guiado por Testes (TDD) e uma das praticas sugeridas na Programacao Extrema. A mecanica da pratica e simples: o programador escreve o teste antes de escrever o codigo. E, portanto, possivel inferir que a pratica de TDD e uma pratica de testes de software. Entretanto, muitos autores de livros conhecidos pela industria e academia afirmam que os efeitos da pratica vao alem. Segundo eles, TDD ajuda o desenvolvedor durante o processo de criacao do projeto classes, fazendo-os criar classes menos acopladas e mais coesas. Entretanto, grande parte dos trabalhos da literatura sao voltados a descobrir se a pratica faz diferenca na qualidade do codigo gerado, mas poucos sao os autores que discutem como a pratica realmente auxilia. Mesmo os proprios praticantes nao entendem ou conseguem expressar bem como a pratica os guia. Este trabalho tem por objetivo compreender melhor os efeitos de TDD e como sua pratica influencia o desenvolvedor durante o processo de projeto de sistemas orientados a objetos. Para entende-las, neste trabalho optamos por um estudo exploratorio essencialmente qualitativo, no qual participantes foram convidados a resolver exercicios pre-preparados utilizando TDD e, a partir dos dados colhidos nessa primeira parte, nos levantamos detalhes sobre como a pratica influenciou as decisoes de projeto de classes dos participantes por meio de entrevistas. Ao final, observamos que a pratica de TDD pode guiar o desenvolvedor durante o processo de criacao do projeto de classes por meio de constantes feedbacks sobre a qualidade do projeto. Esses feedbacks alertam desenvolvedores sobre possiveis problemas, como alto acoplamento ou baixa coesao. Os desenvolvedores, por sua vez, devem interpretar e melhorar o projeto de classes. Este trabalho catalogou e nomeou os padroes de feedback percebidos pelos participantes. / Test-Driven Development (TDD) is one of the suggested practices in Extreme Programming (XP). The mechanical is simple: the developer writes a test before writing the implementation. Thus, TDD is often seen as a software testing technique. However, many famous book authors suggest that TDD can help developers during the class design creation process, enabling developers to create less coupled highly cohesive classes. Most of the academic studies are interested on finding the difference between a TDDd and a non-TDDd code. Only a few of them discuss how the practice really supports class design. Even practitioners do not understand how the practice guides them. This work aims to understand better the effects of TDD and how the practice influences the practitioner during the class design process in object-oriented systems. To better understand them, we did a essencially qualitative explorative study, in which participants were invited to solve a set of pre-prepared exercises using TDD and, based on the gathered data, we retrieved details of how the practice influenced the developers class design decisions through interviews. At the end, we observed that the practice of TDD can guide developers during the class design creation process through constant feedback about its quality. These feedbacks alert developers about possible problems, such as high coupling or low cohesion. Developers then should interpret and improve the class design accordingly. This study also catalogues the TDD feedback patterns perceived by the participants.
86

[en] DETECTING ARCHITECTURALLY-RELEVANT CODE ANOMALIES ON MULTILANGUAGE SYSTEMS / [pt] DETECÇÃO DE ANOMALIAS DE CÓDIGO DE RELEVÂNCIA ARQUITETURAL EM SISTEMAS MULTILINGUAGEM

MANUELE DOS REIS FERREIRA 02 June 2015 (has links)
[pt] Estudos recentes mostram que os sistemas são desenvolvidos por pelo menos quatro linguagens. Ao utilizar estas linguagens, boas práticas de desenvolvimento também são diferentes. Estes aspectos de heterogeneidade dificultam a concepção de soluções que apoiem desenvolvedores na construção de sistema multilinguagem com qualidade. Em particular, diversas abordagens têm surgido nos últimos anos com o objetivo de auxiliar os analistas nas tarefas de compreensão e manutenção desses sistemas. Porém, ainda existe uma carência de abordagens com foco na detecção de anomalias de código em sistemas multilinguagem. Dessa forma, o objetivo desse trabalho é oferecer suporte a identificação de sintomas de degradação arquitetural através do uso de estratégias baseadas em métricas em sistemas multilinguagem. / [en] Recent studies show that the systems are designed with at least four languages. Using these languages, best practices to development are also different. These aspects of heterogeneity make it difficult to design solutions that support developers activities on developing of multi-language system with quality. In particular, several approaches have emerged with the aim to assist analysts in comprehension and maintaining systems. However, there is still a lack of approaches focused on detection of code anomaly on multi-language systems. Thus, the aim of this work is to support the identification of symptoms of architectural degradation through the use of metrics-based strategies on multi-language systems.
87

[en] MATHEURISTICS FOR VARIANTS OF THE DOMINATING SET PROBLEM / [pt] MATEURÍSTICAS PARA VARIANTES DO PROBLEMA DO CONJUNTO DOMINANTE

MAYRA CARVALHO ALBUQUERQUE 14 June 2018 (has links)
[pt] Esta tese faz um estudo do problema do Conjunto Dominante, um problema NP-difícil de grande relevância em aplicações relacionadas ao projeto de rede sem fio, mineração de dados, teoria de códigos, dentre outras. O conjunto dominante mínimo em um grafo é um conjunto mínimo de vértices de modo que cada vértice do grafo pertence a este conjunto ou é adjacente a um vértice que pertence a ele. Três variantes do problema foram estudadas; primeiro, uma variante na qual considera pesos nos vértices, buscando um conjunto dominante com menor peso total; segundo, uma variante onde o subgrafo induzido pelo conjunto dominante está conectado; e, finalmente, a variante que engloba essas duas características. Para resolver esses três problemas, propõe-se um algoritmo híbrido baseado na meta-heurística busca tabu com componentes adicionais de programação matemática, resultando em um método por vezes chamado de mateurística, (matheuristic, em inglês). Diversas técnicas adicionais e vizinhanças largas foram propostas afim de alcançar regiões promissoras no espaço de busca. Análises experimentais demonstram a contribuição individual de todos esses componentes. Finalmente, o algoritmo é testado no problema do código de cobertura mínima, que pode ser visto como um caso especial do problema do conjunto dominante. Os códigos são estudados na métrica Hamming e na métrica Rosenbloom-Tsfasman. Neste último, diversos códigos menores foram encontrados. / [en] This thesis addresses the Dominating Set Problem, an NP- hard problem with great relevance in applications related to wireless network design, data mining, coding theory, among others. The minimum dominating set in a graph is a minimal set of vertices so that each vertex of the graph belongs to it or is adjacent to a vertex of this set. We study three variants of the problem: first, in the presence of weights on vertices, searching for a dominating set with smallest total weight; second, a variant where the subgraph induced by the dominating set needs to be connected, and,finally, the variant that encompasses these two characteristics. To solve these three problems, we propose a hybrid algorithm based on tabu search with additional mathematical-programming components, leading to a method sometimes called matheuristic. Several additional techniques and large neighborhoods are also employed to reach promising regions in the search space. Our experimental analyses show the good contribution of all these individual components. Finally, the algorithm is tested on the covering code problem, which can be viewed as a special case of the minimum dominating set problem. The codes are studied for the Hamming metric and the Rosenbloom-Tsfasman metric. For this last case, several shorter codes were found.
88

[en] UNDERSTANDING AND IMPROVING BATCH REFACTORING IN SOFTWARE SYSTEMS / [pt] ENTENDENDO E MELHORANDO A PRÁTICA DE REFATORAÇÕES EM LOTE EM SISTEMAS DE SOFTWARE

DIEGO CEDRIM GOMES REGO 15 January 2019 (has links)
[pt] Em um sistema de software, as anomalias de código indicam problemas estruturais que podem ser resolvidos através da refatoração. No entanto, desenvolvedores podem negligenciar ou acabar criando novas anomalias ao refatorar. Pouco foi relatado sobre os efeitos benéficos e prejudiciais da refatoração de anomalias de código. Evidências sugerem que os desenvolvedores frequentemente precisam aplicar uma sequência de refatorações (refatoração em lote) para remover completamente as estruturas anômalas. Assim, nesta tese, realizamos uma série de estudos para entender o impacto de refatorações simples e em lote em anomalias de código. Em nossos primeiros estudos, analisamos com que frequência os tipos de refatoração comumente usados afetam a densidade de anomalias ao longo das histórias de dezenas de projetos. Mesmo que 79,4 por cento das refatorações tenham tocado em elementos anômalos, 57 por cento não reduziram suas ocorrências. Surpreendentemente, apenas 9,7 por cento das refatorações removeram anomalias de código, enquanto 33 por cento induziram a introdução de novas. Por um lado, observamos padrões nocivos de introdução de anomalias. Por outro lado, observamos que muitas anomalias podem ser removidas apenas por refatorações em lote. Assim, nossos últimos estudos investigam o impacto de refatorações em lote nas anomalias. Mesmo quando aplicadas em lotes, as refatorações tendem a não afetar ou mesmo aumentar a densidade de anomalias. Também identificamos padrões entre tipos de lotes e tipos de anomalias, levando-nos à criação de heurísticas que podem orientar os desenvolvedores durante tarefas de remoção de anomalias de código. O último estudo avaliou essas heurísticas e concluímos que os resultados são promissores. / [en] Code smells in a program represent indications of structural quality problems, which can be addressed by software refactoring. However, developers may neglect or end up creating new code smells through single refactoring. Little has been reported about recurring beneficial and harmful effects of refactoring on the program structural quality. As a consequence, developers still miss guidance along non-trivial smell-removing tasks. In fact, evidence suggests developers often need to apply a sequence of refactorings, so-called batch refactoring, to entirely remove a smelly code structure. Thus, in this thesis, we have conducted a series of studies to understand the impact of single and batch refactorings on code smells. In our first studies, we analyze how often commonly-used types of single refactoring affect the density of code smells along the version histories of dozens of projects. Even though 79.4 percent of the refactorings touched smelly elements, 57 percent had no impact on the smell removal. Surprisingly, only 9.7 percent of refactorings removed smells, while 33 percent induced the introduction of new ones. On one hand, we observed that harmful refactoring-smell patterns could be used to guide developers to avoid smell-inducing refactoring. On the other hand, we observed that many smells can be removed only through batch refactoring. Thus, our last studies investigate the impact of batch refactorings on smells. Even when applied in batches, refactorings tend to maintain or even increase the density of code smells. We also identified common batch-smell patterns, which enable us to create heuristics that can guide developers through smell-removing tasks. The last study evaluated those heuristics, and we conclude the outcomes are promising.
89

[en] HOW DOES REFACTORING AFFECT INTERNAL QUALITY ATTRIBUTES?: A MULTI-PROJECT STUDY / [pt] COMO A REFATORAÇÃO AFETA OS ATRIBUTOS DE QUALIDADE INTERNA?: UM ESTUDO MULTI-PROJETO

ALEXANDER CHÁVEZ LÓPEZ 12 December 2017 (has links)
[pt] Desenvolvedores frequentemente aplicam refatoração para melhorar os atributos internos de qualidade em projetos de software, tais como acoplamento e tamanho. Chamamos de rerrefatoração quando desenvolvedores refatoram um elemento de código-fonte previamente refatorado. O conhecimento empírico é limitado acerca de até que ponto refatoração e rerrefatoração de fato melhoram os atributos internos de qualidade. Nesta dissertação, nós investigamos a limitação supracitada com base em cinco atributos internos de qualidade conhecidos: acoplamento, coesão, complexidade, herança e tamanho. Também nos baseamos no histórico de versionamento de 23 projetos de software de código-fonte aberto, os quais possuem 29,303 operações de refatoração e 49.55 por cento de rerrefatorações. Nossa análise revelou descobertas interessantes apresentadas como segue. Primeiro, desenvolvedores aplicam mais de 93.45 por cento de operações de refatoração e rerrefatoração sobre elementos de código-fonte com ao menos um atributo interno de qualidade crítico, contrariando trabalhos anteriores. Segundo, para 65 por cento das operações, os atributos internos de qualidade relacionados melhoram, enquanto que os demais 35 por cento permanecem não-afetados. Terceiro, sempre que operações de refatoração são aplicadas sem mudanças adicionais no código fonte, o que chamamos de operação de refatoração root-canal, os atributos internos de qualidade frequentemente melhoram, ou ao menos, não pioram. Ao contrário, 55 por cento das operações de refatoração aplicadas com mudanças adicionais, tais como correção de bugs, surpreendentemente melhoram os atributos internos de qualidade, com somente 10 por cento de piora, o que também é válido para rerrefatoração. Nós sumarizamos nossas descobertas na forma de recomendações para desenvolvedores e pesquisadores. / [en] Developers often apply code refactoring to improve the internal quality attributes of a program, such as coupling and size. Given the structural decay of certain program elements, developers may need to apply multiple refactorings to these elements to achieve quality attribute improvements. We call re-refactoring when developers refactor again a previously refactored element in a program, such as a method or a class. There is limited empirical knowledge on to what extent developers successfully improve internal quality attributes through (re-)refactoring in their actual software projects. This dissertation addresses this limitation by investigating the impact of (re-)refactoring on five well-known internal quality attributes: cohesion, complexity, coupling, inheritance, and size. We also rely on the version history of 23 open source projects, which have 29,303 refactoring operations and 49.55 percent of re-refactoring operations. Our analysis revealed relevant findings. First, developers apply more than 93.45 percent of refactoring and re-refactoring operations to code elements with at least one critical internal quality attribute, as oppositely found in previous work. Second, 65 percent of the operations actually improve the relevant attributes, i.e. those attributes that are actually related to the refactoring type being applied; the remaining 35 percent operations keep the relevant quality attributes unaffected. Third, whenever refactoring operations are applied without additional changes, which we call root-canal refactoring, the internal quality attributes are either frequently improved or at least not worsened. Contrarily, 55 percent of the refactoring operations with additional changes, such as bug fixes, surprisingly improve internal quality attributes, with only 10 percent of the quality decline. This finding is also valid for re-refactoring. Finally, we also summarize our findings as concrete recommendations for both practitioners and researchers.
90

[en] ASSESSING THE BUG-PRONENESS OF REFACTORED CODE: LONGITUDINAL MULTI-PROJECT STUDIES / [pt] AVALIANDO A PROPENSÃO A BUGS DO CÓDIGO REFATORADO: ESTUDOS LONGITUDINAIS MULTIPROJETOS

ISABELLA VIEIRA FERREIRA 19 October 2018 (has links)
[pt] Os elementos de código geralmente mudam ao longo da evolução do sistema, o que implica em uma eventual degradação estrutural do código fonte. Sintomas recorrentes de tal degradação são chamados anomalias de código. Estudos sugerem que quanto mais anomalias de código afetam um sistema, mais alta se torna a propensão a bugs dos elementos de código. Para lidar com tal degradação da qualidade estrutural do código, desenvolvedores geralmente aplicam refatorações no código fonte. No entanto, aplicar refatorações pode não ser suficiente para reduzir a propensão a bugs dos elementos de código degradados. Um estudo recente sugere que refatorações induzem bugs frequentemente. No entanto, os autores não analisam se o código refatorado está, de fato, diretamente relacionado à introdução de bugs. Com isso, nesta dissertação, realizamos dois estudos longitudinais de múltiplos projetos para avaliar a propensão a bugs do código refatorado. Nossa metodologia teve como objetivo abordar várias limitações de estudos anteriores. Por exemplo, definimos duas propriedades complementares da propensão a bugs do código refatorado, sendo elas, frequência e distância. Enquanto a primeira propriedade quantifica a frequência com que um código refatorado está relacionado a bugs que emergiram no código fonte, a distância quantifica o quão próximo um bug surge depois que uma refatoração é aplicada. Nosso primeiro estudo tem como objetivo avaliar a propensão a bugs de refatorações isoladas. Primeiro, nossos resultados mostram que 80 porcento dos elementos degradados que se tornaram bugs não foram previamente refatorados. Este resultado implica que um código refatorado é menos propenso a bugs do que um código não refatorado. Em segundo lugar, em 75 porcento das vezes um bug surge depois de 7 mudanças feitas a partir da operação de refatoração, o que geralmente corresponde à 3 meses nos projetos analisados. Nosso segundo estudo tem como objetivo avaliar a propensão a bugs de refatorações em lote, ou seja, refatorações aplicadas em sequência. Nossos resultados mostram que, na maioria dos casos, o código refatorado em lotes é mais resiliente à introdução de bugs do que o código refatorado por meio de refatorações isoladas. / [en] Programs often change along the system evolution, which implies an eventual code structure degradation. Recurring symptoms of such degradation are code smells. Studies suggest that the more frequently code smells affect a system, the higher becomes the bug-proneness of the code elements. To tackle code structural quality degradation, developers often apply refactorings on smelly program elements. However, applying refactorings might not suffice to reduce the bug-proneness of such degraded program elements. Previous empirical studies do not systematically analyze the bug-proneness of refactored code. Even though a recent study suggests that refactoring induces bugs frequently, the authors do not analyze to what extent refactored code is indeed closely related to the bug occurrence. Thus, in this dissertation, we conducted two longitudinal multi-project studies to assess the bugproneness of refactored code. Our methodology aimed to address various limitations of previous studies. For instance, we have defined two complementary properties of the bug-proneness of refactored code, i.e., frequency and distance. While the former quantifies how often a refactored code is related to emerging bugs, the latter quantifies how close a bug emerges after a refactoring has been applied. The quantitative analysis of such properties was complemented by a manual analysis of refactorings closely related to the bug occurrence. Our first study aims at assessing the bug-proneness of code refactored through isolated refactorings, i.e., a single refactoring operation not performed in conjunction with other refactoring operations. This study reveals that 80 per cent of the smelly elements that became buggy were not previously refactored. This result suggests the refactored code is much less bug-prone than non-refactored code. Moreover, in 75 per cent of the times, a bug emerges in 7 changes far from the refactoring operation; this amount of changes usually corresponds to 3 months in the analyzed projects. Our second study aims at assessing the bug-proneness of code elements refactored through batch refactorings, i.e., a sequence of inter-related refactoring operations. Our results show that code refactored through batches is often more resilient to the introduction of bugs as compared to code refactored through isolated refactorings.

Page generated in 2.0776 seconds