58 research outputs found
Analysis Strategies for Configurable Systems
A configurable system enables users to derive individual system variants based on a selection of configuration options. To cope with the often huge number of possible configurations, several analysis approaches (e.g., for verification of configurable systems) implement different strategies to account for configurability. One popular strategy—often applied in practice—is to use sampling (i.e.,analyzing only a subset of all system variants). While sampling reduces the analysis effort significantly, the information obtained is necessarily incomplete as some variants are not analyzed. A second strategy is to identify the common parts and the variable parts of a configurable system and analyze each part separately (called feature-based strategy). As a third strategy, researchers have begun to develop family-based analyses. Family-based approaches analyze the code base of a configurable system as a whole, rather than the individual variants or parts of the system, this way exploiting similarities among individual variants to reduce analysis effort. Each of these three strategies has advantages and disadvantages, which might even prevent its application (e.g., the family-based strategy typically needs much main memory). The goal of this thesis is to enable the efficient analysis of configuable systems, even if existing strategies fail (e.g., the family-based strategy, because of memory limitations). To this end, we designed a framework that models the key aspects of configurable-system analysis strategies, independent of their implementation and of the analyses techniques (e.g., type checking or model checking). Guided by our model, we developed a number of analysis strategies for configurable systems. To learn about advantages and disadvantages of individual strategies, we compared these in a series of empirical studies. In particular, we developed and evaluated a model-checking analysis and a data-flow analysis for configurable systems. One of our key findings is that family-based analysis outperforms most sampling heuristics with respect to analysis time, while being able to make definite statements about all variants of a configurable system. Furthermore, we identified advantages and disadvantages of analysis strategies and how to mitigate them by combining strategies. In our endeavor, we identified two key problems that are common to configurable-system analyses, and we developed supporting techniques to solve them. These techniques are general and are applicable beyond our research. In particular, we developed presence-condition simplification and variability encoding. Presence-condition simplification provides a simple method to reduce the size of the output or the internal data structure of configurable-systemanalyses. Variability encoding provides a means for transforming compile-time variability to run-time variability, which enables many family-based analyses.
Our key contributions are the model of analysis strategies for configurable systems and the corresponding empirical comparisons of strategies. Our findings are backed by empirical studies, which helped broaden the community knowledge on analyses of configurable systems (indicated by citations). For these evaluations, we prepared several subject systems, which have also been used already by other researchers. Furthermore, we developed several analysis tools and demonstrated their feasibility in practical application scenarios based on code from, for example, the Linux kernel. Our tools are based on variability-aware optimizations that enable levels of scalability on configurable systems that were not possible with other tools before
Fairness Testing: Testing Software for Discrimination
This paper defines software fairness and discrimination and develops a
testing-based method for measuring if and how much software discriminates,
focusing on causality in discriminatory behavior. Evidence of software
discrimination has been found in modern software systems that recommend
criminal sentences, grant access to financial products, and determine who is
allowed to participate in promotions. Our approach, Themis, generates efficient
test suites to measure discrimination. Given a schema describing valid system
inputs, Themis generates discrimination tests automatically and does not
require an oracle. We evaluate Themis on 20 software systems, 12 of which come
from prior work with explicit focus on avoiding discrimination. We find that
(1) Themis is effective at discovering software discrimination, (2)
state-of-the-art techniques for removing discrimination from algorithms fail in
many situations, at times discriminating against as much as 98% of an input
subdomain, (3) Themis optimizations are effective at producing efficient test
suites for measuring discrimination, and (4) Themis is more efficient on
systems that exhibit more discrimination. We thus demonstrate that fairness
testing is a critical aspect of the software development cycle in domains with
possible discrimination and provide initial tools for measuring software
discrimination.Comment: Sainyam Galhotra, Yuriy Brun, and Alexandra Meliou. 2017. Fairness
Testing: Testing Software for Discrimination. In Proceedings of 2017 11th
Joint Meeting of the European Software Engineering Conference and the ACM
SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE),
Paderborn, Germany, September 4-8, 2017 (ESEC/FSE'17).
https://doi.org/10.1145/3106237.3106277, ESEC/FSE, 201
The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel
International audienceThe increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones
TMPRSS2-mediated SARS-CoV-2 uptake boosts innate immune activation, enhances cytopathology, and drives convergent virus evolution.
The accessory protease transmembrane protease serine 2 (TMPRSS2) enhances severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) uptake into ACE2-expressing cells, although how increased entry impacts downstream viral and host processes remains unclear. To investigate this in more detail, we performed infection assays in engineered cells promoting ACE2-mediated entry with and without TMPRSS2 coexpression. Electron microscopy and inhibitor experiments indicated TMPRSS2-mediated cell entry was associated with increased virion internalization into endosomes, and partially dependent upon clathrin-mediated endocytosis. TMPRSS2 increased panvariant uptake efficiency and enhanced early rates of virus replication, transcription, and secretion, with variant-specific profiles observed. On the host side, transcriptional profiling confirmed the magnitude of infection-induced antiviral and proinflammatory responses were linked to uptake efficiency, with TMPRSS2-assisted entry boosting early antiviral responses. In addition, TMPRSS2-enhanced infections increased rates of cytopathology, apoptosis, and necrosis and modulated virus secretion kinetics in a variant-specific manner. On the virus side, convergent signatures of cell-uptake-dependent innate immune induction were recorded in viral genomes, manifesting as switches in dominant coupled Nsp3 residues whose frequencies were correlated to the magnitude of the cellular response to infection. Experimentally, we demonstrated that selected Nsp3 mutations conferred enhanced interferon antagonism. More broadly, we show that TMPRSS2 orthologues from evolutionarily diverse mammals facilitate panvariant enhancement of cell uptake. In summary, our study uncovers previously unreported associations, linking cell entry efficiency to innate immune activation kinetics, cell death rates, virus secretion dynamics, and convergent selection of viral mutations. These data expand our understanding of TMPRSS2's role in the SARS-CoV-2 life cycle and confirm its broader significance in zoonotic reservoirs and animal models
Impact of postoperative necrotizing enterocolitis after neonatal cardiac surgery on neurodevelopmental outcome at 1 year of age
ObjectivesWe analyzed the impact of postoperative necrotizing enterocolitis (NEC) after cardiac surgery in neonatal age on neurodevelopmental (ND) outcome at 1 year of age.MethodsUsing data from the Swiss Neurodevelopmental Outcome Registry for Children with Congenital Heart Disease (ORCHID), we analyzed perioperative variables including postoperative NEC (Bell's stage ≥2) and 1-year ND outcome (Bayley III).ResultsThe included patients (n = 101) had congenital heart disease (CHD), categorized as follows: 77 underwent biventricular repair for CHD with two functional chambers, 22 underwent staged palliation until the Fontan procedure for CHD with single ventricle physiology (n = 22), or 4 underwent single ventricle palliation or biventricular repair for borderline CHD (n = 4). Neonatal cardiopulmonary bypass (CBP) surgery was performed at a median age (IQR) of 8 (6) days. NEC occurred in 16 patients. Intensive care unit (ICU) length of stay (LOS) and the total duration of the hospitalization were longer in children with NEC than those in others (14 with vs. 8 days without NEC, p < 0.05; 49 with vs. 32 days without NEC, p < 0.05). The Bayley III scores of the analyzed patients determined at an age of 11.5 ± 1.5 months showed cognitive (CCS) (102.2 ± 15.0) and language scores (LCS) (93.8 ± 13.1) in the normal range and motor composite scores (MCS) (88.7 ± 15.9) in the low-normal range. After adjusting for socioeconomic status and CHD type, patients with NEC had lower CCS scores [β = −11.2 (SE 5.6), p = 0.049]. Using a cumulative risk score including NEC, we found a higher risk score to be associated with both lower CCS [β = −2.8 (SE 1.3), p = 0.030] and lower MCS [β = −3.20 (SE 1.3), p = 0.016].ConclusionsPostoperative NEC is associated with longer ICU and hospital LOS and contributes together with other complications to impaired ND outcome at 1 year of age. In the future, national and international patient registries may provide the opportunity to analyze large cohorts and better identify the impact of modifiable perioperative risk factors on ND outcome.
Clinical Trial RegistrationClinicalTrials.gov identifier: NCT05996211
Strategies for analyzing configurable systems
The advent of variability management and generator technology enables users to derive individual system variants from a given configurable system just based on a selection of desired configuration options. To cope with the possibly huge configuration space, researchers have been developing analysis techniques that follow different strategies to incorporate (static) variability. We discuss different strategies (variability-aware analysis and sampling) and evaluate them in different settings (model checking, type checking, and liveness analysis). A key finding is that variability-aware analysis outperforms most sampling approaches with respect to analysis time while being able to make definite statements about all variants of a configurable system
Introducing Binary Decision Diagrams in the explicit-state verification of Java code
One of the big performance problems of software model checking is the state-explosion problem. Various tools exist to tackle this problem. One of such tools is Java Pathfinder (JPF) an explicit-state model checker for Java code that has been used to verify efficiently a number of real applications.
We present jpf-bdd, a JPF extension that allows users to annotate Boolean variables in the system under test to be managed using Binary Decision Diagrams (BDDs). Our tool partitions the program states of the system being verified and manages one part using BDDs. It maintains a formula for the values of these state partitions at every point during the verification. This allows us to merge states that would be kept distinct otherwise, thereby reducing the effect of the state-explosion problem.
We demonstrate the performance improvement of our extension by means of three example programs including an implementation of the well-known dining- philosophers problem
- …
