• 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.
31

[en] FROM OBJECTS TO AGENTS: AN ASPECT ORIENTED APPROACH / [pt] OBJETOS E AGENTES: UMA ABORDAGEM ORIENTADA A ASPECTOS

ALESSANDRO FABRICIO GARCIA 13 July 2004 (has links)
[pt] Agentes de software incorporam várias propriedades específicas, como autonomia, adaptação, interação, aprendizagem e mobilidade. A inclusão dessas propriedades de agência é uma das maiores fontes de complexidade na construção de sistemas multiagentes. Dificilmente elas são modularizadas com abstrações e mecanismos da engenharia de software orientada a objetos. À medida que a complexidade da arquitetura interna dos agentes aumenta, essas propriedades tendem a se espalhar através dos vários módulos ou objetos do sistema. O espalhamento é observado desde fases preliminares de desenvolvimento, como a fase de definição arquitetural. O uso de abstrações e mecanismos existentes conduz ao projeto e à implementação de sistemas multiagentes que são difíceis de manter e reutilizar. Este trabalho apresenta uma abordagem orientada a aspectos para o desenvolvimento de sistemas baseados em agentes. A abordagem provê suporte para modularização e composição das propriedades de agência por meio de abstrações e mecanismos do paradigma orientado a aspectos. Além disso, tais propriedades são incorporadas de forma transparente à funcionalidade básica do sistema de software, desde a fase de definição arquitetural. A abordagem compreende três componentes: (i) um método arquitetural, (ii) uma linguagem de padrões e (iii) um framework para avaliação quantitativa. O método e a linguagem apresentam um conjunto de soluções orientadas a aspectos para a definição arquitetural, projeto e implementação de agentes de software. O framework define um conjunto de métricas e um modelo de qualidade que permite a avaliação empírica da nossa abordagem em termos de reusabilidade e manutenibilidade. Estudos experimentais qualitativos e quantitativos foram realizados para avaliar nossa proposta em diferentes domínios de aplicação. Os resultados empíricos concluíram que nossa abordagem permite a construção de sistemas baseados em agentes com modularização superior, menor acomplamento, menos linhas de código e menor complexidade interna dos componentes. / [en] Software engineers of Multi-Agent Systems (MASs) are faced with different concerns (properties), such as autonomy, adaptation, interaction, collaboration, learning, and mobility. Many of these agent concerns cannot be modularized based only on object-oriented abstractions. MAS developers however have relied mostly on objectoriented design techniques and on object-oriented programming languages, such as Java. As the agent complexity increases, the agent concerns tend to spread across several system components at the architectural, design and implementation levels. It often leads to a poor separation of agent concerns in the software system, and in turn to the production of MASs that are difficult to maintain and reuse. This thesis presents an innovative aspect-oriented approach for the seamless integration of agents into object-oriented software engineering from the architectural stage to the implementation stage. Aspect is the abstraction used to modularize agent concerns that crosscut several system components. The proposed approach encourages the separate handling of agent properties, and provides a disciplined scheme for their composition. The approach is composed of an architectural method, a pattern language, and an assessment framework. The architectural method and the pattern language provide aspect-oriented solutions for modularizing the agent concerns at different stages of design and implementation. The purpose of the assessment framework is to support the evaluation of the reusability and maintainability of aspect-oriented solutions based on a metrics suite and a quality model. Experimental studies in different application domains have been conducted to assess the proposed approach based on qualitative and quantitative criteria. The use of the aspect-oriented solutions resulted in fewer lines of code, fewer design and implementation components, lower internal complexity of system components, and lower coupling.
32

Productivity of agile teams: an empirical evaluation of factors and monitoring processes / Produtividade de times ágeis: uma avaliação experimental de fatores e processos de monitoramento.

Melo, Claudia de Oliveira 09 May 2013 (has links)
Lower cost and shorter time-to-market expectations are the major drivers of software productivity improvements. To manage productivity effectively, it is important to identify the most relevant difficulties and develop strategies to cope with them. Agile methods, including Extreme Programming and Scrum, have evolved as approaches to simplify software development process, potentially leading to better productivity. They aim to shorten development time and handle the inevitable changes resulting from market dynamics. Although the industry has extensively adopted agile methods, little research has empirically examined the software development agility construct regarding its dimensions, determinants, and effects on software development performance. Understanding this construct could help determine where to concentrate management efforts (and related financial resources) from a practical standpoint and where to focus research efforts from an academic perspective. Considerable research has been directed at identifying factors that have a significant impact on software development productivity. In general, the studied productivity factors were related to product, personnel, project, process, or organizational issues. Continuously evaluating productivity factors is important, as factors may change under new software engineering practices. However, little research has investigated the major factors influencing agile team productivity. ]The goal of this thesis was to explore productivity definitions, factors, and monitoring in agile teams and to improve the practice based on the collected evidence and gained knowledge. This thesis presents five novel contributions: C1 - Empirical verification of the importance of productivity for companies adopting agile methods and its perceived benefits; C2 - Rationale for the definition of productivity in the context of agile methods; C3 - Empirical verification of agile team productivity factors; C4 - A conceptual framework for agile team productivity factors and their impact; C5 - A team productivity monitoring process considering adaptability and an evaluation of the usefulness of agile team productivity metrics. / Menor custo e expectativa de menor time-to-market são os principais motivadores para melhorias de produtividade de software. Para gerir eficazmente a produtividade, é importante identificar as dificuldades mais relevantes e desenvolver estratégias para lidar com elas. Os métodos ágeis, incluindo Programação Extrema e Scrum, evoluíram como abordagens para simplificar o processo de desenvolvimento de software, potencialmente levando a uma melhor produtividade. Eles visam reduzir o tempo de desenvolvimento e lidar com as mudanças inevitáveis decorrentes da dinâmica do mercado. Embora a indústria tenha adotado amplamente métodos ágeis, há pouco entendimento científico do construto agilidade em desenvolvimento de software em relação às suas dimensões, determinantes e efeitos sobre o desempenho no desenvolvimento de software. Compreender esse construto poderia ajudar a determinar onde concentrar os esforços de gestão (e recursos financeiros relacionados) de um ponto de vista prático, assim como onde concentrar os esforços de investigação de uma perspectiva científica. Pesquisa considerável tem sido direcionada para identificar os fatores com impacto significativo na produtividade de desenvolvimento de software. Em geral, os fatores de produtividade estudados foram relacionadas ao produto, pessoas, projeto, processo ou questões organizacionais. Avaliar fatores de produtividade continuamente é importante, pois os fatores podem mudar quando novas práticas de engenharia de software são adotadas. No entanto, poucos estudos investigaram fatores influenciando a produtividade de times ágeis. O objetivo desta tese é explorar definições, fatores e monitoramento de produtividade em times ágeis e melhorar a prática baseada em evidência. Esta tese apresenta cinco novas contribuições: C1 - Verificação empírica da importância de produtividade para as empresas que adotam métodos ágeis e seus benefícios percebidos; C2 - Justificativa para a definição da produtividade no contexto de métodos ágeis; C3 - A verificação empírica de fatores de produtividade em times ágeis; C4 - Um arcabouço conceitual de fatores de produtividade em times ágeis e seu impacto; C5 - Um processo de acompanhamento de produtividade de times ágeis, considerando adaptabilidade e uma avaliação da utilidade de métricas de produtividade para esses times.
33

[en] ENGINEERING SELF-ORGANIZING EMERGENT MULTI-AGENT SYSTEMS: A DESIGN METHOD AND ARCHITECTURE / [pt] ENGENHARIA DE SISTEMAS MULTI-AGENTES AUTO- ORGANIZÁVEIS: UM MÉTODO DE PROJETO E ARQUITETURA

