• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 75
  • 20
  • 10
  • 5
  • 1
  • 1
  • Tagged with
  • 132
  • 132
  • 49
  • 47
  • 31
  • 28
  • 22
  • 21
  • 17
  • 17
  • 17
  • 15
  • 14
  • 14
  • 14
  • 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.
121

Metamodel co-evolution with related model-driven engineering artifacts : a multi-objective search framework

Kessentini, Wael 08 1900 (has links)
No description available.
122

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

Oliva, Gustavo Ansaldi 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.
123

[en] ARCHITECTURE FOR COORDINATION AND COMPOSITION OF SOFTWARE / [pt] UMA ARQUITETURA PARA A COORDENAÇÃO E A COMPOSIÇÃO DE ARTEFATOS DE SOFTWARE

GUSTAVO ROBICHEZ DE CARVALHO 16 October 2003 (has links)
[pt] A engenharia de software baseada em componentes é uma abordagem que prevê a reutilização de artefatos de software na geração de um conjunto de aplicações. Ao desenvolver aplicações com esta abordagem, é preciso reunir ou compor componentes de software já existentes. Após compor estas unidades, é necessário coordenar as interdependências estabelecidas entre elas para adequar a aplicação em desenvolvimento à resolução do problema. Esta dissertação propõe uma arquitetura de software que separa e estrutura os conceitos de coordenação, composição e componentes de software em camadas arquiteturais. A partir desta estrutura, espera-se que modificações específicas em construções de uma camada tenham o mínimo de influência sobre as demais. ACCA (Arquitetura para a Coordenação e a Composição de Artefatos de Software) deve ser entendida como uma estrutura conceitual utilizada para organizar o desenvolvimento de software baseado em componentes. Além disto, são apresentados um framework para ilustrar a realização da camada de composição de ACCA, o processo de reificação de ACCA e um processo de desenvolvimento de software utilizando a abordagem proposta. / [en] Component Based Software Engineering is an approach for reusing software artifacts when developing applications. In order to develop solutions using this approach, it is necessary to compose software using components that have already been developed. After putting those pieces together, we need to coordinate the interdependencies established among those compositions to fulfill the requirements, needed to resolve a problem. This dissertation proposes a software architecture that separates and structures the concepts of coordination, composition and software components in different architectural layers. Using this approach, we expect that specific modifications in layer constructions have the minimum impact on the others layers. ACCA (Architecture for Coordination and Composition of software Artifacts) must be understood as a conceptual structure that is used to organize component based software development. It also presents a composition framework, the reification process for ACCA and a software development process organized using this approach.
124

Modelling software quality : a multidimensional approach

