scram

Probabilistic Risk Analysis Tool (fault tree analysis, event tree analysis, etc.)

GPL-3.0 License

Stars
134
Committers
3
scram - Transition to C++17 Latest Release

Published by rakhimov almost 7 years ago

Release Notes

With this release, the codebase transitions to C++17,
requiring more modern compilers (gcc 7, clang 5) and dependencies.

Minor Changes

  • Transition to C++17 (#250)
  • Replace header guards w/ '#pragma once' (#253)
  • Replace Nose w/ Pytest (#252)
  • Replace GoogleTest w/ Catch2 (#251)

Removed Features

  • Non-MEF, API-only random deviates (use STL or Boost random directly).

Since v0.16.1

80 commits resulted in 193 files changed, 3321 insertions(+), 4040 deletions(-)

  • Core: 96 files changed, 1061 insertions(+), 1613 deletions(-)
  • Scripts: 1 file changed, 111 insertions(+), 88 deletions(-)
  • GUI: 39 files changed, 240 insertions(+), 443 deletions(-)
  • Tests: 40 files changed, 1724 insertions(+), 1727 deletions(-)
  • Documentation: 4 files changed, 41 insertions(+), 61 deletions(-)
  • Schemas: No change
scram - Automated GUI Testing

Published by rakhimov almost 7 years ago

Release Notes

This release automates GUI testing with Qt Test and CI on GNU/Linux, macOS, and Windows.

Minor Changes

  • GUI: Automated GUI Testing (#202)
  • GUI: Present interface languages in sorted order (#242)
  • GUI: Doxygen code doc generation and coverage (#243)
  • GUI: Spanish translation (thanks to @NeHoMaR)
  • GUI: Turkish translation (thanks to irfandogan)
  • GUI: Dutch translation (thanks to Omer Surer)
  • GUI: Indonesian translation
    (thanks to @anggaariska, @isaideureka, and Irham21)
  • GUI: Polish translation (thanks to @oschlypajac)
  • GUI: Italian translation (thanks to @aitorres)

Removed Features

  • install.py helper script (use CMake or its front-ends directly)
  • GUI: Crash handler (requires an external process; instead, rely on the OS default)

Bug Fixes

  • GUI: SIGSEGV on model modification with open report tree (#236)
  • GUI: Zoom box is too reactive (#240)
  • GUI: GateTable: Remove element is active w/o selected element (#241)

Since v0.16.0

140 commits resulted in 290 files changed, 117096 insertions(+), 5798 deletions(-)

  • Core: 95 files changed, 531 insertions(+), 582 deletions(-)
  • Scripts: 5 files changed, 236 insertions(+), 139 deletions(-)
  • GUI: 78 files changed, 6694 insertions(+), 3746 deletions(-)
  • Tests: 42 files changed, 421 insertions(+), 659 deletions(-)
  • Documentation: 5 files changed, 58 insertions(+), 20 deletions(-)
  • Schemas: No change
scram - Substitutions

Published by rakhimov almost 7 years ago

Release Notes

This release introduces support for
declarative and non-declarative Substitutions.

Major Changes

  • Substitutions (#154)

    • Delete Terms
    • Recovery Rules
    • Exchange Events
  • Extern function (#74)

    • External dynamic libraries

Minor Changes

  • Replace libxml++ with libxml2 (#218)

    • 2-2.5x speed improvement for initialization from MEF XML input
    • Removed dependencies: libxml++, glib, glibmm, sigc++
  • Redesign Exception classes w/ boost::exception (#219)

  • Option to omit indentation whitespace in output XML (#220)
    (up to 25% smaller file size and 10% speed improvement)

  • XML stream optimizations for reporting

    • stdio instead of iostream (40% speed improvement)
    • Custom indentation implementation (5% speed improvement)
    • Integer serialization optimization (4-5% speed improvement)
  • GUI: Translation and localization setup with Crowdin

  • GUI: Application Preferences (#210)

  • GUI: Fail-safe file save (#228)

  • GUI: Enable find/filter/search in Importance and Product tables

Bug Fixes

  • GUI: EventDialog name validator allows only ASCII chars (#221)

Since v0.15.0

201 commits resulted in 215 files changed, 36429 insertions(+), 2372 deletions(-)

  • Core: 61 files changed, 3262 insertions(+), 1364 deletions(-)
  • Scripts: No change
  • GUI: 61 files changed, 31086 insertions(+), 471 deletions(-)
  • Tests: 64 files changed, 1566 insertions(+), 198 deletions(-)
  • Documentation: 13 files changed, 202 insertions(+), 76 deletions(-)
  • Schemas: 2 files changed, 103 insertions(+), 26 deletions(-)
scram - Alignment

Published by rakhimov about 7 years ago

Release Notes

The release adds support for alignment
(i.e., analysis of a model over mission phases).

Major Changes

  • Alignment, Mission, Phases (#153)

Minor Changes

  • GUI: Elision of long IDs and labels in diagram (#213)

Bug Fixes

  • GUI: QSortFilterProxyModel breaks Gate tree-table model (#214)
  • GUI: Diagram unit dimensions are coupled with character dimensions (#215)
  • GUI: SIGSEGV on exit (Windows, Wine) (#217)

Since v0.14.0

21 commits resulted in 68 files changed, 1516 insertions(+), 748 deletions(-)

  • Core: 19 files changed, 620 insertions(+), 234 deletions(-)
  • Scripts: 2 files changed, 97 insertions(+), 97 deletions(-)
  • GUI: 9 files changed, 308 insertions(+), 305 deletions(-)
  • Tests: 28 files changed, 300 insertions(+), 93 deletions(-)
  • Documentation: 3 files changed, 38 insertions(+)
  • Schemas: 2 files changed, 44 insertions(+)
scram - Initial GUI

Published by rakhimov about 7 years ago

Release Notes

This is the first GUI release
with features for simple fault tree analysis.

Major Changes

  • GUI: Fault Tree Visualization (#132)
  • GUI: Fault Tree Construction (#133)
  • GUI: Analysis Configuration (#134)
  • GUI: Fault Tree Analysis (#135)
  • GUI: Probability and Importance analysis (#136)

Minor Changes

  • GUI: Print the Diagram/Graph (#200)
  • GUI: Print Preview (#205)
  • GUI: Export the Diagram/Graph to SVG (#201)
  • GUI: Transfer In/Out symbols (#191)
  • GUI: Start Page (#196)
  • GUI: Undo/Redo mechanism (#194)

Bug Fixes

  • GUI: Icon/Logo quality and scaling issues (#203)
  • Importance factors are not generated for low product order limit (#206)
  • LogicError: MEF Element w/ private role at model scope (#208)

Since v0.13.0

222 commits resulted in 108 files changed, 12550 insertions(+), 1072 deletions(-)

  • Core: 27 files changed, 985 insertions(+), 377 deletions(-)
  • Scripts: No change
  • GUI: 54 files changed, 11169 insertions(+), 450 deletions(-)
  • Tests: 11 files changed, 232 insertions(+), 48 deletions(-)
  • Documentation: 8 files changed, 72 insertions(+), 22 deletions(-)
  • Schemas: 1 file changed, 3 insertions(+), 139 deletions(-)
scram - Event Tree Analysis

Published by rakhimov over 7 years ago

Release Notes

This release introduces limited and experimental support for event tree analysis.
Only necessary and sufficient functionalities are implemented
to allow the most common and basic analysis.
Moreover, the release doesn't implement any optimization specific to event-tree analysis.

Major Changes

  • Event Tree Analysis (#150)
  • Event-Tree-Fault-Tree Linking (#152)
  • Event-Tree Chaining (#151)
  • MEF 'set-house-event' Instruction (#179)
  • MEF Test-Event Expressions (#68)
  • MEF Numerical Operations (#72)
  • MEF Boolean Operations (#73)
  • MEF Conditional Operations (#67)

Minor Changes

  • Fedora RPM Package

  • Report product-order distribution (#168)

  • XInclude support

  • The Open-PSA MEF compliance:

    • House event state expressions are optional and can be implicitly defined to False.
    • CCF level numbers are optional.
    • CCF factors can be declared in any order.
    • Multiple 'model-data' containers are allowed within a single 'opsa-mef' element.
    • Gate formulas can have literal constant args (true, false) instead of house-events.
  • Interval-based expression sample domain validation (instead of min-max)

  • Print line numbers in XML schema validation error messages

  • Report warning messages with XML attributes in the results-layer instead of XML elements.

Bug Fixes

  • Fail to assign a label to a pass-through gate (#166)
  • Zero/One probability events (division by zero total probability) (#169)
  • Segfault with single-event fault tree importance analysis with BDD (#170)
  • Config: Input/output file path format is system dependent (#171)
  • Config: Relative paths are not resolved wrt the config file path (#172)

Since v0.12.0

208 commits resulted in 210 files changed, 9805 insertions(+), 3971 deletions(-)

  • Core: 65 files changed, 4552 insertions(+), 2712 deletions(-)
  • Scripts: 1 file changed, 18 insertions(+), 14 deletions(-)
  • GUI: 2 files changed, 23 insertions(+), 94 deletions(-)
  • Tests: 97 files changed, 2997 insertions(+), 557 deletions(-)
  • Documentation: 23 files changed, 363 insertions(+), 352 deletions(-)
  • Schemas: 4 files changed, 1119 insertions(+), 133 deletions(-)
scram - Safety Integrity Levels

Published by rakhimov over 7 years ago

Release Notes

This release introduces
initial implementation and support for probability calculations over time
to approximate IEC 61508 Safety Integrity Levels
and its Probability of Failure on demand and hourly metrics.

Major Changes

  • Safety Integrity Levels (#160)
  • Probability evaluation over a time period (#161)
  • Report event probability and occurrence with importance factors (#162)
  • The MEF Expression::Lognormal Deviate with 2 (mu, sigma) parameters (#163)
  • The MEF Expression::Built-in::Periodic-Test w/ 4, 5, and 11 arguments (#69)

Minor Changes

  • Remove the constraint on the maximum product size
  • Remove '--input-files' flag and make it implicit as a default positional parameter
  • Rename the configuration file main element "config" to "scram"
  • Random Deviate Expressions always use the mean value of their parameters
  • Expression validation errors show XML file names and line numbers

Since v0.11.6

62 commits resulted in 78 files changed, 2544 insertions(+), 1446 deletions(-)

  • Core : 35 files changed, 1522 insertions(+), 776 deletions(-)
  • Scripts : 1 file changed, 3 insertions(+), 3 deletions(-)
  • GUI : 1 file changed, 1 insertion(+), 6 deletions(-)
  • Tests : 17 files changed, 586 insertions(+), 255 deletions(-)
  • Documentation : 15 files changed, 116 insertions(+), 76 deletions(-)
scram - ZBDD as a Product Container

Published by rakhimov over 7 years ago

Release Notes

Analysis and post-analysis facilities work directly with a ZBDD-based product container
without paying memory or speed overhead of converting ZBDD into other data structures.

Major Changes

  • ZBDD as a fault tree analysis result (product/cut-set) container (#159)
    • Qualitative analysis speedup from 10% to 5x (the more the products, the bigger the effect)
    • Memory consumption decreases by 1.5 - 4x (noticeable only for million or more products)
    • Iteration over products is ~2x slower (graph walk vs. sequential array of products)
    • Quantitative analysis with approximations (rare-event, MCUB) is 2 - 10x slower
      (the fewer the products, the worse the effect)

Minor Changes

  • Package for Windows (#157)
  • Package for macOS (#158)
  • HTTPS support for the website

Bug Fixes

  • Incorrect formula for Histogram distribution expected value (#149)
  • Histogram distribution XML schema missing lower-boundary expression (#148)

Since v0.11.5

83 commits resulted in 109 files changed, 5258 insertions(+), 5303 deletions(-)

  • Core : 52 files changed, 3869 insertions(+), 4030 deletions(-)
  • Scripts : No Changes
  • GUI : No Changes
  • Tests : 23 files changed, 479 insertions(+), 490 deletions(-)
  • Documentation : 20 files changed, 229 insertions(+), 183 deletions(-)
scram - Debian Science Package

Published by rakhimov almost 8 years ago

Release Notes

This release includes patches from the initial Debian packaging
at SCRAM's Alioth repository.
In addition, some changes have been inspired by
the Open-PSA community workshop and its new presence at GitHub.

Minor Changes

  • Optional link against JEMalloc
  • Debian Science package
  • Parallelized fuzz testing
  • Move the Open-PSA schemas to https://github.com/open-psa/schemas
  • Move the shorthand_to_xml.py translator to https://github.com/open-psa/translators
  • Rename the shorthand format to the Aralia format
  • Improved build-times after dependency analysis and refactoring with
    cppdep
  • Python API documentation generation with Sphinx

Bug Fixes

  • CCF Alpha factor wrong formula (#146)
  • Misinterpretation of Log-Normal Deviate Error Factor and Level parameters (#147)

Since v0.11.4

55 commits resulted in 123 files changed, 3114 insertions(+), 5925 deletions(-)

  • Core : 47 files changed, 1969 insertions(+), 1640 deletions(-)
  • Scripts : 9 files changed, 284 insertions(+), 1203 deletions(-)
  • GUI : 4 files changed, 112 insertions(+), 63 deletions(-)
  • Tests : 15 files changed, 177 insertions(+), 195 deletions(-)
  • Documentation : 25 files changed, 344 insertions(+), 279 deletions(-)
scram - Transition to C++14

Published by rakhimov about 8 years ago

Release Notes

With this release, the codebase transitions to C++14,
requiring more modern compilers and tools.
The target development platform is upgraded from Ubuntu 14.04 to Ubuntu 16.04.
Boost and LibXML++ dependency versions are upgraded to reflect the new target platform.
The codebase is refactored, taking advantage of C++14 and upgraded libraries.

Minor Changes

  • Transition to C++14 (#142)
  • GUI development setup with Qt5 and CMake (#48)
  • Compilation with Intel C++ compiler
  • Coding style update with the updated GCSG

Bug Fixes

  • mef::Initializer is not exception safe (#144)
  • Memory leaks with invalid cyclic MEF constructs (#145)

Since v0.11.3

120 commits resulted in 130 files changed, 3596 insertions(+), 3046 deletions(-)

  • Core : 56 files changed, 2369 insertions(+), 2172 deletions(-)
  • Scripts : No Changes
  • GUI : 15 files changed, 484 insertions(+), 55 deletions(-)
  • Tests : 29 files changed, 288 insertions(+), 476 deletions(-)
  • Documentation : 12 files changed, 138 insertions(+), 63 deletions(-)
scram - Performance Stabilization

Published by rakhimov over 8 years ago

Release Notes

This release somewhat stabilizes the performance profile of analysis across platforms.
The stabilization results in up to 20% analysis performance regression;
however, this regression is compensated
by slightly improved BDD/ZBDD variable ordering heuristics,
which increases performance by around 20%.

Major Changes

  • CacheTable for BDD (10% memory and 20% speed improvement)
  • Space-optimized container (2-3x memory efficient) for final analysis products
    (However, the maximum product order is limited to 32.)
  • Generic XML data streaming (25% reporting speed improvement)
  • XML streaming optimization for static string literals
    (10-15% reporting speed improvement)
  • Simplified role-based (private and public) element lookup in models
    (at least 30% speed improvement for model element initialization)
  • Continuous integration on Windows (#130)
  • Continuous integration on Mac OS X (#129)

Minor Changes

  • Numerical operation expressions: neg, add, sub, mul, div, pi.

Removed Features

  • Fault tree graphical representation with Graphviz

Bug Fixes

  • Regression in detection of duplicate input files (#131)
  • Regression in handling an undefined event with mixed roles and types in Model input (#141)
    (The bug was introduced in version 0.11.1)

Since v0.11.2

139 commits resulted in 179 files changed, 6334 insertions(+), 4752 deletions(-)

  • Core : 62 files changed, 3670 insertions(+), 3401 deletions(-)
  • Scripts : 3 files changed, 29 insertions(+), 18 deletions(-)
  • GUI : 5 files changed, 70 insertions(+), 44 deletions(-)
  • Tests : 40 files changed, 864 insertions(+), 378 deletions(-)
  • Documentation : 36 files changed, 1113 insertions(+), 280 deletions(-)
scram - Case-Sensitive Model Initialization

Published by rakhimov over 8 years ago

Release Notes

This micro release makes model initialization and validation facilities language-agnostic.
The initialization facilities preserve the original representation of names and references
without normalization except for trimming leading and trailing whitespace characters,
which simplifies internationalization.

The release clarifies the support for the UTF-8, UTF-16, and other encodings in input files,
and specifies the encoding for report files (UTF-8).

Removed Features

  • Case-insensitive model initialization and validation

Bug Fixes

  • 10 - 100x performance regression in model initialization from input
    (noticeable only for large models with 1000 or more events).

Since v0.11.1

6 commits resulted in 31 files changed, 284 insertions(+), 282 deletions(-)

  • Core : 13 files changed, 90 insertions(+), 118 deletions(-)
  • Scripts : no change
  • GUI : no change
  • Tests : 12 files changed, 168 insertions(+), 156 deletions(-)
  • Documentation : 6 files changed, 26 insertions(+), 8 deletions(-)
scram - BDD and ZBDD Optimizations

Published by rakhimov over 8 years ago

Release Notes

This release implements apparent, natural BDD-ZBDD optimizations
that lead to simplicity or don't introduce much complexity.

Major Changes

  • Stricter application of the set order cut-off for ZBDD
    • Increased ZBDD/MOCUS performance sensitivity to the cut-off
    • Cut-off awareness of ZBDD cut-set extraction
      (~2x improvement of the extraction speed)
  • Intrusive reference counting for BDD and ZBDD vertices.
    (around 20% speed and memory improvements)
  • Intrusive hash table for BDD and ZBDD unique tables.
    (10-30% speed and memory improvements)
  • BDD and ZBDD node management without garbage collectors.
    (10-30% speed improvement)

Minor Changes

  • Faster and more efficient reporting of analysis results with XML streams.
    (200,000 cut sets per second with minimal memory overhead)
  • Cross-validation of qualitative analysis algorithms with the Fuzz tester.

Removed Features

  • Experimental support for
    nested Boolean formulae and nested parentheses in the shorthand format.

Bug Fixes

  • Missing check for negative literal approximations
    in application of minimal cut set order cut-offs (ZBDD/MOCUS). (#128)
  • Incorrect check for cloning constraints
    in common argument decomposition processing.
    The decomposition code fails to correctly determine
    if the no-clone operation has a side effect outside of the sub-graph. (#128)
  • Undefined behavior (int overflow)
    in probability calculations of CCF MGL and Alpha Models
    with many members (> 12)
    and high factor levels (>= (# members / 2)).
  • Missing proper error messages
    for int overflow or other numerical problems
    in XML input files.
  • InvalidArgument error is reported as unexpected
    when it communicates expected errors
    in user configurations and settings.
  • Memory leak in validating input files with RelaxNG schema.
  • The population standard deviation from Boost accumulators
    isn't adjusted to the sample standard deviation.

Since v0.11.0

163 commits resulted in 167 files changed, 7034 insertions(+), 39890 deletions(-)

  • Core : 61 files changed, 3963 insertions(+), 3230 deletions(-)
  • Scripts : 8 files changed, 1894 insertions(+), 2074 deletions(-)
  • GUI : no change
  • Tests : 68 files changed, 496 insertions(+), 33698 deletions(-)
  • Documentation : 15 files changed, 360 insertions(+), 714 deletions(-)
scram - Qualitative Analysis with BDD and ZBDD

Published by rakhimov over 8 years ago

Release Notes

This release implements qualitative analysis with BDD and ZBDD facilities.

Major Changes

  • Fault tree analysis with BDD (#121)
  • Fault tree analysis with ZBDD (#126)
  • ZBDD for MOCUS (#124)
    • 10-100x speed improvement
    • 3-30x better memory utilization
    • Decreased performance sensitivity on approximations
  • Calculation of Prime Implicants (#122)

Minor Changes

  • The BDD-based algorithm is the default analysis algorithm.
  • The MOCUS and ZBDD algorithms run with the rare-event approximation by default.
  • Modules are analyzed only as needed (lazy) with adjusted cut-offs.
  • scram --validate is silent on success.
  • New web address: http://scram-pra.org

Bug Fixes

  • Improper cut set minimization in MOCUS
    when modules in a cut set are Unity sets.

Since v0.10.0

169 commits resulted in 138 files changed, 7762 insertions(+), 4524 deletions(-)

  • Core : 51 files changed, 2993 insertions(+), 2227 deletions(-)
  • Scripts : 6 files changed, 371 insertions(+), 144 deletions(-)
  • GUI : no change
  • Tests : 36 files changed, 882 insertions(+), 831 deletions(-)
  • Documentation : 20 files changed, 908 insertions(+), 571 deletions(-)
scram - Quantitative Analysis with BDD

Published by rakhimov about 9 years ago

Release Notes

This release introduces Binary Decision Diagrams (BDD)
and incorporates BDD-based algorithms into analysis.
For quantitative analysis,
the observed performance improvement exceeds 100x.

Major Changes

  • Probability analysis with BDD (#118)
  • Importance analysis with BDD (#119)
  • Uncertainty analysis with BDD (#120)
  • Fault tree preprocessing for BDD (#125)
  • Coherent fault tree analysis with BDD/ZBDD

Minor Changes

  • Non-coherent fault tree analysis with BDD/ZBDD (experimental)
  • Boolean optimization for non-coherent fault trees (experimental)
  • Adjustment of invalid calculation results
    in quantitative analyses
    due to approximations (the rare-event, MCUB)
    or invalid ranges (random distributions)
    (adjustment of probability to 1 if it exceeds 1)
  • Fuzz tester for SCRAM
  • Documentation style guide

Removed Features

  • The Sylvester-Poincaré expansion for probability calculations
    ('--num-sums' flag and setting are removed.)

Bug Fixes

  • Incorrect formulas for importance factors (#127)
  • Proper calculation of minimal cut sets with positive literals only (#123)
  • Failure to calculate constant outcome (#92)
  • Fault tree generator prevents K/N root gate
  • Boolean optimization fails to properly clone modules
  • Decomposition of common nodes is not semantics preserving
  • Distributivity preprocessing steps don't register new NULL type gates
  • Preprocessor doesn't handle one-arg K/N gates in transformations
  • Preprocessor doesn't handle (K > N) cases for K/N gates in transformations
  • Preprocessor attempts to coalesce empty (constant) gates
  • Filtering step in common argument merging fails to keep arguments unique

Since v0.9.2

  • 217 commits resulted in
    128 files changed, 9185 insertions(+), 6512 deletions(-)
scram - Preprocessing and MOCUS Optimizations

Published by rakhimov about 9 years ago

Release Notes

This micro release polishes the fault tree preprocessing techniques
and optimizes minimal cut set generation.

Major Changes

  • Performance optimization with hash tables and flat sets for MOCUS
    (2x - 20x speed improvement and 5x - 10x better memory utilization)
  • Merging common arguments of gates for non-coherent fault trees
  • Heuristics for substitution of common arguments by existing gates
    (Merging common arguments runs 3x-4x faster
    but results in ~10% performance hit for cut set generation in some cases)
  • Heuristics for reduction of the number of parents of common arguments
    (Modularity is favored in merging common arguments)
  • Multiple gate definition detection with hash tables
    (Linear complexity and 10x-100x speed improvement for the detection)
  • Better strategy for handling distributive setups
    (10% - 20% cut-set-generation improvement for some cases)
  • The Shannon decomposition of common nodes with less gate cloning
    (Makes possible to preprocess graphs with 1000s of nodes without blowup)

Bug Fixes

  • Mishandling of duplicate arguments in K/N gate preprocessing
  • Handling of distributive setups introduces
    unmanageable subgraphs for other preprocessing and analysis steps.
    (Graph visit marks are messed up)
  • Incorrect assumption in common argument merging
    that if set A of common arguments is a subset of set B,
    group A of gates is a superset of group B.
  • Failing to properly unset module flags of gates
    in propagation of complements.
    The problem manifests itself upon creation of clones.

Since v0.9.1

  • 71 commits resulted in
    46 files changed, 2673 insertions(+), 1893 deletions(-)
scram - v0.9.1: Transition to C++11

Published by rakhimov about 9 years ago

Release Notes

The release removes the restriction to use C++11 features.
The build scripts and system requirements are updated to support C++11.
Some features of C++11 have been applied
to refactor the code and fix bugs.

Major Changes

  • Transition to C++11 (issue #116)
  • Calculation of both histograms and quantiles for uncertainty analysis (issue #104)
    • Add "--num-bins" and "--num-quantiles" arguments
  • Options to use the rare-event and MCUB approximations in uncertainty analysis
  • Calculation of the error factor in uncertainty analysis
  • Log-normal deviate expression with any level of confidence

Bug Fixes

  • Incorrect sampling for Histogram expressions.
    Weights and boundaries are swapped upon passing to the generator.
  • Incorrect reporting of quantiles. (issue #104)
  • Incorrect adjustment of the number of sums in probability series
    for the case with very few cut sets.
  • Mishandling of 95% confidence level for the log-normal deviate expression
    as 90% confidence level.

Since v0.9.0

  • 54 commits resulted in
    114 files changed, 2695 insertions(+), 2602 deletions(-)
scram - v0.9.0: Fault Tree Preprocessing Techniques

Published by rakhimov about 9 years ago

Release Notes

This release adds more fault tree preprocessing techniques
that simplify a fault tree before the analysis.
Depending on the structure of the fault trees,
the observed gain in the analysis speed ranges from none to 50x.

Major Changes

  • Boolean optimization
    • Failure propagation
    • Redundancy detection
  • Merging common arguments for gates
  • Multiple definition detection for gates
  • The Shannon decomposition for common nodes
  • Distributivity detection
  • Grouping non-module nodes into modules
  • Recursive normalization of K-out-of-N gates

Other Additions

  • Optional link against TCMalloc (20-30% speed gain)
  • Capability to print the fault tree in preprocessing (the shorthand format)
  • NULL gates in the shorthand format
  • "--gates" argument for the fault tree generator script
  • Semantic Linefeeds for documentation source texts

Bug Fixes

  • Crash on a NULL or NOT gate top event with a single non-gate child.
  • Incorrect warning when no MCS is found, which indicates NULL
    (guaranteed success or prob(top) = 0).

Since v0.8.0

  • 189 commits resulted in
    156 files changed, 10478 insertions(+), 4998 deletions(-)
scram - v0.8.0: Complex-Fault-Tree Generator

Published by rakhimov over 9 years ago

Release Notes

This release upgrades the fault tree generator and introduces support for the shorthand notation. The release adds more support for OpenPSA MEF features. The project licenses are upgraded, and the project name uses a recursive acronym ("SCRAM is a Command-line Risk Analysis Multi-tool.").

Major Changes

  • Complex-fault-tree generator
    • More gate types: K/N, NOT, XOR.
    • House events
    • CCF groups
    • Common gates with no cycles in the resulting fault tree
    • More factors to control the complexity of the final fault tree
    • Reproducibility (Deterministic execution)
    • Better performance (100,000-basic-event/50,000-gate tree in less than 1min)
    • Better error reporting for wrong parameters
    • XML and the shorthand format for the output
    • Nested Boolean formula for the output
    • Topological sort of the output
  • Shorthand format to XML converter
    • Logical operators: AND, OR, K/N, XOR, NOT
    • Fault tree validation: cycles, repeated children, redefined nodes.
    • Basic and House events
    • Flexible with undefined nodes
    • Multiple top events
    • Topological sort of the output
    • Nested Boolean formula, Boolean equations (Experimental support)
    • Parentheses (Experimental support)
  • OpenPSA MEF features
    • Multiple top events per fault tree container
    • Nested Boolean formula for gates
    • Components in fault trees
    • Public and Private roles
    • Optional expression for basic events
    • Optional expression for house events
  • Updated and corrected OpenPSA MEF DTD

Bug Fixes

  • Cycle detection in parameters that takes into account expressions
  • Corrected graphing instructions for multiple-fault-tree models.

Relicensing

  • The project under the GPLv3
  • The website materials under the CC BY-SA 4.0
  • Individual Contributor License Agreement (Harmony ICLA 1.0-beta and Apache ICLA 2.0)
  • The OIN License Agreement

Since v0.7.0

  • 226 commits resulted in 292 files changed, 16622 insertions(+), 21351 deletions(-)
scram - v0.7.0: XML Report and Configuration Files

Published by rakhimov over 9 years ago

Release Notes

This release introduces analysis configuration and report in XML format.

Major Changes

  • XML Report Layer
    • OpenPSA MEF recommended schema
    • Special format for CCF events
  • XML Configuration File
    • Incorporation of all available options
    • More options for a finer control over analysis
    • Higher priority for command-line options
  • Bash completion script
  • Removal of the implicit detection of required analyses
    • Fault tree analysis is the default.
    • Other analysis types must be requested explicitly: probability, importance, uncertainty, ccf.
  • Removal of the post-processing(grouping, sorting) of analysis results
    • Delegation of post-processing to other tools like BaseX

Since v0.6.0

  • 64 commits resulted in 103 files changed, 4643 insertions(+), 4651 deletions(-)