MAIRA ATHANAZIO CERQUEIRA GATTI 24 September 2010 (has links)
[pt] Arquitetos de software utilizam cada vez mais mecanismos de auto- organização para projetar sistemas distribuídos em um ambiente dinâmico, com ruído e imprevisível. Neste cenário, além de não existir uma entidade centralizadora que possua o conhecimento completo do estado do ambi- ente como um todo, mecanismos de auto-organização são principalmente inspirados pela natureza e permitem o comportamento com controle de- scentralizado. Existem duas linhas de pesquisa que direcionam esta tese: a primeira, como é o caso de qualquer paradigma de engenharia de soft- ware, o sucesso e abrangência de uso de sistemas auto-organizáveis requerem notações que exploram o uso de abstrações relacionadas a auto-organização e promovam a rastreabilidade a partir de modelos de projeto à código, e re- querem métodos de engenharia para prover know-how e guiar um engenheiro durante o projeto da aplicação. A segunda linha de pesquisa foca no incen- tivo do reuso de software em sistemas auto-organizáveis. Os objetivos desta tese são: prover um método de engenharia baseado em simulação para apoiar o projeto, desenvolvimento, simulação, validação e refinamento de sistemas multi-agentes auto-organizáveis; e prover uma arquitetura baseada em sim- ulação. Um projeto arquitetural ajuda no desenvolvimento de uma estrutura de programa modular e na representação dos relacionamentos de controle entre módulos e encoraja o engenheiro de software a se concentrar no pro- jeto arquitetural antes de se preocupar com otimizações e código. Esta tese apresenta: um ciclo de vida de desenvolvimento iterativo baseado no Pro- cesso Unificado, SSOA - uma arquitetura de auto-organização baseada em simulação, e o framework que implementa a arquitetura. O método de pro- jeto e a arquitetura foram avaliados através de três domínios de aplicação diferentes: veículos guiados automatizados, contratos que governam sistemas multi-agentes emergentes, e modelagem computacional do comportamento de células-tronco. / [en] Software architects are increasingly relying on self-organizing mechanisms to design distributed systems within a dynamic, noisy and unpredictable envi- ronment. At any point in time, no centralized entity has complete knowledge of the state of the environment as a whole and self-organizing mechanisms are mainly naturally-inspired which enables the decentralized control. There are two tracks that drive the research in this thesis: first, as it is the case with any new software engineering paradigm, the successful and widespread deployment of self-organizing systems require notations that explore the use of self-organizing related abstractions and promote the traceability from the design models to code, and engineering methods that provides know-how and guides an engineer during an application design. The second research track is to promote software reuse of self-organizing systems. This thesis’s goals are: to provide a simulation-based engineering method to support the design, development, simulation, validation and refinement of self-organizing multi-agent systems; and to provide a simulation-based architecture. An ar- chitectural design helps on the development of a modular program structure and on the representation of the control relationships between modules and encourages the software engineer to concentrate on architectural design be- fore worrying about optimizations or code. We present: an iterative develop- ment life-cycle based on a customization of the Unified Process, the SSOA – Simulation-based Self-Organizing Architecture –, and the framework that implements the architecture. We have evaluated the design method and ar- chitecture using three different application domains: the automated guided vehicles, the contracts that govern emergent multi-agent systems, and the stem cell behavior computational modeling.
34

Are Students Good Proxies for Studying Professional : A Systematic Literature Review / Are Students Good Proxies for Studying Professional : A Systematic Literature Review

Kotakonda, Sharat Chandra, Engu, Ranjith January 2012 (has links)
Context: The problem this thesis address is concerned with experimental software engineering and is associated with validity of the studies with students as subjects. Often in software engineering experiments students are used because students are easily available and are willing to participate in experiment studies, professionals are rarely available to participate in research study and there are several benefits of using students as research subject.The validity of experiments studied with students are questioned because students are less experienced and skilled compared to professionals. Objectives: The goal of this research is to find evidence whether or not the research studies with students as subjects can be trusted to get valid results. Identify factors that influence the results of experiment studies with students. Identify the ways to improve the validity of experiment studies with students. Methods: In this systematic literature review a number of article sources are used, including Compendex, Inspec, IEEE Xplore, ACM Digital Library, and Springer Link. Experiment studies in software engineering are selected after reading titles and abstracts to decide whether the articles are relevant to the subject. Snowball sampling is done to identify several experiment studies that address same research problems. Results: It is found that graduate students serve as good proxies to study professional practices compared to undergraduate students, because there are significant differences between result/findings of studies with undergraduate students as subjects and studies with professionals as subjects. The following factors influencing the results of experiment studies are identified: Number of subjects, Task related knowledge, Motivation levels of subjects, Training provided, Task related experience and Incentives or grades given for participation in the experiment. This study also identifies some problems with the way of conducting and reporting experiments in software engineering. Addressing these problems could improve the validity of experiment studies with students. Conclusion: The results indicate that students can be used to study professional practices but they cannot be said true for all areas and problems of software engineering because the results of experiment studies with different type of subjects in different area and problems are varying. Which means that whether or not students could be used to study a professional practice depends upon the research problems being studied, type of students subjects chosen for the study, difference between students chosen and professionals to whom the results/findings will be generalized. We conclude that graduate students serve as good proxies to study professional practices compared to undergraduate students. The cumulative experience or overall industry or academic experience of subjects does not seem to be affecting the result/findings of experiment studies unless the overall experience includes task related experience. Even though the study identified above mentioned factors that influences the results/findings of experiment studies there still might be few factors which the study might have failed to identify due lack of data. We suggested improvements for reporting that could improve the comparability of studies. / Often in software engineering experiments students are used because students are easily available and are willing to participate in experiment studies, where as professionals are rarely available to participate in research study. This thesis investigates whether it is ok to use students as experiments subjects while studying professional practices. Thesis also investigates the factors which influences the results of experiment studies with students. The derived knowledge from the thesis can assists researchers improve the way of conducting and reporting software engineering experiments, It also aids in improving the comparability of experiment studies.
35

