Spelling suggestions: "subject:"engenharia dde 5oftware 1experimental"" "subject:"engenharia dde 5oftware 15experimental""
21 |
Um mapeamento sistemático de mecanismos para guiar estudos empíricos em engenharia de softwareTrigueiro de Almeida Filho, Adauto 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T15:48:49Z (GMT). No. of bitstreams: 2
arquivo1176_1.pdf: 1937096 bytes, checksum: 6f6d783165255115722d915e51948d76 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2011 / Faculdade de Amparo à Ciência e Tecnologia do Estado de Pernambuco / Estudos empíricos têm se mostrado mecanismos relevantes para o avanço científico em
diversas áreas, como por exemplo as Ciências Sociais e a Medicina. Tais áreas possuem
considerável experiência na condução de estudos dessa natureza. Em Engenharia de
Software (ES) não é diferente, pois desde a década de 1980 estudos empíricos têm sido
evidenciados como um importante instrumento para o desenvolvimento da área, que é fortemente
dependente de atividades humanas. Nesse cenário, é essencial ter conhecimento
para conduzir os principais tipos de estudos emp´ıricos encontrados em ES, a saber: experimento
controlado, quasi-experimento, survey, etnografia, pesquisa-ação e estudo de
caso. A partir desse contexto, esta pesquisa visa selecionar os trabalhos mais relevantes
da área que foram capazes de desenvolver algum tipo de mecanismo específico para ES
que servisse de guia para os estudos empíricos citados anteriormente. Essa seleção foi
realizada através de um mapeamento sistemático de estudos, o qual utilizou buscas automatizadas
com a ajuda de cinco engenhos de busca de bibliotecas digitais, além de busca
manual em periódicos e conferências relevantes para a área. No total, foram encontrados
7101 estudos, dos quais 23 foram identificados como trabalhos primários relevantes e serviram
como fonte para coleta de evidências para responder as três perguntas de pesquisa
propostas. Após a análise, conclui-se que há alguns esforços em fornecer guias específicos
que apoiem a condução de estudos empíricos em ES, inclusive aproveitando experiências
de outras áreas. No entanto, ainda há lacunas na área de ES empírica a serem preenchidas
no que diz respeito à disponibilidade de material guia específico para ES, como
por exemplo, em etnografia e pesquisa-ação, além da padronização dos procedimentos.
O preenchimento de tais lacunas é essencial para fomentar a condução de tais pesquisas
empíricas que são fundamentais para o desenvolvimento da ES
|
22 |
Análise de completude dos relatos de experimentos em elasticidade na computação em nuvem: um mapeamento sistemático / Análise de completude dos relatos de experimentos em elasticidade na computação em nuvemBARREIROS, Helaine Solange Lins 31 August 2015 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2016-08-17T12:35:50Z
No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
hslb_vfinal_biblioteca.pdf: 2869691 bytes, checksum: 268c462f64e20bae35c274e245ae62f3 (MD5) / Made available in DSpace on 2016-08-17T12:35:50Z (GMT). No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
hslb_vfinal_biblioteca.pdf: 2869691 bytes, checksum: 268c462f64e20bae35c274e245ae62f3 (MD5)
Previous issue date: 2015-08-31 / FACEPE / Contexto: Para que os leitores possam avaliar a validade de um estudo empírico, replicar
seus resultados, ou para que editores possam julgar efetivamente o verdadeiro potencial de
impacto da pesquisa, os autores devem relatar e documentar cuidadosamente elementos da
pesquisa como: motivação, objetivo, método, análise dos dados, resultados, conclusões e
limitações. Infelizmente autores têm indicado que a comunicação dos resultados de estudos
empíricos (EE) na computação em nuvem (CN) omitem informações relevantes destes elementos
de pesquisa.Tais inconveniências na comunicação dos resultados destes estudos, ampliadas a todo
um campo de pesquisa, podem levar a um conjunto potencial de evidências fracas ou ilusórias
para futuras pesquisas científicas.
Objetivo: Apesar de críticas aos relatos dos estudos empíricos serem evidenciadas, até o
presente momento, não foi realizada uma caracterização das informações omitidas pelos autores.
Neste sentido, o presente estudo tem como objetivo apresentar um esforço primeiro que analisa
nos relatos a apresentação dos elementos de pesquisa acima citados, considerados essenciais para
a análise da validade e protencial de uma pesquisa empírica. Analisar a forma de apresentação
dos resultados é um primeiro passo relevante para a compreensão do cenário atual da prática
dos relatos dos estudos empíricos. Assim, foi analisado nos relatos o grau de completude: o
quão presentes estão as informações dos elementos da pesquisa em seus relatos. Afim de realizar
uma análise mais profunda, o foco inicial da pesquisa foi direcionado ao método empírico de
experimentação, com foco nas avaliações da característica de elasticidade da CN.
Método: Através de um mapeamento sistemático da literatura (MSL) foram identificados
os experimentos em elasticidade na computação em nuvem e, através de instrumento de avaliação
criado com base em orientações existentes para se reportar experimentos na engenharia de
software experimental, a completude de seus relatos foi avaliada.
Resultado: Após a avaliação inicial de 3.611 estudos, foram selecionados e analisados
os relatos de 59 experimentos. Constatamos que em geral os autores omitem informações
relacionadas ao planejamento da pesquisa, coleta dos dados, procedimentos de execução, instrumentação,
análise dos dados, relação dos resultados com pesquisas anteriores, ameaças à
validade e generalização dos resultados. Em relação ao índice de completude o maior grau
foi 6.67 em uma escala de 0 a 10, sendo considerada baixa em valores quantitativos. Também
foi realizada uma breve análise qualitativa que revela que, ainda que reportadas, muitas das
informações apresentadas pelos relatos são superficiais e dificultam a interpretação, validação,
generalização e replicação dos resultados dos estudos. / Context: To enable readers to assess the validity of an empirical study, replicate their
results, or allow publishers to effectively judge its true potential impact of research, the authors
should report and carefully document elements of research, such as: motivation, goal, method,
data analysis, findings, conclusions and limitations. Unfortunately authors have indicated that
communication of the results of empirical studies in cloud computing omit relevant information
from these elements. Such inconveniences in reporting the results of these studies, expanded to
an entire field of research, can lead to a potential set of weak or misleading evidence for future
scientific research.
Objective: Despite criticism of the reports of empirical studies are highlighted, to date,
has not been performed a characterization of the information omitted by the authors. In this
sense, this study aims to present a first effort which analyzes the reports presenting the research
elements mentioned above, considered essential for the analysis of the validity and protencial
of empirical research. To examine how to present the results is an important first step towards
understanding the current state of the practice of the reports of empirical studies. Thus, it was
analyzed in the reports of the studies the degree of completeness: which information from
research elements in their reports. In order to conduct a deeper analysis of the reports, the initial
focus of the research was directed to the empirical method of experimentation, focusing on
evaluations of cloud computing elasticity characteristic.
Method: Through a systematic mapping of literature were identified experiments on
elasticity in the cloud computing and through an assessment instrument, created based on existing
guidelines to report experiments in experimental software engineering, the completeness of their
reports was evaluated.
Results: After the initial evaluation of 3,611 studies, 59 experiments were selected and
had their reports analyzed. It was found that in general the authors omit information related
to the research design, data collection, execution procedures, instrumentation, data analysis,
comparison of the results with previous research, threats to validity and generalizability of the
results. In relation to the completeness index, the highest score reached was 6.67 on a scale of 0
to 10, and such completion is considered low in quantitative terms. A brief qualitative analysis
was also conducted which reveals that, although reported, much of the information presented by
the reports are superficial and difficult to interpret, validate, generalize and hinder replication of
study results.
|
23 |
Analysis of human-centric software engineering experiments: a systematic mapping studyFALCÃO, Larissa Catão Tenório 18 February 2016 (has links)
Submitted by Natalia de Souza Gonçalves (natalia.goncalves@ufpe.br) on 2016-09-28T12:40:17Z
No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertacao - Larissa Falcao - Final - Correcoes Biblioteca - Entrega.pdf: 1172723 bytes, checksum: b0a57a917a5abab25c66870d353d906f (MD5) / Made available in DSpace on 2016-09-28T12:40:17Z (GMT). No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertacao - Larissa Falcao - Final - Correcoes Biblioteca - Entrega.pdf: 1172723 bytes, checksum: b0a57a917a5abab25c66870d353d906f (MD5)
Previous issue date: 2016-02-18 / CNPq / Software Engineering professionals need to have information about new support mechanisms to decide, not at random, what option is best adapting it needs. One way of obtaining this information is through empirical studies that make the mechanisms used to support the design and development of software, be evaluated in practice. Thus, scientific research through experiments and empirical studies are fundamental during the evaluation of any new technology to software development. In this context, researchers perform experiments to check their proposals under controlled conditions. Therefore, experiments are an important category of empirical studies and are the classical approach for identifying cause-effect relationships. The goal of this dissertation is qualitatively and quantitatively characterizes and analyze human-centric experiments in software engineering, published in three journals andthree conferences proceedings from 2003 to 2013. To reach this objective was performed a systematic mapping study that includes all full papers published at EASE, ESEM, ICSE, ESEJ, JSS, TSE. Based on manual searches in those important conferences and journals in Software Engineering, were analyzed 3671 papers. 244 primary studies were identified as relevant, reporting experiments. In these experiments, we obtained qualitative and quantified data about authors and institutions, subjects, tasks performed, environment, replication and threats to validity. From the analysis performed, this work conclude that despite guidelines exist now, there is a large gap in the report of the experiments. The main contribution of this work is to provide the reporting status of human-centric software engineering experiments and how this field has matured. This work also proposes a list of information that an experiment report expected to have. / Profissionais de engenharia de software precisam ter informações sobre os novos
mecanismos de apoio, a fim de decidir sem ser ao acaso, qual é a melhor opção que
se adapta ao que se precisa. Uma maneira de obter essas informações é através de
estudos empíricos, que permitem que os mecanismos utilizados para apoiar a
concepção e desenvolvimento de software sejam avaliados na prática. Assim, a
pesquisa científica através de experimentos e estudos empíricos são de fundamental
importância na avaliação de qualquer nova tecnologia para desenvolvimento de
software. Pesquisadores realizam experimentos para verificar as suas propostas sob
condições controladas. Portanto, os experimentos são uma categoria importante de
estudos empíricos e são a abordagem clássica para identificar relações de causaefeito.
O objetivo deste trabalho é caracterizar qualitativa e quantitativamente, e
analisar experimentos centrados em humanos em engenharia de software,
publicados em três jornais e três conferências de 2003 a 2013. Para atingir este
objetivo foi realizado um estudo de mapeamento sistemático que inclui todos os
artigos completos publicados no EASE, ESEM, ICSE, ESEJ, JSS, TSE. Com base
em pesquisas manuais nessas importantes conferências e periódicos em
Engenharia de Software, foram analisados 3671 artigos. 244 estudos primários
foram identificados como relevantes, relatando experimentos. Nesses experimentos
foram obtidos dados qualitativos e quantificados sobre autores e instituições,
participantes, tarefas realizadas, o ambiente, replicação e ameaças à validade. A
partir da análise realizada, este trabalho conclui que apesar dos guias existirem
agora, há uma grande lacuna no relatório desses experimentos. A principal
contribuição deste trabalho é fornecer o status dos relatórios de experimentos
centrados em humanos em engenharia de software e como este campo
amadureceu. Este trabalho também propõe uma lista de informações que um
relatório de experimento deve ter.
|
24 |
[en] EVALUATION OF SOFTWARE QUALITY BASED ON UML MODELS / [pt] AVALIAÇÃO DA QUALIDADE DE SOFTWARE COM BASE EM MODELOS UMLISELA MACIA BERTRAN 08 June 2009 (has links)
[pt] Um dos objetivos da engenharia de software é a construção de software com
um nível de qualidade elevado com o menor custo e no menor tempo possível.
Nesse contexto, muitas técnicas para o controle da qualidade de design de
software têm sido definidas. Além disso, mecanismos baseados em métricas para
a detecção de problemas também têm sido definidos. A maioria dessas técnicas e
mecanismos foca a análise do código fonte. Porém, para reduzir retrabalho inútil,
é importante utilizar técnicas de análise da qualidade capazes de detectar
problemas de design já desde os modelos dos sistemas. Esta dissertação propõe:
(i) um conjunto de estratégias de detecção para identificar, em modelos UML,
problemas de design específicos e recorrentes na literatura: Long Parameter List,
God Class, Data Class, Shotgun Surgery, Misplaced Class e God Package, e (ii) a
utilização do modelo da qualidade QMOOD para avaliar design de software a
partir de seus diagramas de classes. Para automatizar a aplicação destes
mecanismos foi implementada uma ferramenta: a QCDTool. Os mecanismos
desenvolvidos foram avaliados no contexto de dois estudos experimentais. O
primeiro estudo avaliou a acurácia, precisão e recall das estratégias de detecção
propostas. Esse estudo mostrou os benefícios e desvantagens da aplicação, em
modelos, das estratégias de detecção propostas. O segundo estudo avaliou a
utilidade da aplicação do modelo da qualidade QMOOD em diagramas UML.
Esse estudo mostrou que foi possível identificar, em diagramas de classes,
variações das propriedades de design, e, conseqüentemente, dos atributos da
qualidade nos sistemas analisados. / [en] One of the goals of software engineering is the development of high quality
software at a small cost an in a short period of time. In this context, several
techniques have been defined for controlling the quality of software designs.
Furthermore, many metrics-based mechanisms have been defined for detecting
software design flaws. Most of these mechanisms and techniques focus on
analyzing the source code. However, in order to reduce unnecessary rework it is
important to use quality analysis techniques that allow the detection of design
flaws earlier in the development cycle. We believe that these techniques should
analyze design flaws starting from software models. This dissertation proposes: (i)
a set of strategies to detect, in UML models, specific and recurrent design
problems: Long Parameter List, God Class, Data Class, Shotgun Surgery,
Misplaced Class and God Package; (ii) and the use of QMOOD quality model to
analyze class diagrams. To automate the application of these mechanisms we
implemented a tool: the QCDTool. The detection strategies and QMOOD model
were evaluated in the context of two experimental studies. The first study
analyzed the accuracy, precision and recall of the proposed detection strategies.
The second study analyzed the utility of use QMOOD quality model in the class
diagrams. The results of the first study have shown the benefits and drawbacks of
the application in class diagrams of some of the proposed detection strategies. The
second study shows that it was possible to identify, based on class diagrams,
variations of the design properties and consequently, of the quality attributes in
the analyzed systems.
|
25 |
Avaliação da efetividade dos critérios de teste estruturais no contexto de programas concorrentes / Investigating of the structural testing effectiveness in context of concurrent programsMaria Adelina Silva Brito 24 November 2011 (has links)
A Engenharia de Software tem desenvolvido t[écnicas e métodos para apoiar o desenvolvimento de software confiável, flexível, com baixo custo de desenvolvimento e fácil manutenção. Técnicas e critérios de teste contribuem nessa direção, fornecendo mecanismos para produzir software com alta qualidade. Este trabalho apresenta um estudo experimental para avaliar o custo, eficácia e a dificuldade de satisfação (strength) dos critérios estruturais propostos para programas concorrentes. Esta avaliação foi conduzida usando oito programas implementados em MPI e utilizando a ferramenta de teste ValiMPI. Com base em taxonomias, defeitos foram injetados nos programas de modo a avaliar a eficácia dos critérios de teste em revelar os defeitos inseridos. Os resultados obtidos demonstraram o aspecto complementar dos critérios e informações sobre o custo e eficácia, que contribuíram para o estabelecimento de uma estratégia de teste incremental para aplicar os critérios de teste em uma boa relação custo-eficácia. Para concluir, os resultados indicam que os critérios de teste estrutural propostos para programas concorrentes em MPI são promissores e podem auxiliar a detectar defeitos nessas aplicações, melhorando a qualidade das mesmas / The software engineering has developed techniques and methods to help the software development reliable, exible and with lower development costs and easy maintenance. Testing techniques and criteria contribute in this sense, providing mechanisms to produce high quality software. This work presents an experimental study to evaluate the cost, effectiveness and strength of the structural testing criteria for concurrent programs. This evaluation has been conducted using eight programs implemented in MPI and the ValiMPI testing tool. Based on a fault taxonomy for concurrent programs, defects have been injected in these programs in order to evaluate the effectiveness of the testing criteria. The results indicate the complementary aspect of the criteria and the information about cost and effectiveness have contributed to the establishment of an incremental testing strategy to apply the testing criteria in good relation cost-effectiveness. To conclude, the results indicate that the structural testing criteria, proposed for MPI concurrent programs, are promising and they can help to find defects in these applications, improving their quality
|
26 |
Monitoramento de métricas de código-fonte em projetos de software livre / Source code metrics tracking on free and open source projectsPaulo Roberto Miranda Meirelles 20 May 2013 (has links)
Nesta tese de doutorado, apresentamos uma abordagem para a observação das métricas de código-fonte, estudando-as através de suas distribuições e associações, além de discutir as relações de causalidade e implicações práticas-gerenciais para monitoramento das mesmas. Em nossos estudos avaliamos a distribuição e correlações dos valores das métricas de 38 projetos de software livre, dentre os com mais contribuidores ativos em seus repositórios. Para tal, coletamos e analisamos os valores para cada métrica em mais de 344.872 classes e módulos dos projetos avaliados. Complementarmente, para mostrarmos a utilidade do monitoramento de métricas, descrevemos uma extensão e adaptação do modelo de causalidade do conceito de atratividade de projetos de software livre, que indica uma relação estatística entre os valores das métricas de código-fonte e a quantidade de downloads, contribuidores e atualizações (commits) nos repositórios dos projetos. Para isso, realizamos estudos empíricos com milhares de projetos de software livre. Do ponto de vista prático, também contribuímos com um conjunto de ferramentas inovador para a automação da avaliação de projetos de software livre, com ênfase nos estudos e na seleção de métricas, o que permite a análise de código-fonte de acordo com a percepção de qualidade das comunidades de software livre. Entre as principais contribuições desta tese está uma análise detalhada, em relação ao comportamento, valores e estudos de caso, de 15 métricas de código-fonte, o que representa um avanço em comparação a literatura relacionada ao ampliar o número de métricas avaliadas e propor uma abordagem que visa diminuir as contradições das análises das métricas. / In this Ph.D dissertation we present an approach about source code metrics tracking. We have researched source code metrics distributions and associations to discuss their causality and management-practices implications. Our studies have assessed distributions and correlations of source code metric values on 38 free software projects, which have a lot of activated contributors in their repositories. We have collected and analyzed metrics from 344,872 classes and modules of about 38 free software projects. Additionally, to show how it is useful to track source code metrics, we have extended the model of free software attractiveness to include source code metrics. Our technical attractiveness model indicates a statistical relationship between source code metrics and number of downloads, contributors, and commits in the analyzed free software repositories. For that, we have conducted empirical studies with 8,450 free software projects. From a practical point of view, we have contributed with a set of innovative tools for automated evaluation of free software projects. Our tool allow the analyses of source code metrics that mirror quality perceptions from the free software communities point of view.
|
27 |
[en] A QUANTITATIVE APPROACH TO ASPECT ORIENTED SOFTWARE DEVELOPMENT / [pt] UMA ABORDAGEM QUANTITATIVA PARA DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOSEDUARDO MAGNO LAGES FIGUEIREDO 05 July 2006 (has links)
[pt] O desenvolvimento de software orientado a aspectos é um
paradigma
recente que introduz novas abstrações e mecanismos com o
objetivo de melhorar a
modularidade de interesses que se espalham pelo sistema.
Entretanto, a satisfação
de atributos de qualidade em sistemas orientados a
aspectos não é tarefa simples e
a utilização equivocada destas novas abstrações pode
resultar em efeitos colaterais
relacionados a princípios importantes da Engenharia de
Software, tais como
elevado acoplamento, baixa coesão dos módulos e incompleta
modularidade dos
interesses em aspectos. Problemas como estes não são
facilmente verificáveis em
sistemas de médio e grande porte sem um método adequado e,
geralmente,
consomem muito tempo e recursos. Portanto, torna-se
necessário um método de
avaliação que auxilie engenheiros de software na análise
de sistemas orientados a
aspectos. Este trabalho de mestrado propõe uma abordagem
que provê suporte à
avaliação quantitativa de implementações orientadas a
aspectos. A abordagem
incluiu: (i) um método de avaliação organizado em etapas,
e (ii) uma ferramenta
de medição e avaliação, chamada AJATO, que dá suporte ao
método proposto. O
método é composto por um conjunto de métricas e regras
heurísticas. As métricas
fornecem informações quantitativas e as heurísticas
contribuem com algum
raciocínio semântico dos números. A ferramenta AJATO é
composta por quatro
módulos que efetuam o parser do código, mapeamento de
estruturas sintáticas em
interesses, medição e avaliação heurística. Um conjunto de
cinco estudos de caso
envolvendo domínios de aplicação distintos foi realizado
para avaliar a utilidade e
usabilidade da abordagem proposta. / [en] Aspect-oriented software development is an emerging
paradigm that
provides new abstractions and mechanisms to support the
modularization of
crosscutting concerns through the software development
lifecycle. However, the
achievement of high-quality aspect-oriented software is
not trivial. The
inappropriate use of aspect-oriented abstractions and
mechanisms potentially
leads to the violation of important design principles,
such as low coupling, high
cohesion, incomplete modularization of crosscutting
concerns into aspects, and so
forth. These problems are not easily detectable and an ad
hoc analysis of large
designs and implementations is often expensive and time-
consuming. Hence there
is a need for an assessment method that assists software
engineers in the analysis
of their aspect-oriented implementations. This work
proposes the development of
a systematic approach to support the quantitative
assessment of aspect-oriented
software. The approach is organized in a stepwise fashion
and is founded on a
metrics suite and a comprehensive set of complementary
rules. Our proposal is
supported by a measurement and assessment tool. A set of
five case studies from
different application domains have been carried out in
order to evaluate the
usability and usefulness of our proposed approach.
|
28 |
Evidências sobre o uso de técnicas de geração automática de dados de teste em programas concorrentes / Evidences about the use of automatic test data generation techniques in context of concurrent programsVilela, Ricardo Ferreira 01 August 2016 (has links)
Diversas pesquisas apoiam e investigam o teste de programas concorrentes, as quais objetivam, principalmente, a proposição de critérios de teste e mecanismos para execução das diferentes sincronizações entre processos ou threads. As características específicas dessas aplicações podem ocasionar diferentes tipos de defeitos, os quais, em sua maioria, não são facilmente identificados. Nesse contexto, a geração automática de dados de teste pode apoiar a atividade de teste atuando na seleção de entradas mais representativas, ou seja, aquelas com maior probabilidade de revelar defeitos. Apesar disso, poucas pesquisas abordam este tema no contexto de programas concorrentes, e as existentes não consideram aspectos importantes desse tipo de aplicação. A geração de dados de teste para programas sequenciais dispõe de uma variedade de técnicas que apoiam a seleção dos dados de teste. Essas técnicas têm sido estendidas para o contexto de programas concorrentes partindo da premissa que esses programas necessitam de abordagens mais complexas para seleção de entradas, em decorrência disso um maior custo é imposto ao teste. Considerando esse contexto, uma lacuna ainda em aberto é a avaliação das técnicas para o cenário de programas concorrentes. Neste trabalho a avaliação das técnicas foi explorada por meio da realização de estudos experimentais, os quais avaliaram diferentes técnicas de geração de dados de teste para o contexto de programas concorrentes, considerando a eficácia em revelar defeitos, cobertura de critérios e custo para atividade de teste. Os resultados obtidos demonstraram que as técnicas empregadas para programas sequenciais não atingem o mínimo esperado para este tipo aplicação. Apesar disso, as técnicas investigadas apresentaram características importantes que podem auxiliar a atividade de teste para programas concorrentes e a proposição de abordagens efetivas de geração de dados para esse contexto. / The concurrent program testing has been largely investigated with propositions of testing criteria and mechanisms, which aim mainly to testing criteria proposition and mechanisms for execution of different synchronizations. The specific characteristics of these applications can lead to the different types of faults, which, in most of cases, are not easily identified. In this context, the automatic test data generation can support the testing activity acting in selecting the most representative data tests, i.e. those most likely to reveal faults. Nevertheless, few studies address this issue in the context of concurrent programs, and the these studies do not consider important aspects of this type of application. In contrast, we can find several techniques proposed to support the test data generation for sequential programs. These techniques have been extended to the context of concurrent programs on the premise that these programs require more complex approaches for selection of test data. As a result, a greater cost for testing activity is enforced. Considering this context, a gap still open is the evaluation of techniques for the scenario of concurrent programs. In this work the evaluation of techniques was explored through experimental studies, which different techniques of test data generatoon were evaluated, considering effectiveness, testing coverage and application cost. The results showed that the generation techniques used for sequential programs used in the experimental study do not reach the minimum expected in terms of effectiveness and cost for concurrent programs. Nevertheless, the techniques investigated showed significant features that can help the proposition of effective approaches for test data generation applied to concurrent programs.
|
29 |
Execução paralela de programas como suporte ao teste de mutação / Parallel execution of programs as support for mutation testingAndrade, Stevão Alves de 08 April 2016 (has links)
Teste de software desempenha um papel fundamental no processo de produção de um produto de software de qualidade. Com o passar dos anos, diversas técnicas e critérios de teste de software foram desenvolvidos a fim de estabelecer meios e métricas para guiar a criação de casos de teste efetivos, capazes de evidenciar defeitos no produto avaliado. Dentre os principais critérios para teste de software está o Teste de Mutação, que foi amplamente difundido e é tido como uma das abordagens mais eficazes para guiar a criação de conjuntos de casos de teste capazes de revelar defeitos em software. Entretanto, à medida que esse critério possui uma grande efetividade para revelar defeitos, ele peca pelo baixo poder de escalabilidade, o que acaba comprometendo diretamente a sua capacidade de aplicação. Neste sentido, diversos estudos foram desenvolvidos nesta área dedicando-se a aprimorar o seu desempenho e torná-lo uma alternativa viável para aplicação durante a fase de teste de software. Este trabalho apresenta indícios de que a utilização de estruturas complexas de processamento pode apoiar a aplicação do Teste de Mutação. Para tal, foi concebida uma arquitetura que possibilite a aplicação do Teste de Mutação em paralelo. Após a implementação da arquitetura foram avaliados cinco algoritmos de balanceamento de carga responsáveis por controlar a distribuição e execução do Teste de Mutação. Durante a avaliação experimental da arquitetura e dos algoritmos, observou-se que nos piores cenários avaliados foi possível atingir um ganho de desempenho acima de 70% em relação à aplicação sequencial convencional do Teste de Mutação enquanto nos melhores cenários o ganho de desempenho foi acima 95%, contudo, necessitando utilizar-se de uma infraestrutura mais robusta para a execução da arquitetura. / Software testing plays a fundamental role in the development process of quality software systems. Over the years, many software testing techniques and criteria were developed to provide means and metrics to guide the development of effective test cases, able to find defects on the product being assessed. Among major criteria for software testing is the mutation testing, which was broadly broadcast and is likely one of the most effective approaches for creating sets of test cases able to uncover software bugs. However, although mutating testing has a great effectiveness to uncover defects in a product, it suffers from low scalability, which directly compromises its applicability. In this sense, many studies were developed in this area aiming at improving the performance of that criterion and make it a viable alternative for its application throughout the software testing process. This work presents evidence that the use of complex structures of processing can support mutation testing application. For this, it was established an architecture that enables mutation testing to be performed in parallel. After implementing the architecture, five load balance algorithms to controlling the distribution and execution of mutation testing were analyzed. During the experimental evaluation of the architecture and algorithms, it was observed that in the worst evaluated scenarios it was possible to reach a gain in performance of up to 70% in comparison to the conventional application (sequential). In the best scenarios the gain was over 95% in exchange of using a more robust infrastructure for the execution of the architecture.
|
30 |
[en] FROM OBJECTS TO AGENTS: AN ASPECT ORIENTED APPROACH / [pt] OBJETOS E AGENTES: UMA ABORDAGEM ORIENTADA A ASPECTOSALESSANDRO FABRICIO GARCIA 13 July 2004 (has links)
[pt] Agentes de software incorporam várias propriedades
específicas, como
autonomia, adaptação, interação, aprendizagem e mobilidade.
A inclusão dessas
propriedades de agência é uma das maiores fontes de
complexidade na construção de
sistemas multiagentes. Dificilmente elas são modularizadas
com abstrações e
mecanismos da engenharia de software orientada a objetos. À
medida que a
complexidade da arquitetura interna dos agentes aumenta,
essas propriedades tendem a
se espalhar através dos vários módulos ou objetos do
sistema. O espalhamento é
observado desde fases preliminares de desenvolvimento, como
a fase de definição
arquitetural. O uso de abstrações e mecanismos existentes
conduz ao projeto e à
implementação de sistemas multiagentes que são difíceis de
manter e reutilizar.
Este trabalho apresenta uma abordagem orientada a aspectos
para o
desenvolvimento de sistemas baseados em agentes. A
abordagem provê suporte para
modularização e composição das propriedades de agência por
meio de abstrações e
mecanismos do paradigma orientado a aspectos. Além disso,
tais propriedades são
incorporadas de forma transparente à funcionalidade básica
do sistema de software,
desde a fase de definição arquitetural. A abordagem
compreende três componentes: (i)
um método arquitetural, (ii) uma linguagem de padrões e
(iii) um framework para
avaliação quantitativa. O método e a linguagem apresentam
um conjunto de soluções
orientadas a aspectos para a definição arquitetural,
projeto e implementação de agentes
de software. O framework define um conjunto de métricas e
um modelo de qualidade
que permite a avaliação empírica da nossa abordagem em
termos de reusabilidade e
manutenibilidade. Estudos experimentais qualitativos e
quantitativos foram realizados
para avaliar nossa proposta em diferentes domínios de
aplicação. Os resultados
empíricos concluíram que nossa abordagem permite a
construção de sistemas baseados
em agentes com modularização superior, menor acomplamento,
menos linhas de código
e menor complexidade interna dos componentes. / [en] Software engineers of Multi-Agent Systems (MASs) are faced
with different
concerns (properties), such as autonomy, adaptation,
interaction, collaboration, learning,
and mobility. Many of these agent concerns cannot be
modularized based only on
object-oriented abstractions. MAS developers however have
relied mostly on objectoriented
design techniques and on object-oriented programming
languages, such as
Java. As the agent complexity increases, the agent concerns
tend to spread across
several system components at the architectural, design and
implementation levels. It
often leads to a poor separation of agent concerns in the
software system, and in turn to
the production of MASs that are difficult to maintain and
reuse.
This thesis presents an innovative aspect-oriented approach
for the seamless
integration of agents into object-oriented software
engineering from the architectural
stage to the implementation stage. Aspect is the
abstraction used to modularize agent
concerns that crosscut several system components. The
proposed approach encourages
the separate handling of agent properties, and provides a
disciplined scheme for their
composition. The approach is composed of an architectural
method, a pattern language,
and an assessment framework. The architectural method and
the pattern language
provide aspect-oriented solutions for modularizing the
agent concerns at different stages
of design and implementation. The purpose of the assessment
framework is to support
the evaluation of the reusability and maintainability of
aspect-oriented solutions based
on a metrics suite and a quality model. Experimental
studies in different application
domains have been conducted to assess the proposed approach
based on qualitative and
quantitative criteria. The use of the aspect-oriented
solutions resulted in fewer lines of
code, fewer design and implementation components, lower
internal complexity of
system components, and lower coupling.
|
Page generated in 0.1118 seconds