• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 60
  • 20
  • 10
  • 4
  • 1
  • 1
  • Tagged with
  • 116
  • 116
  • 41
  • 39
  • 29
  • 24
  • 22
  • 19
  • 17
  • 17
  • 14
  • 14
  • 13
  • 12
  • 12
  • 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.
111

Change-effects analysis for effective testing and validation of evolving software

Santelices, Raul A. 17 May 2012 (has links)
The constant modification of software during its life cycle poses many challenges for developers and testers because changes might not behave as expected or may introduce erroneous side effects. For those reasons, it is of critical importance to analyze, test, and validate software every time it changes. The most common method for validating modified software is regression testing, which identifies differences in the behavior of software caused by changes and determines the correctness of those differences. Most research to this date has focused on the efficiency of regression testing by selecting and prioritizing existing test cases affected by changes. However, little attention has been given to finding whether the test suite adequately tests the effects of changes (i.e., behavior differences in the modified software) and which of those effects are missed during testing. In practice, it is necessary to augment the test suite to exercise the untested effects. The thesis of this research is that the effects of changes on software behavior can be computed with enough precision to help testers analyze the consequences of changes and augment test suites effectively. To demonstrate this thesis, this dissertation uses novel insights to develop a fundamental understanding of how changes affect the behavior of software. Based on these foundations, the dissertation defines and studies new techniques that detect these effects in cost-effective ways. These techniques support test-suite augmentation by (1) identifying the effects of individual changes that should be tested, (2) identifying the combined effects of multiple changes that occur during testing, and (3) optimizing the computation of these effects.
112

Técnicas para compreensão de rastros de execução de programas orientados a objetos

Silva, Luciana Lourdes 22 February 2011 (has links)
Several attempts to facilitate understanding the behavior of software systems have been proposed. Perfective changes in well-established software systems are easier to perform when the development team has a solid understanding of the internals. However, it is reasonable to assume that the use of an open source system to incorporate new features and obtain a new software product is an appealing approach instead of coding a new product from scratch. Considering this scenario, and considering that it is not uncommon that systems are poorly documented, there is no widely accepted approach to guide the perfective maintenance for developers with low understanding of the system or that recovers high-level information about both the structure and the behavior of large systems. This work proposes a new approach to simplify comprehension tasks of object oriented programs through the analysis of summarized execution traces. The approach is perfomed on two techniques: The rst technique enables the separation of common parts of source code from specic parts related to important features that drive the addition of the new one. An evaluation is done to verify if the summarized execution traces helps the technique to locate potential elements of code that can guide the development of a new feature. The evaluation was conducted with real-world systems and with meaningful evolution tasks. The second is based on a technique that reconstructs structural and behavioral highlevel diagrams by the analysis of summarized execution traces. Precision and recall were evaluated using two third-party open-source systems, including the webserver Tomcat. The result suggests the feasibility for using the approach on real world large scale systems. / Várias abordagens para facilitar a compreensão do comportamento de sistemas de software têm sido propostas. Mudanças perfectivas em sistemas de software bem estabelecidos são mais fáceis de executar quando a equipe de desenvolvimento tem um entendimento sólido do código fonte. Mas é razoável assumir que o uso de um sistema de código aberto para incorporar novas características e obter um novo produto de software é uma abordagem interessante, ao invés de codificar um novo produto a partir do zero. Em consideração a este cenário e considerando que não é incomum sistemas pobres em documentação, não existe uma abordagem amplamente aceita para guiar em mudanças perfectivas desenvolvedores com baixo conhecimento do sistema ou que recupera informações em alto nível de abstração sobre a estrutura e comportamento de sistemas complexos. Este trabalho propõe uma nova abordagem para simplificar tarefas de compreensão de programas orientados a objetos através da análise de rastros de execução sumarizados. A abordagem é aplicada sobre duas técnicas: a primeira permite a separação de partes comuns do código fonte das partes específicas relacionadas a características importantes que conduz a adição de uma nova. Uma avaliação é feita para verificar se os rastros de execução sumarizados ajudam a técnica na localização de elementos potenciais de código que podem guiar o desenvolvimento de uma nova característica. A avaliação foi realizada com sistemas do mundo real e com tarefas de evolução significativas. A segunda é baseada na reconstrução de diagramas estruturais e comportamentais de alto nível baseada na análise de rastros de execução sumarizados. É apresentada uma avaliação do desempenho da abordagem em termos de precisão e recall em dois sistemas públicos de terceiros, dentre eles o servidor Web Tomcat. O resultado sugere a viabilidade da abordagem para uso em sistemas reais de larga escala. / Mestre em Ciência da Computação
113

