2R Software is a standalone application that provides a variety of tools needed to carry out different types of reliability and risk analysis. This piece of software is comprised by various modules that work in conjuction to perform processor-intensive tasks while focusing on resource efficiency and user-friendliness as their main priorities. New modules will be released once they are fully operational.


The following modules are integrated into the 2R Software suite:

  • 2R Sim: capable of running stochastic simulations of arbitrary explicit equations involving variables with known or unknown distributions. The final result gives the user an idea of how the equation being analyzed behaves by means of goodness-of-fit indicators, box-whisker plots, and other statistically relevant information.
  • 2R Data: analyzes data series to draw conclusions on the appropriate way to model their future values as random variables with known distributions and shows the associated confidence intervals for the parameters of such distributions. Dependence between different data series can also be studied with this module, resulting in values for correlation coefficients, covariance, and other useful indicators.
  • 2R Net: analyzes a network in order to find the general characteristics of its nodes (e.g. betweenness, closeness, degree), as well as more advanced network-wide features (e.g. clusters, cut sets, failure probabilities, maximum flows).
  • 2R Rel: runs different types of simulation-based reliability analysis over arbitrary limit state equations involving variables with known distributions. The final result gives the user statistically relevant information, including the failure probability (pf).
  • 2R LCA: runs different types of simulation-based life cycle analysis over specific systems, reporting the Net Present Values of costs and benefits, along with mean times to failure and mean times to maintenance.

What sets us apart

Most of the algorithms that are required for a thorough risk and reliability analysis, such as the basic Monte Carlo simulation or the more advanced Orthogonal Latin Hypercube simulation, can be easily found in the internet. Nonetheless, it's highly probable that their authors won't be well-trained programmers, with Civil Engineering or Industrial Engineering degrees instead of more computer-oriented degrees. Therefore, the typical algorithms brought up by search engines will be written in programming languages that need to be interpreted by an intermediary application, such as Mathematica or MathCAD. This has some serious disadvantages:

  • You need an expensive license for the script-interpreting piece of software (Matlab, etc).
  • The script can't be optimized to use computer resources in a specific way and relies on the resource management carried out by the intermediary application, which is generic at best.
  • Scripts usually don't have graphical user interfaces, so their use requires command-line interactions that are hard to understand for normal users.
  • Even if you do own the interpreting application and know how to use its commands, you can't run the scripts on different computers with ease.

The 2R Software modules can be run on any operating system (Windows, MacOSx, Linux, etc) without the need to download different versions of the installer. More importantly, it doesn't require any other software package to be used. Last but not least, the programmer in charge of its development is a well-trained programmer that knows how to get the most out of the available processing power and minimizes memory consumption, leading to much faster calculations without hindering the precision of the final results.

Implementation Details

The programming language being used to implement the different modules of the 2R Software suite is JAVA. More specifically, it's J2SE (Standard Edition) compatible with version 1.6 of the JRE (Java Runtime Environment). This decision was made because of the following advantages that are offered by the mentioned high-level language:

  1. Platform independent (runs on any operating system supported by the JVM [Java Virtual Machine]) without any changes in the source code.
  2. It allows the creation of feature-rich graphical interface components.
  3. Being a high-level language, less lines of code are needed to achieve the same results than with other popular programming languages.
  4. The fact that it is Object-Oriented helps structure a large project in a way that favours extendability and maintainability.
  5. The JDK (JAVA Development Kit) provides powerful libraries that make it unnecessary to write common methods (or functions) from scratch.

There are many other advantages that can be mentioned, but the ones described above give a basic idea of the type of key benefits that can be gained from working with JAVA when you're aiming for compatibility, user-friendliness, and a good implementation speed.

Other interesting facts about the 2R Software implementation are:

  1. Eclipse has been chosen as the base IDE (Integrated Development Environment).
  2. The simulations have been optimized with a thread pool mechanism that was written from scratch.
  3. The graphical interface uses Swing components and has been written by hand, without any help from visual tools such as VisualEditor.
  4. All calculations are done with BigDecimal objects to guarantee the highest possible level of precision.
start.txt · Last modified: 2011/02/15 08:50 by diego · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki