Skip to content

Commit a97b36a

Browse files
authored
Update README.md
1 parent eec838b commit a97b36a

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

‎README.md‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,18 @@ mvn clean package
3434
If the process finishes with success, ArCode jar file (e.g. arcode-1.0-SNAPSHOT.jar) is created and is ready to be used.
3535

3636
# Running the tool
37-
38-
37+
For running ArCode, you may use the following template in the command line. In the next section, a tutorial of runing the tool is provided.
38+
```
39+
java -jar ARCODE_JAR_FILE -framework FRAMEWORK_OF_INTEREST -fspecOutputPath PATH_TO_FSPEC_OUTPUT -trainProjectsPath PATH_TO_TRAINING_PROJECTS -testProjectsPath PATH_TO_TESTING_PROJECTS -exclusionFilePath PATH_TO_EXCLUSION_FILE -frameworkJarPath PATH_TO_FRAMEWORK_JAR_FILE -frameworkPackage PACKAGE_NAME_OF_FRAMEWORK
40+
```
41+
- ARCODE_JAR_FILE: Path to ArCode jar file that you downloaded from [releases](../../releases/) or built from ArCode source code using Maven.
42+
- FRAMEWORK_OF_INTEREST: The framework that you would like to extract and create a model of its API usages in training projects. This model is called Framework API Specification model (FSpec). ArCode also performs static analysis to find dependencies between APIs inside the framework jar file and creates an Inter-framewrok Dependency model (IFD). You may find more details about the approach from ArCode [paper](https://a-shokri.github.io/assets/Ali%20Shokri-ArCode-ICSA2021-Accepted.pdf).
43+
- PATH_TO_FSPEC_OUTPUT: Created FSpec will be serialized and saved in this directory. ArCode will later restore this FSpec and use it in the recommendation phase.
44+
- PATH_TO_TRAINING_PROJECTS: Path to the bytecode (jar files) of the training projects that are incorporating the framework of interest. ArCode analyzes these programs to create a Graph-based API Usage Model (GRAAM) for each program. Then, performing graph-based operations, it creates the framework's FSpec.
45+
- PATH_TO_TESTING_PROJECTS: Path to the bytecode (jar files) of the testing projects that are incorporating the framework of interest. ArCode analyzes these programs to create a Graph-based API Usage Model (GRAAM) for each program. The, leveraging the previously created FSpec, it identifies API misuses or APIs that are needed to be added to the program to make the program a correct implementation of an architectural tactic or a pattern.
46+
- PATH_TO_EXCLUSION_FILE: This is a file entitled as "JAASJavaExclusions.txt" in the config folder of ArCode source code. In the current version of ArCode, you need to have that file on your system and introduce its path to ArCode. This file specifies packages to be excluded from program analysis process. We need to introduce these packages to avoid explosion of call-graph creation in that process.
47+
- PATH_TO_FRAMEWORK_JAR_FILE: Path to jar file of the framework of interest.
48+
- PACKAGE_NAME_OF_FRAMEWORK: Since there might be more than one framework in a jar file, we introduce the packaging of the framework through this property.
3949

4050
# Tutorial
4151
Link to the tutorial video will be uploaded shortly.

0 commit comments

Comments
 (0)