• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 23
  • 8
  • 2
  • 1
  • Tagged with
  • 43
  • 43
  • 43
  • 16
  • 11
  • 9
  • 8
  • 8
  • 8
  • 6
  • 6
  • 6
  • 6
  • 6
  • 6
  • 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.
21

Mecanismos utilizados para conduzir estudos empíricos na engenharia de software: um mapeamento sistemático

BORGES JÚNIOR, Alex Nery 27 February 2015 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2016-08-17T12:14:52Z No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertação_AlexNery_V18 (VFinal_Biblioteca).pdf: 3946748 bytes, checksum: 139ad5265a5a9bfe6cb97a591113354a (MD5) / Made available in DSpace on 2016-08-17T12:14:54Z (GMT). No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertação_AlexNery_V18 (VFinal_Biblioteca).pdf: 3946748 bytes, checksum: 139ad5265a5a9bfe6cb97a591113354a (MD5) Previous issue date: 2015-02-27 / FACEPE / Contexto – Tem-se observado que o interesse em conduzir estudos empíricos vem aumentando na comunidade de Engenharia de Software, permitindo melhorar a qualidade das pesquisas e acelerar a adoção de novas tecnologias no mercado de software. Para fomentar pesquisas empíricas nesse contexto, é essencial entender os ambientes, diretrizes, processos, ferramentas e outros recursos disponíveis para conduzir tais estudos. Objetivo – Esta pesquisa tem o objetivo de identificar mecanismos de suporte (metodologias, framework, ferramentas, guias, processos, etc.) utilizados para planejar e conduzir estudos empíricos na comunidade de Engenharia de Software Empírica. Além disso, espera-se mapear outras evidências importantes na área, como os métodos empíricos mais utilizados e a evolução, ao longo dos anos, do uso de estratégias e mecanismos de pesquisa empírica. Método – Foi adotado o Estudo de Mapeamento Sistemático, conduzido de acordo com guias e diretrizes de Engenharia de Software Baseada em Evidências. Resultado – Foram identificados 375 mecanismos. Este trabalho fornece um catálogo com informações de todos os mecanismos e em quais estratégias empíricas são aplicados. Serão abordados os mecanismos mais utilizados para guiar os principais métodos empíricos. Este trabalho também discute outras informações relevantes da comunidade de Engenharia de Software Empírica. Observou-se que a maioria dos mecanismos utilizados como referência para guiar estudos empíricos é adotado de outras áreas científicas. Além disso, muitos estudos não aplicam estratégias empíricas e / ou não citam referências para apoiar sua pesquisa. Experimento e estudo de caso são os métodos empíricos mais aplicados. Conclusão – Esta pesquisa evidenciou que a realização de estudos empíricos na Engenharia de Software tem aumentado ao longo dos anos. No entanto, ainda há lacunas a serem preenchidas, como o desenvolvimento de novos ambientes e recursos para auxiliar atividades específicas nessa área. Portanto, um catálogo de mecanismos de suporte, onde e como foram aplicados, é um trunfo importante para a comunidade de Engenharia de Software. Tal recurso pode promover a realização de estudos empíricos, no sentido de auxiliar a escolha sobre quais estratégias e guias usar em uma pesquisa. Além disso, foram identificadas novas perspectivas e lacunas que podem orientar a definição de outras pesquisas voltadas para a melhoria e disseminação de estudos empíricos na área. / Context – It is possible to observe that empirical studies are gaining recognition in the Software Engineering research community, allowing improve quality of researches and accelerate the adoption of new technologies in the software market. In order to foster empirical research in this context, it is essential understand the environments, guidelines, process, tools, and other mechanisms available to conduct such studies. Objective – This research aims to identify support mechanisms (methodology, framework, tool, guidelines, process, etc.) used to plan and to conduct empirical studies in the Empirical Software Engineering community. In addition, it is expected to map other evidence of this area, as the most widely used empirical methods and the evolution of the use of empirical strategies and mechanisms along the years. Method – The method adopted was the Systematic Mapping Study conducted according to guidelines of Evidence-Based Software Engineering. Result - A total of 375 mechanisms were identified. This work provide a catalog with information of all the identified mechanisms and the empirical strategies in which they were used to support. And also describes the most used support mechanisms to guide the main types of empirical strategies in Software Engineering. This study also discusses relevant findings of the Empirical Software Engineering community. It was observed that the most mechanisms used as a reference to guide empirical studies are not specific to this area. Besides, many studies did not apply empirical strategies and/or did not cite any resource to support their research. Experiment and case study are the empirical strategies most applied. Conclusion – This research showed that the performance of empirical studies in Software Engineering has increased over the years. However, there are still gaps to be filled, as the development of support mechanisms to specific activities in this area. Therefore, the list of support mechanisms, where and how they were applied is an important asset to the Software Engineering community. Such asset can foster empirical studies aiding the choice regarding which strategies and mechanisms to use in a research, as well as pointing out examples where they were used, mainly to newcomers researchers. Also, were identified new perspectives and gaps that foster other research for the improvement and dissemination of empirical research in this area.
22

