Modeling and evaluation of Software Aging and Rejuvenation (SAR) models beyond the enabling restriction
This repository provides a Java library for modeling and evaluation of Software Aging and Rejuvenation (SAR) models beyond the enabling restriction. The approach is presented in the paper titled "Cost-Effective Software Rejuvenation Combining Time-Based and Condition-Based Policies", authored by Laura Carnevali, Marco Paolieri, Riccardo Reali, Leonardo Scommegna, and Enrico Vicario, submitted to the IEEE Transactions on Emerging Topics in Computing.
To reproduce experiments illustrated in Sect.3 of the paper:
- Run the main class: "/sar/src/main/java/org/oristool/timebased/results/BestPeriod.java", which evaluates the best period to use for models illustrated in Fig.3
- Run the main class: "/sar/src/main/java/org/oristool/timebased/results/BestPeriodTransient.java", which evaluates the transients illustrated in Fig.5
- Run the python script: "/sar/plots/python_scripts/time_based_plots.py", which will output Fig.4 and Figs.5 in the folder "/sar/plots/figures/timebased"
To reproduce experiments illustrated in Sect.4 of the paper:
- Run the main class: "/sar/src/main/java/org/oristool/conditionbased/ConditionBasedSteadyState.java", which evaluates the steady-state of the interested rewards. The output can be copied in the python file described at the next item.
- Run the python script: "/sar/plots/python_scripts/condition_based_plots.py", which will output Figs.7,8,9,10 in the folder "/sar/plots/figures/conditionbased" Note that evaluation of the transient of Fig.7 is reported as a vector in the script and not read from an external file. The vector values can be evaluated by running "/sar/src/main/java/org/oristool/conditionbased/Rej_n_samples.java"
Attention! Before executing the python scripts, edit the file path string.
This repository provides a ready-to-use Maven project that you can easily import into an Eclipse workspace to start working with the this library (the version 2.0.0-SNAPSHOT
of the Sirio library is included as a Maven dependency). Just follow these steps:
-
Install Java >= 11. For Windows, you can download a package from Oracle; for Linux, you can run
apt-get install openjdk-11-jdk
; for macOS, you can runbrew install --cask java
. -
Download Eclipse. The Eclipse IDE for Java Developers package is sufficient.
-
Clone this project. Inside Eclipse:
- Select
File > Import > Maven > Check out Maven Projects from SCM
and clickNext
. - If the
SCM URL
dropbox is grayed out, click onm2e Marketplace
and installm2e-egit
. You will have to restart Eclipse. - As
SCM URL
, type:[email protected]:oris-tool/sar.git
and clickNext
and thenFinish
.
- Select
This library is released under the GNU Affero General Public License v3.0.