• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 25
  • 4
  • 1
  • Tagged with
  • 30
  • 30
  • 17
  • 17
  • 7
  • 7
  • 7
  • 7
  • 6
  • 6
  • 6
  • 6
  • 6
  • 6
  • 6
  • 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.
11

Decisões em projetos de desenvolvimento de software e a metáfora do débito técnico: Um estudo de caso exploratório

Simone Tonin, Graziela 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T16:00:39Z (GMT). No. of bitstreams: 2 arquivo6836_1.pdf: 7134549 bytes, checksum: a413ef5228f95d716999c5ee80611c5f (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2011 / Este trabalho tem como objetivo coletar evidências de decisões em projetos de desenvolvimento de software que podem ou não incorrer em Débito Técnico, a partir de um estudo de caso real. Para isso, foi adotado como estratégia de pesquisa um estudo de caso exploratório em um projeto de desenvolvimento de uma empresa multinacional de dispositivos móveis. O sistema investigado consiste em uma aplicação para dispositivos móveis, usada como cliente para soluções de serviços de email Microsoft ExchangeTM (MS Exchange), onde é possível gerenciar emails, calendários e contatos. Este sistema teve um ciclo de vida de seis anos (2005-2011). Os dados foram coletados de emails, documentos, logs de CVS, análise de código e entrevistas com desenvolvedores e gerentes de projeto. Uma análise investigativa foi realizada durante todo o ciclo de evolução do sistema. Em um primeiro momento, mudanças foram identificadas e após análise histórica das mesmas foi identificado que um conjunto de mudanças semelhantes resultavam de decisões tomadas em relação a um mesmo contexto: pesquisa de subcasos. Alguns importantes subcasos foram analisados e estudados em maior granularidade, onde importantes decisões foram identificadas juntamente com suas causas, motivações e impactos foram investigados. O resultado foi um conjunto de decisões em diferentes contextos e subcasos que em determinado momento incorreram em Débito Técnico e em outros não. Além disso, mostramos os fatores que as influenciaram e impacto dos mesmos no sistema ao longo do tempo. Estas evidências são importantes para validar as categorias que compõe a metáfora do Débito Técnico, visto que existem algumas discussões conceituais sobre a mesma, mas poucos estudos voltados para confirmação da mesma em um caso real. Também, foi criada uma lista de sugestões de procedimentos que podem ser adotados para melhor auxiliar na identificação e monitoramento de Débito Técnico
12

Avaliando o uso de ferramentas de medição como fator determinante para adoção de métricas de manutenibilidade de software em companhias brasileiras de software

FRANÇA, Micael Soares de 01 February 2016 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2016-08-08T12:30:47Z No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertacao_Micael.pdf: 1885236 bytes, checksum: dce77e81bc020dd0cb75344d091e690b (MD5) / Made available in DSpace on 2016-08-08T12:30:47Z (GMT). No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertacao_Micael.pdf: 1885236 bytes, checksum: dce77e81bc020dd0cb75344d091e690b (MD5) Previous issue date: 2016-02-01 / O desenvolvimento de software engloba uma série de atividades cuja complexidade é notória. Quando este desenvolvimento não é gerenciado adequadamente pode haver diminuição na qualidade do software, aumento nos custos e atrasos nas entregas. Neste contexto, a manutenibilidade de software é considerada um atributo de qualidade que possui uma importante função na análise de qualidade de software. Geralmente, diversas áreas distintas, tais como Desenvolvimento de Software, Gestão de Projetos e Pesquisa de Software adotam métricas que atuam como indicadores que resumem uma série de informações, ajudando a caracterizar e entender certas circunstancias envolvidas na produção de um sistema. Por outro lado, determinar características de manutenibilidade em um sistema pode apresentar significantes desafios para um engenheiro de manutenibilidade. Por conseguinte, visando auxiliar o uso destas métricas, diversas ferramentas estão disponíveis para facilitar a análise e coleta de métricas software aplicadas a diversos contextos no desenvolvimento de um projeto. No entanto, a variedade de ferramentas e falta de informações para avaliar melhor o uso de cada uma, pode dificultar em algum aspecto a seleção e aplicação de novas métricas ou ferramentas. Face a esta realidade, este trabalho tem como objetivo investigar a adoção e uso de ferramentas que auxiliem a coleta de métricas de manutenibilidade de software e como elas podem estar relacionadas a escolha de tais atributos utilizados sob contexto industrial. E adicionalmente, verificar a sua representatividade, quais são as mais comuns e em que contexto são utilizadas. Para levantar os dados necessários para a análise e avaliação dessas ferramentas utilizadas no cenário industrial foi escolhido o Survey, como método empírico. Os dados coletados mostraram-se significantes para entendimento do cenário industrial no contexto relacionado, ajudando na integralização do conhecimento sobre uso de ferramentas e métricas adotadas na indústria. / Software development includes a series of activities whose complexity is notorious. When the development is not properly managed there can be decrease in software quality, higher costs and schedule delays. In this context, software maintainability (SM) is considered a quality attribute that plays an important role in the software quality analysis. Usually, several different areas such as Software Development, Project Management and Research in Software adopt metrics that act as indicators that summarize lots of information, helping to characterize and understand certain circumstances involved in the system production. However, determining maintainability characteristics of a system can present significant challenges for maintainability engineer. Therefore seeking to support using metrics, several tools have been developed to facilitate the collection and analysis of software metrics applied in different contexts on a project. However, the variety of tools and lack of information to better evaluate the use of each one, can hinder in some way the selection and application of new metrics and tools. Considering this fact, this research aims to investigate the adoption and use of tools to assist the collection of SM metrics and how they may be related to the choice of such attributes used in industrial context. Besides, we also aim to verify its representativeness, which are the most common and in what context they have been used. To gather all necessary data for analysis and evaluation of these tools used in industrial scenario, we chose Survey as empirical method. The data collected proved to be significant for understanding the industrial scenario in the referred context, helping the integration of knowledge about using tools and metrics adopted in the industry.
13

Método para manutenção de sistema de software utilizando técnicas arquiteturais. / Method for software system maintenance using architectural techniques.

Guimarães, Júlio Henrique dos Nogueira e Oliveira 24 September 2008 (has links)
Diversos negócios hoje são suportados por sistemas de software. Acredita-se que o uso de Arquitetura de Software é fundamental para atingir alcançar as metas de negócio e qualidade. Visto que o conjunto de requisitos que levou à construção de uma determinada arquitetura pode mudar, tal arquitetura pode tornar-se inadequada. Em diversas situações é preciso conviver com os sistemas existentes, portanto é preciso alterá-los para as novas necessidades. Manutenção de sistemas usando técnicas de evolução arquiteturais tem se mostrado um eficaz caminho para alterar um sistema à nova situação. O objetivo deste trabalho é apresentar um método para manutenção de sistemas de software usando técnicas arquiteturais de forma a convergir mais rapidamente à adequação da arquitetura destes sistemas. Algumas técnicas do método incluem avaliação de arquitetura de software, levantamento de riscos, provas de conceito construtivas e destrutivas e métricas estáticas e dinâmicas de software. O método proposto foi aplicado em contextos de laboratório e da indústria, permitindo a verificação de pontos fortes e críticos para realizar seu refinamento e tais aplicações são também relatadas neste trabalho. Embora as aplicações do método proposto tenham sido diferentes, tanto no objetivo principal quanto no desenrolar das atividades, seus resultados foram considerados bastante satisfatórios, tanto no contexto de ensino quanto no contexto de indústria. / Several business today are supported by software systems. It is believed that the use of software architecture is fundamental to achieve the business goals and quality. Since the set of requirements that led to the construction of a given architecture may change, such an architecture may become inadequate. In many situations we must live with existing systems, so we must change them to meet the new needs. Systems maintenance using architectural evolution techniques has proven to be an effective path to take a system to the new situation. This works goal is to provide a method for maintenance of software systems using architectural techniques in order to converge more rapidly to match the architecture of these systems. Some techniques used in the method include software architecture evaluation, risks survey, constructive and destructive proofs of concept, static and dynamic software metrics. The proposed method was applied in contexts of laboratory and industry, allowing the verification of strengths and critical points to guide its refinement and such applications are also reported in this work. Although the applications of the proposed method has been different in both the main goal and the conduct of activities, their results were considered very satisfactory, both in the education and the industry context.
14

EARLY-FIX : um framework para predição de manutenção corretiva de software utilizando métricas de produto

Gabriel de Souza Pereira Moreira 14 December 2011 (has links)
A manutenção de software tem consumido mais de 50% do esforço de desenvolvimento e até 90% do ciclo de vida de um software. Localizar e corrigir defeitos após a entrega de um software apresenta frequentemente custos elevados em relação às fases anteriores do projeto. A predição de defeitos tem atraído crescente interesse na indústria e na comunidade científica. Uma das abordagens adotadas vem sendo utilização de métricas de produto de software, obtidas através de análise estática de código, como insumos para predição de manutenção corretiva. Neste contexto, diversas técnicas de predição têm sido propostas e utilizadas, baseadas em técnicas estatísticas de regressão e de aprendizado de máquina. Entretanto, a grande variedade de métricas de software e técnicas tem dificultado a adoção da prática de predição de defeitos em projetos reais, por exigirem conhecimento especializado e elevado esforço de investigação. Neste trabalho de pesquisa, é investigado, concebido, implementado e verificado um framework, denominado EARLY-FIX, para predição de manutenção corretiva de software, utilizando métricas de produto. O EARLY-FIX representa a principal contribuição desta pesquisa e endereça problemas enfrentados para obtenção das informações necessárias para predição de defeitos em projetos de software desenvolvidos com processos iterativos. O EARLY-FIX compõe-se de métodos de medição e de calibração que permitem sua execução automatizada, possibilitando sua implementação em projetos de forma transparente e não-intrusiva. O EARLY-FIX envolve ainda modelos de indicadores preditivos que visam a identificação de módulos com maior propensão a manutenções corretivas. Desta forma, os indicadores fornecem insumos para priorização de atividades de qualidade, como inspeção, refatoração e testes. Finalmente, realiza-se a implementação e a verificação do EARLY-FIX em uma análise histórica, considerando dois projetos da indústria desenvolvidos segundo o paradigma Orientado a Objetos. Comparações entre os modelos gerados por cinco técnicas de regressão estatística estão entre os principais resultados obtidos nesta pesquisa.
15

Método para manutenção de sistema de software utilizando técnicas arquiteturais. / Method for software system maintenance using architectural techniques.

Júlio Henrique dos Nogueira e Oliveira Guimarães 24 September 2008 (has links)
Diversos negócios hoje são suportados por sistemas de software. Acredita-se que o uso de Arquitetura de Software é fundamental para atingir alcançar as metas de negócio e qualidade. Visto que o conjunto de requisitos que levou à construção de uma determinada arquitetura pode mudar, tal arquitetura pode tornar-se inadequada. Em diversas situações é preciso conviver com os sistemas existentes, portanto é preciso alterá-los para as novas necessidades. Manutenção de sistemas usando técnicas de evolução arquiteturais tem se mostrado um eficaz caminho para alterar um sistema à nova situação. O objetivo deste trabalho é apresentar um método para manutenção de sistemas de software usando técnicas arquiteturais de forma a convergir mais rapidamente à adequação da arquitetura destes sistemas. Algumas técnicas do método incluem avaliação de arquitetura de software, levantamento de riscos, provas de conceito construtivas e destrutivas e métricas estáticas e dinâmicas de software. O método proposto foi aplicado em contextos de laboratório e da indústria, permitindo a verificação de pontos fortes e críticos para realizar seu refinamento e tais aplicações são também relatadas neste trabalho. Embora as aplicações do método proposto tenham sido diferentes, tanto no objetivo principal quanto no desenrolar das atividades, seus resultados foram considerados bastante satisfatórios, tanto no contexto de ensino quanto no contexto de indústria. / Several business today are supported by software systems. It is believed that the use of software architecture is fundamental to achieve the business goals and quality. Since the set of requirements that led to the construction of a given architecture may change, such an architecture may become inadequate. In many situations we must live with existing systems, so we must change them to meet the new needs. Systems maintenance using architectural evolution techniques has proven to be an effective path to take a system to the new situation. This works goal is to provide a method for maintenance of software systems using architectural techniques in order to converge more rapidly to match the architecture of these systems. Some techniques used in the method include software architecture evaluation, risks survey, constructive and destructive proofs of concept, static and dynamic software metrics. The proposed method was applied in contexts of laboratory and industry, allowing the verification of strengths and critical points to guide its refinement and such applications are also reported in this work. Although the applications of the proposed method has been different in both the main goal and the conduct of activities, their results were considered very satisfactory, both in the education and the industry context.
16

Um modelo dinâmico de reputação para apoiar a manutenção colaborativa de software

Lélis, Cláudio Augusto Silveira 30 August 2017 (has links)
Submitted by Renata Lopes (renatasil82@gmail.com) on 2017-10-21T01:04:22Z No. of bitstreams: 1 claudioaugustosilveiralelis.pdf: 7232359 bytes, checksum: 731c10b688562fad8855da41890a7f97 (MD5) / Approved for entry into archive by Adriana Oliveira (adriana.oliveira@ufjf.edu.br) on 2017-10-21T13:13:19Z (GMT) No. of bitstreams: 1 claudioaugustosilveiralelis.pdf: 7232359 bytes, checksum: 731c10b688562fad8855da41890a7f97 (MD5) / Made available in DSpace on 2017-10-21T13:13:19Z (GMT). No. of bitstreams: 1 claudioaugustosilveiralelis.pdf: 7232359 bytes, checksum: 731c10b688562fad8855da41890a7f97 (MD5) Previous issue date: 2017-08-30 / CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / A importância dos softwares nas organizações é crescente. No entanto, para manter seu valor, o software deve ser alterado e atualizado. A manutenção de software depende da alocação de recursos humanos para o cumprimento das atividades de alteração definidas. Entretanto, em um cenário distribuído no qual a colaboração é fundamental para o bom funcionamento das atividades, torna-se uma tarefa não trivial designar desenvolvedores para as atividades de manutenção. Neste contexto, a reputação se torna um elemento chave, afetando os elementos de colaboração, tais como: a coordenação, a cooperação, e a comunicação. Portanto, o acompanhamento da evolução da reputação é importante para promover a colaboração nas atividades de manutenção. A teoria de Dinâmica de Sistemas pode ser aplicada no acompanhamento da evolução da reputação. Através dos dados obtidos, é possível compreender o passado, estabelecer o que ocorre no presente e projetar o comportamento futuro da reputação. Diante disso, este trabalho apresenta um modelo para cálculo da reputação dos desenvolvedores de software, apoiado por técnicas de Dinâmica de Sistemas, o qual permite simular como a reputação se comporta ao longo do tempo. Este modelo serviu de base para a construção de uma infraestrutura para informações de reputação dinâmica, cujo objetivo é possibilitar o gerenciamento e acompanhamento de informações de reputação dos desenvolvedores geograficamente distribuídos de forma a apoiar a alocação desses desenvolvedores às tarefas de manutenção. Além disso, oferece elementos de visualização e colaboração, em um ambiente integrado às atividades de manutenção de software. Uma prova de conceito e um experimento realizados com dados reais de uma empresa são apresentados com o intuito de identificar a viabilidade e aderência do modelo proposto, bem como dos demais recursos oferecidos pela infraestrutura. / The importance of software in organizations is growing. However, to maintain its value, the software must be changed and updated. Software maintenance depends on the allocation of human resources to fulfill defined change activities. However, in a distributed scenario in which collaboration is critical to the well running of activities, designate developers for maintenance activities becomes a non-trivial task. In this context, reputation becomes a key element, affecting elements of collaboration, such as: coordination, cooperation, and communication. Therefore, tracking reputation evolution is important to promote collaboration in maintenance activities. The theory of System Dynamics can be applied in monitoring the evolution of reputation. Through the data obtained, it is possible to understand the past, establish what occurs in the present, and project future reputation behavior. Therefore, this work presents a model for calculating the reputation of software developers, supported by System Dynamics techniques, which allows simulating how reputation behaves over time. This model served as the basis for building an infrastructure for dynamic reputation information, which aims to enable the management and tracking reputation information of geographically distributed developers to support the allocation of these developers to maintenance tasks. In addition, it provides visualization and collaboration elements in an integrated environment for software maintenance activities. A proof of concept and an experiment made with real data of a company are presented with the intention of identifying the feasibility and adherence of the proposed model, as well as of the other resources offered by the infrastructure.
17

Anomalias na camada de apresentação de aplicativos android / Anomalies in the presentation layer of android applications

Carvalho, Suelen Goularte 19 January 2018 (has links)
Bons códigos importam, mas como saber quando a qualidade está baixa? Maus cheiros de código, ou anomalias, auxiliam desenvolvedores na identificação de trechos de código problemáticos, porém a maioria dos maus cheiros catalogados são voltados para práticas e tecnologias tradicionais, criadas entre as décadas de 70 a 90, como orientação a objetos e Java. Ainda há dúvidas sobre maus cheiros em tecnologias que surgiram na última década, como o Android, principal plataforma móvel em 2017 com mais de 86% de participação de mercado. Alguns pesquisadores derivaram maus cheiros Android relacionados à eficiência e à usabilidade. Outros notaram que maus cheiros específicos ao Android são muito mais frequentes nos aplicativos do que maus cheiros tradicionais. Diversas pesquisas concluíram que os componentes Android mais afetados por maus cheiros tradicionais são Activities e Adapters, que pertencem à camada de apresentação. Notou-se também que em alguns aplicativos, códigos da camada de apresentação representam a maior parte do código do projeto. Vale ressaltar que a camada de apresentação Android também é composta por arquivos XML, chamados de recursos, usados na construção da interface do usuário (User Interface - UI), porém nenhuma das pesquisas citadas os considerou em suas análises. Nesta dissertação, investigamos a existência de maus cheiros relacionados à camada de apresentação Android considerando inclusive os recursos. Fizemos isso através de dois questionários e um experimento de código online, totalizando a participação de 316 desenvolvedores. Nossos resultados mostram a existência de uma percepção comum entre desenvolvedores sobre más práticas no desenvolvimento da camada de apresentação Android. Nossas principais contribuições são um catálogo com 20 maus cheiros da camada de apresentação Android e uma análise estatística da percepção de desenvolvedores sobre os 7 principais maus cheiros catalogados. Nossas contribuições servirão a pesquisadores como ponto de partida para a definição de heurísticas e implementação de ferramentas automatizadas e a desenvolvedores como auxílio na identificação de códigos problemáticos, ainda que de forma manual. / We are aware that good code matters, but how to know when quality is low? Code smells, or anomalies, help us identify problematic code snippets, but most of the code smells cataloged are based on traditional practices and technologies, created from the 70s through the 90s, such as object oriented programming and Java. There are still doubts about code smells in technologies that have emerged in the last decade, such as Android, the main mobile platform in 2017 with more than 86% market share. Some researchers have defined code smells related to Android efficiency and usability. Other research concludes that the components most affected by traditional code smells are related to the front-end components, such as Activities and Adapters. Also noticed in some applications, front-end code represent the larger part of the projects code. It is worth mentioning that the Android presentation layer is also composed of XML files, called resources, used to build the user interface (UI), but none of the cited research considered them in their analyzes. In this dissertation, we investigate the existence of code smells related to the Android front-end, including application resources. We performed two online surveys and one online code experiment, summing 316 developers. Our results show that there is a common perception among Android developers about bad practices on Android front-end. Our main contributions are a catalog of 20 code smells related to the Android front-end and a statistical analysis of the perceptions of developers about the 7 main code smells cataloged. Our contributions will provide to researchers a starting point for the definition of heuristics and implementation of automated tools and to developers as an aid in identifying problematic codes.
18

Anomalias na camada de apresentação de aplicativos android / Anomalies in the presentation layer of android applications

Suelen Goularte Carvalho 19 January 2018 (has links)
Bons códigos importam, mas como saber quando a qualidade está baixa? Maus cheiros de código, ou anomalias, auxiliam desenvolvedores na identificação de trechos de código problemáticos, porém a maioria dos maus cheiros catalogados são voltados para práticas e tecnologias tradicionais, criadas entre as décadas de 70 a 90, como orientação a objetos e Java. Ainda há dúvidas sobre maus cheiros em tecnologias que surgiram na última década, como o Android, principal plataforma móvel em 2017 com mais de 86% de participação de mercado. Alguns pesquisadores derivaram maus cheiros Android relacionados à eficiência e à usabilidade. Outros notaram que maus cheiros específicos ao Android são muito mais frequentes nos aplicativos do que maus cheiros tradicionais. Diversas pesquisas concluíram que os componentes Android mais afetados por maus cheiros tradicionais são Activities e Adapters, que pertencem à camada de apresentação. Notou-se também que em alguns aplicativos, códigos da camada de apresentação representam a maior parte do código do projeto. Vale ressaltar que a camada de apresentação Android também é composta por arquivos XML, chamados de recursos, usados na construção da interface do usuário (User Interface - UI), porém nenhuma das pesquisas citadas os considerou em suas análises. Nesta dissertação, investigamos a existência de maus cheiros relacionados à camada de apresentação Android considerando inclusive os recursos. Fizemos isso através de dois questionários e um experimento de código online, totalizando a participação de 316 desenvolvedores. Nossos resultados mostram a existência de uma percepção comum entre desenvolvedores sobre más práticas no desenvolvimento da camada de apresentação Android. Nossas principais contribuições são um catálogo com 20 maus cheiros da camada de apresentação Android e uma análise estatística da percepção de desenvolvedores sobre os 7 principais maus cheiros catalogados. Nossas contribuições servirão a pesquisadores como ponto de partida para a definição de heurísticas e implementação de ferramentas automatizadas e a desenvolvedores como auxílio na identificação de códigos problemáticos, ainda que de forma manual. / We are aware that good code matters, but how to know when quality is low? Code smells, or anomalies, help us identify problematic code snippets, but most of the code smells cataloged are based on traditional practices and technologies, created from the 70s through the 90s, such as object oriented programming and Java. There are still doubts about code smells in technologies that have emerged in the last decade, such as Android, the main mobile platform in 2017 with more than 86% market share. Some researchers have defined code smells related to Android efficiency and usability. Other research concludes that the components most affected by traditional code smells are related to the front-end components, such as Activities and Adapters. Also noticed in some applications, front-end code represent the larger part of the projects code. It is worth mentioning that the Android presentation layer is also composed of XML files, called resources, used to build the user interface (UI), but none of the cited research considered them in their analyzes. In this dissertation, we investigate the existence of code smells related to the Android front-end, including application resources. We performed two online surveys and one online code experiment, summing 316 developers. Our results show that there is a common perception among Android developers about bad practices on Android front-end. Our main contributions are a catalog of 20 code smells related to the Android front-end and a statistical analysis of the perceptions of developers about the 7 main code smells cataloged. Our contributions will provide to researchers a starting point for the definition of heuristics and implementation of automated tools and to developers as an aid in identifying problematic codes.
19

Caracterização da Complexidade Estrutural em Sistemas de Software

Azevedo Terceiro, Antonio Soares de 25 January 2013 (has links)
Submitted by Santos Davilene (davilenes@ufba.br) on 2013-01-25T12:17:33Z No. of bitstreams: 1 Tese - Antonio Terceiro.pdf: 2349378 bytes, checksum: 0242ae36220a231a40a42d851ee9142c (MD5) / Made available in DSpace on 2013-01-25T12:17:33Z (GMT). No. of bitstreams: 1 Tese - Antonio Terceiro.pdf: 2349378 bytes, checksum: 0242ae36220a231a40a42d851ee9142c (MD5) / Esta tese propõe uma teoria para caracterizar a complexidade estrutural em sistemas de software. Esta teoria busca identificar (i) a contribuição de diversos fatores para a variação da complexidade estrutural e (ii) os efeitos da complexidade estrutural sobre projetos de software. Possíveis fatores na variação da complexidade estrutural incluem: fatores humanos, como experiência geral dos desenvolvedores e a sua familiaridade com as diferentes partes do sistema; fatores relacionados às mudanças realizadas no sistema, como variação no tamanho, espalhamento das mudanças; e fatores organizacionais, como maturidade do processo de desenvolvimento e a estrutura de comunicação do projeto. Efeitos da complexidade estrutural incluem maior esforço, e consequentemente maior custo, em atividades de compreensão e manutenção de software. Para testar a validade da teoria proposta, foram realizados quatro estudos experimentais, utilizando mineração de dados em repositórios de projetos de software livre. Foram analisados dados históricos de mudanças realizadas em 13 sistemas de diferentes domínios de aplicação e escritos em diferentes linguagens de programação. Os resultados destes estudos indicaram que todos os fatores estudados influenciaram significativamente a variação da complexidade estrutural em pelo menos um dos projetos, mas projetos diferentes foram influenciados por conjuntos diferentes de fatores. Modelos construídos foram capazes de descrever até 93% da variação na complexidade estrutural nos projetos estudados. / Salvador
20

Classificação de issues obtidas de repositórios de software: uma abordagem baseada em características textuais

Ferreira, Tarcísio Martins 16 September 2015 (has links)
A classificação das issues ou questões nos repositórios de manutenção de software é realizada atualmente pelos desenvolvedores de software. Entretanto, essa classificação manual não é livre de erros, os quais geram problemas na distribuição das issues para as equipes de tratamento. Isso acontece porque os desenvolvedores, geralmente os propositores das issues, possuem o mal hábito de classificá-las como bugs. Essas classificações errôneas produzem a distribuição de issues para uma equipe de tratamento de outro tipo de issue, gerando retrabalho para as equipes entre outras desvantagens. Por isso, o principal objetivo almejado com o estudo é a melhoria dessa classificação, utilizando de uma abordagem de classificação das issues realizada de maneira automatizada. Essa abordagem foi implementada com técnicas de Aprendizado de Máquina. Estas técnicas mostram que as palavras-chave discriminantes dos tipos de issues podem ser utilizadas como atributos de classificadores automáticos para a predição dessas issues. A abordagem foi avaliada sobre 5 projetos open source extraídos de 2 issue trackers conhecidos, Jira e Bugzilla. Por se tratarem de issue trackers de longa data, os projetos escolhidos forneceram boa quantidade de issues para este estudo. Essas issues, cerca de 7000, foram classificadas por especialistas humanos no trabalho [Herzig, Just e Zeller 2013], produzindo um gabarito utilizado para a realização deste estudo. Este trabalho produziu um classificador automático de issues, com acurácia de 81%, capaz de discriminá-las nos tipos bug, request for enhancement e improvement. O bom resultado de acurácia sugere que o classificador concebido possa ser utilizado em sistemas de encaminhamento de issues para as equipes de tratamento, com a Ąnalidade de diminuir retrabalho dessas equipes que ocorre em virtude da má classificação. / The classification of issues in software maintenance repositories is currently done by software developers. However, this classification is conducted manually and is not free of errors, which cause problems in the distribution of issues to the maintenance teams. This happen because the developers, which usually are the proponents of the issues, have the bad habit of classifying them as bugs. This erroneous rating generates rework and other disadvantages to the teams. Therefore, the main objective of this study is to improve this classification, using an issue classification approach conducted in an automated manner. In turn, this approach was implemented based on machine learning tecniques. These tecniques show that keywords discriminant of issues types can be used as attributes of automatic classifiers for prediction of these issues. The approach was evaluated on five open source projects extracted from two widely used issue trackers, Jira and Bugzilla. Because they are old issue trackers, the chosen projects provided good number of issues for this study. These issues, about 7.000, were classified by human experts at work [Herzig, Just e Zeller 2013], producing a feedback which was used for this study. This present work produced an automatic issues classifier, with 81% of accuracy, able to predict them in types of bug, request for enhancement and improvement. The result of accuracy obtained by this classifier suggests that it can be used in delivery systems to treatment teams with the purpose of reducing rework that occurs in these teams because of the poor issues rating. / Dissertação (Mestrado)

Page generated in 0.4619 seconds