[en] MAINTAINABILITY AND REUSABILITY OF ASPECT-ORIENTED SOFTWARE: AN ASSESSMENT FRAMEWORK / [pt] MANUTENIBILIDADE E REUSABILIDADE DE SOFTWARE ORIENTADO A ASPECTOS: UM FRAMEWORK DE AVALIAÇÃO

CLAUDIO NOGUEIRA SANTANNA 13 September 2004 (has links)
[pt] O desenvolvimento de software orientado a aspectos (DSOA) vem obtendo maior atenção tanto da academia quanto da indústria. Sistemas orientados a aspectos compreendem novas abstrações de engenharia de software e tratam de diferentes dimensões de complexidade. Conseqüentemente, o DSOA traz novos problemas para a engenharia de software experimental. Novos mecanismos de avaliação são necessários para medir os graus de manutenibilidade e reusabilidade de sistemas orientados a aspectos. Esta dissertação apresenta um framework de avaliação para o DSOA composto por dois elementos: um conjunto de métricas e um modelo de qualidade. No intuito de evitar a reinvenção de soluções já testadas, esses elementos são baseados em princípios bem conhecidos da engenharia de software e métricas já existentes. O framework proposto foi avaliado no contexto de dois estudos empíricos de domínios distintos, com características, níveis de controle e níveis de complexidade diferentes. O primeiro estudo empírico comparou uma abordagem orientada a objetos com uma abordagem orientada a aspectos para o projeto e implementação de um sistema multi- agentes. O segundo estudo envolveu a aplicação do framework proposto para avaliar as implementações em Java e AspectJ dos padrões de projeto da GoF. / [en] Aspect-oriented software development (AOSD) is gaining wide attention both in research environments and in industry. Aspect- oriented systems encompass new software engineering abstractions and different complexity dimensions. As a consequence, AOSD poses new problems to empirical software engineering. It requires new assessment mechanisms to measure the maintainability and reusability degrees of aspect-oriented systems. This dissertation presents an assessment framework for AOSD, which is composed of two components: a suite of metrics and a quality model. These components are based on well-known principles and existing metrics in order to avoid the reinvention of well-tested solutions. The proposed framework has been evaluated in the context of two different empirical studies with different characteristics, diverse domains, varying control levels and different complexity degrees. The first study compared an object-oriented approach and an aspect-oriented approach to the design and implementation of a multi-agent system. The second study involved the application of the proposed framework to evaluate Java and AspectJ implementations of the GoF design patterns.
36

Productivity of agile teams: an empirical evaluation of factors and monitoring processes / Produtividade de times ágeis: uma avaliação experimental de fatores e processos de monitoramento.

