Spelling suggestions: "subject:"engenharia dde software."" "subject:"engenharia dee software.""
51 |
Avaliando o uso de meta-análise nas replicações de estudos em engenharia de softwareLIMA, Maria Yêda de Melo 20 July 2016 (has links)
Submitted by Alice Araujo (alice.caraujo@ufpe.br) on 2017-11-30T19:04:01Z
No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
MariaYedaDeMeloLima.pdf: 2339148 bytes, checksum: bac792c58d15c15f1666c7e8ed2eed86 (MD5) / Made available in DSpace on 2017-11-30T19:04:01Z (GMT). No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
MariaYedaDeMeloLima.pdf: 2339148 bytes, checksum: bac792c58d15c15f1666c7e8ed2eed86 (MD5)
Previous issue date: 2016-07-20 / FACEPE / Atualmente, meta-análise é usada em algumas áreas de conhecimento científico-tecnoló-gico, tais como : educação, saúde, marketing, agricultura, ecologia e tem contribuído para o desenvolvimento e evolução dessas áreas. Uma vantagem de meta-análise é sintetizar as evidências de estudos sobre um dado assunto, apresentando uma estimativa quantitativa global derivada de estudos individuais, evitando assim a realização de pesquisas desnecessárias sobre temas já consolidados e uma desvantagem seria que a meta-análise não pode anular as limitações inerentes aos estudos em que se baseia. Meta-análise agrega os resultados de pesquisas anteriores levando em consideração as diferentes condições nas quais as pesquisas originais foram realizadas. Os métodos estatísticos usados na meta-análise asseguram a obtenção de uma estimativa combinada e precisa, devido ao aumento do número de observações e, consequentemente, do poder estatístico e da possibilidade de examinar a variabilidade entre os estudos. Este trabalho objetiva avaliar o resultado da meta-análise com a aplicação dos métodos de agregação existentes na literatura em famílias de replicações de estudos em Engenharia de Software. Foram utilizados os métodos de agregação Diferença da Média Ponderada, Razão de Resposta Paramétrica e Razão de Resposta Não Paramétrica. Os resultados da aplicação de meta-análise nas famílias de replicações indicam que as pesquisas em Engenharia de Software necessitam formalizar o processo de report, criar metodologias que possam apoiar o desenvolvimento e melhorar a qualidade das replicações nessa área. / Nowadays, meta-analysis is used in some areas of scientific and technological knowledge, such as: education, health, marketing, agriculture, ecology and has contributed to the development and evolution of these areas. One advantage of meta-analysis is to summarize evidences from studies concerning a given subject, producing an overall quantitative estimate derived from individual studies and a disadvantage would be that the meta-analysis can not override the limitations inherent in the studies on which. Meta-analysis aggregates results of previous research taking into account different conditions in which the original research was conducted. Statistical methods used in the meta-analysis ensure to obtain a combined and accurate estimative, due to the increase the number of observations and consequently the statistical power and the possibility to examine the variability among studies. This work aims to evaluate the result of the metaanalysis with the application of the existing aggregation methods in the literature in study families of replications in Software Engineering. The methods of aggregation Weighted Mean Difference, Response Ratio Parametric and Response Ratio Non Parametric were used. The results of the meta-analysis application in the families of replications indicate that the research in Software Engineering needs to formalize the report process, to create methodologies that can support the development and to improve the quality of the replications in this area.
|
52 |
Análise da qualidade de revisões sistemáticas em engenharia de software empíricaSILVA, Diogo Vinícius de Sousa 21 August 2015 (has links)
Submitted by Rafael Santana (rafael.silvasantana@ufpe.br) on 2018-02-21T17:19:52Z
No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
dissertação diogo - definitiva.pdf: 1114333 bytes, checksum: 2d5217b1d58aa3d45ab5f8208741f0b5 (MD5) / Made available in DSpace on 2018-02-21T17:19:52Z (GMT). No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
dissertação diogo - definitiva.pdf: 1114333 bytes, checksum: 2d5217b1d58aa3d45ab5f8208741f0b5 (MD5)
Previous issue date: 2015-08-21 / CNPQ / Contexto – A engenharia de Software Empírica foca em investigar questões da Engenharia de Software (ES) utilizando métodos experimentais. Estudos empíricos têm se mostrado um importante instrumento para o avanço científico da área de ES. Como exemplo de estudos empíricos utilizados nesta área, podemos destacar: experimento controlado, quasi-experimento, survey, etnografia, pesquisa-ação, estudo de caso e estudos sistemáticos da literatura (Revisão Sistemática e Mapeamento Sistemático). Dessa forma, é salutar a realização de pesquisas objetivando o crescimento e o amadurecimento desses tipos de estudos na área de ES. A Revisão Sistemática da Literatura (RSL) é um tipo de estudo secundário utilizado para buscar de forma abrangente trabalhos primários relacionados com uma questão específica de pesquisa. Com o crescente uso de RSL na ES, torna-se cada vez mais importante a avaliação da qualidade dos trabalhos publicados em diversas conferências ejournals da área. Objetivo - O objetivo deste trabalho é identificar critérios que possam ser utilizados para analisar a qualidade de RSL em ES. De posse de um instrumento de avaliação da qualidade de uma RSL, analisaremos o nível da qualidade das principais pesquisas na área ao longo dos últimos anos das principais conferêncis ejournals. Método - Um processo foi definido para guiar a busca e identificação de critérios de qualidade na literatura. Foram identificados 23 critérios, e os mesmos foram subdivididos em 53 questões. Após definido os critérios, foram selecionados 160 estudos secundários e distribuídos entre 10 duplas de pesquisadores para extrair os dados baseados na lista de critérios de qualidade identificados. Resultados - Dos 160 estudos secundários selecionados inicialmente, 53 foram excluídos por não serem revisões sistemáticas. Os dados dos 107 estudos avaliados mostram que 13% obtiveram a classificação de qualidade "Ruim", 39% "Regular", 34% "Boa", 14% "Muito boa" e nenhum estudo atingiu a classificação de qualidade "Excelente". Conclusões A principal contribuição desta pesquisa é fornecer um instrumento que possa ser utilizado para avaliar RSL em ES, bem como reportar o nível de qualidade das pesquisas publicadas na área ao longo dos últimos anos. Após análise dos dados percebe-se que ainda há muito a ser melhorado em termos de execução de RSL em ES, entretanto está havendo evolução nos últimos anos. / Context - The Empirical Software Engineering focuses on investigating Software Engineering (SE) issues using experimental methods. Empirical studies have proven an important tool for scientific advancement in SE area. As an example of how empirical studies are being used in this area, we can highlight: controlled experiment, quasi-experiment, survey, ethnography, action research, case study and systematic studies of literature (Systematic Review and Systematic Mapping). Thus, conduct research aimed at growth and maturation of these types of studies is beneficial to SE area. The Systematic Review Literature (SRL) is a type of secondary study used to look comprehensively primary work related to a specific research question. With the growing use of SRL in SE increasingly important it is to assess the quality of papers published in various conferences and journals. Objective - The objective of this study is to identify criteria that can be used to analyze the quality of SRL in SE. Having an instrument for assessing the quality of a SRL, analyze the quality level of the leading research in the area over the past few years major conferences and journals. Method-A process has been set to guide the search and identification of quality criteria in literature. There were 23 criteria, and they were divided into 53 questions. After defining criteria were selected 160 secondary studies and distributed among 10 pairs of researchers to extract data based on the defined quality criteria list. Results-Ofthe160selected secondary studies initially, 53 were excluded because they are not systematic reviews. Data from 107 evaluated studies show that 13 % obtained the quality rating of "Poor", 39 % "Regular", 34 % "Good", 14 % "Very Good" and no study got the quality rating "Excellent."Conclusions The main contribution of this study is to provide an instrument that can be used to assess SRL in SE and report the level of quality of published research in the area over the past few years. After analyzing the data we can see that there is still much to be improved in terms of execution SRL in SE, however there is progress in recent years.
|
53 |
Uma abordagem estática para recomendar estruturas de dados Java para melhorar o consumo de energiaARAÚJO NETO, José Benito Fernandes de 30 August 2016 (has links)
Submitted by Alice Araujo (alice.caraujo@ufpe.br) on 2018-05-02T22:09:29Z
No. of bitstreams: 1
DISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf: 793651 bytes, checksum: 17e6b1ac1528ce716feaa7c768365410 (MD5) / Made available in DSpace on 2018-05-02T22:09:29Z (GMT). No. of bitstreams: 1
DISSERTAÇÃO José Benito Fernandes de Araújo Neto.pdf: 793651 bytes, checksum: 17e6b1ac1528ce716feaa7c768365410 (MD5)
Previous issue date: 2016-08-30 / Programadores Java possuem um amplo repertório de coleções a seu dispor. Essas coleções implementam abstrações bem conhecidas como listas, conjuntos, filas, e tabelas. Além disso, a linguagem conta com um rico acervo de coleções que podem ser utilizadas paralelamente por múltiplas threads em execução, sem comprometer a corretude do programa. Estudos anteriores demonstraram que essas coleções possuem diferentes características em termos de desempenho, escalabilidade, controle de concorrência e consumo de energia. Em particular, Pinto et al. (2016) investigaram os impactos do uso de diferentes coleções seguras para múltiplas threads no consumo de energia de uma aplicação. Esse estudo descobriu que diferentes operações de uma mesma implementação possuem diferentes características de consumo de energia e o mesmo se aplica a diferentes implementações de uma mesma abstração. Tendo em vista esta diferença do consumo de energia de acordo com a coleção e operação utilizadas, este trabalho tem por objetivo melhorar a eficiência de energia de aplicações concorrentes que fazem uso intenso de coleções através da recomendação automática de estruturas de dados mais eficientes em um determinado contexto. Dessa forma, este trabalho desenvolveu uma abordagem baseada em análise estática para analisar de forma automática o uso das estruturas de dados de uma aplicação e recomendar transformações necessárias de acordo com suas utilizações, de modo a reduzir o consumo de energia da aplicação. Mais especificamente analisou-se um total de 11 implementações de três tipos de estrutura de dados seguras para threads disponíveis na linguagem Java: conjuntos (4), mapas (4) e sequências (3). Utilizando a biblioteca WALA, a implementação da abordagem proposta apresenta recomendações das transformações necessárias para que as aplicações consumam menos energia. Esta recomendação é realizada através de uma heurística baseada no consumo de energia de cada coleção para um determinado ambiente. Para avaliar a abordagem, foram utilizados benchmarks, conhecidos na academia, de aplicações reais. Utilizando a abordagem proposta nesse trabalho foi percebida uma redução do consumo de energia de até 4.37%. Até onde foi possível averiguar, este é o primeiro trabalho que torna possível reduzir o consumo de energia de uma aplicação sem a necessidade de executá-la. / Java developers have a wide repertoire of collections at their disposal. These collections implement well-known abstractions such as lists, sets, queues, and maps. In addition, the Java language has a rich framework of collections that can be used in parallel by multiple threads running without compromising the correctness of the program. Previous work has shown that these collections have different characteristics in terms of performance, scalability, concurrency control, and energy consumption. In particular, Pinto et al. (2016) investigated the impact of using different thread safe collections on the energy consumption of an application. Among the findings, this study found that different operations of the same implementation have different characteristics, in terms of energy consumption, and the same applies to different implementations of the same abstraction. Since both dimensions, the operations and the collection implementation, impact energy, this work aims to improve the energy efficiency of concurrent applications that do intense use of collections by automatically recommending potentially more efficient collection implementations in a given context. Our approach leverages static analysis to collect information about how applications use thread-safe collections from Java and, based on the energy usage profiles of the operations of these collections, make informed recommendations that potentially save energy. We have developed CECOtool, a tool that implements this approach. Usage of the tool does not require the application under analysis to be executed. To evaluate the approach, we used well-known benchmarks based on two real-world applications. Using this approach we observed a reduction in energy consumption of up to 4.37%. To the best of our knowledge, this is the first work aiming to reduce the energy consumption of an application without the need to run it.
|
54 |
Um método para construção de modelos i* utilizando design thinkingSANTOS, Laino Edemberguer dos 30 August 2016 (has links)
Submitted by Alice Araujo (alice.caraujo@ufpe.br) on 2018-06-01T17:29:10Z
No. of bitstreams: 1
DISSERTAÇÃO Laino Edemberguer dos Santos.pdf: 9334061 bytes, checksum: 42393fbcb728560c5ef1256c60aeb5d8 (MD5) / Made available in DSpace on 2018-06-01T17:29:10Z (GMT). No. of bitstreams: 1
DISSERTAÇÃO Laino Edemberguer dos Santos.pdf: 9334061 bytes, checksum: 42393fbcb728560c5ef1256c60aeb5d8 (MD5)
Previous issue date: 2016-08-30 / Pode-se agregar criatividade em produtos de software para diferenciá-los no meio das
várias soluções concorrentes presentes no mercado, para melhorar a interação entre eles e os
usuários e até mesmo com o objetivo de repensar (redesenhar) as regras dos domínios aos
quais estão inseridos. No entanto, os processos criativos demandam atividades específicas
diferentes daquelas exigidas pelos processos de software e produzem resultados que são
difíceis de serem expressos e gerenciados como requisitos de software. A Engenharia de
Requisitos possui métodos eficazes para buscar, representar, validar e gerenciar os objetivos
que os stakeholders buscam num software demandado, como por exemplo o framework
orientado a objetivos i*. Este trabalho dá continuidade aos esforços recentes de outros
autores em unir criatividade e i*, a fim de propiciar que os resultados dos processos
criativos possam ser transformados em modelos i* para serem usados como entrada para
as atividades da engenharia de requisitos, haja vista os resultados dos métodos criativos
serem difíceis de ser especificados formalmente. É importante destacar que este é o primeiro
método proposto que busca fazer essa integração utilizando uma metodologia criativa
amplamente difundida e fundamentada, o Design Thinking. Nesta abordagem, é definido
um método para a construção colaborativa entre os stakeholders de modelos i* criativos, a
partir da aplicação do Design Thinking. Em outras palavras, o método proposto especifica
de forma lógica e interconectada, como, quando e por que executar técnicas e conceitos
do Design Thinking, a fim de se criar modelos i* que representem os aspectos criativos
levantados. A proposição deste método foi guiada pelo método científico pesquisa-ação,
de modo que o arcabouço teórico, aliado às ações e interações sociais, possibilitaram
fundamentar e testar formas eficazes de construir modelos i*, a partir da aplicação do
Design Thinking. Holisticamente, o método está baseado nos estágios de inspiração, ideação
e implementação do Design Thinking, exige uma postura de facilitador para o engenheiro de
requisitos no processo criativo; define ferramentas e propicia um ambiente que possibilitam
a colaboração entre os stakeholders e apontam momentos propícios para fomentar o
pensamento criativo. Outro aspecto deveras relevante deste método é a possibilidade de
stakeholders não técnicos fazerem parte do processo de construção dos modelos i* criativos.
Isso porque a modelagem i* é considerada complexa e requer experiência e conhecimento
consolidado do framework. Para amenizar essa complexidade, este método propõe que a
construção de modelos i* guiado pelo Design Thinking se dê da definição de modelos mais
abstratos e flexíveis até a adaptação e o refinamento para modelos i* válidos. / You can add creativity to software products to differentiate them among the various
competing solutions on the market, to improve the interaction between them and the
users and even in order to rethink (redesign) the rules of the domains to which they
belong. However, the creative processes require different specific activities other than
those required by software processes and produce results that are difficult to express and
manage as software requirements. The Requirements Engineering has effective methods to
search, represent, validate and manage the goals the stakeholders aims to achieve in the
software-to-be, as for example the i* goal oriented framework. This work continues the
recent efforts of other authors to join creativity and i*, in order to enable the results of
creative processes can be transformed into i* models to be used as input to the activities
of Requirements Engineering, given that the results of creative methods are difficult to
formally specify. It is worth to highlight that this is the first method that propose to
make this integration using a widespread and grounded creative methodology, the Design
Thinking. In this approach, it is defined a method for collaborative construction of creative
i* models among stakeholders through the application of the Design Thinking. In other
words, the proposed method specifies in a interconnected and logical way, how, when and
why to perform techniques and concepts of Design Thinking in order to create i* models
representing the discovered creative aspects. The proposition of this method was guided by
the reasearch-action scientific method, so that the theoretical framework, combined with
social actions and interactions, enabled justifying and testing effective ways to construct
i* models from the application of the Design Thinking. Holistically, the method is based
on the stages of inspiration, ideation and implementation of the Design Thinking; It
requires a facilitator position for the requirements engineer in the creative process, define
tools and provides an environment that enables collaboration among stakeholders and
suggest favorable moments to foster creative thinking. Another truly important aspect of
this method is the possibility of non-technical stakeholders be part of the construction
process of creative i* models, this because i* modeling is considered complex and requires
experience and consolidated knowledge of the framework. To alleviate this complexity,
this method proposes the construction of i* models guided by the Design Thinking starts
by the definition of more abstract and flexible models and after by adapting and refining
them to valid i* models.
|
55 |
As diferentes concepções sobre o desempenho individual na engenharia de software: uma pesquisa qualitativaFONSECA, Camila Sá da 24 August 2016 (has links)
Submitted by Alice Araujo (alice.caraujo@ufpe.br) on 2018-06-01T17:58:14Z
No. of bitstreams: 1
DISSERTAÇÃO Camila Sá da Fonseca.pdf: 5296102 bytes, checksum: 7f0f07abd883a40b27a5246a0234a725 (MD5) / Made available in DSpace on 2018-06-01T17:58:14Z (GMT). No. of bitstreams: 1
DISSERTAÇÃO Camila Sá da Fonseca.pdf: 5296102 bytes, checksum: 7f0f07abd883a40b27a5246a0234a725 (MD5)
Previous issue date: 2016-08-24 / CNPQ / Cada vez mais, as organizações de desenvolvimento de software buscam formas de serem mais competitivas, além disso, para conseguirem manter-se – e evoluir – num mercado tão dinâmico o esforço pelo aumento da produtividade precisa ser uma constante. Em meio ao surgimento de técnicas, frameworks e metodologias acredita-se ser necessário modificar o foco para as questões humanas e investigar os comportamentos e as relações entre os profissionais da engenharia de software na procura por meios que melhorem o desempenho do indivíduo e, consequentemente, auxiliem as empresas diante desse mercado que exige padrões cada vez mais elevados de produtos de software. O objetivo desse estudo é investigar as concepções sobre o desempenho individual na engenharia de software e entender como eventuais discrepâncias entre as concepções de líderes e liderados podem afetar a motivação e a satisfação do profissional da engenharia de software. Por meio de uma Pesquisa Qualitativa Básica – incluindo entrevistas, questionário e análise de documentos – dividida em duas etapas e envolvendo profissionais da engenharia de software – líderes e liderados – numa empresa real e todo o contexto associado, respostas relevantes para o problema da pesquisa foram encontradas. Como resultado construiu-se um modelo que descreve o relacionamento dessas variáveis: desempenho (antecedentes, definições e consequentes), motivação e satisfação; além disso, proposições, com o objetivo de tornar o modelo mais prático, são sugeridas. Nesse cenário, algumas diferenças entre líderes e liderados são perceptíveis, muitas explicadas pelo papel de cada um dentro da empresa, mas que podem trazer prejuízos à motivação e à satisfação. Elementos como comunicação, feedbacks e avaliações de desempenho ganham destaque sendo os construtos que tornam o sistema cíclico. Além disso, a colaboração – representando o nível de auxílio entre os membros de uma equipe – também tem importância destacada nesse sistema. / Increasingly, software development organizations pursue ways of gaining competitive advantages, beyond that, in order to last – and evolve – in such a dynamic market the effort on seeking productivity improvements has to be a constant. Among techniques, frameworks and methodologies emergence it is believed that some focus has to be redirected to human issues to investigate behaviors and relations amid software engineering practitioners at the pursuit for a path to improve individual performance
and, thereafter, to help companies at that high standers software products market. The main goal at this research is to investigate conceptions about individual performance at software engineering and to understand how any discrepancies between leaders and led may affect the motivation and the job satisfaction of a software engineer practitioner. Through a Basic Qualitative Research – including interviews, questionnaire and document analysis – broken into two main steps and enfolding software engineering practitioners – both leaders and led – at a real setting company and all its associated
context relevant answers to research questions were found. As a result a descriptive model was created and explained. It shows the relationships of those variables: performance (its precedents, definitions and consequents), motivation and satisfaction; furthermore, propositions, in order to bring practicality to the model, were suggested. At this setting, some differences between leaders and led are noticeable, a lot of them are explained by the professional role inside the company, however they may bring some
damage to motivation and satisfaction. Elements like communication, feedbacks and performance evaluation are highlighted as being constructs that make the whole system cyclic. Moreover, collaboration – meaning the assistance level among team members – also has a crucial importance at this system.
|
56 |
FREVO: um framework e uma ferramenta para automação de testesMELO, Robert Gomes 29 February 2016 (has links)
Submitted by Alice Araujo (alice.caraujo@ufpe.br) on 2018-06-01T18:06:50Z
No. of bitstreams: 1
DISSERTAÇÃO Robert Gomes Melo.pdf: 2572141 bytes, checksum: 145d4f304f90a12aef56f6d6db9417ed (MD5) / Made available in DSpace on 2018-06-01T18:06:50Z (GMT). No. of bitstreams: 1
DISSERTAÇÃO Robert Gomes Melo.pdf: 2572141 bytes, checksum: 145d4f304f90a12aef56f6d6db9417ed (MD5)
Previous issue date: 2016-02-29 / Com o avanço da computação móvel e da Internet, dispositivos móveis como smartphones e tablets estão gradativamente se tornando parte essencial de nossas vidas. A quantidade e complexidade dos softwares que funcionam nesses dispositivos trazem grandes desafios para os fornecedores de aplicativos e fabricante de telefones. A automação de testes é vista como uma solução para esses desafios, uma vez que qualidade é um fator crítico para o sucesso do produto. Os frameworks atuais de automação de teste têm foco exclusivo na automação de um único teste. Normalmente, a execução de testes acontece em lotes (suítes de testes), e funcionalidades importantes no nível de uma automação da execução da suíte são necessárias, mas os frameworks existentes não proveem funcionalidades eficientes voltadas para o gerenciamento de suítes de testes. Isto torna a execução de uma suíte um trabalho semiautomático e penoso. Neste projeto, propomos uma extensão aos frameworks tradicionais de teste para oferecer maior automação na execução de uma suíte de teste. Funcionalidades como timeout e reexecução (dentre outras) foram propostas para estender os frameworks atuais. Nesse projeto, apresentamos FREVO (Faster Results, Execution and Visualization), dois componentes integrados (framework e ferramenta) que separam de maneira coesa as atividades de desenvolvimento de scripts de testes individuais das atividades de automação e gerenciamento da execução de suítes de testes. O framework proposto fundamentalmente adiciona novas propriedades ao framework UI Automator e cria um padrão na escrita de testes automáticos. A ferramenta integra-se com esse framework, criando um ambiente de gerenciamento de execução de testes maduro e consistente, combinado a uma visualização de resultados de casos de teste intuitiva e usual por meio de uma interface gráfica. Por fim, após a implantação em alguns projetos, conduzimos um estudo de caso dentro do contexto de um projeto de pesquisa realizado pela Motorola Mobility em parceria com o Centro de Informática da Universidade Federal de Pernambuco que constatou que FREVO apresentou um ganho de produtividade em 11 dos 18 produtos testados. / With the advance of mobile computing and the Internet, mobile devices like smartphones and tablets are gradually becoming an essential part of our life. The amount and complexity of software running on these devices bring great challenges to application providers and phone manufacturers. Test automation is regarded as a solution for these challenges, since quality is a critical factor for the product success. The current test automation frameworks have focuses exclusively on automation of a single test. Usually, the tests execution is performed in batches (test suites), so important features related to automation of the execution of a suite is necessary, but the existing frameworks do not provide efficient features aimed at the automation of tests suites. This makes the suite execution a semi-automatic and painful work. In this project, we present FREVO (Faster Results, Execution and Visualization): two integrated components (framework and tool) that separate cohesively the script development of a single test from the automation of management and execution of tests suites. The proposed framework primarily adds new features to the UI Automator framework and defines a standard around the writing of automated test suites. The tool is integrated with this framework, creating a friendly test execution and management environment through a graphical interface. Finally, after the deployment in some projects, we performed a case study inserted in the context of a research project conducted by Motorola Mobility in partnership with the Centro of Informatics of the Federal University of Pernambuco that found that FREVO has presented a gain of productivity in 11 of the 18 tested products.
|
57 |
Using information flow to estimate interference between same-method contributionsBARROS 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.
|
58 |
Uma abordagem gradativa de modernização de software monolítico e em camadas para SOARODRIGUES, 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.
|
59 |
Gerenciamento de problema baseado na ITIL para institutos federais de educação, ciência e tecnologia: uma proposta de implantaçãoSENA, Paula Viviane Dias de 22 February 2017 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-13T21:46:38Z
No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Paula Viviane Dias de Sena.pdf: 1852338 bytes, checksum: ee3483afdbd649afc3ad7377f1618f96 (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-16T18:19:54Z (GMT) No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Paula Viviane Dias de Sena.pdf: 1852338 bytes, checksum: ee3483afdbd649afc3ad7377f1618f96 (MD5) / Made available in DSpace on 2018-08-16T18:19:55Z (GMT). No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Paula Viviane Dias de Sena.pdf: 1852338 bytes, checksum: ee3483afdbd649afc3ad7377f1618f96 (MD5)
Previous issue date: 2017-02-22 / Com o objetivo de avaliar a situação de Governança de TI na Administração Pública Federal (APF), o Tribunal de Contas da União, tem realizado auditorias e levantamentos baseados em questionários que abordam práticas de governança e de gestão de TI previstas em leis, regulamentos, normas técnicas e modelos internacionais de boas práticas. Em relação aos processos de gerenciamento de serviços de TI, conceitos baseados na biblioteca Information Technology Infrastructure Library (ITIL) versão 3.0 já vêm sendo utilizado. No levantamento realizado em 2014, que resultou no Acórdão 3.117/2014-TCU-Plenário, o cenário apresentado revelou que apenas 29% e 12% dos órgãos pesquisados possuem respectivamente a prática do processo de gerenciamento de problemas, adotada parcialmente e integralmente. Não obstante, o nível de adoção das práticas, de forma geral, ainda está distante de um cenário satisfatório para a APF, considerando que há recomendações e orientações do Governo Federal para a adoção das práticas de gerenciamento de serviços de TI em todos os seus órgãos, esta pesquisa buscou identificar o nível de adoção de gerenciamento de serviços de TI e principais dificuldades enfrentadas pelos Gestores de TI dos Institutos Federais de Educação, Ciência e Tecnologia (IFs), considerando que estão inseridos nesse panorama de fiscalização do TCU. Esta dissertação teve como objetivo de pesquisa, a elaboração um guia de implantação do processo de gerenciamento de problema, baseada nas boas práticas da ITIL para os IFs. Como metodologia, foram utilizadas as abordagens quantitativa e qualitativa, empregando procedimentos bibliográficos e o levantamento de campo com aplicação de questionários survey e opinião de especialistas. A pesquisa de campo nos revelou que apenas 45% dos IFs respondentes têm algum tipo de Gerenciamento de Serviços de TI. Dessas instituições, apenas 29% responderam que se baseiam nas boas práticas da ITIL, demonstrando a carência e a necessidade de ações que possibilitem estimular a sua implantação de forma prática. As principais limitações são falta de capacitação do pessoal de TI, a falta de recursos humanos, refletido principalmente no baixo apoio da alta gestão, contudo, o guia proposto visa apoiar e impulsionar a implantação do processo de gerenciamento de problemas nos IFs. / In order to evaluate the IT Governance situation in the Federal Public Administration (APF), the Federal Audit Court has carried out audits and surveys based on questionnaires that address IT governance and management practices under laws, regulations, Standards and international best practice models. In relation to IT service management processes, concepts based on the Information Technology Infrastructure Library (ITIL) version 3.0 are already being used. In the survey conducted in 2014, which resulted in Judgment 3,177 / 2014-TCU-Plenary, the scenario presented revealed that only 29% and 12% of the bodies surveyed have, respectively, the practice of the problem management process, adopted partially and integrally. Nevertheless, the level of adoption of the practices, in general, is still far from a scenario satisfactory for the APF, considering that there are recommendations and guidelines of the Federal Government for the adoption of the practices of management of IT services in all its organs , This research sought to identify the level of adoption of IT services management and main difficulties faced by IT managers of the Federal Institutes of Education, Science and Technology (FIs), considering that they are included in this TCU inspection landscape. The purpose of this dissertation was to prepare a guide for the implementation of the problem management process based on ITIL best practices for FIs. As a methodology, the quantitative and qualitative approaches were used, using bibliographic procedures and the field survey with the application of survey questionnaires and expert opinion. Field research has revealed that only 45% of respondent FIs have some form of IT Service Management. Of these institutions, only 29% answered that they are based on ITIL good practices, demonstrating the lack and the need for actions that make it possible to stimulate their implementation in a practical way. The main limitations are lack of training of IT staff, lack of human resources, reflected mainly in the low support of top management, however, the proposed guide aims to support and drive the implementation of the problem management process in FIs.
|
60 |
Preferências pessoais para o trabalho em equipe no desenvolvimento de software: uma pesquisa qualitativaCRUZ, Shirley da Silva Jacinto de Oliveira 14 September 2016 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-14T18:34:50Z
No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
TESE Shirley da Silva Jacinto de Oliveira Cruz.pdf: 1967922 bytes, checksum: 2832e622ec3779e66e5d535a680f2f41 (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-16T20:04:19Z (GMT) No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
TESE Shirley da Silva Jacinto de Oliveira Cruz.pdf: 1967922 bytes, checksum: 2832e622ec3779e66e5d535a680f2f41 (MD5) / Made available in DSpace on 2018-08-16T20:04:20Z (GMT). No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
TESE Shirley da Silva Jacinto de Oliveira Cruz.pdf: 1967922 bytes, checksum: 2832e622ec3779e66e5d535a680f2f41 (MD5)
Previous issue date: 2016-09-14 / A engenharia de software é uma disciplina de natureza sóciotécnica baseada na forte interação entre fatores pessoais, sociais e técnicos. Conceitualmente, os aspectos sociais da engenharia de software incluem formas de interação, comportamentos e organização de pessoas. Dentre os possíveis preditores do desempenho de equipes, um dos fatores mais estudados é a personalidade individual. Na área de engenharia de software, a pesquisa sobre personalidade ainda é pontual, uma vez que o tema ainda é considerado novo, na área, e com muitas oportunidades de investigação para melhorar e estender as descobertas deste campo de pesquisa. O objetivo central desta tese é compreender quais as preferências dos profissionais de software em trabalhar com outros profissionais, em termos de características de personalidade, e quais os efeitos dessas características nos resultados das equipes. Para isso, propomos a Questão Central de Pesquisa: “O que leva um profissional de software a querer trabalhar com outro, em termos de características de personalidade?”. Para responder à pergunta, adotamos a Pesquisa Qualitativa Básica como método de coleta e análise dos dados. Este método tem como objetivo fornecer, através de dados, um entendimento do fenômeno a partir da perspectiva dos participantes. A identificação de catorze padrões de preferência e de tolerância dos profissionais de software em trabalhar com outros explora o entendimento a respeito do que leva um profissional de softwa a querer trabalhar com a outro, no que tange às características de personalidade. Além disso, os resultados mostram que, mesmo que o profissonal de software tenha uma tendência a determinado comportamento, ele pode ser alterado por algum fator do contexto, como conhecimento técnico, experiência profissional, objetivos individuais, processos formais, cultura organizacional, identificação com o papel e até mesmo pelo comportamento dos outros integrantes da equipe. A pesquisa, portanto, enrriquece o estudo da personalidade na engenharia de software, na medida em que incorpora conceitos da psicologia social. Os resultados serão úteis na gestão das equipes de engenharia de software, uma vez que eles oferecem parâmetros para diagnosticar a situação das equipes com respeito às preferências e à tolerância que os integrantes sentem uns pelos outros. Pois, tão importante quanto entender a maneira como o jeito natural de ser das pessoas está alinhado aos requisitos técnicos e sociais do trabalho é trabalhar com pessoas que sintam atração umas pelas outras, no caso da atração pela tarefa. / Software engineering is a subject that has a sociotechnical nature based on the strong interaction between personal, social and technical features. According to its concept, the social aspects of software engineering include forms of interaction, behaviors and people management. Among the possible factors that affect performances within work teams is the individual’s personality, one of the most observed issues. In software engineering, research on personality is still occasional and inconclusive. The main goal of this thesis is to comprehend the preferences of the software professionals when it comes to choosing who they would like to work with, based on personality traits, and which are the effects of these traits in the teams’ results. With this in mind, we proposed the Main Research Question: “what makes a software professional want to work with another, in terms of his or hers personality traits?”. In order to answer this question, we have adopted the Basic Qualitative Research as a method for collecting and analyzing data. This method aims at providing, through data, an understanding of the phenomena from the participants’ perspective. Identifying fourteen patterns of preference and tolerance of software workers when it comes to choosing who to work with leads to an understanding of the reasons why one would one to work with another, regarding the personality traits. Moreover, the results show that, even if the software professional has a tendency to behave, it can be altered by some context problem, such as technical knowledge, professional experience, individual objectives, formal processes, organizational culture, role and even behavior of the other team members. This Research enriches the study of personality in the software engineering, once it incorporates concepts from social psychology. The results will be useful for the management of software engineering teams, given that they offer parameters to diagnose the teams’ situation with respect to the preference and tolerance that workers feel towards each other. For as important as understanding how people's natural way of being is aligned with the technical and social requirements of work is working with people who are attracted to one another in the case of attraction to the task.
|
Page generated in 0.0997 seconds