Developer-Centric Software Assessment

Makedonski, Philip 12 April 2018 (has links)
No description available.
114

Identificação e visualização de dependências em sistemas de software orientados a objetos / Identification and Visualization of Dependencies in Object-Oriented Software Systems

Gustavo Ansaldi Oliva 22 September 2011 (has links)
Degradação do design é um problema central investigado na área de evolução de software. A densa rede de interdependências que emerge entre classes e módulos ao longo do tempo resulta em código difícil de mudar, não reutilizável e que não comunica por si só sua intenção. Dentre outros motivos, designs degradam porque requisitos mudam de maneiras não antecipadas pelo design inicial, ou seja, as modificações no código introduzem dependências novas e não planejadas entre classes e módulos do sistema. A gerência de dependências visa reduzir a degradação do design por meio de uma série de mecanismos que auxiliam na administração da complexidade estrutural inerente de sistemas orientados a objetos. Neste trabalho, investigamos as técnicas de identificação de dependências estruturais e lógicas. Em particular, por meio de um estudo de larga escala, comparamos os conjuntos desses dois tipos de dependências. Em seguida, conduzimos um estudo de caso a fim de identificar as origens de dependências lógicas. Por fim, fazemos um levantamento das técnicas de visualização de dependências e mostramos a ferramenta XFlow. / Design degradation is a central problem investigated in the area of software evolution. The dense web of interdependencies that emerges among classes and modules over time results in code that is hard to change, not reusable and that does not communicate its intention. Among other reasons, designs degrade because requirements changes in ways that were not anticipated by the initial design, i.e. the changes in code introduce new and unplanned dependencies among classes and modules of the system. Dependency management aims to reduce design degradation by means of a series of mechanisms that helps in the management of the inherent structural complexity of object oriented systems. In this work, we investigate structural and logical dependencies identification techniques. In particular, by means of a large scale study, we compare the sets of these two kinds of dependencies. Afterwards, we conduct a case study in order to uncover the origins of logical dependencies. Finally, we survey dependency visualization techniques and present the XFlow tool.
115

Habilitando a checagem estática de conformidade arquitetural de software em evolução. / Enabling static architectural compliance checking of evolving software.

