14,349 research outputs found
Can Network Analysis Techniques help to Predict Design Dependencies? An Initial Study
The degree of dependencies among the modules of a software system is a key
attribute to characterize its design structure and its ability to evolve over
time. Several design problems are often correlated with undesired dependencies
among modules. Being able to anticipate those problems is important for
developers, so they can plan early for maintenance and refactoring efforts.
However, existing tools are limited to detecting undesired dependencies once
they appeared in the system. In this work, we investigate whether module
dependencies can be predicted (before they actually appear). Since the module
structure can be regarded as a network, i.e, a dependency graph, we leverage on
network features to analyze the dynamics of such a structure. In particular, we
apply link prediction techniques for this task. We conducted an evaluation on
two Java projects across several versions, using link prediction and machine
learning techniques, and assessed their performance for identifying new
dependencies from a project version to the next one. The results, although
preliminary, show that the link prediction approach is feasible for package
dependencies. Also, this work opens opportunities for further development of
software-specific strategies for dependency prediction.Comment: Accepted at ICSA 201
Clustered marginalization of minorities during social transitions induced by co-evolution of behaviour and network structure
Large-scale transitions in societies are associated with both individual
behavioural change and restructuring of the social network. These two factors
have often been considered independently, yet recent advances in social network
research challenge this view. Here we show that common features of societal
marginalization and clustering emerge naturally during transitions in a
co-evolutionary adaptive network model. This is achieved by explicitly
considering the interplay between individual interaction and a dynamic network
structure in behavioural selection. We exemplify this mechanism by simulating
how smoking behaviour and the network structure get reconfigured by changing
social norms. Our results are consistent with empirical findings: The
prevalence of smoking was reduced, remaining smokers were preferentially
connected among each other and formed increasingly marginalised clusters. We
propose that self-amplifying feedbacks between individual behaviour and dynamic
restructuring of the network are main drivers of the transition. This
generative mechanism for co-evolution of individual behaviour and social
network structure may apply to a wide range of examples beyond smoking.Comment: 16 pages, 5 figure
Differential classification of states of consciousness using envelope- and phase-based functional connectivity
The development of sophisticated computational tools to quantify changes in the brain\u27s oscillatory dynamics across states of consciousness have included both envelope- and phase-based measures of functional connectivity (FC), but there are very few direct comparisons of these techniques using the same dataset. The goal of this study was to compare an envelope-based (i.e. Amplitude Envelope Correlation, AEC) and a phase-based (i.e. weighted Phase Lag Index, wPLI) measure of FC in their classification of states of consciousness. Nine healthy participants underwent a three-hour experimental anesthetic protocol with propofol induction and isoflurane maintenance, in which five minutes of 128-channel electroencephalography were recorded before, during, and after anesthetic-induced unconsciousness, at the following time points: Baseline; light sedation with propofol (Light Sedation); deep unconsciousness following three hours of surgical levels of anesthesia with isoflurane (Unconscious); five minutes prior to the recovery of consciousness (Pre-ROC); and three hours following the recovery of consciousness (Recovery). Support vector machine classification was applied to the source-localized EEG in the alpha (8-13 Hz) frequency band in order to investigate the ability of AEC and wPLI (separately and together) to discriminate i) the four states from Baseline; ii) Unconscious ( deep unconsciousness) vs. Pre-ROC ( light unconsciousness); and iii) responsiveness (Baseline, Light Sedation, Recovery) vs. unresponsiveness (Unconscious, Pre-ROC). AEC and wPLI yielded different patterns of global connectivity across states of consciousness, with AEC showing the strongest network connectivity during the Unconscious epoch, and wPLI showing the strongest connectivity during full consciousness (i.e., Baseline and Recovery). Both measures also demonstrated differential predictive contributions across participants and used different brain regions for classification. AEC showed higher classification accuracy overall, particularly for distinguishing anesthetic-induced unconsciousness from Baseline (83.7 ± 0.8%). AEC also showed stronger classification accuracy than wPLI when distinguishing Unconscious from Pre-ROC (i.e., deep from light unconsciousness) (AEC: 66.3 ± 1.2%; wPLI: 56.2 ± 1.3%), and when distinguishing between responsiveness and unresponsiveness (AEC: 76.0 ± 1.3%; wPLI: 63.6 ± 1.8%). Classification accuracy was not improved compared to AEC when both AEC and wPLI were combined. This analysis of source-localized EEG data demonstrates that envelope- and phase-based FC provide different information about states of consciousness but that, on a group level, AEC is better able to detect relative alterations in brain FC across levels of anesthetic-induced unconsciousness compared to wPLI
Improving software quality using an ontology-based approach
Ensuring quality in software development is a challenging process. The concepts of anti-pattern and bad code smells utilize the knowledge of reoccurring problems to improve the quality of current and future software development. Anti-patterns describe recurring bad design solutions while bad code smells describe source code that is error-free but difficult to understand and maintain. Code refactoring aims to remove bad code smells without changing a program’s functionality while improving program quality. There are metrics-based tools to detect a few bad code smells from source code; however, the knowledge and understanding of these indicators of low quality software are still insufficient to resolve many of the problems they represent. Minimal research addresses the relationships between or among bad code smells, anti-patterns and refactoring. In this research, we present a new ontology, Ontology for Anti-patterns, Bad Code Smells and Refactoring (OABR), to define the concepts and their relation properties. Such an ontological infrastructure encourages a common understanding of these concepts among the software community and provides more concise definitions that help to avoid overlapping and inconsistent description. It utilizes reasoning capabilities associated with ontology to analyze the software development domain and offer new insights into the domain. Software quality issues such as understandability and maintainability can be improved by identifying and resolving anti-patterns associated with code smells as well as preventing bad code smells before coding begins
- …