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