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

[en] SOFTWARE ENGINEERING FOR OPEN SOURCE SOFTWARE / [pt] ENGENHARIA DE SOFTWARE PARA SOFTWARE LIVRE

ROBERTO DE HOLANDA CHRISTOPH 03 May 2004 (has links)
[pt] Software livres têm despertado bastante atenção, não apenas devido a popularidade obtida por alguns destes como o Linux e o Apache, mas também pela forma singular como estes sistemas são desenvolvidos e sua quantidade de adeptos. No entanto, em alguns projetos de software livre, a documentação existente dificulta a entrada de novos participantes, já que devido a informalidade do processo de desenvolvimento deste tipo de software, é comum que a documentação do sistema não receba muita atenção. Este trabalho colabora para um melhor entendimento do desenvolvimento de software livres, relacionando-o com as questões de evolução de software. Será apresentada uma proposta utilizada no software livre C e L para documentar em termos da aplicação o código do sistema, utilizando-se do conceito de cenários. Será mostrado através de um protótipo que um software seguindo esse padrão proposto pode produzir uma documentação que torna mais fácil seu entendimento para novos participantes do projeto. / [en] This thesis presents an introduction on the use of the thermal desorption technique that is based on the direct heating of the soil, for the remediation of contaminated areas. Heat propagation through soils can be mathematically simulated using coupled heat-moisture transfer theories. In order to make this simulation possible it is necessary to identify the required parameters: hydraulic conductivity as a function of volumetric water content, thermal conductivity as a function of volumetric water content, volumetric heat capacity, and soil-water characteristic curve. One technical description of such parameters is presented. Two different kinds of soils were used, one clay- sand (CH) and one sandclay (SC). A study physico-chemical was done talking into consideration the temperature effect on the soils with X-Ray, electron microscopic investigation, CTC, Atterberg Limits and at the particle size distribution. The study was done on pre-heated soils with temperatures ranging from 20 Celsius Degrees to 300 Celsius Degrees. Equipments and methodologies have been especially developed for the study of the thermo-hydraulics proprieties. The laboratory tests program consisted of hydraulic conductivity, retention curves and deformability, taking into account the temperature effects. During the tests it was observed that all parameters were temperature dependent. The thermal parameters, thermal conductivity and heat capacity were studied for both soils.
2

[en] EVOLUTION OF SCENES THROUGH A MECHANISM OF TRACKING BASED ON TRANSFORMATIONS / [pt] EVOLUÇÃO DE CENÁRIOS ATRAVÉS DE UM MECANISMO DE RASTREAMENTO BASEADO EM TRANSFORMAÇÕES

ULF BERGMANN 02 September 2003 (has links)
[pt] A importância da rastreabilidade na evolução de sistemas é um fato amplamente reconhecido, mas apesar dos esforços despendidos até agora, ainda encontramos vários obstáculos a sua efetiva utilização. Esses obstáculos são relacionados a geração e validação das informações sobre os relacionamentos e interdependências entre o mundo real, os requisitos e o sistema de software. Estas informações freqüentemente não são confiáveis devido a inconsistência causada pela evolução distinta dos vários artefatos resultantes do processo de desenvolvimento de um sistema. Esta tese tem como objetivo estudar a utilização da tecnologia transformacional na implementação de um mecanismo de rastreamento de maneira a se obter a atualização automática das informações de rastreamento, através da identificação das mudanças ocorridas entre versões consecutivas dos artefatos produzidos e o seu subseqüente armazenamento na forma de transformações. Os benefícios obtidos pelo uso deste mecanismo permitirão: a eliminação dos problemas da falta de atualização das informações de rastreamento e o conseqüente aumento do valor destas informações para o desenvolvedor; a sistematização do processo de rastreamento; e a diminuição do custo para se obter, atualizar e validar as informações de rastreamento. Além destes benefícios, o armazenamento das informações de rastreamento na forma de transformações incorpora um maior conhecimento sobre a modelagem realizada, ao contrário de outros mecanismos que armazenam somente os artefatos e seus interrelacionamentos estáticos. / [en] The importance of traceability in software evolutions was quite established, but despite the effort spent, they are many issues that difficult they effective use. These issues are related to the generating and validating of trace information about the relationships and interdependencies between the real world, the requirements and the software system. This information is often mistrusted since they may have become obsolete due to separate evolution of models and systems. This thesis study the use of the transformational technology in the implementation of a traceability mechanism that automatically obtain trace information by identifying the changes made in consecutive artifact versions and store it as transformations. The main advantages gained with it uses are the elimination of the problems of the lack of trace information updating, the systematization of the trace process and the decrease of the cost to obtain, update and validate trace information. Besides these benefits, the storage of trace information in the form of transformations incorporates a larger knowledge on the accomplished modeling, unlike other mechanisms that only store the artifacts and their static inter- relationships.
3

[en] A SOFTWARE COMPONENT MODEL WITH SUPPORT FOR MULTIPLE VERSIONS / [pt] UM MODELO DE COMPONENTES DE SOFTWARE COM SUPORTE A MÚLTIPLAS VERSÕES

