• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 96
  • 12
  • 1
  • Tagged with
  • 109
  • 109
  • 65
  • 37
  • 24
  • 24
  • 22
  • 19
  • 19
  • 18
  • 18
  • 17
  • 17
  • 17
  • 16
  • 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.
51

Ranking source code static analysis warnings for continuous monitoring of free/libre/open source software repositories / Ranqueamento de avisos de análise estática de código fonte para monitoramento de repositórios de software livre

Athos Coimbra Ribeiro 22 June 2018 (has links)
While there is a wide variety of both open source and proprietary source code static analyzers available in the market, each of them usually performs better in a small set of problems, making it hard to choose one single tool to rely on when examining a program. Combining the analysis of different tools may reduce the number of false negatives, but yields a corresponding increase in the number of false positives (which is already high for many tools). An interesting solution, then, is to filter these results to identify the issues least likely to be false positives. This work presents kiskadee, a system to support the usage of static analysis during software development by providing carefully ranked static analysis reports. First, it runs multiple static analyzers on the source code. Then, using a classification model, the potential bugs detected by the static analyzers are ranked based on their importance, with critical flaws ranked first, and potential false positives ranked last. To train kiskadee\'s classification model, we post-analyze the reports generated by three tools on synthetic test cases provided by the US National Institute of Standards and Technology. To make our technique as general as possible, we limit our data to the reports themselves, excluding other information such as change histories or code metrics. The features extracted from these reports are used to train a set of decision trees using AdaBoost to create a stronger classifier, achieving 0.8 classification accuracy (the combined false positive rate from the used tools was 0.61). Finally, we use this classifier to rank static analyzer alarms based on the probability of a given alarm being an actual bug. Our experimental results show that, on average, when inspecting warnings ranked by kiskadee, one hits 5.2 times less false positives before each bug than when using a randomly sorted warning list. / Embora exista grande variedade de analisadores estáticos de código-fonte disponíveis no mercado, tanto com licenças proprietárias, quanto com licenças livres, cada uma dessas ferramentas mostra melhor desempenho em um pequeno conjunto de problemas distinto, dificultando a escolha de uma única ferramenta de análise estática para analisar um programa. A combinação das análises de diferentes ferramentas pode reduzir o número de falsos negativos, mas gera um aumento no número de falsos positivos (que já é alto para muitas dessas ferramentas). Uma solução interessante é filtrar esses resultados para identificar os problemas com menores probabilidades de serem falsos positivos. Este trabalho apresenta kiskadee, um sistema para promover o uso da análise estática de código fonte durante o ciclo de desenvolvimento de software provendo relatórios de análise estática ranqueados. Primeiramente, kiskadee roda diversos analisadores estáticos no código-fonte. Em seguida, utilizando um modelo de classificação, os potenciais bugs detectados pelos analisadores estáticos são ranqueados conforme sua importância, onde defeitos críticos são colocados no topo de uma lista, e potenciais falsos positivos, ao fim da mesma lista. Para treinar o modelo de classificação do kiskadee, realizamos uma pós-análise nos relatórios gerados por três analisadores estáticos ao analisarem casos de teste sintéticos disponibilizados pelo National Institute of Standards and Technology (NIST) dos Estados Unidos. Para tornar a técnica apresentada o mais genérica possível, limitamos nossos dados às informações contidas nos relatórios de análise estática das três ferramentas, não utilizando outras informações, como históricos de mudança ou métricas extraídas do código-fonte dos programas inspecionados. As características extraídas desses relatórios foram utilizadas para treinar um conjunto de árvores de decisão utilizando o algoritmo AdaBoost para gerar um classificador mais forte, atingindo uma acurácia de classificação de 0,8 (a taxa de falsos positivos das ferramentas utilizadas foi de 0,61, quando combinadas). Finalmente, utilizamos esse classificador para ranquear os alarmes dos analisadores estáticos nos baseando na probabilidade de um dado alarme ser de fato um bug no código-fonte. Resultados experimentais mostram que, em média, quando inspecionando alarmes ranqueados pelo kiskadee, encontram-se 5,2 vezes menos falsos positivos antes de se encontrar cada bug quando a mesma inspeção é realizada para uma lista ordenada de forma aleatória.
52

Um estudo sobre a relação entre qualidade e arquitetura de software / A study about the relation between software quality and software architecture