Claudia de Oliveira Melo 09 May 2013 (has links)
Lower cost and shorter time-to-market expectations are the major drivers of software productivity improvements. To manage productivity effectively, it is important to identify the most relevant difficulties and develop strategies to cope with them. Agile methods, including Extreme Programming and Scrum, have evolved as approaches to simplify software development process, potentially leading to better productivity. They aim to shorten development time and handle the inevitable changes resulting from market dynamics. Although the industry has extensively adopted agile methods, little research has empirically examined the software development agility construct regarding its dimensions, determinants, and effects on software development performance. Understanding this construct could help determine where to concentrate management efforts (and related financial resources) from a practical standpoint and where to focus research efforts from an academic perspective. Considerable research has been directed at identifying factors that have a significant impact on software development productivity. In general, the studied productivity factors were related to product, personnel, project, process, or organizational issues. Continuously evaluating productivity factors is important, as factors may change under new software engineering practices. However, little research has investigated the major factors influencing agile team productivity. ]The goal of this thesis was to explore productivity definitions, factors, and monitoring in agile teams and to improve the practice based on the collected evidence and gained knowledge. This thesis presents five novel contributions: C1 - Empirical verification of the importance of productivity for companies adopting agile methods and its perceived benefits; C2 - Rationale for the definition of productivity in the context of agile methods; C3 - Empirical verification of agile team productivity factors; C4 - A conceptual framework for agile team productivity factors and their impact; C5 - A team productivity monitoring process considering adaptability and an evaluation of the usefulness of agile team productivity metrics. / Menor custo e expectativa de menor time-to-market são os principais motivadores para melhorias de produtividade de software. Para gerir eficazmente a produtividade, é importante identificar as dificuldades mais relevantes e desenvolver estratégias para lidar com elas. Os métodos ágeis, incluindo Programação Extrema e Scrum, evoluíram como abordagens para simplificar o processo de desenvolvimento de software, potencialmente levando a uma melhor produtividade. Eles visam reduzir o tempo de desenvolvimento e lidar com as mudanças inevitáveis decorrentes da dinâmica do mercado. Embora a indústria tenha adotado amplamente métodos ágeis, há pouco entendimento científico do construto agilidade em desenvolvimento de software em relação às suas dimensões, determinantes e efeitos sobre o desempenho no desenvolvimento de software. Compreender esse construto poderia ajudar a determinar onde concentrar os esforços de gestão (e recursos financeiros relacionados) de um ponto de vista prático, assim como onde concentrar os esforços de investigação de uma perspectiva científica. Pesquisa considerável tem sido direcionada para identificar os fatores com impacto significativo na produtividade de desenvolvimento de software. Em geral, os fatores de produtividade estudados foram relacionadas ao produto, pessoas, projeto, processo ou questões organizacionais. Avaliar fatores de produtividade continuamente é importante, pois os fatores podem mudar quando novas práticas de engenharia de software são adotadas. No entanto, poucos estudos investigaram fatores influenciando a produtividade de times ágeis. O objetivo desta tese é explorar definições, fatores e monitoramento de produtividade em times ágeis e melhorar a prática baseada em evidência. Esta tese apresenta cinco novas contribuições: C1 - Verificação empírica da importância de produtividade para as empresas que adotam métodos ágeis e seus benefícios percebidos; C2 - Justificativa para a definição da produtividade no contexto de métodos ágeis; C3 - A verificação empírica de fatores de produtividade em times ágeis; C4 - Um arcabouço conceitual de fatores de produtividade em times ágeis e seu impacto; C5 - Um processo de acompanhamento de produtividade de times ágeis, considerando adaptabilidade e uma avaliação da utilidade de métricas de produtividade para esses times.
37

Variability Modeling in the Real: An Empirical Journey from Software Product Lines to Software Ecosystems