Mecanismos utilizados para conduzir estudos empíricos na engenharia de software: um mapeamento sistemático

BORGES JÚNIOR, Alex Nery 27 February 2015 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2016-08-17T12:23:47Z No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertação_AlexNery_V18 (VFinal_Biblioteca).pdf: 3946748 bytes, checksum: 139ad5265a5a9bfe6cb97a591113354a (MD5) / Made available in DSpace on 2016-08-17T12:23:47Z (GMT). No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Dissertação_AlexNery_V18 (VFinal_Biblioteca).pdf: 3946748 bytes, checksum: 139ad5265a5a9bfe6cb97a591113354a (MD5) Previous issue date: 2015-02-27 / FACEPE / Contexto – Tem-se observado que o interesse em conduzir estudos empíricos vem aumentando na comunidade de Engenharia de Software, permitindo melhorar a qualidade das pesquisas e acelerar a adoção de novas tecnologias no mercado de software. Para fomentar pesquisas empíricas nesse contexto, é essencial entender os ambientes, diretrizes, processos, ferramentas e outros recursos disponíveis para conduzir tais estudos. Objetivo – Esta pesquisa tem o objetivo de identificar mecanismos de suporte (metodologias, framework, ferramentas, guias, processos, etc.) utilizados para planejar e conduzir estudos empíricos na comunidade de Engenharia de Software Empírica. Além disso, espera-se mapear outras evidências importantes na área, como os métodos empíricos mais utilizados e a evolução, ao longo dos anos, do uso de estratégias e mecanismos de pesquisa empírica. Método – Foi adotado o Estudo de Mapeamento Sistemático, conduzido de acordo com guias e diretrizes de Engenharia de Software Baseada em Evidências. Resultado – Foram identificados 375 mecanismos. Este trabalho fornece um catálogo com informações de todos os mecanismos e em quais estratégias empíricas são aplicados. Serão abordados os mecanismos mais utilizados para guiar os principais métodos empíricos. Este trabalho também discute outras informações relevantes da comunidade de Engenharia de Software Empírica. Observou-se que a maioria dos mecanismos utilizados como referência para guiar estudos empíricos é adotado de outras áreas científicas. Além disso, muitos estudos não aplicam estratégias empíricas e / ou não citam referências para apoiar sua pesquisa. Experimento e estudo de caso são os métodos empíricos mais aplicados. Conclusão – Esta pesquisa evidenciou que a realização de estudos empíricos na Engenharia de Software tem aumentado ao longo dos anos. No entanto, ainda há lacunas a serem preenchidas, como o desenvolvimento de novos ambientes e recursos para auxiliar atividades específicas nessa área. Portanto, um catálogo de mecanismos de suporte, onde e como foram aplicados, é um trunfo importante para a comunidade de Engenharia de Software. Tal recurso pode promover a realização de estudos empíricos, no sentido de auxiliar a escolha sobre quais estratégias e guias usar em uma pesquisa. Além disso, foram identificadas novas perspectivas e lacunas que podem orientar a definição de outras pesquisas voltadas para a melhoria e disseminação de estudos empíricos na área. / Context – It is possible to observe that empirical studies are gaining recognition in the Software Engineering research community, allowing improve quality of researches and accelerate the adoption of new technologies in the software market. In order to foster empirical research in this context, it is essential understand the environments, guidelines, process, tools, and other mechanisms available to conduct such studies. Objective – This research aims to identify support mechanisms (methodology, framework, tool, guidelines, process, etc.) used to plan and to conduct empirical studies in the Empirical Software Engineering community. In addition, it is expected to map other evidence of this area, as the most widely used empirical methods and the evolution of the use of empirical strategies and mechanisms along the years. Method – The method adopted was the Systematic Mapping Study conducted according to guidelines of Evidence-Based Software Engineering. Result - A total of 375 mechanisms were identified. This work provide a catalog with information of all the identified mechanisms and the empirical strategies in which they were used to support. And also describes the most used support mechanisms to guide the main types of empirical strategies in Software Engineering. This study also discusses relevant findings of the Empirical Software Engineering community. It was observed that the most mechanisms used as a reference to guide empirical studies are not specific to this area. Besides, many studies did not apply empirical strategies and/or did not cite any resource to support their research. Experiment and case study are the empirical strategies most applied. Conclusion – This research showed that the performance of empirical studies in Software Engineering has increased over the years. However, there are still gaps to be filled, as the development of support mechanisms to specific activities in this area. Therefore, the list of support mechanisms, where and how they were applied is an important asset to the Software Engineering community. Such asset can foster empirical studies aiding the choice regarding which strategies and mechanisms to use in a research, as well as pointing out examples where they were used, mainly to newcomers researchers. Also, were identified new perspectives and gaps that foster other research for the improvement and dissemination of empirical research in this area.
23

