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

  • Authors:
  • Bran Selic

  • Affiliations:
  • Malina Software Corp., Nepean, Canada K2J 2J3

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.