Berger, Thorsten 16 April 2013 (has links)
Variability modeling is one of the key disciplines to cope with complex variability in large software product lines. It aims at creating, evolving, and configuring variability models, which describe the common and variable characteristics, also known as features, of products in a product line. Since the introduction of feature models more than twenty years ago, many variability modeling languages and notations have been proposed both in academia and industry, followed by hundreds of publications on variability modeling techniques that have built upon these theoretical foundations. Surprisingly, there are relatively few empirical studies that aim at understanding the use of such languages. What variability modeling concepts are actually used in practice? Do variability models applied in real-world look similar to those published in literature? In what technical and organizational contexts are variability models applicable? We present an empirical study that addresses this research gap. Our goals are i) to verify existing theoretical research, and ii) to explore real-world variability modeling languages and models expressed in them. We study concepts and semantics of variability modeling languages conceived by practitioners, and the usage of these concepts in real, large-scale models. Our aim is to support variability modeling research by providing empirical data about the use of its core modeling concepts, by identifying and characterizing further concepts that have not been as widely addressed, and by providing realistic assumptions about scale, structure, content, and complexity of real-world variability models. We believe that our findings are of relevance to variability modeling researchers and tool designers, for example, those working on interactive product configurators or feature dependency checkers. Our extracted models provide realistic benchmarks that can be used to evaluate new techniques. Recognizing the recent trend in software engineering to open up software platforms to facilitate inter-organizational reuse of software, we extend our empirical discourse to the emerging field of software ecosystems. As natural successors of successful product lines, ecosystems manage huge variability among and within their software assets, thus, represent a highly interesting class of systems to study variability modeling concepts and mechanisms. Our studied systems comprise eleven highly configurable software systems, two ecosystems with closed platforms, and three ecosystems relying on open platforms. Some of our subjects are among the largest successful systems in existence today. Results from a survey on industrial variability modeling complement these subjects. Our overall results provide empirical evidence that the well-researched concepts of feature modeling are used in practice, but also that more advanced concepts are needed. We observe that assumptions about variability models in the literature do not hold. Our study also reveals that variability models work best in centralized variability management scenarios, and that they are fragile and have to be controlled by a small team. We also identify a particular type of dependencies that is increasingly used in open platforms and helps sustain the growth of ecosystems. Interestingly, while enabling distributed variability, these dependencies rely on a centralized and stable vocabulary. Finally, we formulate new hypotheses and research questions that provide direction for future research.
38

AN EMPIRICAL STUDY OF TRUST & SAFETY ENGINEERING IN OPEN-SOURCE SOCIAL MEDIA PLATFORMS

Geoffrey William Cramer (15337534) 22 April 2023 (has links)
<p>    </p> <p>Social Media Platforms (SMPs) are used by almost 60% of the global population. Along with the ubiquity of SMPs, there are increasing Trust & Safety (T&S) risks that expose users to spam, harassment, abuse, and other harmful content online. <em>T&S Engineering </em>is an emerging area of software engineering striving to mitigate these risks. This study provides the first step in understanding this form of software engineering.</p> <p>This study examines how T&S Engineering is practiced by SMP engineers. I studied two open-source (OSS) SMPs, Mastodon and Diaspora, which comprise 89% of the 9.6 million OSS SMP accounts. I focused on the T&S design process by analyzing T&S discussions within 60 GitHub issues. I applied a T&S discussion model to taxonomize the T&S risks, T&S engineering patterns, and resolution rationales. I found that T&S issues persist throughout a platform’s lifetime, they are difficult to resolve, and engineers favor reactive treatments. To integrate findings, I mapped T&S engineering patterns onto a gen- eral model of SMPs. My findings give T&S engineers a systematic understanding of their T&S risk treatment options. I conclude with future directions to study and improve T&S Engineering, spanning software design, decision-making, and validation. </p>
39

[en] TO COLLABORATE OR NOT TO COLLABORATE?: IMPROVING THE IDENTIFICATION OF CODE SMELLS / [pt] COLABORAR OU NÃO COLABORAR?: MELHORANDO A IDENTIFICAÇÃO DE ANOMALIAS DE CÓDIGO