BITTENCOURT, Roberto Almeida. 03 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-03T17:58:25Z No. of bitstreams: 1 ROBERTO ALMEIDA BITTENCOURT - TESE PPGCC 2012..pdf: 33887570 bytes, checksum: 348d0986ffb03c3554fefac4ab926a5a (MD5) / Made available in DSpace on 2018-08-03T17:58:25Z (GMT). No. of bitstreams: 1 ROBERTO ALMEIDA BITTENCOURT - TESE PPGCC 2012..pdf: 33887570 bytes, checksum: 348d0986ffb03c3554fefac4ab926a5a (MD5) Previous issue date: 2012-02-29 / A técnica dos modelos de reflexão é um processo de checagem de conformidade entre visões arquiteturais modulares e implementação que permite prevenir e remediar o envelhecimento de software através do combate à deterioração arquitetural. Contudo, o esforço manual necessário para aplicar a técnica pode terminar evitando seu uso na prática, especialmente no contexto de evolução de software em processos de desenvolvimento leves. Em termos mais específicos, a técnica é custosa para: i) produzir um modelo de alto nível e o mapeamento entre as entidades do código-fonte e este modelo; ii) manter tanto o modelo como o mapeamento atualizados à medida que o software evolui; e Ui) analisar a normalmente longa lista de violações arquiteturais no código fonte. Este trabalho procura habilitar a checagem de conformidade estática de software em evolução através da automação parcial do esforço manual para aplicar a técnica de modelos de reflexão. Para fazê-lo, primeiramente é avaliado o potencial de técnicas de agrupamento para a geração e manutenção de modelos de alto nívei. Também é proposta e avaliada uma técnica de mapeamento incremental entre entidades do código-fonte e modelos de alto nível baseada na combinação da recuperação de informação de vocabulário de software com dependências estruturais. Por fim, uma técnica de priorização baseada na história do software para recomendar as violações arquiteturais no código-fonte mais provavelmente relevantes do ponto de vista dos desenvolvedores de software é relatada e avaliada. Técnicas de agrupamento são avaliadas através de medidas de acurácia e estabilidade. Os resultados para quatro diferentes algoritmos de agrupamento mostram que nenhum deles consegue o melhor desempenho para todas as medidas, e que todos eles apresentam limitações para prover a geração automática de modelos de alto nível. Por outro lado, a avaliação sugere que a etapa de mapeamento da técnica de modelos de reflexão pode ser habilitada pela técnica proposta de mapeamento incremental automático que combina estrutura e vocabulário. Em dois estudos de caso, esta técnica obteve os maiores valores de medidaF em mudanças de código-fonte unitárias, pequenas ou grandes. Finalmente, a avaliação da técnica de priorização de violações mostra que, de cinco fatores estudados, a duração da violação e a co-locação da violação correlacionam bem com a relevância das violações. Os resultados sugerem que estes fatores podem ser usados para ordenar as violações mais provavelmente relevantes, com uma melhoria de pelo menos 57% em relação a uma linhabase de violações selecionadas aleatoriamente. A análise dos resultados sugere que a produção de modelos de alto nível para checagem estática de conformidade arquitetural pode ser auxi'iada por um processo semi-automático de recuperação arquitetural, e, à medida que o software evolui, por técnicas incrementais de agrupamento/mapeamento. Por outro lado, a análise dos resultados para a técnica de priorização sugere a eficácia de uma abordagem automatizada para a recomendação de violações arquiteturais a serem analisadas pelos desenvolvedore: do software. / The refíexion model technique is a static conformance checking technique to keep architecture module views and implementation conformant. It can either prevent or remedy software aging by combating architecture deterioration. However, the amount of manual effort to apply the technique may prevent its use in practice, especially in the context of software evolution in lightweight development methods. More specifically, it can be time-consuming and costly to: i) produce a high-level model and the mapping between source code entities and this model; ii) keep both model and mapping up-to-date as software evolves; and Ui) analyze the usual large number of architectural violations in the source code reported by the technique. This work tries to enable static conformance checking of evolving software by partially automating the manual effort to apply the refíexion model technique. To do so, the potential of clustering techniques to generate high-level models and keep them up-to-date is evaluated. It is also proposed and evaluated an incremental mapping approach between source code entities and high-level models based on the combination of information retrieval of software vocabulary and structural dependencies. Last, a prioritizing technique based on software history to recommend architectural violations in the source code most likely to be relevant to software developers is reported and evaluated. Clustering techniques are evaluated by measures of accuracy and stability, and results for four different clustering algorithms show that none of them performs best for ali measures, and that they are limited to provide fully automated generation of high-level models. On the other hand, evaluation suggests that the mapping step in the refíexion model technique can be enabled by the proposed incremental automated mapping technique that combines structure and vocabulary. In two case studies, the combined technique showed the highest F-measure values for both singleton, small and large source code changes. Finally, evaluation for the prioritizing technique shows that, from five studied factors, violation duration and violation co-location correlate well with violation relevance. Results suggest that these factors can be used to rank the violations most likely to be relevant, with an improvement of at least 57% against a baseline of randomly selected violations. Analysis of the results suggests that the producton of high-level models for static conformance checking can be aided by a semi-automated architecture recovery process, and, as software evolves, by incremental clustering/mapping techniques. On the other hand, analysis of the results for the prioritizing technique suggests the effectiveness of an automated approach to recommend architectural violations to bí analyzed by software developers.
116

