SAMM Obfuscator
===============

The SAMM Obfuscator can be used to perform an obfuscation for a SAMM model.
It replaces all name attributes by randomly generated numbers, thus making it 
hard to understand a SAMM model that contains sensitive data (such as 
component names or interface names).
 
A SAMM model consists of several SAMM model files. Usually, SAMM models are 
used within the Q-ImPrESS IDE which stores such models in a Q-ImPrESS 
alternative. The SAMM Obfuscator currently does not know about Q-ImPrESS
alternatives, but operates directly on the model files.


Installation
============

The SAMM Obfuscator tool works only in a Q-ImPrESS IDE workspace. Hence, 
the Eclipse installation has to contain the Q-ImPrESS features. To use 
the SAMM Obfuscator, open the Q-ImPrESS IDE and import the SammObfuscator
project into the workspace.

To check if everything is installed properly, open the file  
"SAMMObfuscator.qvto" in the "transforms" folder of the plugin. Use the 
Operational QVT Editor to open the file. If the opened file does not contain 
any compilation errors, the installation is fine.


Usage
=====

To use the obfuscation tool, you have to select a set of SAMM model files.
Note that the selected files are overwritten. Make a copy of the files if you 
want to keep the original files.

If you use the Q-ImPrESS IDE to create the files, it might be better to switch 
to the Java perspective to locate the model files in the alternative folder 
and copy them to a different place.

To perform an obfuscation run, click "Run"-->"Run Configurations..."
On the run configuration screen, create a new launch configuration in the 
"QVT Operation Interpreter" category.

For the new launch configuration, first specify the transformation module.
This is the transformation script used for obfuscation. Click "Browse" and 
select the file "SAMMObfuscator.qvto" in the "transforms" folder of the 
plugin with the workspace browse dialog.

Once the transformation module is selected, the dialog displays 6 additional 
parameter fields. These fields have to be filled with the SAMM model files for 
which obfuscation is to be applied.
Use the "Browse..." button for each field to select the following 6 files:
samm_repository
samm_servicearchitecturemodel
samm_qosannotation
samm_seff
samm_hardware
samm_targetenvironment

Once everything is specified, the launch configuration can be run. Open the 
selected files after the run to check if all names have been replaced with 
random numbers.


Example
=======

The project comes with some example SAMM files that can be used for trying out 
the obfuscation. A predefined launch configuration for the example launch 
configuration is also present in the project. Look out for the 
"SammObfuscator Example.launch" file. 
 