Mauricio Tsuruta 02 March 2011 (has links)
Diversos setores da economia tem alto grau de dependência de sistemas computacionais: telecomunicação, financeiro, infraestrutura, industrial dentre outros. Desta forma, a qualidade do software contido nestes sistemas é um ítem importante para o bom desempenho destes setores. A arquitetura de software é considerada fator determinante para a qualidade de software. Este trabalho estuda a maneira pela qual a arquitetura de software determina a qualidade do software produzido e as possibilidades de se obter os atributos de qualidade desejados através da especificação de uma arquitetura de software apropriada. O método de pesquisa se fundamenta na revisão da literatura e quatro abordagens para a especificação da arquitetura de software são consideradas: clássica, orientada a objetos, orientada a atributos e orientada a busca. A abordagem orientada a busca é um campo de estudo relativamente recente e os avanços realizados são reportados dentro da área de conhecimento denominada de Search Based Software Engineering. Esta área de conhecimento utiliza técnicas metaheurísticas para achar boas soluções para os problemas encontrados na Engenharia de Software. Uma das técnicas meta-heurísticas mais utilizadas, o algorítmo genético, é usada em uma aplicação cujo processo de design segue a abordagem orientada a busca. / Many sectors of economy depend highly on computing systems: telecommunication, finance, infrastructure, industrial, and others. Thus, the quality of software in these systems is an important item to achieve good performance in these sectors. The software architecture is considered one of the main factors that shape the software quality. This work studies the way software architecture determines the software quality and the possibilities to obtain the desired software quality attributes through specifying appropriate software architecture. The research method is based upon literature review and four approaches to software architecture design process are considered: classic, object oriented, attribute oriented and search oriented. The search oriented approach to software architecture design process is a relatively new field of study and advances are reported in a knowledge area called Search Based Software Engineering. This knowledge area uses metaheuristics techniques to find good solutions to problems found in software engineering. One of the metaheuristic technique most frequently used, the genetic algorithm, is used in an application that follows the search based approach.
53

[pt] RELEVANDO FATORES INTERATIVOS NA DEGRADAÇÃO DO DESIGN DE SOFTWARE / [en] REVEALING INTERACTING FACTORS IN DECAY OF SOFTWARE DESIGN