HUGO ROENICK 08 September 2011 (has links)
[pt] Diversos modelos de componentes de software para sistemas distribuídos já foram propostos pela indústria e pela academia, tais como Fractal, CCM, COM, OpenCOM, LuaCCM, e SCS. Uma das principais vantagens comumente atribuídas à abordagem de desenvolvimento baseado em componentes de software é o melhor suporte à extensibilidade independente (independent extensibility). Entretanto, a gerencia de múltiplas versões de componentes ainda é um grande desafio, especialmente quando não é possível atualizar todos os componentes do sistema ao mesmo tempo e passa a ser necessária a coexistencia, em um mesmo sistema, de diferentes versões de um mesmo componente. Neste trabalho, procuramos identificar os pontos fundamentais para oferecer suporte a múltiplas versões de interfaces de componentes de software e propor um modelo que ofereça esse suporte. Como avaliação da proposta, iremos estender o sistema de componentes SCS para dar suporte ao modelo proposto. Com base no histórico de evolução de diferentes componentes SCS utilizados em uma aplicação real, realizaremos experimentos com a nova versão do SCS para verificar a eficácia do modelo proposto. / [en] Several software component models for distributed systems have been proposed by the industry and academy, such as Fractal, CCM, COM, OpenCOM, LuaCCM, and SCS. One of the greatest advantages of component-based development is the better support for independent extensibility. However, managing multiple versions of components is still a challenge, especially when it’s not possible to update all the system’s components at the same time. Because of that, different versions of the same component interface shall be required to coexist in the same system. In this work, we try to identify the key points to support multiple versions of component interfaces and propose a model that offers this support. To evaluate the proposed model, we will extend the SCS component system to support it. Based on the evolution historic of different SCS components used in a real application, we will conduct experiments with the new version of SCS to verify the effectiveness of the proposed model.
4

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

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

[pt] IDENTIFICANDO CANDIDATOS A MICROSSERVIÇOS EM CÓDIGO LEGADO / [en] IDENTIFYING MICROSERVICES CANDIDATES IN LEGACY CODE

10 December 2020 (has links)
[pt] Microsserviços é uma técnica industrial para promover melhor escalabilidade e manutenibilidade de pequenos e autônomos serviços. Estudos prévios sugerem que a arquitetura de microsserviços vem sendo amplamente usada para reduzir limitações encontradas em sistemas monolíticos legados tais como melhoria de inovação, uso de diferentes tecnologias, entre outras. O processo de migração para a arquitetura de microsserviços não é trivial. Este é particularmente o caso da tarefa de identificar candidatos a microsserviço e o código fonte associado com cada candidato que é dispendiosa e propensa a erro. Consequentemente, abordagens automatizadas têm sido propostas para reduzir o esforço relacionado a essa atividade. Essas abordagens comumente adotam um ou dois critérios para suportar a identificação de microsserviços com base no sistema monolítico legado. Contudo, existe uma falta de compreensão da utilidade desses critérios adotados na prática. Além disso, há limitado conhecimento em quais são os critérios que profissionais consideram relevantes. Levando em consideração esses limitantes existentes, nós conduzimos um survey e entrevista para melhor compreender a utilidade de critérios relatados em estudos empíricos (e.g, estudos de caso e relatos) do ponto de vista dos profissionais. Os resultados do survey e da entrevista mostram que as abordagens automatizadas e ferramentas existentes não são totalmente alinhadas com necessidades práticas. Para atender às necessidades deles, este trabalho define uma abordagem automatizada chamada toMicroservices. A abordagem baseia-se em uma combinação de análise estática e dinâmica do código legado. A abordagem visa indicar os candidatos a microsserviço e a fonte correspondente extraído do sistema legado. toMicroservices faz uso da engenharia de software baseada em busca para otimizar e balancear os cinco critérios comumente adotados por profisionais, nomeados de modularização de funcionalidade, redução de sobrecarga de rede, reúso, acoplamento e coesão. Além disso, um estudo de caso e grupo focal foram conduzidos a posteriori para avaliar e melhorar toMicroservices. / [en] Microservices is an industrial technique to promote better scalability and maintainability of small and autonomous services. Previous studies suggested that microservice architectures have been widely used to reduce limitations found in legacy monolithic systems such as the inclusion of innovation, use of a different stack of technologies, among others. The process of migrating to a microservices architecture is far from trivial. This is particularly the case for the task of identifying candidate microservices and the source code associated with each candidate, which is recognizably time-consuming and error-prone. Thus, automated approaches have been proposed to reduce the effort related to that task. These approaches commonly adopt one or two criteria to support the identification of microservices from a legacy monolithic system. However, there is a lack of understanding on the usefulness of these criteria in practical settings. Moreover, there is limited knowledge on what are the criteria that practitioners consider relevant. Taking into account these existing limitations, we conducted a survey and interviews to better understand the usefulness of criteria reported in empirical studies (e.g, case studies and reports) from the point of view of practitioners. The results of the survey and interviews revealed that existing automated approaches and tools are far from being aligned with practical needs. To fulfill these needs, this work defines a automated approach named toMicroservices. The approach relies on a combination of static and dynamic analysis of the legacy code. The approach aims at indicating the microservice candidates and the corresponding source extracted from the legacy system. toMicroservices makes use of search-based software engineering (SBSE) to optimize and balance the five criteria commonly adopted by practitioners, namely feature modularization, network overhead reduction, reuse, coupling and cohesion. Additionally, an industrial case study and a focus group were conducted a posteriori to support the evaluation and improvements of toMicroservices.
6

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

Page generated in 0.0351 seconds