oris-tool/sirio

Implement a fluent API to configure analysis engines

Closed this issue · 1 comments

At the moment, instances of analysis engines such as TransientAnalysis or RegenerativeAnalysis must be created using overloaded methods taking several parameters with compatible types.

This is error-prone. We should implement a fluent API based on the Builder pattern (as in Effective Java); a possible solution could use the AutoValue library by Google.

Overall, the API should allow the configuration of the following analysis engines:

  • TransientAnalysis (for MRPs with bounded regenerations)
  • RegenerativeTransientAnalysis (for MRPs with bounded regenerations)
  • RegenerativeSteadyStateAnalysis (for MRPs with bounded regenerations)
  • EnablingRestrictionTransientAnalysis (for MRPs with at most one GEN)
  • CTMCTransientSolution (for CTMCs)
  • StateClassAnalysis (for TPNs)

Closed by 33231ca