DANIEL JOSE BARBOSA COUTINHO 28 December 2021 (has links)
[pt] Desenvolvedores realizam mudanças de código constantemente durante a vida de um projeto de software. Essas mudanças podem induzir a degradação progressiva do design. A degradação do design pode ser reduzida ou acelerada por fatores que interagem em cada mudança. Esses fatores podem variar desde uma mudança ou ação de reparo específica – e.g., refatorações – até a maneira como os desenvolvedores contribuem e discutem mudanças. Entretanto, estudos anteriores não exploram como esses fatores interagem e influenciam na degradação do design. Eles apenas focam em alguns fatores e tendem a os investigar em isolamento. Estudar os fatores em isolamento pode não explicar adequadamente qual é o conjunto mais relevante de interações entre fatores e qual sua influência na degradação do design. Isso pode indicar que abordagens existentes para evitar ou mitigar a degradação do design são incompletas, já que elas não consideram interações entre fatores que podem ser relevantes. Portanto, essa dissertação relata uma investigação que almeja aumentar a compreensão sobre como uma ampla gama de interações entre fatores pode afetar a degradação do design, para que consequentemente possam ser investigadas práticas efetivas para evitar ou mitigar esse fenômeno. Para tal fim, nós realizamos uma análise aprofundada buscando preencher lacunas no conhecimento existente sobre dois tipos de fatores: fatores relacionados ao processo (i.e. relacionados às mudanças e seus resultados produzidos) e fatores relacionados ao desenvolvedor (i.e. relacionados ao desenvolvedor trabalhando nas mudanças). Nós focamos em analisar os efeitos de possíveis interações entre os fatores previamente mencionados e uma série de sub-fatores, no que diz respeito como essas interações afetam módulos que sofreram diferentes níveis de degradação. Por exemplo, nós observamos que: (1) individualmente, tanto o sub-fator relacionado ao desenvolvedor que representa um desenvolvedor novato (que está contribuindo pela primeira vez), quanto o sub-fator relacionado ao processo que representa tamanho de uma mudança, não se mostraram relacionados a efeitos negativos na qualidade de código das classes alteradas. Porém, analisando interações entre fatores, nós observamos que mudanças em que esses dois fatores interagem tendem a ter um efeito negativo no código, causando degradação. Interessantemente, esse comportamento não se alterou mesmo quando mudança foi introduzida através de uma pull request (o que frequentemente inicia um processo de revisão de código), (2) surpreendentemente, refatorações de extração frequentemente não tem um efeito positivo na qualidade do código, enquanto, em contrapartida, as refatorações de movimentação foram predominantemente positivas. Nós também discutimos como esses achados apresentados na dissertação podem ajudar desenvolvedores e pesquisadores na melhoria de suas diretrizes sobre como evitar e monitorar a degradação do design. / [en] Developers constantly perform code changes throughout the lifetime of a project. These changes may induce the introduction of design decay over time. Design decay may be reduced or accelerated by interacting factors that underlie each change. These factors may come from specific actions of change or repair – e.g., refactorings – to how developers contribute and discuss the changes. However, existing studies do not explain how these factors interact and influence design decay. They solely tend to focus on a few types of factors, and often consider them in isolation. Interactions between factors may cause different outcomes than those previously studied. Studying factors in isolation may not properly explain what are the most relevant set of interacting factors that influence design decay. This may indicate that existing approaches to avoid or mitigate design decay are misleading since they do not consider potentially relevant interactions between various factors. Thus, this dissertation reports an investigation that aims to increase the understanding of how a wide range of interacting factors can influence design decay in order to facilitate the investigation of which practices can be used to avoid or mitigate design decay. To this end, we performed an in-depth analysis to fill knowledge gaps on two types of factors: process-related (i.e., related to changes and their produced outcomes) and developer-related (i.e., related to the developer working on the changes) factors. We focused on analyzing the effects of potential interactions between the aforementioned factors and 12 sub-factors with regards to how they affected modules with different levels of decay. We observed diverging decay patterns in these modules. Our results indicate that both types of factors can be used to distinguish between different decay levels in classes. We have also observed that: (1) individually, the developer-related subfactor that represented first-time contributors, as well as the process-related one that represented size of the changes, did not exert negative effects on the changed classes. However, when analyzing specific factor interactions, we saw that changes where both of these factors interacted tended to have a negative effect and led to decay. Interestingly, this behaviour did not alter even when the change was introduced via pull request (which usually triggers a code review process); (2) surprisingly, extraction-type refactorings often do not have a positive effect on code quality, while, by contrast, move refactorings were mostly positive. We also discuss how these findings in this dissertation can aid developers and researchers in improving their guidelines for the avoidance and monitoring of design decay.
54

[en] A MECHANISM BASED ON LOGS WITH META-INFORMATION FOR THE VERIFICATION OF CONTRACTS IN DISTRIBUTED SYSTEMS / [pt] UM MECANISMO BASEADO EM LOGS COM META-INFORMAÇÕES PARA A VERIFICAÇÃO DE CONTRATOS EM SISTEMAS DISTRIBUÍDOS

PEDRO DE GOES CARNAVAL ROCHA 19 March 2015 (has links)
[pt] Contratos de software podem ser escritos como expressões lógicas capazes de identificar falhas que ocorrem durante a utilização de um software. É possível implementar a verificação de um contrato em um software através de assertivas executáveis. No entanto, a forma como assertivas convencionais são implementadas não é diretamente aplicável a sistemas distribuídos, uma vez que apresentam dificuldades para avaliar expressões temporais, tampouco as expressões podem envolver propriedades de diferentes processos. Este trabalho propõe um mecanismo baseado em logs com meta-informações para a verificação de contratos em sistemas distribuídos. Uma gramática para redigir contratos possibilita operações temporais, ou seja, permite a especificação de condições entre eventos, em diferentes instantes de tempo, ou mesmo garante uma sequência de eventos, durante um período de tempo. O fluxo de eventos gerado é avaliado assincronamente em relação à utilização do sistema, pela comparação com contratos, previamente escritos de acordo com a gramática, que representam as expectativas sobre o comportamento normal do sistema. / [en] Software contracts can be written as assertions that identify failures observed while using the software. Software contracts can be implemented through executable assertions. However, conventional assertions are not directly applicable in distributed systems, as they present difficulties to evaluate temporal expressions, as well as expressions involving properties of different processes. This work proposes a mechanism based on logs with meta-information to evaluate contracts in distributed systems. A grammar to write contracts enable temporal operations, e.g., allows specifying conditions between events at different timestamps, or even guaranteeing a sequence of events over a period of time. The flow of events is evaluated asynchronously in relation to the system execution, by comparison with contracts, previously written according to the grammar, representing the expectations on the behavior of the system.
55

