2,423 research outputs found
Warnings: Violation Symptoms Indicating Architecture Erosion
As a software system evolves, its architecture tends to degrade, and
gradually impedes software maintenance and evolution activities and negatively
impacts the quality attributes of the system. The main root cause behind
architecture erosion phenomenon derives from violation symptoms (such as
violations of architecture pattern). Previous studies focus on detecting
violations in software systems using architecture conformance checking
approaches. However, code review comments are also rich sources that may
contain extensive discussions regarding architecture violations. In this work,
we investigated the characteristics of architecture violation symptoms in code
review comments from the developers' perspective. We employed a set of keywords
related to violation symptoms to collect 606 (out of 21,583) code review
comments from four popular OSS projects in the OpenStack and Qt communities. We
manually analyzed the collected 606 review comments to provide the categories
and linguistic patterns of violation symptoms, as well as the reactions how
developers addressed them. Our findings show that: (1) 10 categories of
violation symptoms are discussed by developers during the code review process;
(2) The frequently-used terms of expressing violation symptoms are
"inconsistent" and "violate", and the most frequently-used linguistic pattern
is Problem Discovery; (3) Refactoring and removing code are the major measures
(90%) to tackle violation symptoms, while a few violation symptoms were ignored
by developers. Our findings suggest that the investigation of violation
symptoms can help researchers better understand the characteristics of
architecture erosion and facilitate the development and maintenance activities,
and developers should explicitly manage violation symptoms, not only for
addressing the existing architecture violations but also preventing future
violations.Comment: Preprint accepted for publication in Information and Software
Technology, 202
Towards Automatic Identification of Violation Symptoms of Architecture Erosion
Architecture erosion has a detrimental effect on maintenance and evolution,
as the implementation drifts away from the intended architecture. To prevent
this, development teams need to understand early enough the symptoms of
erosion, and particularly violations of the intended architecture. One way to
achieve this, is through the automatic identification of architecture
violations from textual artifacts, and particularly code reviews. In this
paper, we developed 15 machine learning-based and 4 deep learning-based
classifiers with three pre-trained word embeddings to identify violation
symptoms of architecture erosion from developer discussions in code reviews.
Specifically, we looked at code review comments from four large open-source
projects from the OpenStack (Nova and Neutron) and Qt (Qt Base and Qt Creator)
communities. We then conducted a survey to acquire feedback from the involved
participants who discussed architecture violations in code reviews, to validate
the usefulness of our trained classifiers. The results show that the SVM
classifier based on word2vec pre-trained word embedding performs the best with
an F1-score of 0.779. In most cases, classifiers with the fastText pre-trained
word embedding model can achieve relatively good performance. Furthermore,
200-dimensional pre-trained word embedding models outperform classifiers that
use 100 and 300-dimensional models. In addition, an ensemble classifier based
on the majority voting strategy can further enhance the classifier and
outperforms the individual classifiers. Finally, an online survey of the
involved developers reveals that the violation symptoms identified by our
approaches have practical value and can provide early warnings for impending
architecture erosion.Comment: 20 pages, 4 images, 7 tables, Revision submitted to TSE (2023
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
Computer Vision for Construction Progress Monitoring: A Real-Time Object Detection Approach
Construction progress monitoring (CPM) is essential for effective project
management, ensuring on-time and on-budget delivery. Traditional CPM methods
often rely on manual inspection and reporting, which are time-consuming and
prone to errors. This paper proposes a novel approach for automated CPM using
state-of-the-art object detection algorithms. The proposed method leverages
e.g. YOLOv8's real-time capabilities and high accuracy to identify and track
construction elements within site images and videos. A dataset was created,
consisting of various building elements and annotated with relevant objects for
training and validation. The performance of the proposed approach was evaluated
using standard metrics, such as precision, recall, and F1-score, demonstrating
significant improvement over existing methods. The integration of Computer
Vision into CPM provides stakeholders with reliable, efficient, and
cost-effective means to monitor project progress, facilitating timely
decision-making and ultimately contributing to the successful completion of
construction projects.Comment: 15 Page
Consistent View-Based Management of Variability in Space and Time
Developing variable systems faces many challenges. Dependencies between interrelated artifacts within a product variant, such as code or diagrams, across product variants and across their revisions quickly lead to inconsistencies during evolution. This work provides a unification of common concepts and operations for variability management, identifies variability-related inconsistencies and presents an approach for view-based consistency preservation of variable systems
Evaluation of Software Product Quality Metrics
Computing devices and associated software govern everyday life, and form the
backbone of safety critical systems in banking, healthcare, automotive and
other fields. Increasing system complexity, quickly evolving technologies and
paradigm shifts have kept software quality research at the forefront. Standards
such as ISO's 25010 express it in terms of sub-characteristics such as
maintainability, reliability and security. A significant body of literature
attempts to link these subcharacteristics with software metric values, with the
end goal of creating a metric-based model of software product quality. However,
research also identifies the most important existing barriers. Among them we
mention the diversity of software application types, development platforms and
languages. Additionally, unified definitions to make software metrics truly
language-agnostic do not exist, and would be difficult to implement given
programming language levels of variety. This is compounded by the fact that
many existing studies do not detail their methodology and tooling, which
precludes researchers from creating surveys to enable data analysis on a larger
scale. In our paper, we propose a comprehensive study of metric values in the
context of three complex, open-source applications. We align our methodology
and tooling with that of existing research, and present it in detail in order
to facilitate comparative evaluation. We study metric values during the entire
18-year development history of our target applications, in order to capture the
longitudinal view that we found lacking in existing literature. We identify
metric dependencies and check their consistency across applications and their
versions. At each step, we carry out comparative evaluation with existing
research and present our results.Comment: Published in: Molnar AJ., Neam\c{t}u A., Motogna S. (2020) Evaluation
of Software Product Quality Metrics. In: Damiani E., Spanoudakis G.,
Maciaszek L. (eds) Evaluation of Novel Approaches to Software Engineering.
ENASE 2019. Communications in Computer and Information Science, vol 1172.
Springer, Cham. https://doi.org/10.1007/978-3-030-40223-5_
- …