Analysis of human-centric software engineering experiments: a systematic mapping study

FALCÃ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

A Substantive Theory of Decision-Making in Software Project Management

CUNHA, José Adson Oliveira Guedes da 15 September 2016 (has links)
Submitted by Fabio Sobreira Campos da Costa (fabio.sobreira@ufpe.br) on 2017-04-19T14:49:21Z No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) TeseDoutorado_JoseAdsonOliveiraGuedesCunha_CInUFPE_vFinal.pdf: 2184943 bytes, checksum: 928987ce07e4113b3596a20086cbc4c7 (MD5) / Made available in DSpace on 2017-04-19T14:49:21Z (GMT). No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) TeseDoutorado_JoseAdsonOliveiraGuedesCunha_CInUFPE_vFinal.pdf: 2184943 bytes, checksum: 928987ce07e4113b3596a20086cbc4c7 (MD5) Previous issue date: 2016-09-15 / Background: In software project management, the decision-making process is a complex set of tasks mainly based on human relations, individual knowledge, and cultural background. The factors that affect the decisions of Software Project Managers (SPMs), as well as their potential consequences, require attention because project delays and failures might be related to a series of poor decisions. Aims: To understand how SPMs make decisions based on how they interpret their experiences in the workplace. Further, to identify antecedents, moderators and consequences of those decisions to increase the effectiveness of project management. Method: Firstly, an exploratory study based on semi-structured interviews was conducted with SPMs from a large Brazilian governmental organization and from a small Portuguese private organization to shed light on the causal factors of SPMs’ cognitive biases and how they deal with them, including techniques and tools they used to minimize the cognitive biases’ adverse effects. The initial findings suggested that we needed a more grounded understanding of the mechanisms of decision-making. Thus, a broader research protocol based on semi-structured interviews was carried out with SPMs within a large Brazilian governmental organization and a large Brazilian private organization. We also conducted interviews with software engineers and PMO managers to triangulate the data, which was analyzed using techniques from grounded theory. Data from observations, document analysis and selected studies from a systematic literature review were also used. Results: We found that decision-making in software project management is based on knowledge sharing in which the SPM acts as a facilitator. This phenomenon is influenced by individual factors, such as experience, knowledge, leadership style, and skills, and by situational factors such as the autonomy of the SPM, task complexity and team members' technical competence. Conclusions: Due to the uncertainty and dynamism inherent to software projects, the SPMs focus on making, monitoring and adjusting decisions in na argument-driven way. Also, the involvement of the team members in decision-making aims to minimize the SPM's decision regret and cognitive biases as well as to maximize the team member's commitment. / Contexto: No gerenciamento de projetos de software, o processo de tomada de decisão refere-se a um conjunto complexo de tarefas baseadas, principalmente, nas relações humanas e no conhecimento e background de cada indivíduo. Os fatores que afetam as decisões dos gerentes de projeto de software (GPs), bem como as suas consequências potenciais necessitam de atenção uma vez que atrasos e falhas de projeto estão relacionados a uma série de más decisões. Objetivos: Entender como os GPs tomam decisões com base em como eles interpretam suas experiências no ambiente de trabalho. Além disso, pretende-se identificar os antecedentes, moderadores e consequências dessas decisões para aumentar a eficácia no gerenciamento de projetos. Método: Primeiramente foi realizado um estudo exploratório com base em entrevistas semi-estruturadas com GPs de uma organização governamental brasileira de grande porte e de uma organização privada portuguesa de pequeno porte para analisar os fatores causais dos vieses cognitivos dos GPs e como estes lidam com eles, incluindo técnicas e as ferramentas utilizadas para minimizar os efeitos adversos dos vieses cognitivos. Os resultados iniciais sugeriram uma compreensão mais fundamentada dos mecanismos de tomada de decisão. Dessa forma, um protocolo mais amplo de pesquisa baseado em entrevistas semi-estruturadas foi realizado com GPs de uma organização governamental e de uma organização privada, ambas brasileiras e de grande porte. Foram realizadas entrevistas com engenheiros de software e gerentes de escritório de projetos para triangular os dados, que foram analisados usando técnicas de teoria fundamentada. Também foram utilizados dados de observações, análise de documentos e estudos selecionados a partir de uma revisão sistemática da literatura. Resultados: Verificou-se que a tomada de decisão no gerenciamento de projetos de software é baseada no compartilhamento de conhecimento em que o gerente de projetos de software atua como um facilitador. Este fenômeno é influenciado por fatores individuais, como experiência, conhecimento, estilo de liderança, e habilidades, e por fatores situacionais, tais como a autonomia, complexidade da tarefa, e competência técnica dos membros de equipe. Conclusões: Devido à incerteza e dinamismo inerente aos projetos de software, os GPs concentram-se em agir, monitorar e ajustar as decisões com base em argumentos. Além disso, o envolvimento dos membros da equipe na tomada de decisão visa minimizar o arrependimento de decisões e influência de vieses cognitivos por parte dos GPs, bem como maximizar o comprometimento dos membros da equipe.
25

