RADAR - The Requirements and Architecture Decision AnalyseR

RADAR is a lightweight modelling language and automated decision analysis tool to support multi-objective decision under uncertainty in requirements engineering and software architecture.

RADAR analysis provides useful feedback to requirement engineers and software designers about:

Papers

The modelling language and decision analysis support tool are described in the following paper which has been accepted for publication at ICSE17:

RADAR: A Lightweight Tool for Requirements and Architecture Decision Analysis, accepted in ICSE17.
Authors: Saheed A. Busari and Emmanuel Letier

The scalability analysis of RADAR desision support tool is described in the paper below:

Scalability Analysis of the RADAR Decision Support Tool.
Authors: Saheed A. Busari and Emmanuel Letier

Download

The RADAR tool is available and can be downloaded here, and all model examples used in the paper can be downloaded here.

We have also made the source code of the tool available in GitHub. The tool is implemented in Java and uses ANTLR to generate model parser, generates diagrams in DOT format , and uses Graphviz (also available in browser ) to visualise the diagrams.

How to Use RADAR

RADAR is a self-contained jar file. Simply download the file to your computer and double click to launch the application (needs JRE 1.7 or later versions). Once the application is launched successfully, a window appears with three panels as shown in figure 1:

To analyse an existing model, the following steps can be followed:

  1. Enable the model board by either clicking enable model board under the Radar menu or clicking the write model under the Action menu.
  2. Open the RADAR file (we recommend starting with the first example below i.e. refactoring cost-benefit analysis) by simply clicking on the file menu and then click open to load the existing model on the model board as shown in figure 1. if successful, you will see the model displayed in the model board. At this point, users can edit the model and save changes by clicking on save under the file menu.
  3. Go to the Action menu and click parse model to check that the specified model conforms to RADAR syntaxes defined in the paper. If not, an error message is displayed. If successful, you will be prompted to either continue with analysing the model or you could decide to further review the model and later analyse the model by clicking analyse model under the Action menu. Note that before parsing the model, you will be required to specify the output directory, which stores model analysis results.
  4. If you click continue with model analysis, RADAR analyses the model as described in the paper, and the analysis results, such as the optimisation analysis, Pareto front (if checkbox is enabled) and information value analysis (if the information value objective is specified), are displayed in another window as shown in figure 2.

RADAR also saves the following in the specified output directory:

Figure 1

Figure 2

To analyse your own model, simply follow the same steps after having edited your model in the tool or using an external text editor.

For any question, email: {saheed.busari.13, e.letier}@ucl.ac.uk

Examples

We have applied the tool to the following examples.

Example Brief Description Report Radar File
Refactoring cost-benefit analysis The small example used in the paper to introduce the language and decision analysis method refactoring refactoring.rdr
Plastic card fraud detection system The running example used in the paper to illustrate the language and analysis functions. The problem consists in selecting among alternative design for a fraud detection system so as to minimise financial loss due to fraud and minimise the number of fraud alerts to be investigated manually fraud-detection fraud-detection.rdr
Document sharing security policy This example analyses security policy decisions for an organisation concerned with leaks of confidential information. The analysis extends previous models developed by Tristan Caulfield and David Pym for a real organistion. sharing-policy sharing-policy.rdr
Emergency Response System This example illustrates the use of RADAR on an architecture decision problem used in previous publications (see the report for details). The design space for this model includes 6912 solutions and takes around 2 minutes to analyse. emergency-response emergency-response.rdr
Satellite Image Processing This example was first introduce to illustrate the CBAM architecture decision method (see report for full references). We show here how to analyse this problem in RADAR and compare RADAR's approach to CBAM. nasa-ecs nasa-ecs.rdr

We have also applied RADAR on different synthetic models to understand the scalability of the tool. The synthetic models are generated using a model generator that generates random syntactically valid RADAR models with a given number of objectives, decisions, number of options per decisions and minimum number of model variables. To create a synthetic model of a specific size, download the model generator jar file and run the command below:

java -jar ./Downloads/SytheticModelGenerator.jar ./Downloads/SyntheticModel.properties

In the command above, SytheticModelGenerator.jar is the program that generates the synthetic model and SyntheticModel.properties stores values for the RADAR model constructs, such as the number of objectives, decisions, number of options per decisions and minimum number of model variables. The file SytheticModel.rdr contains a synthetic RADAR model with decision dependency and has 2 objectives, minimum of 10 model variables, 4 decisions with their corresponding options ranging between 2 and 3.

The RADAR files can be opened and analysed in the tool following the steps outlined above.

Roadmap

Radar is an early prototype that we are constantly improving. Our current development goals include: