Project Software and Datasets

    • scenoRITA  (scenario geneRatIon Testing for AVs) is a test generation framework that aims to find safety and motion sickness-inducing violations in the presence of an evolving traffic environment. scenoRITA combines both (i) AV software domain knowledge and (ii) search-based testing that, through a novel gene representation, overcomes the following limitations of previous work: (i) manual setup and a limited number of scenario types; (ii) a small fixed number of obstacles per scenario; and (iii) obstacles with fixed trajectories and limited maneuvers which require manual specification.
    • DoppelTest is a novel test-generation approach for AV software testing that (1) utilizes smart obstacles and (2) ensures the ADS is responsible when violations occur by running multiple ADSes in the same scenario, where each ADS controls a different AV.
    • DeltaDroid: Dynamic Delivery Testing in Android
      • The tool and dataset are available here.
    • Forecasting Architectural Decay from Evolutionary History
      • The tool and dataset are available here.
    • Software Architecture INstrument (SAIN), a first-of-its-kind integration framework for assembling architecture-related techniques and tools with the goal of enabling empirical research in the context of software maintenance.
      • Infrastructure is available here.
    • Librarian: a tool designed to identify native libraries and their versions as found in Android apps, input data, and extended evaluation results.
      • Tool, input data, and extended evaluation results are available here.
    • A Comprehensive Study of Autonomous Vehicle Bugs
      • Dataset is available here.
    • Darcy: Detection and Repair of Architectural Inconsistencies in Java
    • RevealDroid: Lightweight, Obfuscation-Resilient Detection and Family Identification of Android Malware
    • LetterBomb: Automatic Generation of Inter-Component Communication Exploits for Android Applications
    • SALMA: Self-Protection of Android Systems from Inter-Component Communication Attacks
    • COVERT: Compositional Analysis of Android Inter-Application Vulnerabilities
    • A Large-Scale Empirical Study on the Effects of Code Obfuscations on Android Apps and Anti-Malware Products
    • A Taxonomy of Program Analysis Techniques for Security Assessment of Android Apps
    • TrimDroid: Reducing Combinatorics in GUI Testing of Android Applications
    • Architectural Recovery using Concerns (ARC): an approach for recovery of the components of a software systems architecture that leverages topic models
    • Architecture Recovery, Change, And Decay Evaluator (ARCADE): a software workbench that employs a suite of architecture-recovery techniques and a set of metrics for measuring different aspects of architectural change. Users include Huawei, Northrup Grumman, and Boeing.
      • Old version available here
      • Please contact me, Duc Le (ducmle at usc dot edu), Daniel Link (dlink at usc dot edu), or  Nenad Medvidović (neno at usc dot edu) for the latest version
    • Eos: a tool for identifying messages, inter-component dependencies based on messages, intra-component dependencies based on messages, and attributes of a message in a distributed event-based system.
    • Ground-Truth Software Architectures: architectures recovered with the aid of a software system’s architect or long-time architecturally aware developer.
    • Apache Object Oriented Data Technology (OODT) (as an Apache Committer): a framework for
      large-scale distributed data management and processing.