Avaliação de qualidade em aplicativos educacionais móveis / Quality evaluation of mobile learning applications

Soad, Gustavo Willians 21 June 2017 (has links)
Estudos indicam que a utilização de aplicativos educacionais móveis vêm crescendo continuamente, possibilitando a alunos e professores maior flexibilidade e comodidade na execução de atividades e práticas educacionais. Embora várias instituições já tenham aderido à modalidade de aprendizagem móvel (m-learning), sua adoção ainda traz problemas e desafios organizacionais, culturais e tecnológicos. Um destes problemas consiste em como avaliar adequadamente a qualidade dos aplicativos educacionais desenvolvidos. De fato, os métodos existentes para avaliação da qualidade de software ainda são muito genéricos, não contemplando aspectos específicos aos contextos pedagógico e móvel. Nesse cenário, o presente trabalho apresenta o método MoLEva, desenvolvido para avaliar a qualidade de aplicativos educacionais móveis. O método tem como base a norma ISO/IEC 25000, sendo composto por: (i) modelo de qualidade; (ii) métricas; e (iii) critérios de julgamento. Para validar o método, foram realizados dois estudos de caso; o primeiro consistiu na aplicação do MoLEva para avaliar o aplicativo do ENEM; o segundo consistiu na aplicação do método para avaliação de aplicativos para o ensino de idiomas. A partir dos resultados obtidos, foi possível identificar problemas e pontos de melhoria nos aplicativos avaliados. Além disso, os estudos de caso conduzidos forneceram bons indicativos a respeito da viabilidade de uso do método MoLEva na avaliação de aplicativos educacionais móveis. / Studies indicate that the use of mobile learning applications has grown continuously, allowing students and teachers greater flexibility and convenience in the execution of educational activities and practices. Although several institutions have already adhered to the mobile learning (m-learning) modality, their adoption still brings organizational, cultural and technological problems and challenges. One of these problems is how to adequately evaluated the quality of the mobile learning applications developed. In fact, existing methods for evaluating software quality are still very generic, not considering aspects specific to the pedagogical and mobile contexts. In this scenario, the present work presents the MoLEva method, developed to evaluate the quality of mobile learning applications. The method is based on the ISO / IEC 25000 standard, being composed of: (i) quality model; (ii) metrics; and (iii) criteria of judgment. To validate the method, two case studies were performed; the first consisted of applying MoLEva to evaluate the ENEM application; the second consisted of applying the method for evaluating applications for language teaching. From the obtained results, it was possible to identify problems and improvement points in the evaluated applications. In addition, the case studies conducted provided good indications regarding the feasibility of using the MoLEva method in evaluating mobile learning applications.
56

Benchmarking software requirements documentation for space applications

Paulo Claudino Véras 04 October 2011 (has links)
Poorly written requirements are a common source of software defects. In application areas like space systems, the cost of malfunctioning software can be very high. This way, assessing the quality of software requirements before coding is of utmost importance. This work proposes a systematic procedure for assessing software requirements for space systems that adopt the European Cooperation for Space Standardization (ECSS) standards. The main goal is to provide a low-cost, easy-to-use benchmarking procedure that can be applied during the software requirements review to guarantee that the requirements specifications comply with the ECSS standards, as well as they do not have any one of the most frequent errors on this kind of document. The benchmark includes three checklists that are composed of a set of questions to be applied to the requirements specification: the first is based directly on the ECSS Packet Utilization Standard (PUS), the second one is based on the Conformance and Fault Injection (CoFI) methodology, and the last one is based on a field study about the most common real errors found in software requirements specification of space applications. The goal of the field study is to understand and characterize the most frequent types of requirement problems in this critical application domain. The results of the study are also used to propose a set of operators that define how to inject realistic errors in requirement documents. The benchmark is applied to software requirements specifications of three projects (one academic project and two industrial space projects) for two of the services described in the PUS by seven specialists. The obtained results were compared and discussed.
57

Uma abordagem de teste de integração para aplicações orientadas a objetos baseada na reutilização de teste de unidade