[en] EVALUATION OF SOFTWARE QUALITY BASED ON UML MODELS / [pt] AVALIAÇÃO DA QUALIDADE DE SOFTWARE COM BASE EM MODELOS UML

ISELA 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.
26

Um framework para avaliação sistemática de técnicas de teste no contexto de programação concorrente / A Framework for systematic testing techniques evaluation applied to concurrent programming

Silvana Morita Melo 04 April 2018 (has links)
Contexto: Embora diversas técnicas de teste de software tenham sido propostas para o contexto da programação concorrente, as informações sobre elas encontram-se de dispersas na literatura, não oferecendo uma caracterização apropriada e dados relevantes que possam auxiliar a compreensão e consequente aplicação efetiva dessas técnicas, dificultando o processo de transferência de conhecimento entre a academia e a comunidade interessada. Objetivo: Nesse contexto, o principal objetivo deste trabalho é oferecer subsídios, na forma de um framework, que seja capaz de apoiar a caracterização e seleção sistemática de técnicas de teste de software concorrente. Metodologia: Para atender esse objetivo, foi construído um corpo de conhecimento que reúne de maneira integrada informações relevantes ao processo de tomada de decisão sobre qual técnica de teste aplicar a um determinado projeto de software. Um design de experimentos é definido, funcionando como guia para condução de estudos empíricos que podem ser usados para a realimentação, atualização e evolução do corpo de conhecimento. Buscando sistematizar o processo de seleção de técnicas de teste, é definido um esquema de caracterização que considera as principais características da programação concorrente que influenciam a atividade de teste de software e calcula a adequação desses atributos aos atributos do projeto em desenvolvimento. Resultados e Conclusões: A fim de permitir que a comunidade interaja com o framework proposto, foi disponibilizada uma infraestrutura computacional que permite o acesso ao corpo de conhecimento e automatiza o processo de seleção de técnicas de teste de software concorrente. O estudo experimental conduzido para avaliação da proposta, mostrou que a abordagem contribui de maneira efetiva para caracterizar, comparar e quantificar a adequabilidade baseada em atributos, melhorando consideravelmente o processo de seleção de técnicas de teste para software concorrente segundo as expectativas dos usuários. / Background: Although a variety of concurrent software testing techniques have been proposed for the concurrent programming context, the information about them are scattered in the literature, not offering an appropriate characterization and relevant data that can aid the understanding and consequently the effective application of these techniques, hindering the process of knowledge transfer between the academia and the interested community. Objective: In this context, the main objective of this work is to provide subsidies in form of a framework which will be able to support the characterization and systematic selection of concurrent software testing techniques. Methodology: In order to meet this objective, a body of knowledge has been built that brings together, in an integrated way, information relevant for the decision-making process about what testing technique should be applied in a specific software project. A design of experiments is defined as a guide for conducting empirical studies that can be used for feedback, updating, and evolution of the body of knowledge. With the objective of systematizing the process of testing techniques selection is defined a characterization scheme that considers the main characteristics of the concurrent programming that influence the testing activity and calculates the adequacy for these attributes in comparison with the software project in development. Results and Conclusions: In order to allow the community interaction with the proposed framework was provided a computational infrastructure that allows access to the body of knowledge and the automation of the selection process. The empirical study conducted to evaluate the proposal showed that the approach effectively contributes to characterize, compare and quantify the adequacy based on the attributes, improving the selection process of concurrent software testing techniques according to the users expectations.
27

Testing-Based Conceptual Schema Validation in a Model-Driven Environment

