• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 7540
  • 5171
  • 1364
  • 678
  • 657
  • 587
  • 436
  • 370
  • 206
  • 103
  • 92
  • 92
  • 92
  • 87
  • 75
  • Tagged with
  • 21241
  • 7166
  • 5839
  • 2355
  • 2065
  • 2051
  • 1985
  • 1932
  • 1741
  • 1683
  • 1476
  • 1246
  • 1179
  • 1135
  • 1134
  • 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.
81

Using information flow to estimate interference between same-method contributions

BARROS FILHO, Roberto Souto Maior de 31 March 2017 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-06-25T19:24:26Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Roberto Souto Maior de Barros Filho.pdf: 2025451 bytes, checksum: c2b9e33188a5a0b43ea456fefd1fcbc6 (MD5) / Made available in DSpace on 2018-06-25T19:24:26Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Roberto Souto Maior de Barros Filho.pdf: 2025451 bytes, checksum: c2b9e33188a5a0b43ea456fefd1fcbc6 (MD5) Previous issue date: 2017-03-31 / CNPQ / In a collaborative software development environment, developers often implement their contributions (or tasks) independently using local versions of the files of a system. However, contributions from different developers need to be integrated (merged) to a central version of the system, which may lead to different types of conflicts such as syntactic, static semantic or even dynamic semantic conflicts. The first two types are more easily identifiable as they lead to syntactically incorrect programs and to programs with compilations problems, respectively. On the other hand, dynamic semantic conflicts, which may be caused by subtle dependencies between contributions, may not be noticed during the integration process. This type of conflict alters the expected behaviour of a system, leading to bugs. Thus, failing to detect dynamic semantic conflicts may affect a system’s quality. Hence, this work’s main goal is to understand if Information Flow Control (IFC), a security technique used for discovering leaks in software, could be used to indicate the presence of dynamic semantic conflicts between developers contributions in merge scenarios. However, as defining if a dynamic semantic conflict exists involves understanding the expected behaviour of a system, and as such behavioural specifications are often hard to capture, formalize and reason about, we instead try to detect a code level adaptation of the notion of interference from Goguen and Meseguer. Actually, we limit our scope to interference caused by developers contributions on the same method. More specifically, we want to answer if the existence of information flow between developers same-method contributions of a merge scenario can be used to estimate the existence of interference. Therefore, we conduct an evaluation to understand if information flow may be used to estimate interference. In particular, we use Java Object-sensitive ANAlysis (JOANA) to do the IFC for Java programs. JOANA does the IFC of Java programs by using a System Dependence Graph (SDG), a directed graph representing the information flow through a program. As JOANA accepts different options of SDG, we first establish which of these SDG options (instance based without exceptions) is the most appropriate to our context. Additionally, we bring evidence that information flow between developers same-method contributions occurred for around 64% of the scenarios we evaluated. Finally, we conducted a manual analysis, on 35 scenarios with information flow between developers same-method contributions, to understand the limitations of using information flow to estimate interference between same-method contributions. From the 35 analysed scenarios, for only 15 we considered that an interference in fact existed. We found three different major reasons for detecting information flow and no interference: cases related to the nature of changes, to excessive annotation from our strategy and to the conservativeness of the flows identified by JOANA. We conclude that information flow may be used to estimate interference, but, ideally, the number of false positives should be reduced. In particular, we envisage room for solving around three quarters of the obtained false positives. / Em um ambiente de desenvolvimento colaborativo, desenvolvedores frequentemente implementam suas contribuições independentemente usando versões locais dos arquivos de um sistema. No entanto, contribuições de diferentes desenvolvedores precisam ser integradas a uma versão central do sistema, o que pode levar a diferentes tipos de conflitos de integração como conflitos sintáticos, de semântica estática ou até de semântica dinâmica. Os dois primeiros tipos são mais fáceis de identificar dado que levam a programas sintaticamente incorretos e a erros de compilação, respectivamente. Por outro lado, conflitos de semântica dinâmica, que são em geral causados por dependências sutis entre as contribuições, podem passar despercebidos durante o processo de integração. Esse tipo de conflito altera o comportamento esperado de um sistema, o que leva a bugs. Portanto, falhar em detectar estes conflitos pode afetar negativamente a qualidade de um sistema. Tendo isso em mente, o principal objetivo deste trabalho é entender se Information Flow Control (IFC), uma técnica de segurança utilizada para descobrir vazamentos de segurança em software, pode ser utilizado para indicar a presença de conflitos de semântica dinâmica entre contribuições de cenários de integração. Porém, a definição da existência de um conflito de semântica dinâmica envolve o entendimento do comportamento esperado de um sistema. Como especificações desse tipo de comportamento são geralmente difíceis de capturar, formalizar e entender, nós na realidade utilizamos uma adaptação a nível de código da noção de interferência de Goguen e Meseguer. Na verdade, nós limitamos o nosso escopo a interferência causada por contribuições de desenvolvedores nos mesmos métodos. Especificamente, nós desejamos responder se a existência de fluxo de informação entre duas contribuições no mesmo método pode ser utilizada para estimar a existência de interferência. Portanto, nós realizamos uma avaliação com o intuito de entender se fluxo de informação pode ser usado para estimar interferência. Em particular, nós utilizamos o Java Object-sensitive ANAlysis (JOANA) para fazer o IFC de programas Java. O JOANA faz IFC desses programas usando uma estrutura chamada System Dependence Graph (SDG), um grafo direcionado representando o fluxo de informação em um programa. Como o JOANA aceita diferentes opções de SDG, primeiro nós estabelecemos qual destas é a mais apropriada para o nosso contexto. Adicionalmente, trazemos evidência que fluxo de informação entre contribuições de desenvolvedores no mesmo método aconteceram para cerca de 64% dos cenários que avaliamos. Finalmente, realizamos uma análise manual, em 35 cenários de integração com fluxo de informação entre contribuições no mesmo método, para entender as limitações de utilizar fluxo de informação para estimar interferência entre contribuições. Dos 35 cenários analisados, para apenas 15 consideramos que interferência existia de fato. Nós achamos três razões principais para fluxo de informação ser detectado e não existir interferência: casos relacionados a natureza das mudanças, a limitações da nossa estratégia de anotação e a natureza conservadora dos fluxos identificados pelo JOANA. Nós concluímos que fluxo de informação pode ser utilizado para estimar interferência, mas, idealmente, o número de falsos positivos precisa ser reduzido. Em particular, nós enxergamos espaço para reduzir até três quartos dos falsos positivos.
82

