Extending Behavioral Programming Towards Improved Software Engineering Practices

Published:

How to cite

T. Yaacov, Extending behavioral programming towards improvedsoftware engineering practices, M.Sc. Thesis, 2021.

Abstract

This thesis presents several extensions of the Behavioral Programming (BP) paradigm to make it more accessible and usable for applications. Our contributions are as follows:

  • BP/Python: A stable, unified implementation of BP in Python. This implementation is used as an infrastructure for the research presented here and is already being used by others in our research group and outside of it.
  • BP/DRL: An experimental protocol for a more natural and abstract system modelling. In this protocol, a combination of BP and Deep Reinforcement Learning (DRL) allows for giving abstract instructions to a system and for teaching it to follow them.
  • BP/Liveness: A method for allowing direct specification of liveness requirements in BP. By integrating Reinforcement Learning to the event selection mechanism, we show that liveness requirements can be enforced in execution without adding unnecessary external constraints.
  • BP/DES: A methodology for Discrete Event Systems (DES) modelling using BP and Petri Net. The methodology offers to model system requirements with BP prior to implementing it with petri net, to avoid premature implementation decisions.

We show how combinations of these contributions improve software development processes by supporting a natural and incremental development of software systems. We compare BP with our improvements to the baseline BP and other development techniques. Many examples given in this thesis show that software developed with the proposed methods is better aligned with the specification of systems, as the programmer perceive them, and thus is easier to develop and maintain. The quest for improving programming languages and methodologies is longstanding and is far from over. As we believe that the way ahead lies in integrating methods, our focus was on the integration of BP with other methods and tools, as apparent in the above list.

Keyword

Behavioral Programming , Deep Reinforcement Learning, Context Oriented Modelling , BPjs, DRL