https://github.com/assert-kth/deptrim-experiments

Open-science repository containing our experiments about debloating for software diversification using DepTrim.

https://github.com/assert-kth/deptrim-experiments

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

debloating java-dependencies software-diversity
Last synced: 6 months ago · JSON representation

Repository

Open-science repository containing our experiments about debloating for software diversification using DepTrim.

Basic Info
  • Host: GitHub
  • Owner: ASSERT-KTH
  • License: mit
  • Language: Dockerfile
  • Default Branch: main
  • Homepage:
  • Size: 400 MB
Statistics
  • Stars: 4
  • Watchers: 12
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
debloating java-dependencies software-diversity
Created over 3 years ago · Last pushed about 3 years ago
Metadata Files
Readme License

README.md

deptrim-experiments

DOI

Open-science repository containing our experiments about automatic specialization of third-party dependencies using DepTrim.

Organization

This repository is organized as follows:

  • pipeline contains the data collection pipeline.
  • notebooks contains the R notebooks used analyze the results obtained with the pipeline.
  • dataset contains part of the dataset of third party dependencies that we filtered to select the study subjects for experiments.

Collecting the results

To run the automatic data collection pipeline, you need the following installed:

Execute the run_pipeline.sh script. This will create a directory named results with 30 subdirectories, each representing the result for a Java project. For example, for the project java-faker, the results/java-faker directory contains the following files:

bash depclean # This directory contains the results of running DepClean with the original POM. depclean.log # DepClean execution logs. pom-debloated # This directory contains the results when building with `pom-debloate.xml`. all-dependencies # This directory contains all the JAR files of the analyzed dependencies. automaton-1.11-8.jar byte-buddy-1.9.3.jar byte-buddy-agent-1.9.3.jar commons-lang3-3.5.jar commons-validator-1.6.jar generex-1.0.2.jar guava-20.0.jar hamcrest-core-1.3.jar hamcrest-library-1.3.jar javassist-3.21.0-GA.jar junit-4.12.jar mockito-core-2.23.4.jar objenesis-2.6.jar reflections-0.9.11.jar slf4j-api-1.7.25.jar slf4j-simple-1.7.25.jar snakeyaml-1.26-android.jar all-dependencies.log # Maven dependecies:copy-dependency logs. javafaker-1.0.3-SNAPSHOT.jar # Maven build JAR file of the project. maven.log # Maven build logs when using pom-debloated.xml. pom-debloated.xml # The debloated POM generated by DepClean. deptrim # This directory contains the results of running DepTrim. deptrim.log # DepTrim execution log with parameter `createSinglePomSpecialized`. libs-specialized # This directory contains the JAR files of all the specialized dependencies. automaton-1.11-8.jar commons-lang3-3.5.jar generex-1.0.2.jar snakeyaml-1.26-android.jar pom-specialized # This directory contains the results when building with `pom-specialized.xml`. dependency-tree.log # Maven dependency tree. javafaker-1.0.3-SNAPSHOT.jar # Maven build JAR file of the project. maven.log # Maven build execution log when running with `pom-specialized.xml`. pom-specialized.xml # The POM with all the specialized dependencies. pom-specialized_1_4 # This directory contains the Maven build results when using a pom file with 1 specialized dependency. dependency-tree.log javafaker-1.0.3-SNAPSHOT.jar maven.log pom-specialized_1_4.xml pom-specialized_2_4 # This directory contains the Maven build results when using a pom file with 2 specialized dependency. dependency-tree.log javafaker-1.0.3-SNAPSHOT.jar maven.log pom-specialized_2_4.xml pom-specialized_3_4 # This directory contains the Maven build results when using a pom file with 3 specialized dependency. dependency-tree.log javafaker-1.0.3-SNAPSHOT.jar maven.log pom-specialized_3_4.xml pom-specialized_4_4 # This directory contains the Maven build results when using a pom file with 4 specialized dependency. dependency-tree.log javafaker-1.0.3-SNAPSHOT.jar maven.log pom-specialized_4_4.xml deptrim.log original # This directory contains the results of the original building the original project. all-dependencies # This directory contains all the JAR files of all the dependencies. dependency automaton-1.11-8.jar byte-buddy-1.9.3.jar byte-buddy-agent-1.9.3.jar commons-beanutils-1.9.2.jar commons-collections-3.2.2.jar commons-digester-1.8.1.jar commons-lang3-3.5.jar commons-logging-1.2.jar commons-validator-1.6.jar generex-1.0.2.jar guava-20.0.jar hamcrest-core-1.3.jar hamcrest-library-1.3.jar javassist-3.21.0-GA.jar junit-4.12.jar mockito-core-2.23.4.jar objenesis-2.6.jar reflections-0.9.11.jar slf4j-api-1.7.25.jar slf4j-simple-1.7.25.jar snakeyaml-1.26-android.jar all-dependencies.log # Maven dependecies:copy-dependency logs. compile-scope-dependencies # This directory contains only the `compile` scope dependencies. dependency automaton-1.11-8.jar commons-lang3-3.5.jar generex-1.0.2.jar snakeyaml-1.26-android.jar compile-scope-dependencies.log dependency-list.log # List of all the dependencies. dependency-tree.log # Dependency tree. javafaker-1.0.3-SNAPSHOT.jar # Artifact from the original build. maven.log # Maven build log. pom-original.xml # Original POM file.

For your convenience, we provide a Dockerfile will all the necessary to run the data collection pipeline.

License

Distributed under the MIT License. See LICENSE for more information.

Funding

DepTrim is partially funded by the Wallenberg Autonomous Systems and Software Program (WASP).

Wallenberg Autonomous Systems and Software Program (WASP)

Owner

  • Name: ASSERT
  • Login: ASSERT-KTH
  • Kind: organization
  • Location: Sweden

assertEquals("Research group at KTH Royal Institute of Technology, Stockholm, Sweden", description);

GitHub Events

Total
Last Year

Dependencies

pipeline/Dockerfile docker
  • alpine latest build
dataset/package-lock.json npm
  • typescript 4.8.3 development
  • xhr2 0.2.1
dataset/package.json npm
  • shelljs 0.8.5 development
  • typescript 4.8.3 development
  • xhr2 ^0.2.1
dataset/yarn.lock npm
  • balanced-match 1.0.2
  • brace-expansion 1.1.11
  • concat-map 0.0.1
  • fs.realpath 1.0.0
  • function-bind 1.1.1
  • glob 7.2.3
  • has 1.0.3
  • inflight 1.0.6
  • inherits 2.0.4
  • interpret 1.4.0
  • is-core-module 2.10.0
  • minimatch 3.1.2
  • once 1.4.0
  • path-is-absolute 1.0.1
  • path-parse 1.0.7
  • rechoir 0.6.2
  • resolve 1.22.1
  • shelljs 0.8.5
  • supports-preserve-symlinks-flag 1.0.0
  • typescript 4.8.3
  • wrappy 1.0.2
  • xhr2 0.2.1
pipeline/fig1/jacop/src/main/minizinc/Dockerfile docker
  • minizinc/mznc2018 1.0 build
pipeline/fig1/jacop/pom.xml maven
  • org.mockito:mockito-all 1.10.19
  • org.scala-lang:scala-compiler 2.13.1
  • org.scala-lang:scala-library 2.13.1
  • org.slf4j:slf4j-api 1.7.24
  • org.slf4j:slf4j-log4j12 1.7.24
  • junit:junit 4.13.1 test