Personal reflections on automation, programming culture, and model-based software engineering

Model-based software engineering (MBSE) is an approach to software development characterized in part by significantly greater levels of automation when compared to more traditional development methods. Computer-based tools play a fundamental role in a number of key aspects of development, including authoring support (many MBSE languages are predominantly visual), automatic or semi-automatic verification, automated translation of specifications into corresponding programs, and so on.Given the historical precedents, such as the introduction of compilation technology, there is little doubt that automation, when properly conceived and realized, can dramatically increase the productivity of software developers and improve the quality of their software. Therefore, it is natural to assume that MBSE would quickly become the dominant form of software development, similar to the rapid adoption of computer-aided design approaches for hardware. Yet, this has not been the case.In this opinion-based article, derived from the author’s long-term experience with MBSE and its application in industry, we examine the causes behind this seemingly paradoxical situation.

[1]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[2]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .

[3]  Donald D. Chamberlin,et al.  SEQUEL: A structured English query language , 1974, SIGFIDET '74.

[4]  Brian Magerko Adaptation in Digital Games , 2008, Computer.

[5]  Ian Graham Object-oriented methods (3rd ed.): principles & practice , 2001 .

[6]  Stephen J. Mellor,et al.  MDA Distilled Principles Of Model-Driven Architecture , 2004 .

[7]  Thomas Weigert Practical experiences in using model-driven engineering to develop trustworthy computing systems , 2006, IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (SUTC'06).

[8]  Dieter Hogrefe,et al.  SDL : formal object-oriented language for communicating systems , 1997 .

[9]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[10]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[11]  Ian M. Graham Object-oriented methods , 1991 .

[12]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[13]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[14]  S. Rendón Understanding media : the extensions of man , 1967 .

[15]  M. Mcluhan Understanding Media: The Extensions of Man , 1964 .