Lucas Gonçalves Nadalete 05 August 2011 (has links)
A atividade de teste de software é realizada visando a assegurar a maior qualidade possível nos produtos de software. O uso e a aplicação de testes de unidade no desenvolvimento de software Orientado a Objetos têm sido cada vez mais comuns com o surgimento de abordagens de desenvolvimento ágil, e de técnicas como o Desenvolvimento Dirigido por Teste (TDD) na Engenharia de Software. Dessa forma, os testes aplicados em nível de integração assumem exímia relevância, ao propiciarem a validação da interoperabilidade entre as unidades que compõem o sistema de software. No entanto, o custo e esforço de se derivar ou construir, e ao mesmo tempo executar os testes de integração em uma progressão ordenada e controlada, representam variáveis que podem inviabilizar sua aplicação. Assim, o foco principal desta pesquisa recai sobre a necessidade de uma estratégia de teste de integração que possibilite o reuso dos testes de unidade gerados, no estabelecimento da precedência de integração entre as unidades, e na derivação e execução dos testes de integração, visando a reduzir o esforço e custo das atividades de teste. Dessa forma, a principal contribuição desta pesquisa consiste na concepção e desenvolvimento de uma abordagem para teste de integração em software orientado a objetos, que propicia o teste de interações interclasses. Para tornar possível sua aplicação, um diagrama de dependências entre testes de unidade, uma estratégia de derivação e execução de teste de integração e um protótipo de framework de apoio a essa atividade também foram desenvolvidos. Além de uma fundamentação teórica e de um levantamento sobre os principais trabalhos relacionados existentes, esta pesquisa apresenta a aplicação da abordagem concebida em dois estudos de caso distintos, buscando mostrar a sua aplicabilidade e exequibilidade, acompanhada por análises e discussões dos principais resultados obtidos.
58

Quality Evaluation Model for Crisis and Emergency Management Systems-of-Systems / Modelo de Avaliação de Qualidade para Sistemas-de-Sistemas de Gerenciamento de Crises e Emergência

Santos, Daniel Soares 13 March 2017 (has links)
Systems-of-Systems (SoS) have performed an important and even essential role to the whole society and refer to complex softwareintensive systems, resulted from interoperability of independent constituent systems that work together to achieve more complex missions. SoS have emerged specially in critical application domains and, therefore, high level of quality must be assured during their development and evolution. However, dealing with quality of SoS still presents great challenges, as SoS present a set of unique characteristics that can directly affect the quality of such systems. Moreover, there are not comprehensive models that can support the quality evaluation of SoS. Motivated by this scenario, the main contribution of this Masters project is to present a SoS Evaluation Model, more specifically, addressing the crisis/emergency management domain, built in the context of a large international research project. The proposed model covers important evaluation activities and considers all SoS characteristics and challenges not usually addressed by other models. This model was applied to evaluate a crisis/emergency management SoS and our results have shown it viability to the effective management of the SoS quality. / Sistemas-de-Sistemas (SoS, do inglês Systems-of-Systems) realizam um importante e até essencial papel na sociedade. Referem-se a complexos sistemas intensivos em software, resultado da interoperabilidade de sistemas constituintes independentes que trabalham juntos para realizar missões mais complexas. SoS têm emergido especialmente em domínios de aplicação crítica, portanto, um alto nível de qualidade deve ser garantido durante seu desenvolvimento e evolução. Entretanto, lidar com qualidade em SoS ainda apresenta grandes desafios, uma vez que possuem um conjunto de características únicas que podem diretamente afetar a qualidade desses sistemas. Além disso, não existem modelos abrangentes para o suporte à avaliação de qualidade de SoS. Motivado por este cenário, a principal contribuição deste projeto de mestrado é apresentar um modelo de avaliação para SoS, especialmente destinado ao domínio de gerenciamento de crises e emergências. Este modelo foi construído no contexto de um grande projeto de pesquisa internacional, e cobre as mais importantes atividades de avaliação, considerando as principais características e desafios de SoS geralmente não abordados por outros modelos. Este modelo foi aplicado na avaliação de um SoS de gerenciamento de crises e emergência, e nossos resultados têm mostrado sua viabilidade para o efetivo gerenciamento da qualidade de SoS.
59

Os processos de desenvolvimento de software: uma investigação sobre a qualidade / The processes of software development: an investigation about quality

Segoria, Angelita Moutin 06 August 2001 (has links)
As realizações e atividades desenvolvidas pelo homem em qualquer segmento produtivo são geradas pela percepção de suas necessidades, pelo acompanhamento da evolução tecnológica e pela adequação aos cenários e aos comportamentos da sociedade, seguindo uma abordagem global. Questões relacionadas aos programas de melhoria da qualidade na indústria do software, hoje caracterizadas como competências qualificadoras para a competitividade, tornar-se-ão um conjunto de exigências básicas para a sobrevivência de longo prazo no mercado internacional. Esta realidade faz parte das empresas do mundo todo, principalmente da empresa brasileira, dada a meta de desenvolvimento e melhoria da qualidade de vida estabelecida para a sociedade. Neste contexto, o mercado em que atuam as empresas de pequeno porte é extremamente competitivo. Em se tratando de melhoria de desenvolvimento de software, o CMM (Capability Maturity Model), desenvolvido pelo Instituto de Engenharia de Software, da Universidade de Carnegie Mellon, por solicitação do Departamento de Defesa Norte Americano, tem como objetivos: avaliar o nível de maturidade das empresas desenvolvedoras de software e propor melhorias para seus processos. Este modelo apresenta cinco níveis crescentes de maturidade: inicial, repetível, definido, gerenciado e em otimização. O objetivo desta dissertação é apresentar uma contribuição às empresas desenvolvedoras de software, em especial às de pequeno porte, que desejam aumentar a qualidade de sues processos de desenvolvimento, utilizando um modelo o qual fora desenvolvido originalmente para grandes empresas e projetos. A investigação exploratória sobre a qualidade nos processos de desenvolvimento de software será enriquecida através de uma aplicação, a qual será realizada em uma empresa desenvolvedora de soluções de software localizada no município de São Carlos, interior de São Paulo. / As technology developments becomes more integrated with everyday business activities, the search for quality has become more important than ever in today\'s organizations. For Brazilian companies that develop software, the quality of the final product is directly related to the quality of its development process. Related to the software quality, the CMM (Capabllity Maturity Model) developed by the Software Engineering Institute of Carnegie Mellon University, is a mo dei that assist companies in the evaluation of its current software development process and enables improvements for this process. This model presents five growing levels of maturity: initial, repeatable, defined, managed and in optimizing. The main goal of this work is to extend through an investigation the state of art of software quality engineering, and to apply the principies and practices of the Second Level of the CMM in a small Brazilian company.
60

Qualidade de Produto de Software: uma abordagem baseada no controle da complexidade / Software product quality: an approach based on complexity control

Criscuolo, Marcelo 01 April 2008 (has links)
É rara a preocupação com a qualidade de implementação de software. Pode-se observar que as estruturas internas dos softwares são freqüentemente complexas e desorganizadas, especialmente no caso dos softwares que são ditos orientados a objetos. Essa complexidade afeta diretamente a manutenibilidade e a susceptibilidade a erros, dificultando a alteração e a adição de novas funcionalidades aos softwares. As próprias alterações, inerentes aos softwares, os tornam mais complexos, o que agrava o problema. Neste contexto, acredita-se que o controle da complexidade pode levar a produtos de software de melhor qualidade. Assim, trata-se neste trabalho da manutenção preventiva, implementada por meio de inspeções, refatorações e análise de métricas. São estudadas falhas de manutenibilidade em uma amostra de programas orientados a objetos e, a partir dos resultados, são propostos artefatos de apoio para um processo de inspeção de software e modelos para os produtos de trabalho gerados nesse processo. Propõe-se o uso da técnica de leitura PBR (Leitura Baseada em Perspectivas) como uma maneira de se melhorar a detecção de falhas de manutenibilidade. Finalmente, a proposta deste trabalho foi validada por meio de um estudo de caso / The commitment with the quality of software implemetation is rare. It\'s possible to observe that the software internal structures are frequently complex and disorganized, especially when talking about software that is said to be object-oriented. This complexity directly affects maintainability and error proneness, making it difficult to change and to add new functionalities to software. Changes themselves, that are inherent in software, make it more complex, and that makes the problem more serious. In this context, it\'s believed that the control of complexity can lead to better quality software products. Thus, the subject of this work is the preventive maintenance, implemented by means of inspections, refactoring and metric analysis. Maintenance flaws were studied in a sample of object-oriented programs and, based on the results, support artifacts for an inspection process were proposed, along with models of work products for this process. The use of PBR (Perspective-Based Reading) technique is proposed as a means of improving the detection of maintenance flaws. Finally, the proposal of this work is validated through a case study

Page generated in 0.4713 seconds