Uma abordagem gradativa de modernização de software monolítico e em camadas para SOA

RODRIGUES, Alessandro Borges 27 March 2017 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-07-25T18:44:42Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alessandro Borges Rodrigues.pdf: 1761535 bytes, checksum: f866b884b141e0ff0be99ea5d2d502ce (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-07-27T16:50:13Z (GMT) No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alessandro Borges Rodrigues.pdf: 1761535 bytes, checksum: f866b884b141e0ff0be99ea5d2d502ce (MD5) / Made available in DSpace on 2018-07-27T16:50:13Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alessandro Borges Rodrigues.pdf: 1761535 bytes, checksum: f866b884b141e0ff0be99ea5d2d502ce (MD5) Previous issue date: 2017-03-27 / A constante evolução tecnológica, tanto de hardware quanto de software, faz com que muitos sistemas tornem-se obsoletos, apesar de ainda atenderem seus requisitos e serem estáveis. Outrora foi a época dos sistemas procedurais, hoje vemos que a própria evolução deles, os orientados a objetos, em muitos casos, se tornaram obsoletos, grandes e complexos, com tecnologias ultrapassadas e contendo centenas ou milhares de classes, sendo esses problemas agravados naqueles que foram construídos de forma monolítica, possuindo assim apenas um único arquivo como resultado. A arquitetura orientada a serviços permite a criação de sistemas com menor complexidade, já que seus serviços possuem baixo acoplamento, permitindo atualizações individuais sem afetar os demais serviços. Porém, a reconstrução dos sistemas já existentes nessa nova arquitetura é inviável, devido ao custo necessário (tempo, mão de obra etc.), sendo a reengenharia deles uma possível solução, que permite a reformulação desses sistemas de uma maneira menos onerosa. Apesar da arquitetura em camadas ser bastante utilizada nos sistemas orientados a objetos, faltam soluções de reengenharia que leve esse fato em consideração, não sendo tão efetivas quando executadas em sistemas com essa arquitetura. Este trabalho busca definir uma abordagem para modernização de sistemas monolíticos, orientados a objetos e que tenham sido desenvolvidos com a arquitetura em camadas, para a arquitetura orientada a serviços, de uma forma semi-automatizada, sem a necessidade de o engenheiro de software possuir um profundo conhecimento do sistema a ser modernizado. No sistema reconstruído, as classes das camadas de negócio e persistência serão agrupadas de acordo com seus relacionamentos, e os métodos das classes de negócio serão disponibilizados como serviços. As etapas da abordagem proposta são constituídas de técnicas, cujas fórmulas e algoritmos podem ser adicionados/transformados em ferramentas que automatizarão o processo. Esta metodologia de modernização permite que os web services criados possuam uma quantidade menor de classes, além de menor complexidade em cada serviço, mantendo a funcionalidade original. Isso é conseguido tanto através de refatorações no código original que diminui a quantidade de dependência entre as classes, quanto através da separação de agrupamentos de classes em pedaços menores. Foram obtidos resultados satisfatórios no estudo de caso, como redução de 24% da dependência média entre as classes, diminuição de 80% e 6,33% do tamanho e da complexidade estática do componente (CSC), respectivamente e 100% de sucesso nos testes de regressão. / The constant technological evolution, both hardware and software, makes many systems become obsolete, although they still attend their requirements and are stable. Once was the time of procedural systems, today we see that the very evolution of them, the object-oriented, in many cases, have become obsolete, large and complex, with outdated technologies and containing hundreds or thousands of classes, these problems being aggravated in those that were built in a monolithic way, thus possessing only a single file as a result. The service-oriented architecture allows the creation of systems with less complexity, as their services have low coupling, allowing individual updates without affecting other services. However, reconstruction of existing systems in this new architecture is not feasible due to the cost needed (time, labor etc), reengineering them being a possible solution, which allows the reformulation of these systems in a less costly way. Although the layered architecture is the most used in object oriented systems, it lacks reengineering solutions that take this fact into account, not being so effective when executed in systems with this architecture. This work aims to define an approach to the modernization of monolithic and layered systems for service-oriented architecture, in a semi-automated manner, without the need for the sotware engineer has a deep knowledge of the system to be modernized. In the rebuilt system, the business and persistences layer classes will be grouped according to their relationships, and methods of business classes will be made available as services. The steps of the proposed approach are techniques, whose formulas and algorithms can be added/transformed into tools that will semi-automate the process. This modernization methodology allows the created web services to have a smaller number of classes, in addition to less complexity in each service, maintaining the original functionality. This is accomplished both by refactoring in the original code that decreases the amount of dependency between classes, and by separating class clusters into smaller pieces. Satisfactory results were obtained in the case study, such as a reduction of 24% in average dependence between classes, a decrease of 80% and 6.33% in component size and static complexity (CSC), respectively, and a 100% success rate in the tests regression analysis.
83

Influência da aplicação de filtros na qualidade da imagem de tomografia computadorizada de feixe cônico / Influence of filters on the quality of cone beam computed tomography images

Távora, Débora de Melo, 1986- 17 August 2018 (has links)
Orientador: Gláucia Maria Bovi Ambrosano / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Odontologia de Piracicaba / Made available in DSpace on 2018-08-17T23:48:19Z (GMT). No. of bitstreams: 1 Tavora_DeboradeMelo_M.pdf: 1345543 bytes, checksum: ce9c6e121218ee2d6e272aa6b64a5afe (MD5) Previous issue date: 2011 / Resumo: O objetivo no estudo foi avaliar a influência da aplicação de filtros de realce e suavização na qualidade da imagem de tomografia computadorizada de feixe cônico (TCFC), quando da visualização de estruturas anatômicas, assim como identificar as estruturas que apresentam melhor visualização nessa modalidade de exame por imagem. Para tanto, foram utilizadas 40 imagens de TCFC. A partir de cada imagem foram realizados quatro cortes: 1- região de molares inferiores; 2- região de pré-molares inferiores; 3- região de pré-molares superiores; e 4- região anterior, para visualização de treze estruturas anatômicas. De cada região, foram utilizadas uma versão original e mais seis versões de imagens com seis filtros diferentes: Sharpen, Sharpen Mild, S9, Smooth 3x3, Sharpen 3x3, Angio Sharpen Medium 5x5, disponibilizados no software. Um total de 1120 imagens foi avaliado por cinco avaliadores que classificaram a qualidade da imagem das estruturas anatômicas como excelente, bom, aceitável, ruim, muito ruim e não pode ser observado. Os filtros Angio Sharpen Medium 5x5, Sharpen 3x3 e Sharpen melhoraram a qualidade da imagem com valores estatisticamente significantes (p<0,05) para todas as estruturas anatômicas, enquanto que as imagens com os filtros S9 e Smooth 3x3 permaneceram com a qualidade comparável àquelas sem aplicação de filtros. O filtro Sharpen Mild melhorou a qualidade da imagem seletivamente para dentina, câmara pulpar, osso cortical, seio maxilar, cavidade nasal, concha nasal e foramina lingual, porém não influenciou na qualidade da imagem das demais estruturas. Concluiu-se que a aplicação dos filtros Sharpen, Sharpen 3x3 e Angio Sharpen Medium 5x5 influenciou a qualidade da imagem de TCFC, na visualização de estruturas anatômicas e, que dentre as estruturas avaliadas, esmalte, forame mentual, cavidade nasal e concha nasal foram as estruturas melhor visualizadas nas imagens de TCFC / Abstract: The aim of this study was to evaluate the application of sharpen and smooth filters in the cone beam computed tomography (CBCT) image quality, on the visualization of anatomical structures, and to identify the structures that have a better view in this imaging modality. For this purpose, we used 40 CBCT images. From each image four sections were performed: 1 - molar region 2 - lower premolars region and 3 - upper premolars region, and 4 - the anterior region, to visualize thirteen anatomical structures. In each region, we used an original and six more versions of images applying six different filters: Sharpen, Sharpen Mild, S9, Smooth 3x3, Sharpen 3x3, Angio Sharpen Medium 5x5, available in the software. A total of 1120 images was evaluated by five evaluators that rated the image quality on a five-point rating scale (1 = excellent, 2 = good, 3 = acceptable, 4 = poor, 5 = very por, 6 = can not be observed). The filters Angio Sharpen Medium 5x5, Sharpen 3x3 and Sharpen improved the image quality with statistically significant values (p <0.05) for all anatomical structures, while the images with Smooth 3x3 and S9 filters remained with quality comparable to those without filters. The Sharpen Mild filter selectively improved image quality for dentin, pulp chamber, cortical bone, maxillary sinus, nasal cavity, nasal turbinate and lingual foramina but did not affect the image quality of other structures. It was concluded that the application of the filters Sharpen, Sharpen 3x3 and Angio Sharpen Medium 5x5 influenced the CBCT image quality in the visualization of anatomical structures, and that among the studied structures, enamel, mental foramen, nasal cavity and turbinates were structures best seen on the CBCT images / Mestrado / Radiologia Odontologica / Mestre em Radiologia Odontológica
84

Bellatrix : um ambiente para suporte arquitetural ao desenvolvimento baseado em componentes / Bellatrix : an environment for providing architectural support to component-based development

Tomita, Rodrigo Teruo 28 July 2006 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-07T08:32:32Z (GMT). No. of bitstreams: 1 Tomita_RodrigoTeruo_M.pdf: 1541819 bytes, checksum: d7021974c65c2128adcf055870fd8c95 (MD5) Previous issue date: 2006 / Resumo: O desenvolvimento baseado em componentes (DBC), que se baseia na construção de software através da integração planejada de componentes reutilizáveis, tem conquistado ampla aceitação para o desenvolvimento de sistemas de software. O desenvolvimento centrado na arquitetura de software _e complementar ao DBC, com a responsabilidade pela integração dos componentes de forma que atributos de qualidade, como confiabilidade e distribuição, desejados para o sistema final sejam obtidos. Assim, processos de DBC também devem ser centrados na arquitetura de software, possibilitando um maior grau de abstração, organização, manutenibilidade e reuso. Para possibilitar a automatização de tarefas e aumentar a produtividade no uso dos conceitos de arquitetura de software e DBC, são necessárias ferramentas que apóiem atividades de arquitetos e desenvolvedores de software. Os ambientes integrados de desenvolvimento existentes atualmente apóiam, em geral, a modelagem UML e a implementação de componentes e de sistemas orientados a objetos. Entretanto, eles não apóiam a prática de modelagem de arquiteturas de componentes e DBC. Ferramentas para modelagem de arquiteturas de software existentes não dão suporte ao mapeamento da arquitetura para código, possuem um foco específico na modelagem e não são apoiadas por um processo de desenvolvimento. Nesse trabalho é proposto o ambiente Bellatrix, um ambiente integrado de desenvolvimento que apóia o DBC com ênfase na arquitetura de software e estende o ambiente integrado de desenvolvimento Eclipse. O ambiente pode ser usado em conjunto com um processo de DBC e utiliza o COSMOS, um modelo de implementação de componentes que faz o mapeamento dos conceitos de arquiteturas de software para linguagens de programação orientadas a objetos. Este trabalho se concentra na especificação e projeto do ambiente Bellatrix, partindo de seus requisitos e protótipos de interface com usuário. Seus principais componentes foram especificados, bem como um modelo de implementação dos mesmos, integrando o modelo COSMOS ao ambiente Eclipse. Uma primeira implementação do ambiente contendo suas principais funcionalidades foi desenvolvida / Abstract: Component-based development (CBD), which is based on the assembly of software systems through planned integration of reusable components, is gaining wide acceptance for developing software systems. Software architecture centric development complements the CBD paradigm because it is responsible for the component integration, achieving the final system's desired quality requirements, such as dependability and distribution. Thus, CBD processes should also be software architecture centric, promoting a higher abstraction level, system organization, maintainability, and reuse. In order to allow tasks automation and increase the productivity in using software architecture and CBD concepts, tools that support architects and software developers are needed. Most of the existing integrated development environments support UML modeling, object-oriented and component implementation. However, many of them do not support the practice of component architecture and CBD modeling. Existing software architecture modeling tools lack the ability to translate the architecture to code, have a specific focus on modeling, and are not guided by a development process. In this work, we describe the Bellatrix environment, an integrated development environment that supports CBD with emphasis on software architecture and extends the Eclipse integrated development environment. The proposed environment can be guided by a CBD process and uses COSMOS, a component implementation model that materializes the elements of a software architecture using the concepts available in object-oriented programming languages. This work focuses on the general description of Bellatrix, starting from its requirements and user interface prototypes. Its main components has been specified, as well as an implementation model integrating the COSMOS model with the Eclipse environment. An initial version containing basic functionalities has been developed. / Mestrado / Sistemas de Informação / Mestre em Ciência da Computação
85

Criterios restritos de teste de software : uma contribuição para gerar dados de teste mais eficazes

Vergilio, Silvia Regina 27 July 1997 (has links)
Orientadores: Jose Carlos Maldonado, Mario Jino / Tese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de Computação / Made available in DSpace on 2018-07-22T21:00:59Z (GMT). No. of bitstreams: 1 Vergilio_SilviaRegina_D.pdf: 8065952 bytes, checksum: 030c4242de7564d75e341340132d08f7 (MD5) Previous issue date: 1997 / Resumo: Critérios de teste estrutural dividem o domínio de entrada de um programa em teste, em sub-domínios e requerem que pelo menos um ponto de cada sub-domínio seja executado, auxiliando na geração de dados de teste; permitem ainda, a avaliação da adequação de um dado conjunto de dados (casos) de teste. Uma vez particionado o domínio, é necessário responder à seguinte questão: "Que pontos de cada sub-domínio devem ser selecionados?". Isso diz respeito à tarefa de geração de dados de teste para satisfazer um critério. Essa é uma atividade bastante complexa de ser automatizada pois não existe um algoritmo de propósito geral para determinar um conjunto de casos de teste que satisfaça um dado critério para um particular programa. Não é possível nem mesmo determinar se esse conjunto existe. Na literatura são encontradas diferentes técnicas de geração de dados de teste que utilizam diferentes fundamentos para selecionar pontos do domínio que descrevem certos tipos de erros e, por isso, com alta probabilidade de revelar esses erros. No entanto, essas técnicas são apresentadas de forma dissociada dos critérios estruturais. Este trabalho introduz uma família de Critérios Baseados em Restrições, denominados Critérios Restritos, que têm o objetivo de aumentar a eficácia das atividades de teste e de oferecer medidas de cobertura. Os Critérios Restritos permitem a utilização de critérios estruturais juntamente com os princípios de técnicas de geração de dados de teste sensíveis a erros e foram motivados por resultados de estudos teóricos e empíricos conduzidos com essas técnicas. Nesse trabalho, esses resultados, que serviram como motivação para a introdução dos Critérios Restritos, são apresentados. São discutidos aspectos de complexidade e de relação de inclusão entre os Critérios Restritos e os demais critérios. Também é proposta uma extensão da ferramenta de testes POKE- TOOL para apoiar a utilização desses critérios e para facilitar a etapa de geração de dados de teste. Um experimento de avaliação dos Critérios Restritos é descrito. Os resultados desse experimento comprovam a aplicabilidade desses critérios e indicam um aumento no número de erros revelados. Ao final, são propostas duas estratégias de geração de dados de teste para satisfazer critérios de teste estrutural. Elas têm como objetivo reduzir os efeitos causados por caminhos não executáveis na atividade de teste e gerar dados com alta probabilidade de revelar erros. Entre essas estratégias propõe-se uma estratégia incremental, baseada na hierarquia entre os critérios, e que garante a preservação da relação de inclusão mesmo quando o fator eficácia é considerado / Abstract: Structural testing criteria divide the program input domain to sub-domains and require the execution of at least one point from each sub-domain. They support the test data generation phase and the adequacy analysis of a test set. Once the domain is divided, the question is posed: "What points in each sub-domain should be selected?" This question concerns to the task of generating test data to satisfy a criterion, which is very complex to be automated since there is no general algorithm to determine a set of test cases that satisfy a given criterion; it is not possible to determine even that such set exists. In the literature there are different test data generation techniques with different principIes for choosing points from the program domain associated to certain errors, with a high probability of revealing them. However these techniques are presented not associated to structural criteria. This work introduces a family of criteria, named Constraint Based Criteria. They have the goal of increasing the testing activity efficacy and make possible to obtain coverage measures. They permit the use of error-sensitive data generation techniques with structural criteria. The Constraint Based Criteria proposal was motivated by results obtained from empirical and theoretical studies with these techniques. These results are presented. Aspects of complexity and the inclusion relation among Constraint Based Criteria and othercriteria are discussed. An extension to POKE- TOOL is proposed with the goal of supporting Constraint Based Criteria and easing the data test generation phase. An experiment to evaluate the Constraint Based Criteria is described. The results from this experiment show their applicability and an increase in the number of revealed errors. And finally, two test data generation strategies to satisfy structural criteria are proposed. They have the goal of reducing the effects of infeasible paths in the testing activity and of generating test data with high probability of revealing errors. One of these strategies is incremental, based on the hierarchy of criteria and always preserve the inclusion relation among criteria even when the factor efficacy is considered. / Doutorado / Engenharia de Computação / Doutor em Engenharia Elétrica
86

Avaliação da construção e uso de classes autotestaveis

Yanagawa, Rosileny Lie 27 July 2018 (has links)
Orientador: Eliane Martins / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-27T10:44:06Z (GMT). No. of bitstreams: 1 Yanagawa_RosilenyLie_M.pdf: 14473662 bytes, checksum: 0043470ed494fa6d88de20deb23220ba (MD5) Previous issue date: 2000 / Resumo: Esta dissertação descreve uma metodologia para a construção e uso de classes autotestáveis. A metodologia busca melhorar a testabilidade de Sistemas Orientados a Objetos, através da adaptação de conceitos consolidados em hardware, como o Projeto para Testabilidade (DFT, do inglês Design for Testability) e o conceito de autoteste, que significa a adição de estruturas especiais a componentes para permitir que testes sejam gerados e avaliados internamente. Além do conceito do autoteste, nosso trabalho faz uso da hierarquia de herança existente para permitir também a reutilização dos testes. Neste sentido, a Técnica Incremental Hierárquica (HIT) [Har92] é usada com o objetivo de permitir que os testes de uma superclasse possam ser reusados para uma subclasse. As vantagens e desvantagens do uso da metodologia são mostradas na dissertação de duas formas: a primeira através de uma apresentação dos passos para a construção e uso de classes autotestáveis baseada nos testes de classes da biblioteca MFC (Microsoft Foundation Classes); e a segunda através do uso da metodologia nos testes de um conjunto de classes de uma aplicação real. Esta dissertação também apresenta uma avaliação empírica feita para determinar se os testes gerados neste trabalho têm um bom potencial para encontrar falhas. Os resultados mostraram que os testes gerados possuem um bom potencial na detecção de falhas. Nossos resultados ainda não oferecem uma evidência definitiva sobre a eficácia do conjunto de requisitos de teste gerado, porém mostram que a estratégia de teste adotada pode ser útil nos testes de classes de sistemas 00. / Abstract: This thesis describes a methodology for building and using self-testing classes. The methodology aims to improve the testability of Object Oriented (00) Systems, through the adaptation of concepts consolidated in hardware, as the Design for Testability (DFT) and the self-testing concepts, which means the addition of special structures to the components to allow tests to be generated and evaluated internally. In addition to the self- testing concept, our work makes use of the existing inheritance hierarchy allowing also the tests reuse. In this direction, the Hierarchical Incremental Testing (HIT) approach, proposed in [Har92], allows a test sequence for a parent class to be reused, whenever possible, when testing one of its subclasses. The advantages and disadvantages of the methodology are shown in the thesis in two ways: (1) a presentation of steps that should be carried out in building and using a self- testing class, based on classes from the Microsoft Foundation Class (MFC); and (2) the methodology use in testing a set of classes from a real application. This thesis also presents an empirical evaluation to determine if the tests generated in this work have a good potential for finding faults. The results have shown that the generated tests have a good potential in fault detention. Our results still do not offer a definitive evidence on the effectiveness of a set of generated test cases; however, they show that the adopted strategy of test can be useful in the 00 systems classes tests. / Mestrado / Mestre em Ciência da Computação
87

Projeto e implementação de variabilidade em arquiteturas baseadas no modelo de componentes COSMOS* / Design and implementation of architectural variabilities based on COSMOS*

Dias, Marcelo de Oliveira 15 August 2018 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-15T17:22:42Z (GMT). No. of bitstreams: 1 Dias_MarcelodeOliveira_M.pdf: 4085359 bytes, checksum: c41b2892cccbfb8a55cf89dc93b47f00 (MD5) Previous issue date: 2010 / Resumo: Muitos esforços estão sendo feitos, atualmente, para se obter um alto grau de reutilização durante o desenvolvimento de sistemas. Linhas de produtos de software (LPS) é uma abordagem moderna para promover a reutilização de software. Um dos principais artefatos de uma LPS é sua Arquitetura de Linhas de Produtos (ALP), que provê uma perspectiva global das variabilidades da linha, ao passo que engloba os conceitos tradicionais de uma arquitetura de software. Devido as variabilidades de software de uma ALP, a evolução arquitetural é ainda mais complexa, do que quando comparado com evolução de arquiteturas de software convencionais. O objetivo principal deste trabalho é propor um novo modelo para especificar e implementar variabilidades de software em ALPs baseadas em componentes, de forma a facilitar a evolução arquitetural. A solução proposta é um refinamento do modelo de implementações de componentes COSMOS*, chamado COSMOS*-VP, que emprega a modularização de pontos de variação explícitos e modernas abordagens de programação orientada a aspectos, com o intuito de promover a estabilidade arquitetural, e assim, facilitar a evolução de ALPs. A validação do modelo proposto foi feita utilizando duas LPS, que sofreram diversos cenários de evolução reais. Durante as evoluções, as ALPs criadas utilizando COSMOS*-VP tiveram a estabilidade mensurada através de métricas de impacto de mudanças e modularidade. Os resultados obtidos para o modelo proposto foram comparados com os alcançados utilizando o modelo COSMOS* original / Abstract: Nowadays, many efforts are being made to achieve a high degree of reuse during systems development. Software Product Lines (SPL) is a modern approach to improve software reuse, and one of its main artifacts is the Product Line Architecture (PLA). A PLA provides a global view of the variabilities of a SPL, while it embodies the concepts and advantages of the traditional software architecture. Due to its variabilities, a PLA is harder to evolve than a convetional software architecture. The main goal of this work is to propose a new model to specify and implement software variabilities of component-based PLAs. Our proposed solution is an extension of the component implementation model COSMOS*, called COSMOS*-VP, which employs specific elements and modern aspect-oriented approaches to modularize architectural variation points, aiming at the improvement of architectural stability of PLAs, and thus, facilitating their evolution. The validation of the proposed solution was made using two SPLs, which were targed of several real evolution scenarios. During the evolution, the PLAs created using COSMOS*-VP had their stability measured using metrics of change impact and modularity. The results of the proposed model were compared with those achieved using the COSMOS* model / Mestrado / Engenharia de Software / Mestre em Ciência da Computação
88

Estudo e proposta de praticas participativas na gestão de requisitos

Vianna, Elaine Cristina da Cruz Miravete 17 February 2004 (has links)
Orientador: Maria Cecilia Calani Baranauskas / Dissertação (mestrado profissional) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-04T13:57:43Z (GMT). No. of bitstreams: 1 Vianna_ElaineCristinadaCruzMiravete_M.pdf: 1540668 bytes, checksum: e10a4efbecece224fde0da7443b74973 (MD5) Previous issue date: 2004 / Resumo: As atividades relacionadas à gestão de requisitos representam um papel fundamental no processo de construção de um sistema de software, especialmente por constituírem o alicerce para as fases subseqüentes do desenvolvimento. A gestão dos requisitos de software compreende fundamentalmente a elicitação, análise, especificação e gerência dos requisitos (solicitações e necessidades dos usuários), válidos para o sistema a ser desenvolvido. Alguns processos emergentes de Engenharia de Software têm dado grande ênfase à atividade de especificação de requisitos, em detrimento à sua elicitação. Neste trabalho buscamos conciliar os aspectos relevantes de diferentes abordagens para a Engenharia de Requisitos, visando obter uma metodologia híbrida para a gestão de requisitos de software de natureza interativa. Para este objetivo, combinamos as principais características do Processo Unificado à abordagem do Design Participativo. Visando a aplicação e verificação prática dos conceitos preconizados por tais abordagens, elegemos um projeto real de desenvolvimento de software para a condução de um estudo de caso, onde técnicas de Design Participativo foram empregadas de forma complementar à metodologia proposta pelo Processo Unificado. Como resultado, identificamos e analisamos os principais pontos fracos e pontos fortes inerentes a cada uma dessas perspectivas e propusemos um método para a gestão de requisitos fundamentado nos aspectos positivos de cada uma delas / Abstract: Activities concerned with requirements management play a fundamental role into the software system construction process, especially to establish the foundation for the development of subsequent phases. The requirements management fundamentally includes the requirements (user's requests and needs) elicitation, analysis, specification, validation and administration, valid to the system to be built. Some emergent Software Engineering processes have given more emphasis to the requirements specification activity, than to its elicitation. In this work we investigate the relevant aspects of different approaches to the Requirements Engineering, aiming at obtaining a hybrid methodology to the interative nature of software requirements management. For this purpose, we combined the main features of the Unified Process with the Participatory Design approach. Aiming the practical application of concepts provided by these approaches, we selected an actual software development project for the conduction of a case study, in which Participatory Design techniques where applied in a complementar way to the methodology proposed by the Unified Process. As a result, we identified and analised the main weaknesses and strenghts inherent to each of these perspectives and proposed a method for requirements management based on the positive aspects of each one / Mestrado / Engenharia de Computação / Mestre em Computação
89

A case study in the management of engineering software design

Kruger, Wynand 05 March 2012 (has links)
M.Ing.
90

FREVoz: um framework para automação de testes de voz

SILVA, Alex Antônio Cândido 07 March 2017 (has links)
SILVA, Alex Antônio Cândido, também é conhecido em citações bibliográficas por: CÂNDIDO SILVA, Alex Antônio / Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-09-14T20:29:28Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alex Antônio Cândido Silva.pdf: 3944433 bytes, checksum: a0a44e61bdf86ca24e8954101b8e922f (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-09-18T15:25:32Z (GMT) No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alex Antônio Cândido Silva.pdf: 3944433 bytes, checksum: a0a44e61bdf86ca24e8954101b8e922f (MD5) / Made available in DSpace on 2018-09-18T15:25:33Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Alex Antônio Cândido Silva.pdf: 3944433 bytes, checksum: a0a44e61bdf86ca24e8954101b8e922f (MD5) Previous issue date: 2017-03-07 / Teste de software é uma das atividades desempenhadas durante o ciclo de desenvolvimento de um software. Ele é o principal responsável por garantir a qualidade do produto sob desenvolvimento. Essa atividade está presente nos diversos tipos de produtos de software desenvolvidos, desde aplicações desenvolvidas em plataformas para desktop, web e dispositivos móveis. A tecnologia presente nos dispositivos móveis tem facilitado cada vez mais a vida do usuário final enquanto as possibilidades de interação tem se tornado mais natural através de novos tipos de interfaces de interação por gestos e voz. As interações mais tradicionais como o toque na tela não são mais consideradas desafiadoras, uma vez que são amplamente suportadas pelos frameworks de automação de teste disponíveis no mercado, diferentemente das interações através da voz humana, que não possuem ferramentas com tal suporte. Diante desse cenário, esse tipo de teste acaba sendo executado de forma manual, onde o testador precisa interagir diretamente com o dispositivo através da voz, ou então manipular em tempo real ferramentas que possibilitem a execução de arquivos de áudio com gravações dos comandos de voz. O trabalho proposto, FREVoz – Um Framework para Automação de Testes de Voz, adiciona uma nova camada de comunicação ao framework FREVO, estendendo-o e permitindo-o o desenvolvimento de casos de teste com suporte a manipulação de áudios. Através dessa extensão, o desenvolvedor de testes automáticos consegue desenvolver e executar casos de teste de voz de maneira automática. FREVoz apresenta-se como uma alternativa viável para o desenvolvimento de scripts de automação de testes baseado em UI Automator, apesar de ser possível aplicar seus conceitos para outros tipos de tecnologias de automação de testes. Um estudo de caso foi realizado através da automação de uma suíte de testes de voz com o objetivo de comparar o tempo total gasto na execução através das duas abordagens, manual e automática. Também foi realizado um experimento com 3.840 execuções de casos de teste, possibilitando exercitar a aplicação de reconhecimento de voz disponível nos dispositivos móveis na plataforma Android, o Google Voice Search, para 16 comandos válidos contendo 3 variações de áudios com qualidade e entonação diferentes. Cada uma dessas variações foi executada 10 vezes em 8 idiomas suportados, com o propósito de avaliarmos o comportamento da aplicação Google Voice Search perante o reconhecimento desses comandos, bem como realizarmos uma avaliação da qualidade dos recursos de áudio utilizados. Neste experimento, simulamos alguns dos testes de voz realizados dentro do contexto do convênio entre o Centro de Informática da Universidade Federal de Pernambuco e a Motorola. / Software testing is one of the activities performed during the software development cycle. It is primarily responsible for ensuring the quality of the product under development. Testing is present in the various types of software products developed, from applications developed for desktop and web up to mobile platforms. The technology present in mobile devices has increasingly facilitated the life of the end user. For instacne, the ways of interaction have become more natural through new types of interfaces like gestures and voice. More traditional interactions such as touch screen are no longer considered challenging, since they are widely supported by the test automation frameworks available in the market. Differently, interactions through the human voice, which do not have tools with such support, are still a challenge. Given this scenario, this kind of test is executed manually, where the tester needs to interact directly with the device through her voice, or to manipulate real time tools to play audio files containing the commands that will exercise the voice feature. This work introduces FREVoz – A Framework for Automation of Voice Testing. FREVoz extends the framework FREVO by adding a new layer of communication that allows the development of test cases with support for audio manipulation. Through this extension, test developer can automatically program and execute voice test cases.FREVoz is presented as a viable alternative to the development of test automation scripts based on UI Automator, although it may be possible to apply its concepts to other types of test automation technologies. A case study was carried out through the automation of a suite of voice tests with the objective of comparing the total time spent in execution through the two approaches, manual and automatic. An experiment was also carried out with 3,840 test cases, making it possible to exercise the speech recognition application available on mobile devices on the Android platform, Google Voice Search, for 16 valid commands containing 3 variations of audios with different quality and intonation. Each of these variations was performed 10 times in 8 supported languages in order to evaluate the Google Voice Search application behavior in recognizing of these commands, as well as to perform an evaluation of the quality of the audio resources used. Thus, we have simulated some of the voice tests made within the context of the cooperation project between the Center of Informatics of Federal University of Pernambuco and Motorola.

Page generated in 0.0775 seconds