Skip to main content

Toward integrating systems engineering with software engineering through Object-Process Programming


Modern systems comprise hardware and software components that together provide value through enabling the functionality that the system is intended to provide. Systems engineering (SE) and software engineering (SwE) are therefore interdependent, tightly coupled, and complementary activities that must be carefully aligned and coordinated throughout the system development process. Yet, these two disciplines have historically grown quite separated from each other, with too little interaction and mutual learning. In this work, we develop and evaluate Object-Process Programming (OPP) as a proof-of-concept for a common framework that integrates SE and SwE based on ISO 19450—Object-Process Methodology. The ability of designers to use the same paradigm for engineering the software, the hardware, and the system as a whole, using the same concepts and principles and the same design environment, described and discussed in this work, is a major step towards the integration and streamlining of engineering new systems that feature significant hardware and software components. To evaluate OPP, we established a focus group and conducted an experiment in which participants were asked to develop systems using OPP. Overall, the results were positive in terms of usability and understandability. In particular, the language and the environment were far superior in comparison to textual languages. OPP will contribute to the continuous endeavor to bridge the gap between SE and SwE by providing a seamless, easy-to-learn environment. Non-technical stakeholders can also benefit from OPP by improving their communication with technical stakeholders. The ideas underlying OPP have already served to augment OPM with computational capabilities.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31
Fig. 32
Fig. 33
Fig. 34
Fig. 35
Fig. 36
Fig. 37


  1. In OPM, shadow denotes a physical thing, as opposed to informatical things, but since in software everything is informatical, OPP uses this notation to denote that an object is global. This is an example of a conflict that needs to be resolved when OPM-based programming is integrated into OPM. Indeed, in OPCloud [21] we use a different notation.

  2. This is another example of deviation from OPM’s meaning of a dashed contour of an object, and in OPCloud we use a different notation.

  3. In OPM, agent link is reserved for a human or a group of humans as enablers.




  1. Akkaya I, Derler P, Emoto S, Lee EA (2016) Systems engineering for industrial cyber-physical systems using aspects. Proc IEEE 104(5):997–1012.

    Article  Google Scholar 

  2. Alonso D, Vicente-Chicote C, Pastor JA, Álvarez B (2008) StateML + : from graphical state machine models to thread-safe Ada code. Springer Berlin Heidelberg, Berlin, Heidelberg, pp 158–170.

  3. Alvarez JL, de Koning HP, Fischer D, Wallum M, Metselaar H, Kretzenbacher M (????) Best practices for model based systems engineering in ESA projects.,

  4. Baur C, Wee D (2015) Manufacturing’s next act. Accessed 31 Oct 2017

  5. Bibliowicz A, Dori D (2012) A graph grammar-based formal validation of object-process diagrams. Softw Syst Model 11(2):287–302.

    Article  Google Scholar 

  6. Brooks FP Jr (1987) No silver bullet essence and accidents of software engineering. Computer 20(4):10–19.

    Article  Google Scholar 

  7. Broy M (2006) Challenges in automotive software engineering. In: Proceedings of the 28th international conference on software engineering. ACM, New York, NY, USA, ICSE ’06, pp 33–42.,

  8. Burnett MM (1999) Visual programming. Wiley, New York, pp 275–283.

    Book  Google Scholar 

  9. craft AI (????) The maturity of visual programming. Accessed 12 Feb 2020

  10. Dictionary (n.d.) Inheritance. Accessed 29 Apr 2016

  11. Dobing B, Parsons J (2006) How UML is used. Commun ACM 49(5):109–113.

    Article  Google Scholar 

  12. Dori D (2002a) Object-process methodology—a holistic systems paradigm, 1st edn. Springer-Verlag Berlin Heidelberg.

  13. Dori D (2002b) Why significant UML change is unlikely. Commun ACM 45(11):82–85.

    Article  Google Scholar 

  14. Dori D (2008) Words from pictures for dual-channel processing. Commun ACM 51(5):47–52.

    Article  Google Scholar 

  15. Dori D (2016a) Model-based systems engineering with OPM and SysML, 1st edn. Springer Publishing Company, Incorporated.

  16. Dori D (2016b) Model-based systems engineering with OPM and SysML. Springer, New York

    Book  Google Scholar 

  17. Dori D, Goodman M (1996) On bridging the analysis-design and structure-behavior Grand Canyons with object paradigms. Rep Object Anal Des 2(5):25–35

    Google Scholar 

  18. Dori D, Reinhartz-Berger I, Sturm A (2003) Opcat—a bimodal case tool for object-process based system development. In: ICEIS

  19. Dori D, Beimel D, Toch E (2004) OPCATeam—collaborative business process modeling with OPM. Springer Berlin Heidelberg, Berlin, Heidelberg, pp 66–81.

  20. Dori D, Feldman R, Sturm A (2008) From conceptual models to schemata: an object-process-based data warehouse construction method. Inf Syst 33(6):567–593.

    Article  Google Scholar 

  21. ESML (n.d.) OPCloud - a web-based modeling language and methodology., accessed: 2017-12-09

  22. Fernandes JM, Lilius J, Truscan D (2006) Integration of DFDs into a UML-based model-driven engineering approach. Softw Syst Model 5(4):403–428.

    Article  Google Scholar 

  23. France R, Rumpe B (2007) Does model driven engineering tame complexity? Softw Syst Model 6(1):1–2.

    Article  Google Scholar 

  24. France RB, Ghosh S, Dinh-Trong T, Solberg A (2006) Model-driven development using UML 2.0: promises and pitfalls. Computer 39(2):59–66.

    Article  Google Scholar 

  25. Gelbard R, Teeni D, Sade M (2010) Object-oriented analysis: Is it just theory? IEEE Softw 27(1):64–71.

    Article  Google Scholar 

  26. Guéhéneuc Y, Albin-amiot H, Douence R, Cointe P (2002) Bridging the gap between modeling and programming languages. Tech. rep

  27. Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3):231–274.

    MathSciNet  Article  MATH  Google Scholar 

  28. Hendrix TD, Cross JH II, Maghsoodloo S, McKinney ML (2000) Do visualizations improve program comprehensibility? Experiments with control structure diagrams for java. SIGCSE Bull 32(1):382–386.

    Article  Google Scholar 

  29. Hosick E (2014) Visual programming languages—snapshots.

  30. Instruments N (n.d.) Labview.

  31. Jbara A, Feitelson DG (2017) How programmers read regular code: a controlled experiment using eye tracking. Empir Softw Eng 22(3):1440–1477. (Invited extended journal version)

    Article  Google Scholar 

  32. Jouault F, Bézivin J, Barbero M (2009) Towards an advanced model-driven engineering toolbox. Innov Syst Softw Eng 5(1):5–12.

    Article  Google Scholar 

  33. Li L, Soskin NL, Jbara A, Karpel M, Dori D (2019) Model-based systems engineering for aircraft design with dynamic landing constraints using object-process methodology. IEEE Access 7:61494–61511.

    Article  Google Scholar 

  34. Lifecyclemodeling (2015) Lifecycle modeling language specification. Accessed 12 Feb 2020

  35. Linhares MV, da Silva AJ, de Oliveira RS (2006) Empirical evaluation of sysml through the modeling of an industrial automation unit. In: 2006 IEEE conference on emerging technologies and factory automation, pp 145–152.

  36. Mayer RE (2009) Multimedia learning, 2nd edn. Cambridge University Press, New York

    Book  Google Scholar 

  37. McIntyre DW (1998) comp.lang.visual frequently-asked questions (faq).

  38. Michell GD, Gupta RK (1997) Hardware/software co-design. Proc IEEE 85(3):349–365.

    Article  Google Scholar 

  39. Microsoft (2010) Architectural patterns and styles. Accessed 29 Aug 2018

  40. MIT (2014) Scratch.

  41. Mousavi BA, Azzouz R, Heavey C, Ehm H (2019) A survey of model-based system engineering methods to analyse complex supply chains: a case study in semiconductor supply chain. IFAC-PapersOnLine 52(13):1254–1259., 9th IFAC conference on manufacturing modelling, management and control MIM 2019

  42. Myers BA (1986) Visual programming, programming by example, and program visualization: a taxonomy. SIGCHI Bull 17(4):59–66.

    Article  Google Scholar 

  43. Nassi I, Shneiderman B (1973) Flowchart techniques for structured programming. SIGPLAN Not 8(8):12–26.

    Article  Google Scholar 

  44. Navarro-Prieto R, Cañas JJ (2001) Are visual programming languages better? The role of imagery in program comprehension. Int J Hum Comput Stud 54(6):799–829.

    Article  MATH  Google Scholar 

  45. Nickerson JV (1994) Visual programming: limits of graphic representation. In: Proceedings of 1994 IEEE symposium on visual languages, pp 178–179.

  46. Noone M, Mooney A (2018) Visual and textual programming languages: a systematic review of the literature. J Comput Educ 5(2):149–174.

    Article  Google Scholar 

  47. Nugroho A, Chaudron MR (2008) A survey into the rigor of UML use and its perceived impact on quality and productivity. In: Proceedings of the second ACM-IEEE international symposium on empirical software engineering and measurement. ACM, New York, NY, USA, ESEM ’08, pp 90–99.

  48. OMG (2001) Model driven architecture

  49. OMG (2003) MDA guide version 1.0.1

  50. OMG (2011a) OMG unified modeling language (OMG UML) version 2.4.1, infrastructure

  51. OMG (2011b) OMG unified modeling language (OMG UML) version 2.4.1, superstructure

  52. OMG (n.d.a) Object management group.

  53. OMG (n.d.b) What is SysML. Accessed 12 Feb 2020

  54. Peleg M, Dori D (1999) Extending the object-process methodology to handle real-time systems. JOOP 11:53–58

    Google Scholar 

  55. Peleg M, Dori D (2000) The model multiplicity problem: experimenting with real-time specification methods. IEEE Trans Softw Eng 26(8):742–759

    Article  Google Scholar 

  56. Petre M (2010) Mental imagery and software visualization in high-performance software development teams. J Vis Lang Comput 21(3):171–183.

    Article  Google Scholar 

  57. Reinhartz-Berger I, Dori D (2005) A reflective meta-model of object-process methodology: the system modeling building blocks. In: Green PF, Rosemann M (eds) Business systems analysis with ontologies, pp 130–173

  58. Reinhartz-Berger I, Dori D, Katz S (2002) OPM/Web—object-process methodology for developing web applications. Ann Softw Eng 13(1):141–161.

    Article  MATH  Google Scholar 

  59. Scanlan DA (1989) Structured flowcharts outperform pseudocode: an experimental comparison. IEEE Softw 6(5):28–36.

    Article  Google Scholar 

  60. Schäfer W, Wehrheim H (2010) Model-driven development with mechatronic UML. Springer Berlin Heidelberg, Berlin, Heidelberg, pp 533–554.

  61. Siek J (2014) What is gradual typing. Accessed 12 Feb 2020

  62. Soffer P, Golany B, Dori D (2003) ERP modeling: a comprehensive approach. Inf Syst 28(6):673–690.

    Article  MATH  Google Scholar 

  63. Somekh J, Choder M, Dori D (2012) Conceptual model-based systems biology: mapping knowledge and discovering gaps in the mrna transcription cycle. PLoS ONE 7(12):1–21.

    Article  Google Scholar 

  64. Staunstrup J, Wolf W (2012) Hardware/software co-design: principles and practice. Springer

  65. Stobart SC, Thompson JB, Smith P (1991) Use, problems, benefits and future direction of computer-aided software engineering in United Kingdom. Inf Softw Technol 33(9):629–636.

    Article  Google Scholar 

  66. Sturm A, Dori D, Shehory O (2003) Single-model method for specifying multi-agent systems. In: Proceedings of the second international joint conference on autonomous agents and multiagent systems. ACM, New York, NY, USA, AAMAS ’03, pp 121–128.

  67. Sutherland IE (1964) Sketch pad a man-machine graphical communication system. In: Proceedings of the SHARE design automation workshop. ACM, New York, NY, USA, DAC ’64, pp 6.329–6.346.

  68. SysML (n.d.) SysML v2: The next-generation systems modeling language. Accessed 13 Sep 2018

  69. Tannahill BK, Jamshidi M (2014) System of systems and big data analytics—bridging the gap. Comput Electr Eng 40(1):2–15. (40th-year commemorative issue)

    Article  Google Scholar 

  70. Thomas D (2004) MDA: revenge of the modelers or UML utopia? IEEE Softw 21(3):15–17.

    Article  Google Scholar 

  71. University CM (n.d.) Alice.

  72. Whitley K (1997) Visual programming languages and the empirical evidence for and against. J Vis Lang Comput 8(1):109–142.

    Article  Google Scholar 

  73. Whitley K, Blackwell AF (2001) Visual programming in the wild: a survey of LabVIEW programmers. J Vis Lang Comput 12(4):435–472.

  74. Wolny S, Mazak A, Carpella C, Geist V, Wimmer M (2020) Thirteen years of sysml: a systematic mapping study. Softw Syst Model 19(1):111–169.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Ahmad Jbara.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.



See Table 6.

Table 6 Student questionnaire

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Jbara, A., Bibliowicz, A., Wengrowicz, N. et al. Toward integrating systems engineering with software engineering through Object-Process Programming. Int. j. inf. tecnol. (2020).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI:


  • Conceptual modeling
  • Software engineering
  • Systems engineering
  • Software modeling
  • Model-based systems engineering (MBSE)
  • Cyber-physical systems
  • Hardware-software co-design
  • Visual programming
  • Visual programming languages
  • Object-Process Methodology (OPM)
  • Object-Process Programming (OPP)