Granda Juca, María Fernanda 13 October 2017 (has links)
Despite much scepticism and problems for its adoption, the Model-Driven Development (MDD) is being used and improved to provide many inherent benefits for industry. One of its greatest benefits is the ability to handle the complexity of software development by raising the abstraction level. Models are expressed using concepts that are not related to a specific implementation technology (e.g. Unified Modelling Language -UML, Object Constraint Language -OCL, Action Language for Foundational UML -ALF), which means that the models can be easier to specify, maintain and document. As in Model-Driven Engineering (MDE), the primary artefacts are the conceptual models, efforts are focused on their creation, testing and evolution at different levels of abstraction through transformations because if a conceptual schema has defects, these are passed on to the following stages, including coding. Thus, one of the challenges for researchers and developers in Model-Driven Development is being able to identify defects early on, at the conceptual schema level, as this helps reduce development costs and improve software quality. Over the last decade, little research work has been performed in this area. Some of the causes of this are the high theoretical complexity of testing conceptual schemas and the lack of adequate software support. This research area thus admits new methods and techniques, facing challenges such as generation of test cases using information external to the conceptual schemas (i.e. requirements), the measurement of possible automation, selection and prioritization of test cases, the need for an efficient support tool using standard semantics, the opportune feedback to support the software quality assurance process and facilitate making decisions based on the analysis and interpretation of the results. The aim of this thesis is to mitigate some of the problems that affect conceptual schema validation by providing a novel testing-based validation framework based on Model-Driven Development. The use of MDD improves abstraction, automation and reuse, which allows us to alleviate the complexity of our validation framework. Furthermore, by leveraging MDD techniques (such as metamodeling, model transformations, and models at runtime), our framework supports four phases of the testing process: test design, test case generation, test case execution and the evaluation of the results. In order to provide software support for our proposal, we developed the CoSTest ALF-based testing environment. To ensure that CoSTest offers the necessary functionality, we first identified a set of functional requirements. Then, after these requirements were identified, we defined the architecture and testing environment of the validation framework, and finally we implemented the architecture in the Eclipse context. CoSTest has been developed to test several properties on the executable model, such as syntactic correctness (i.e. all the elements in the model conform to the syntax of the language in which it is described), consistency between the structural and behavioural parts (its integrity constraints) and completeness (i.e. all possible changes on the system state can be performed through the execution of the operations defined in the executable model). For defective models, the CoSTest report returns a meaningful feedback that helps locate and repair any defects detected. / A pesar del escepticismo y dificultades en su adopción, el Desarrollo Orientado por Modelos (MDD, por sus siglas en inglés) está siendo usado y mejorado para proveer muchos beneficios inherentes a la industria. Uno de sus mayores beneficios es la capacidad de manejar la complejidad del desarrollo de software elevando el nivel de abstracción. Los modelos se expresan utilizando conceptos que no están relacionados con una tecnología de implementación específica (por ejemplo, Lenguaje de Modelado Unificado -UML, Lenguaje de Restricción de Objetos -OCL, Lenguaje de Acción para el Foundational UML - ALF), lo que significa que los modelos pueden ser más fáciles de especificar, mantener y documentar. Debido a que en una Ingeniería dirigida por modelos (MDE), los artefactos primarios son los modelos conceptuales, los esfuerzos se centran en su creación, prueba y evolución a diferentes niveles de abstracción a través de transformaciones, porque si un esquema conceptual tiene defectos, éstos se pasan a las siguientes etapas, incluida la codificación. Por lo tanto, uno de los retos para los investigadores y desarrolladores in MDD es poder identificar los defectos temprano, a nivel de esquemas conceptuales, ya que esto ayudaría a reducir los costos de desarrollo y mejorar la calidad del software. Durante la última década, pocos trabajos de investigación se han realizado en esta área. Algunas de las causas de esta realidad son la alta complejidad teórica de probar esquemas conceptuales y la falta de soporte de software adecuado. Por lo tanto, este área de investigación admite nuevos métodos y técnicas, enfrentando retos como la generación de casos de prueba utilizando información externa a los esquemas conceptuales (es decir, los requisitos), la medición de una posible automatización, selección y priorización de casos de prueba, la necesidad de una herramienta de soporte eficiente que utilice una semántica estándar, la retroalimentación oportuna para apoyar el proceso de aseguramiento de la calidad del software y facilitar la toma de decisiones basadas en el análisis y la interpretación de los resultados. El objetivo de esta tesis es mitigar algunos de los problemas que afectan la validación de los esquemas conceptuales, proporcionando un nuevo marco de validación basado en pruebas que fue construido usando un desarrollo dirigido por modelos. El uso de MDD permite un aumento en la abstracción, automatización y reutilización que nos permite aliviar la complejidad de nuestro marco de validación. Además, al aprovechar las técnicas MDD (como el metamodelado, las transformaciones de modelos y los modelos en tiempo de ejecución), nuestro marco soporta cuatro fases del proceso de prueba: diseño de pruebas, generación de casos de prueba, ejecución de casos de prueba y la evaluación de los resultados. Con el fin de proporcionar soporte de software para nuestra propuesta, hemos desarrollado CoSTest, un entorno de pruebas basado en el lenguaje ALF. Para asegurar que CoSTest ofrece la funcionalidad necesaria, primero identificamos un conjunto de requisitos funcionales. Luego, después de identificar estos requisitos, definimos la arquitectura y el ambiente de pruebas de nuestro marco de validación y, finalmente, implementamos la arquitectura en el contexto de Eclipse. CoSTest ha sido desarrollado para probar varias propiedades sobre el modelo ejecutable como la corrección sintáctica (es decir, todos los elementos del modelo se ajustan a la sintaxis del lenguaje en el que se describe), consistencia entre la parte estructural y el comportamiento (sus restricciones de integridad) y completitud (es decir, todos los cambios posibles en el estado del sistema se pueden realizar a través de la ejecución de las operaciones definidas en el modelo ejecutable). Para los modelos defectuosos, el informe de CoSTest devuelve una retroalimentación significativa que ayuda a localizar y reparar los defectos detec / A pesar de l'escepticisme i les dificultats en la seua adopció, el Desenvolupament Orientat per Models (MDD, segons les sigles en anglès) està sent usat i millorat per tal de proveir molts beneficis potencials inherents a l' indústria. Un dels majors beneficis és la capacitat de manejar la complexitat del desenvolupament del programari elevant el nivell d'abstracció. Els models s'expressen mitjançant conceptes que no estan relacionats amb una tecnologia d'implementació específica (per exemple, el Llenguatge de Modelat Unificat - UML, Llenguatge de Restricció d'Objectes -OCL, Llenguatge d'Acció per al Foundational UML - ALF), el que significa que els models poder ser més fàcils d'especificar, mantindre i documentar. A causa de que en una Enginyeria dirigida per models (MDE), els artefactes primaris són els models conceptuals, els esforços es centren en la seua creació, prova i evolució a diferents nivells d'abstracció mitjançant transformacions, perquè si un esquema conceptual té defectes, aquestos es passen a les següents etapes, inclosa la codificació. Per tant, un del reptes per als investigadors i desenvolupadors en MDD és poder identificar els defectes des del principi, a nivell de esquemes conceptuals, perquè açò ajudaria a reduir els costos de desenvolupament i millora de la qualitat del programari. Durant l'última dècada, pocs treballs d'investigació s'han fet en aquesta àrea. Algunes de les causes d'aquesta realitat són l'alta complexitat teòrica de provar esquemes conceptuals i la falta de suport de programari adequat. Per tant, aquesta àrea d'investigació admet nous mètodes i tècniques, enfrontant reptes com la generació de casos de prova mitjançant informació externa als esquemes conceptuals (es a dir, requisits), la medició de una possible automatització, selecció i priorització de casos de prova, la necessitat de una ferramenta de suport rentable que utilitze una semàntica estàndard, la retroalimentació oportuna per suportar el procés d'assegurament de la qualitat del programari i la facilitat per a prendre decisions basades en l'anàlisi i la interpretació dels resultats. En aquesta tesi intentem mitigar alguns dels problemes que afecten a la validació dels esquemes conceptuals, proporcionant un nou marc de validació basat en proves que va ser construït mitjançant un desenvolupament dirigit per models. L'ús de MDD permet un augment en l'abstracció, automatització i reutilització que ens permet alleujar la complexitat del nostre marc de validació. A més a més, al aprofitar les tècniques MDD (com el metamodelat, les transformacions de models i els models en temps d'execució), el nostre marc suporta quatre fases del procés de prova: disseny, generació i execució de casos de prova, així com l'avaluació de resultats del procés de prova. Amb la finalitat de proporcionar suport de programari per a la nostra proposta, hem desenvolupat un entorn de proves basat en el llenguatge ALF que s'anomena CoSTest. Per tal d'assegurar que CoSTest ofereix la funcionalitat necessària, identifiquem un conjunt de requisits funcionals abans de desenvolupar la ferramenta. Després d'identificar aquestos requisits, definim l'arquitectura i l'ambient de proves del nostre marc de validació, i finalment, implementem l'arquitectura en el context Eclipse. CoSTest ha sigut desenvolupat per provar diverses propietats sobre el model executable com la correcció sintàctica (és a dir, tots els elements del model s'ajusten a la sintaxi del llenguatge en el que es descriu), consistència antre la part estructural i el comportament (les seues restriccions d'integritat) i completitud (és a dir, tots els canvis possibles en l'estat del sistema es poden realitzar mitjançant l'execució de les operacions definides en el model executable). Per als models defectuosos, l'informe de CoSTest retorna una retroalimentació significativa que ajuda a localitzar i reparar els defectes dete / Granda Juca, MF. (2017). Testing-Based Conceptual Schema Validation in a Model-Driven Environment [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/89091 / TESIS
28

Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines

Echeverría Ochoa, Jorge 10 September 2018 (has links)
La reutilización es un factor clave para reducir los costos y mejorar la calidad de las propiedades de productos software como la seguridad, fiabilidad o rendimiento. Siguiendo este factor surge la aproximación para el desarrollo de software de Líneas de Productos Software; esta aproximación promete, entre otras cosas, acortar el tiempo del desarrollo de los sistemas software y reducir significativamente los costes de desarrollo y mantenimiento. Por otro lado, el Desarrollo Dirigido por Modelos es un enfoque para el desarrollo de software que propone el uso de modelos en varios niveles de abstracción y transformaciones de modelo como artefactos principales. El uso de modelos como los principales artefactos en el desarrollo de software ofrece muchas ventajas a los desarrolladores, por ejemplo, las transformaciones de modelo permiten la conversión de un modelo fuente en otro modelo objetivo, el aumento del nivel de abstracción permite a los desarrolladores centrarse en el problema a resolver y restar importancia a los detalles de implementación. Ambos paradigmas, en la búsqueda de optimizar el tiempo de producción y calidad en el software generado, pueden reunir importantes ventajas en el proceso de producción de software. La combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software para producir productos software requiere la identificación de nuevos retos y necesidades de los stakeholders involucrados. La investigación presentada en esta tesis tiene el objetivo, apoyada en varios estudios empíricos realizados en entornos industriales, de aumentar el conocimiento y realizar una serie de propuestas de mejora del proceso de desarrollo software fundamentado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software. Para alcanzar este objetivo se han estudiado cuatro dimensiones: procesado de requisitos, usabilidad, comprensión (en la configuración de productos) y gestión de errores. Cada una de estas dimensiones ha sido abordada en un estudio empírico, estudios presentados en trabajos de investigación y que forman la parte nuclear de esta tesis. Como resultado del trabajo realizado en esta tesis se han elaborado una serie de propuestas para mejorar el proceso de desarrollo software basado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software y se han generado siete trabajos de investigación. Cinco de estos trabajos han sido presentados en conferencias de relevancia en el ámbito de la Ingeniería del Software: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 y ESEM'17. Estos resultados de investigación han sido aplicados en el proceso de desarrollo de software de placas de inducción de la división de electrodomésticos de BSH (Bosch, Siemens, Gaggenau, Neff y Balay) y están siendo utilizados para su aplicación en la actual implantación para el desarrollo de software del PLC que controla los trenes en la empresa Construcciones y Auxiliar de Ferrocarriles. / Software reuse is a key factor in reducing costs and improving the quality of software product properties such as security, reliability, or performance. Taking this factor in account, the Software Product Line approach appears for software development. This approach promises to decrease the time spent in developing software systems and to significantly reduce the costs for development and maintenance of software systems, among other things. In addition, Model Driven Development is an approach for software development that proposes the use of models at various levels of abstraction and model transformations as main artifacts. The use of models as the main artifacts in software development offers many advantages for developers. For instance, model transformations allow the conversion of a source model into another target model. The increase in the level of abstraction allows the developers to focus on the problem to solve, subtracting importance to the implementation details. Both paradigms search to optimize the production time and quality of the generated software, and can result in important advantages in the software production process. However, the combination of Model Driven Development and Software Product Lines to develop software products requires the identification of the challenges and needs of the involved stakeholders. The research presented in this dissertation, supported by several empirical studies carried out in industrial environments, aims to increase the knowledge in the field and to do a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines. To achieve this objective, four dimensions have been studied: requirements processing, usability, comprehension (configuring software products), and error management. The dimensions have been addressed through empirical studies, presented in research papers. These papers conform the core of this dissertation. As result of the work carried out for this dissertation, a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines have been generated. Furthermore, seven research papers have been published. Five of these works have been presented at relevant conferences in the Software Engineering field: CAiSE Forum'15, CAiSE'16, ESEM'16, ISD'17 and ESEM'17. These research results have been applied in the software development process of the induction hobs from the electrical appliances division of BSH (under the brands Bosch, Siemens, Gaggenau, Neff, and Balay), and are also being used in the current implementation of the PLC that controls the trains manufactured by the Construcciones y Auxiliar de Ferrocarriles company. / La reutilització és un factor clau per a reduir els costos i millorar la qualitat de les propietats de productes programari com la seguretat, fiabilitat o rendiment. Seguint aquest factor sorgeix l'aproximació per al desenvolupament de programari utilitzant Línies de Productes Programari; aquesta aproximació promet, entre altres coses, escurçar el temps del desenvolupament dels sistemes programari i reduir significativament els costos de desenvolupament i manteniment. D'altra banda, el Desenvolupament Dirigit per Models és un enfocament per al desenvolupament de programari que proposa l'ús de models en diversos nivells d'abstracció i transformacions de model com artefactes principals. L'ús de models com els principals artefactes en el desenvolupament de programari ofereix molts avantatges als desenvolupadors, per exemple, les transformacions de model permeten la conversió d'un model font en un altre model objectiu, l'augment del nivell d'abstracció permet als desenvolupadors centrar-se en el problema a resoldre i restar importància als detalls d'implementació. Tots dos paradigmes, en la cerca d'optimitzar el temps de producció i qualitat en el programari generat, poden reunir importants avantatges en el procés de producció de programari.La combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari per a produir productes programari requereix la identificació de nous reptes i necessitats dels \ingles{stakeholders} involucrats. La recerca presentada en aquesta tesi té l'objectiu, recolzada en diversos estudis empírics realitzats en entorns industrials, d'augmentar el coneixement i realitzar una sèrie de propostes de millora del procés de desenvolupament de programari fonamentat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari. Per a aconseguir aquest objectiu s'han estudiat quatre dimensions: processament de requisits, usabilitat, comprensió (en la configuració de productes) i gestió d'errors. Cadascuna d'aquestes dimensions ha sigut abordada en un estudi empíric, estudis presentats en treballs de recerca i que formen la part nuclear d'aquesta tesi. Com a resultat del treball realitzat en aquesta tesi s'han elaborat una sèrie de propostes per a millorar el procés de desenvolupament programari basat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari i s'han generat set treballs de recerca. Cinc d'aquests treballs han sigut presentats en conferències de rellevància en l'àmbit de l'Enginyeria del Programari: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 i ESEM'17. Aquests resultats de recerca han sigut aplicats en el procés de desenvolupament de programari de plaques d'inducció de la divisió d'electrodomèstics de BSH (Bosch, Siemens, Gaggenau, Neff i Balay) i estan sent utilitzats per a la seua aplicació en l'actual implantació per al desenvolupament de programari del PLC que controla els trens en l'empresa Construcciones y Auxiliar de Ferrocarriles. / Echeverría Ochoa, J. (2018). Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/107734 / TESIS
29

Automated Modeling of Human-in-the-Loop Systems

Noah M Marquand (11587612) 22 November 2021 (has links)
Safety in human in the loop systems, systems that change behavior with human input, is difficult to achieve. This difficulty can cost lives. As desired system capability grows, so too does the requisite complexity of the system. This complexity can result in designers not accounting for every use case of the system and unintentionally designing in unsafe behavior. Furthermore, complexity of operation and control can result in operators becoming confused during use or receiving insufficient training in the first place. All these cases can result in unsafe operations. One method of improving safety is implementing the use of formal models during the design process. These formal models can be analyzed mathematically to detect dangerous conditions, but can be difficult to produce without time, money, and expertise.<br> This document details the study of potential methods for constructing formal models autonomously from recorded observations of system use, minimizing the need for system expertise, saving time, money, and personnel in this safety critical process. I first discuss how different system characteristics affect system modeling, isolating specific traits that most clearly affect the modeling process Then, I develop a technique for modeling a simple, digital, menu-based system based on a record of user inputs. This technique attempts to measure the availability of different inputs for the user, and then distinguishes states by comparing input availabilities. From there, I compare paths between states and check for shared behaviors. I then expand the general procedure to capture the behavior of a flight simulator. This system more closely resembles real-world safety critical systems and can therefore be used to approximate a real use case of the method outlined. I use machine learning tools for statistical analysis, comparing patterns in system behavior and user behaviors. Last, I discuss general conclusions on how the modeling approaches outlined in this document can be improved and expanded upon.<br> For simple systems, we find that inputs alone can produce state machines, but without corresponding system information, they are less helpful for determining relative safety of different use cases than is needed. Through machine learning, we find that records of complex system use can be decomposed into sets of nominal and anomalous states but determining the causal link between user inputs and transitions between these conditions is not simple and requires further research.
30

[en] A QUANTITATIVE APPROACH TO ASPECT ORIENTED SOFTWARE DEVELOPMENT / [pt] UMA ABORDAGEM QUANTITATIVA PARA DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOS

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

Page generated in 0.065 seconds