ROBERTO FELICIO DE OLIVEIRA 17 January 2018 (has links)
[pt] Anomalias de código são estruturas anômalas de código que podem indicar problemas de manutenção. A identificação de anomalias é necessária para revelar elementos de código mal estruturados, tais como classes e métodos. Porém, a identificação individual de anomalias, realizada por um único desenvolvedor, pode ser ineficaz. Estudos reportam limitações da identificação individual de anomalias. Por exemplo, a identificação de anomalias requer uma compreensão profunda de múltiplos elementos de um programa, e cada elemento é melhor entendido por um desenvolvedor diferente. Logo, um desenvolvedor isolado frequentemente tem dificuldades para encontrar, confirmar e refutar uma suspeita de anomalia. Identificação colaborativa de anomalias, que é realizada em conjunto por dois ou mais colaboradores, tem o potencial para resolver esse problema. Porém, há pouca evidência empírica sobre a eficácia da identificação colaborativa de anomalias. Nesta tese, nós conduzimos estudos empíricos para entender a eficácia da identificação individual e colaborativa de anomalias. Computamos e comparamos a eficácia de colaboradores e desenvolvedores isolados com base no número de anomalias identificadas corretamente. Conduzimos tais estudos em empresas e laboratórios de pesquisa, totalizando 67 desenvolvedores, incluindo desenvolvedores novatos e experientes. Também definimos alguns fatores de influência sobre a eficácia da identificação colaborativa de anomalias, tais como a granularidade da anomalia. Revelamos e caracterizamos algumas atividades colaborativas que melhoram a eficácia dos desenvolvedores na identificação de anomalias. Finalmente, identificamos oportunidades para melhorar certas atividades colaborativas. Nossos resultados sugerem que colaboradores são significativamente mais eficazes que desenvolvedores isolados, tanto desevolvedores novatos quanto experientes. Concluímos que colaborar é vantajoso para melhorar a identificação de uma vasta gama de tipos de anomalia. / [en] Code smells are anomalous code structures which often indicate maintenance problems in software systems. The identification of code smells is required to reveal code elements, such as classes and methods, that are poorly structured. Some examples of code smell types perceived as critical by developers include God Classes and Feature Envy. However, the individual smell identification, which is performed by a single developer, may be ineffective. Several studies have reported limitations of individual smell identification. For instance, the smell identification usually requires an indepth understanding of multiple elements scattered in a program, and each of these elements is better understood by a different developer. As a consequence, a single developer often struggles and to find to confirm or refute a code smell suspect. Collaborative smell identification, which is performed together by two or more collaborators, has the potential to address this problem. However, there is little empirical evidence on the effectiveness of collaborative smell identification. In this thesis, we addressed the aforementioned limitations as follows. First, we conducted empirical studies aimed at understanding the effectiveness of both collaborative and individual smell identification. We computed and compared the effectiveness of collaborators and single developers based on the number of correctly identified code smells. We conducted these studies in both industry’s companies and research laboratories with 67 developers, including novice and professional developers. Second, we defined some influential factors on the effectiveness of collaborative smell identification, such as the smell granularity. Third, we revealed and characterized some collaborative activities which improve the developers effectiveness for identifying code smells. Fourth, we also characterized opportunities for further improving the effectiveness of certain collaborative activities. Our results suggest that collaborators are more effective than single developers in: (i) both professional and academic settings, and (ii) identifying a wide range of code smell types.
40

Understanding First-time User Experiences in an Educational Crowdsourcing Platform

Akash Ravi (11878004) 18 April 2023 (has links)
<p>User onboarding for Graphical User Interface (GUI) applications usually involve walkthrough tutorials explaining various UI elements, functions, and navigation screens. These First-time User Experiences (FTUEs) are crucial in determining any subsequent user interaction. The purpose of this study has been explored by eliciting answers to two research questions in specific. The study primarily investigates a user's perception of a tailored onboarding experience. Following this, the impact of these tutorials on the user's performance has also been used as a way to verify their effectiveness.</p> <p><br></p> <p>The emergence of educational crowdsourcing platforms has revolutionized traditional models of teaching and learning by engaging students in collaborative, real-world problem-solving activities. However, the success of crowdsourcing platforms in education largely depends on their ability to provide a positive and engaging user experience, particularly for first-time users. As a part of another ongoing study, the need for an engaging onboarding tutorial to educate users on the concept of worked-out examples and peer evaluations was evident. Thus, the interventions developed in this study are built upon a crowdsourcing platform designed to collect worked-out examples from university students. </p> <p><br></p> <p>Through a combination of qualitative and quantitative research methods, this study seeks to provide insights into the design of effective onboarding tutorials in the context of crowdsourcing educational resources. There have been numerous attempts to devise effective onboarding strategies. For instance, the interplay of narration and animation has been utilized as a way to gamify and design engaging FTUEs. The design choices for tailoring the experience were hence determined through Rapid Iterative Testing and Evaluation (RITE) methods. Analysis of the experimental data shows that there is a statistically significant improvement in the FTUE when users are presented with a tailored onboarding tutorial. Their usage patterns also tend to improve post their interactions with the tutorials. These results hope to contribute to a better understanding of user engagement in FTUEs, thus paving the way for furthering product adoption and value metrics on a broad scale.</p>

Page generated in 0.0618 seconds