This project contains the extension code of the master thesis Architectural Uncertainty Analysis for Access Control Scenarios in Industry 4.0. The aim is to include uncertainty into the approach developed in Detecting Violations of Access Control and Information Flow Policies in Data Flow Diagrams.
The code in this repository can be used to run confidentiality analyses of exemplary data flow diagrams including uncertainty.
The repository is based on the repositories:
The 1. repository adds support of data flow diagrams in Palladio. The 2. repository allows to run the confidentiality analyses based on the data flow diagrams. The approach is described in the publication Detecting Violations of Access Control and Information Flow Policies in Data Flow Diagrams and examples of used data flow diagrams can be found on this link.
This repository adds uncertainty to the confidentiality analyses of data flow diagrams.
- Palladio: software architecture simulation approach which analyses your software at the model level for performance bottlenecks, scalability issues, reliability threats, and allows for a subsequent optimisation
- FluidTrust: enabling trust by fluid access control to data and physical resources in Industry 4.0 systems
- Install Eclipse
- Install Java version 11.0.3 and set as default version before building the project (other Java versions may not be supported)
- Install Maven
- Palladio-Supporting-DataFlowDiagram
- Palladio-Supporting-DataFlowDiagramConfidentiality - Make sure to directly clone the uncertainty-integration branch (as linked above) from the 2. repository with
git clone -b uncertainty-integration ...
(switching to uncertainty-integration branch after cloning the master branch can cause Eclipse problems) - this repository in one folder
- Create new Eclipse Workspace
- Import all three repositories:
- Open in the menu File > Import > General > Existing Projects into Workspace
- Select your root directory
- Under Options, check Search for nested projects to correctly import the 2. repository
Open File > Import > Install > Install Software Items from File and select eclipse_software_installations.p2f from the root directory of this repository. All necessary software should be installed
-
In the Eclipse menu: select Help > Install New Software
-
Press the button Manage.. in the top right
-
Press the Import... button
-
Select the updatesites.xml from this repository in the import dialog. This imports the information for all necessary update sites/Eclipse software. hint: this does not install the update sites
-
Use the Install New Software dialog (Work with dropdown) to install the following software:
Update Site Package Name Palladio 5.0 release - Palladio Bench Addons - Palladio Core Features - Palladio Supporing Features Orbit 2020-12 - Apache Commons Lang - Hamcrest library Itemis Xtext - Xtext Antlr Prolog - Palladio Supporting Features Prolog4J - Prolog4J Data Flow Diagram - Data Flow Diagram Data Flow Diagram Confidentiality - Dataflow Diagram Confidentiality Maven Integration - Maven Integration for Eclipse MDSD Tools Standalone Init - MDSD Tools Standalone Initialization MDSD Tools EcoreWorkflow - MDSD Tools Ecore Workflow Latest Eclipse Release - Modeling -> Xtext Complete SDK
The library FuzzyLite enables uncertainty in the confidentiality analyses of the data flow diagrams. It needs to be compiled with cmake (see requirements)
- Install cmake, depending on your operating system Windows, MacOS or Linux
- Download the sources of FuzzyLite 6.0 Link, accordingly to your operating system.
- Extract the archive.
- Inside, open the INSTALL file with a text editor and follow the instructions to build the executable.
- After installation, maneuver to the ./fuzzylite-6.0/fuzzylite/release/bin/ folder.
- Copy the executables in the ./org.palladiosimulator.dataflow.uncertainty.fis.adapter/fuzzylite/ folder. Depending on the operating system:
- Windows: fuzzylite.exe and fuzzylite.dll
- Linux/MacOS: fuzzylite
The Java classes still need to be generated from the models made with the Eclipse Modeling Framework (EMF).
- In the project org.palladiosimulator.dataflow.diagram.mwe2 of repo (i.), run workflow/generate.mwe2 as MWE2 Workflow
- In the project org.palladiosimulator.dataflow.confidentiality.mwe2 of repo (ii.) uncertainty-integration branch, run workflow/generate.mwe2 and workflow/GenerateCharacterizedDataDictionary.mwe2 as MWE2 Workflow
- In the project org.palladiosimulator.dataflow.uncertainty.mwe2 of this repo (iii.), run workflow/generate.mwe2 as MWE2 Workflow
If the installation instructions were followed, all errors except the one's listed in the section Known errors should be gone.
mvn clean install
ormvn clean verify
should build successfully- Unittests in workflow.tests and fis.tests should run successfully
- Unittests of the 1. and 2. repository should run successfully
- Eclipse errors in pom.xml of org.palladiosimulator.dataflow.uncertainty.mwe2 in repo (iii.): Plugin execution not covered by lifecycle configuration and unknown packaging: eclipse-plugin
- Installation under MacOS
- TrustAccuracyAnalysisTest - 7/8 tests fail: reason is a higher number of solutions than expected
- RunningExapleACTest - testRunningExampleScenario2 fail: reason is a higher number of solutions than expected
- A test in org.palladiosimulator.dataflow.uncertainty.fis.tests fails
[1] Nicolas Boltz. "Architectural Uncertainty Analysis for Access Control Scenarios in Industry 4.0". 2021. DOI: 10.5445/IR/1000135847. [2] Stephan Seifermann et al. "Detecting Violations of Access Control and Information Flow Policies in DataFlow Diagrams". In: Journal of Systems and Software (2021). DOI: 10.5445/IR/1000139064. Accepted.