6 research outputs found
Understanding Architecture Erosion: The Practitioners' Perceptive
As software systems evolve, their architecture is meant to adapt accordingly
by following the changes in requirements, the environment, and the
implementation. However, in practice, the evolving system often deviates from
the architecture, causing severe consequences to system maintenance and
evolution. This phenomenon of architecture erosion has been studied extensively
in research, but not yet been examined from the point of view of developers. In
this exploratory study, we look into how developers perceive the notion of
architecture erosion, its causes and consequences, as well as tools and
practices to identify and control architecture erosion. To this end, we
searched through several popular online developer communities for collecting
data of discussions related to architecture erosion. Besides, we identified
developers involved in these discussions and conducted a survey with 10
participants and held interviews with 4 participants. Our findings show that:
(1) developers either focus on the structural manifestation of architecture
erosion or on its effect on run-time qualities, maintenance and evolution; (2)
alongside technical factors, architecture erosion is caused to a large extent
by non-technical factors; (3) despite the lack of dedicated tools for detecting
architecture erosion, developers usually identify erosion through a number of
symptoms; and (4) there are effective measures that can help to alleviate the
impact of architecture erosion.Comment: The 29th IEEE/ACM International Conference on Program Comprehension
(ICPC
SEntiMoji: An Emoji-Powered Learning Approach for Sentiment Analysis in Software Engineering
Sentiment analysis has various application scenarios in software engineering
(SE), such as detecting developers' emotions in commit messages and identifying
their opinions on Q&A forums. However, commonly used out-of-the-box sentiment
analysis tools cannot obtain reliable results on SE tasks and the
misunderstanding of technical jargon is demonstrated to be the main reason.
Then, researchers have to utilize labeled SE-related texts to customize
sentiment analysis for SE tasks via a variety of algorithms. However, the
scarce labeled data can cover only very limited expressions and thus cannot
guarantee the analysis quality. To address such a problem, we turn to the
easily available emoji usage data for help. More specifically, we employ
emotional emojis as noisy labels of sentiments and propose a representation
learning approach that uses both Tweets and GitHub posts containing emojis to
learn sentiment-aware representations for SE-related texts. These emoji-labeled
posts can not only supply the technical jargon, but also incorporate more
general sentiment patterns shared across domains. They as well as labeled data
are used to learn the final sentiment classifier. Compared to the existing
sentiment analysis methods used in SE, the proposed approach can achieve
significant improvement on representative benchmark datasets. By further
contrast experiments, we find that the Tweets make a key contribution to the
power of our approach. This finding informs future research not to unilaterally
pursue the domain-specific resource, but try to transform knowledge from the
open domain through ubiquitous signals such as emojis.Comment: Accepted by the 2019 ACM Joint European Software Engineering
Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE
2019). Please include ESEC/FSE in any citation
Activity archetypes in question-and-answer (Q8A) websites—A study of 50 Stack Exchange instances
Millions of users on the Internet discuss a variety of topics on
Question-and-Answer (Q&A) instances. However, not all instances and topics
receive the same amount of attention, as some thrive and achieve
self-sustaining levels of activity, while others fail to attract users and
either never grow beyond being a small niche community or become inactive.
Hence, it is imperative to not only better understand but also to distill
deciding factors and rules that define and govern sustainable Q&A instances. We
aim to empower community managers with quantitative methods for them to better
understand, control and foster their communities, and thus contribute to making
the Web a more efficient place to exchange information. To that end, we
extract, model and cluster user activity-based time series from randomly
selected Q&A instances from the Stack Exchange network to characterize user
behavior. We find four distinct types of user activity temporal patterns, which
vary primarily according to the users' activity frequency. Finally, by breaking
down total activity in our 50 Q&A instances by the previously identified user
activity profiles, we classify those 50 Q&A instances into three different
activity profiles. Our parsimonious categorization of Q&A instances aligns with
the stage of development and maturity of the underlying communities, and can
potentially help operators of such instances: We not only quantitatively assess
progress of Q&A instances, but we also derive practical implications for
optimizing Q&A community building efforts, as we e.g. recommend which user
types to focus on at different developmental stages of a Q&A community
Understanding, Analysis, and Handling of Software Architecture Erosion
Architecture erosion occurs when a software system's implemented architecture diverges from the intended architecture over time. Studies show erosion impacts development, maintenance, and evolution since it accumulates imperceptibly. Identifying early symptoms like architectural smells enables managing erosion through refactoring. However, research lacks comprehensive understanding of erosion, unclear which symptoms are most common, and lacks detection methods. This thesis establishes an erosion landscape, investigates symptoms, and proposes identification approaches. A mapping study covers erosion definitions, symptoms, causes, and consequences. Key findings: 1) "Architecture erosion" is the most used term, with four perspectives on definitions and respective symptom types. 2) Technical and non-technical reasons contribute to erosion, negatively impacting quality attributes. Practitioners can advocate addressing erosion to prevent failures. 3) Detection and correction approaches are categorized, with consistency and evolution-based approaches commonly mentioned.An empirical study explores practitioner perspectives through communities, surveys, and interviews. Findings reveal associated practices like code review and tools identify symptoms, while collected measures address erosion during implementation. Studying code review comments analyzes erosion in practice. One study reveals architectural violations, duplicate functionality, and cyclic dependencies are most frequent. Symptoms decreased over time, indicating increased stability. Most were addressed after review. A second study explores violation symptoms in four projects, identifying 10 categories. Refactoring and removing code address most violations, while some are disregarded.Machine learning classifiers using pre-trained word embeddings identify violation symptoms from code reviews. Key findings: 1) SVM with word2vec achieved highest performance. 2) fastText embeddings worked well. 3) 200-dimensional embeddings outperformed 100/300-dimensional. 4) Ensemble classifier improved performance. 5) Practitioners found results valuable, confirming potential.An automated recommendation system identifies qualified reviewers for violations using similarity detection on file paths and comments. Experiments show common methods perform well, outperforming a baseline approach. Sampling techniques impact recommendation performance
Hacking the web 2.0: user agency and the role of hackers as computational mediators
This thesis studies the contested reconfigurations of computational agency within the domain of practices and affordances involved in the use of the Internet in everyday life (here labelled lifeworld Internet), through the transition of the Internet to a much deeper reliance on computation than at any previous stage. Computational agency is here considered not only in terms of capacity to act enabled (or restrained) by the computational layer but also as the recursive capacity to reconfigure the computational layer itself, therefore in turn affecting one’s own and others’ computational agency.
My research is based on multisited and diachronic ethnographic fieldwork: an initial (2005–2007) autoethnographic case study focused on the negotiations of computational agency within the development of a Web 2.0 application, later (2010–2011) fieldwork interviews focused on processes through which users make sense of the increasing pervasiveness of the Internet and of computation in everyday life, and a review (2010–2015) of hacker discourses focused on tracing the processes through which hackers constitute themselves as a recursive public able to inscribe counter–narratives in the development of technical form and to reproduce itself as a public of computational mediators with capacity to operate at the intersection of the technical and the social. By grounding my enquiry in the specific context of the lifeworlds of individual end users but by following computational agency through global hacker discourses, my research explores the role of computation, computational capacity and computational mediators in the processes through which users ‘hack’ their everyday Internet environments for practical utility, or develop independent alternatives to centralized Internet services as part of their contestation of values inscribed in the materiality of mainstream Internet