14,349 research outputs found

    Can Network Analysis Techniques help to Predict Design Dependencies? An Initial Study

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    • …
    corecore