TraceME: Traceability-based Method for Conceptual Model Evolution

Ruiz Carmona, Luz Marcela 23 May 2016 (has links)
[EN] Renewing software systems is one of the most cost-effective ways to protect software investment, which saves time, money and ensures uninterrupted access to technical support and product upgrades. There are several motivations to promote investment and scientific effort for specifying systems by means of conceptual models and supporting its evolution. In order to contribute to the requirements engineering field with automated software production methods, we design TraceME to cover the spectrum of activities from requirements to code focusing on organisational evolution. In this sense, the spectrum of activities involves various information system perspectives of analysis that need to be integrated. In this complex setting, traceability and conceptual models are key concepts. Mechanisms to trace software specifications from requirements to code are important to justify evolution processes; versions of information systems should be traced in order to get the connection between old and new specifications. Moreover, it is necessary to find mechanisms to facilitate change specifications, measurement, and interpretation. To design this thesis we follow Design Science by Roel Wieringa. Design Science gives us the hints on how to conduct the research, be rigorous, and put in practice scientific rules. Besides Design Science has been a key factor for structuring our research, we acknowledge the application of this framework since it has helps us to report clearly our findings. We build TraceME by making a method engineering effort, which shapes its fragmented nature in chunks. The architecture of TraceME opens a wide window of opportunities for its application in real world situations. To facilitate industrial adoption, we develop open source tools to support the implementation of the TraceME chunks. For example, one case study and one action-research protocols have been executed in two different organisations in Spain. The validation of TraceME has taken place in laboratory demonstrations, controlled experiments, action research and case study experiences in industry. Thanks to the validations various lessons learnt have been gathered and greatly influenced the maturity of the method. For example: the importance to consider end-users' perceptions for discovering needs to mitigate, and the significance to get knowledge from the application of TraceME in different contexts. The evidences from the validations demonstrate that TraceME is feasible to be applied to support evolution projects. In addition, future research is needed for promoting the implementation of TraceME. We envision short term and future-term work that motivate us to tackle the challenge to support evolution projects. / [ES] La evolución de sistemas software es una de las actividades mas importantes que permiten minimizar el tiempo de puesta en producción de actualizaciones y nuevos desarrollos, reducir los costos que implica desarrollar una aplicación desde cero, y además asegura el acceso ininterrumpido de servicios. Existen variadas motivaciones para promover la investigación y desarrollo de soluciones para especificar y evolucionar sistemas de información mediante modelos conceptuales. Para contribuir al campo de la ingeniería de requisitos con métodos automáticos de producción de software, hemos diseñado el método TraceME para cubrir el espectro de actividades desde requisitos a código con un enfoque de evolución organizacional. De este modo, el espectro de actividades involucra diferentes perspectivas de análisis de sistemas de información que necesitan ser integradas. En este escenario tan complejo, la trazabilidad y los modelos conceptuales son conceptos clave. Es necesario disponer de mecanismos para trazar especificaciones de software desde requisitos a código con el fin de justificar procesos de evolución. Las versiones de los sistemas de información deben ser trazables con el fin de establecer la conexión entre especificaciones obsoletas y actuales. Adicionalmente, es necesario encontrar mecanismos para facilitar la especificación del cambio, su medición e interpretación. Para diseñar esta tesis hemos seguido el marco de Design Science de Roel Wieringa. Design Science nos ha proporcionado las claves para conducir esta investigación, ser rigurosos y poner en práctica reglas científicas. Además de que Design Science ha sido un factor clave para estructurar nuestra investigación, reconocemos que la aplicación de este marco nos ha ayudado a reportar claramente nuestros hallazgos. Hemos aplicado ingeniería de métodos para diseñar y construir TraceME. Gracias a esto, la naturaleza de TraceME es conformada mediante fragmentos de método. La arquitectura de TraceME abre una amplia ventana de oportunidades para su aplicación en situaciones de la vida real. Para facilitar la adopción industrial de TraceME, hemos desarrollado herramientas de software libre para dar soporte a los fragmentos de TraceME. Por ejemplo, un caso de estudio y una experiencia de action research han sido ejecutadas en dos organizaciones en España. La validación de TraceME ha sido llevada a cabo mediante demostraciones de laboratorio, experimentos controlados, un caso de estudio y una experiencia de action research en industria. Como resultado, TraceME ha sido mejorado considerablemente; además hemos descubierto investigaciones a realizar a corto, mediano y largo plazo con el fin de implementar TraceME en la industria. Las evidencias obtenidas como resultado de las validaciones demuestra la factibilidad de TraceME para ser aplicado en proyectos de evolución organizacional. El trabajo futuro nos motiva a afrontar los retos que conlleva el soporte de proyectos de evolución de sistemas de información. / [CAT] L'evolució dels sistemes programari és una de les activitats més importants que permeten minimitzar el temps de posada en producció d'actualitzacions i nous desenvolupaments, reduir els costos que involucra desenvolupar una aplicació des de cero, a més d' assegurar l'accés ininterromput de serveis. Existixen diverses motivacions per promoure la investigació i desenvolupament de solucions per a especificar i evolucionar sistemes de informació mitjançant models conceptuals. Per tal de contribuir al camp de l'enginyeria de requisits amb mètodes automàtics de producció de programari, hem dissenyat el mètode TraceME per cobrir l'espectre d'activitats des de requisits a codi en un enfocament d'evolució organitzacional. Així, l'espectre d'activitats involucra diferents perspectives d'anàlisi de sistemes d'informació que necessiten ser integrades. En aquest escenari tan complex, la traçabilitat i els models conceptuals són conceptes clau. És necessari disposar de mecanismes per traçar especificacions de programari des de requisits a codi amb la fi de justificar processos d'evolució. Les versions dels sistemes d'informació deuen ser traçables amb la fi d'establir la connexió entre especificacions obsoletes i actuals. Addicionalment, és necessari trobar mecanismes per facilitar l'especificació del canvi, la seua mesura i interpretació. Per tal de dissenyar aquesta tesi, hem seguit el marc de Design Science de Roel Wieringa. Design Science ens ha proporcionat les claus per conduir aquesta investigació, ser rigorosos i posar en pràctica regles científiques. A més a més, Design Science ha sigut un factor clau per estructurar la nostra investigació, reconeixem que l'aplicació de aquest marc ens a ajudat a reportar clarament els nostres resultats. Hem aplicat enginyeria de mètodes per dissenyar i construir TraceME. Gràcies a açò, la natura de TraceME es conforma mitjançant fragments de mètodes. L'arquitectura de TraceME obri una ampla finestra d'oportunitats per a la seua aplicació en situacions de la vida real. Per facilitar l'adopció industrial de TraceME, hem desenvolupat ferramentes de programari lliure per tal de donar suport als fragments de TraceME. Per exemple, un cas d'estudi i una experiència de action research han sigut executades en dos organitzacions a Espanya. La validació de TraceME ha sigut portada a cap mitjançant demostracions de laboratori, experiments controlats , un cas d'estudi i una experiència de action research en l'industria. Com a resultat, TraceME ha sigut millorada considerablement; a més a més, hem descobert investigacions a realitzar a curt, mig i llarg termini amb la fi d'implementar TraceME a l'industria. Les evidències obtingudes com a resultat de les validacions, demostren la factibilitat de TraceME per ser aplicat en projectes d'evolució organitzacional. El treball futur presenta nous reptes que ens motiven a afrontar el suport de projectes d'evolució de sistemes d'informació. / Ruiz Carmona, LM. (2016). TraceME: Traceability-based Method for Conceptual Model Evolution [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/64553 / TESIS

Page generated in 0.0489 seconds