|Ph.D Student||Arieh Bibliowicz|
|Subject||Object-Process Programming A Visual Programming|
Language for Complex Systems Design and
|Department||Department of Industrial Engineering and Management||Supervisor||Full Professor Dori Dov|
|Full Thesis text|
Software systems are a part of our daily life. As time goes by, these systems have become more complex, and this complexity has made their development ever more difficult. Several methods have been proposed to reduce this complexity, one of them being the use of visual modeling tools that provide the developer with ways to better understand the system and share how it works for other stakeholders within and outside of her or his team. In this work, we present OPP - Object-Process Programming, a full-fledged visual programming language based on the graphical language used by Object-Process Methodology. OPM has been shown to have a robust basis for modeling complex systems, and is being used in different and diverse industries, therefore its use as a programing language is a natural extension for it.
We performed two experiments to evaluate OPP. The first experiment was done with a group of 104 undergraduate students and the second as a focus group discussion with six professional developers and system engineers who are familiar with OPM and various programming languages. In the first experiment, the students programed a simple system using OPP. The students found value in the simplicity, readability, and visual representations used in the language. Most students thought that the language could not be used for real world programming as it requires a lot of work to implement simple programs. In the second experiment, a case study was presented to the focus group, and after this a discussion sessions was performed, focused on the positive and negative aspects of the language. The focus group found the value in OPP in the systems engineering area, to create a holistic view of the system which is also executable. Similarly to the student cohort, the experts thought that using OPP for low-level programming is not valuable.
Based on the qualitative and quantitative feedback given by the students and the experts, we are currently developing a new version of the language with improved semantics, a more user-friendly interface, and more built-in processes in the language runtime.