Skip to content
Snippets Groups Projects

Learning the alarm component in the Dezyne Alarm example project.

Current repository contains a java 8 eclipse project to learn the Dezyne alarm component using a learning purpose with the LearnLib tool.

In ./report/report.pdf is a report describes a set of learning experiments done on the Dezyne Alarm example project.

The correct Dezyne alarm example model project is in DezyneAlarmExampleProject/.

The java 8 source generated from this model is in src/sul/alarmsystem/ together with the Dezyne runtime for java 8 generated models in header.java.

I wrote a SUL wrapper in src/sul/alarmsystem/AlarmSUL.java around the Alarm component in src/sul/alarmsystem/Alarm.java. The AlarmSul class uses a learning purpose implemented in the files in the same folder: ISensorLearningPurpose.java ISirenLearningPurpose.java LearningPurpose.java

The main class the project is src/learner/Main.java. In this main class you can setup which SUL you want to learn with which learner and testing method. It is currently setup to learn the "AlarmSUL" SUL using the TTT learning algorithm using random testing.

The AlarmSUL can be configured in different modes by giving different constructor parameters to it in src/learner/Main.java :

  • learning SUL model without learning purpose

    USE_LEARNING_PURPOSE = false; CONSOLE_OUTPUTS_ONLY = false;

  • learning SUL model with learning purpose

    USE_LEARNING_PURPOSE = true; CONSOLE_OUTPUTS_ONLY = false;

  • learning SUL INTERFACE with learning purpose

    USE_LEARNING_PURPOSE = true; CONSOLE_OUTPUTS_ONLY = true;