Vaucher, Stéphane 11 1900 (has links)
Les sociétés modernes dépendent de plus en plus sur les systèmes informatiques et ainsi, il y a de plus en plus de pression sur les équipes de développement pour produire des logiciels de bonne qualité. Plusieurs compagnies utilisent des modèles de qualité, des suites de programmes qui analysent et évaluent la qualité d'autres programmes, mais la construction de modèles de qualité est difficile parce qu'il existe plusieurs questions qui n'ont pas été répondues dans la littérature. Nous avons étudié les pratiques de modélisation de la qualité auprès d'une grande entreprise et avons identifié les trois dimensions où une recherche additionnelle est désirable : Le support de la subjectivité de la qualité, les techniques pour faire le suivi de la qualité lors de l'évolution des logiciels, et la composition de la qualité entre différents niveaux d'abstraction. Concernant la subjectivité, nous avons proposé l'utilisation de modèles bayésiens parce qu'ils sont capables de traiter des données ambiguës. Nous avons appliqué nos modèles au problème de la détection des défauts de conception. Dans une étude de deux logiciels libres, nous avons trouvé que notre approche est supérieure aux techniques décrites dans l'état de l'art, qui sont basées sur des règles. Pour supporter l'évolution des logiciels, nous avons considéré que les scores produits par un modèle de qualité sont des signaux qui peuvent être analysés en utilisant des techniques d'exploration de données pour identifier des patrons d'évolution de la qualité. Nous avons étudié comment les défauts de conception apparaissent et disparaissent des logiciels. Un logiciel est typiquement conçu comme une hiérarchie de composants, mais les modèles de qualité ne tiennent pas compte de cette organisation. Dans la dernière partie de la dissertation, nous présentons un modèle de qualité à deux niveaux. Ces modèles ont trois parties: un modèle au niveau du composant, un modèle qui évalue l'importance de chacun des composants, et un autre qui évalue la qualité d'un composé en combinant la qualité de ses composants. L'approche a été testée sur la prédiction de classes à fort changement à partir de la qualité des méthodes. Nous avons trouvé que nos modèles à deux niveaux permettent une meilleure identification des classes à fort changement. Pour terminer, nous avons appliqué nos modèles à deux niveaux pour l'évaluation de la navigabilité des sites web à partir de la qualité des pages. Nos modèles étaient capables de distinguer entre des sites de très bonne qualité et des sites choisis aléatoirement. Au cours de la dissertation, nous présentons non seulement des problèmes théoriques et leurs solutions, mais nous avons également mené des expériences pour démontrer les avantages et les limitations de nos solutions. Nos résultats indiquent qu'on peut espérer améliorer l'état de l'art dans les trois dimensions présentées. En particulier, notre travail sur la composition de la qualité et la modélisation de l'importance est le premier à cibler ce problème. Nous croyons que nos modèles à deux niveaux sont un point de départ intéressant pour des travaux de recherche plus approfondis. / As society becomes ever more dependent on computer systems, there is more and more pressure on development teams to produce high-quality software. Many companies therefore rely on quality models, program suites that analyse and evaluate the quality of other programs, but building good quality models is hard as there are many questions concerning quality modelling that have yet to be adequately addressed in the literature. We analysed quality modelling practices in a large organisation and identified three dimensions where research is needed: proper support of the subjective notion of quality, techniques to track the quality of evolving software, and the composition of quality judgments from different abstraction levels. To tackle subjectivity, we propose using Bayesian models as these can deal with uncertain data. We applied our models to the problem of anti-pattern detection. In a study of two open-source systems, we found that our approach was superior to state of the art rule-based techniques. To support software evolution, we consider scores produced by quality models as signals and the use of signal data-mining techniques to identify patterns in the evolution of quality. We studied how anti-patterns are introduced and removed from systems. Software is typically written using a hierarchy of components, yet quality models do not explicitly consider this hierarchy. As the last part of our dissertation, we present two level quality models. These are composed of three parts: a component-level model, a second model to evaluate the importance of each component, and a container-level model to combine the contribution of components with container attributes. This approach was tested on the prediction of class-level changes based on the quality and importance of its components: methods. It was shown to be more useful than single-level, traditional approaches. To finish, we reapplied this two-level methodology to the problem of assessing web site navigability. Our models could successfully distinguish award-winning sites from average sites picked at random. Throughout the dissertation, we present not only theoretical problems and solutions, but we performed experiments to illustrate the pros and cons of our solutions. Our results show that there are considerable improvements to be had in all three proposed dimensions. In particular, our work on quality composition and importance modelling is the first that focuses on this particular problem. We believe that our general two-level models are only a starting point for more in-depth research.
125

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.
126

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
127

Developer-Centric Software Assessment

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

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.
129

Coping with evolution in information systems: a database perspective

Lawrence, Gregory 25 August 2009 (has links)
Business organisations today are faced with the complex problem of dealing with evolution in their software information systems. This effectively concerns the accommodation and facilitation of change, in terms of both changing user requirements and changing technological requirements. An approach that uses the software development life-cycle as a vehicle to study the problem of evolution is adopted. This involves the stages of requirements analysis, system specification, design, implementation, and finally operation and maintenance. The problem of evolution is one requiring proactive as well as reactive solutions for any given application domain. Measuring evolvability in conceptual models and the specification of changing requirements are considered. However, even "best designs" are limited in dealing with unanticipated evolution, and require implementation phase paradigms that can facilitate an evolution correctly (semantic integrity), efficiently (minimal disruption of services) and consistently (all affected parts are consistent following the change). These are also discussed / Computing / M. Sc. (Information Systems)
130

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.

Page generated in 0.0656 seconds