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:

RADAR has three main tabs that displays by default when it is launched:

The Analysis Settings , shown in figure 5, is used to specify parameters for model analysis and the path where Graphviz is installed to enable visualisation of the variable AND/OR graph and decision dependency graph. Examples of these parameters includes:

  1. The number of Monte-Carlo simulation run.
  2. Information value objective to be used for computing the expected value of total and partial perfect information (evtpi and evppi)
  3. Variable sub-graph for which the AND/OR graph is generated from the specified variable.

Other tabs that are displayed after a successful RADAR analysis are AND/OR goal graph (figure 3), decision dependency graph (figure 4) and the Pareto-front (figure 6)

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

  1. Open the RADAR file (we recommend starting with the first shown in figure 1 i.e. refactoring cost-benefit analysis) by simply clicking on the file menu and then click Examples to load the existing model on the editor. 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.
  2. 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.
  3. 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 and information value analysis (if the information value objective is specified), are displayed in another tab as shown in figure 2.

RADAR also saves the following in the directory where the jar is located:

Figure 1: RADAR refactoring model example

Figure 2: RADAR refactoring model analysis result

Figure 3: RADAR refactoring model AND/OR graph.

Figure 4: RADAR refactoring model decision dependency graph

Figure 5: RADAR Analysis Settings page.

Figure 6: RADAR refactoring model Pareto front.

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
London Ambulance Example This example illustrates the design decisions of the London Ambulance Service. We show here how to analyse this problem with RADAR. There are 5 design decisions and the solution space id 648 and the anlaysis was completed in milli seconds. london ambulance service las.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: