Menu

Retrospect on Learning Goals

In the introduction of this tutorial, the following learning goals were mentioned:

  • Understand when to use ‘external’ and what problems it solves

  • Understand the impact of using the ‘external’ keyword in your Dezyne models

  • Identify where to implement additional logic in your models to support the usage of ‘external’

  • Use the Dezyne verification & simulation tools to correctly implement a solution using the ‘external’ keyword

In this chapter, you will find a quick summary on each of the learning goals and where they were discussed in the tutorial.

Understand when to use ‘external’ and what problems it solves

Mark as ‘external’ any requires interface containing out-events that is delegated to the boundary of a system. This was discussed at length in What does ‘external’ do and when should you use it? after an analysis of the Alarm System implementation we made in earlier tutorials showed that illegal behaviour could occur.

Understand the impact of using the ‘external’ keyword in your Dezyne models

Coincidentally, this was discussed before the answer to the previous learning goal was given. An analysis of why Dezyne did not warn you about this illegal behaviour in Why does verification not catch this? can also be used to explain the impact of using ‘external’: an extra set of behaviours is considered during verification so that possible delays due to external communications are included.

Identify where to implement additional logic in your models to support the usage of ‘external’

In Chapter 2: How to use ‘external’?, two important considerations were given as to how you should implement ‘external’ in your models. Firstly, in Responsibilities and using ‘external’ components it is recommended to create a new component that maps an external requires port to a provided port of the same type. This is so that you don’t pollute other components with logic only concerning ‘external’ behaviour. Then, in ‘The’ solution: handshake protocola handshake was added to the interface so that the state of the two ports can be synchronized.

Use the Dezyne verification & simulation tools to correctly implement a solution using the ‘external’ keyword

Information regarding this learning goal was present all throughout the tutorial. However, by implementing the solution in a Dezyne component as opposed to doing it in native code, you ensure that you are making full use of the Dezyne toolkit and benefit from its verification and simulation capabilities.

Enjoy this article? Don't forget to share.