Abstract
Model-based engineering (MBE) has been touted as a new and substantively different approach to software development, characterized by higher levels of abstraction and automation compared to traditional methods. Despite the availability of published verifiable evidence that it can significantly boost both developer productivity and product quality in industrial projects, adoption of this approach has been surprisingly slow. In this article, we review the causes behind this, both technical and non-technical, and outline what needs to happen for MBE to become a reliable mainstream approach to software development.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
I eschew here the distracting and often unproductive controversy as to whether or not software development is a form of “engineering” and shall refer to it throughout as a “technical” discipline.
In contrast, the same cycle in most engineering disciplines may take months or even years.
Another source of problems is the exceedingly low entry barrier into the profession; basic programming skills can be picked up quickly and easily by amateurs. Consequently, many practitioners lack systematic and deep training in basics of computer science and engineering.
In this discussion we are only interested in “complex” software systems, characterized by sophisticated functionality and numerous technical challenges and whose conception and construction require a variety of skills.
Although, as demand for ever more sophisticated systems increases, we are hearing more and more about cost and schedule overruns of various large engineering projects. However, unlike software, very few of these actually fail. Most high-risk projects are terminated early in the development, before significant funds and resources have been spent. This is because it is possible to reliably predict the probability of failure sufficiently early in the project.
A rough estimate, based primarily on the author’s several decades of personal experience, is that no more than 15 % of all industrial software projects currently use modeling substantively in their development.
Note that abstraction should not be interpreted as ignoring technological factors in software design, particularly since technological constraints can have a fundamental impact sometimes on the architecture of software. However, it does mean that only the essential aspects of the technology need be considered and that the application rather than the implementation technology should be the foremost concern of the implementers.
A more careful analysis of the core technical skills required for model-based software development reveals that they are, in essence, no different than the core skills required for traditional programming—except that they are based on a different technological foundation. These core skills are, in fact, technology independent.
Contrary to popular impressions, developing software tools requires major research and development investments, since a professional grade tool must not only have the required functionality but it must also be robust, scalable, and highly usable—all of which requires significant effort to achieve. Furthermore, it also requires documentation, training materials and courses, and a support and maintenance team.
Recall that one of the keystones of model-based engineering is to move the task of software design closer to the problem domain and away from the computing technology domain. Consequently, the push towards domain-specific languages is a natural outcome.
In contrast, the primary criterion in the design of programming languages is that they must be unambiguously interpreted by a compiler (such as the rigid syntactic rules that ensure computer-based parsing), a requirement that invariably takes priority over any concerns about readability.
The example of the much reviled and rather cumbersome COBOL syntax, designed naively with a view towards making programs readable by non-programmers, demonstrates the difficulty of getting this aspect right.
In fact, mathematical logic on its own is probably not sufficient for specifying language semantics in domains where quantitative aspects of physical phenomena, such as the duration or resource limitations, play a key role.
In fact, this two-step approach is analogous to the old CFront solution used in early C++ compilers—an approach long abandoned because it resulted in inefficient code.
Of course, similar scalability issues occur in traditional programming language systems as well. However, because these programs are primarily textual rather than based on semantic linkages, these types of sophisticated searches are rarely even considered.
An informal analysis of two of the most widely used commercial model authoring tools revealed that they both had in the order of 300 distinct menu items, many of them interdependent in ways that are not always obvious. Mastering such tools is, surely, a high challenge even for the most competent developers.
I have no formal verifiable proof of this as a general conclusion, but I have been directly involved with the development of at least four major modeling tool projects (commercial and open-source), and it applied in all cases.
References
Antkiewicz, M., Czarnecki, K., et al.: Design space of heterogeneous synchronization. In: Lammel, R., Lammel, R., et al. (eds.) Generative and Transformational Techniques in Software Engineering II. Lecture Notes in Computer Science, vol. 5235, p. 46. Springer, Berlin (2008)
Baber, R.: Software Reflected. North Holland, Amsterdam (1982)
Berry, G., Gonthier, G.: The Esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Program. 19(2), 87–152 (1992)
Bloomberg, Nokia’s Share Slips as Unbranded Phonemakers, Apple gain Ground, http://www.bloomberg.com/news/2010-11-10/nokia-s-market-share-slips-below-30-as-smaller-vendors-grow-gartner-says.html, November (2010)
Bone, M., Cloutier, R.: The current state of model based system engineering: results from the OMG\(^{\rm TM}\) SysML request for information 2009. In: Proceedings of the 8th Conference on Systems Engineering Research (CSER), March 2010. Hoboken, NJ (2010)
Burj Khalifa, http://en.wikipedia.org/wiki/Burj_Khalifa
Constantine, L.: What Do Users Want? Engineering Usability into Software. Constantine& Lockwood Ltd. (1995). http://www.foruse.com/articles/whatusers.pdf
The Eclipse Foundation. http://www.eclipse.org/
Einstein, A.: Science and happiness (Speech given at the California Institute of Technology). Science 73(1893), 375–381 (1931)
Erlande-Brandenburg, A.: The Cathedral Builders of the Middle Ages (translated from the French by Rosemary Stonehewer). Thames and Hudson, London (2007)
Eveleens, J.L., Verhoef, C.: The Rise and Fall of the Chaos Report Figures. IEEE Software, pp. 30–36 (2010)
France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: Proceedings of 2007 IEEE Conference on the Future of Software Engineering (FOSE ‘07), pp. 37–54. IEEE Computer Society (2007)
Glass, R.: The Standish report: does it really describe a software crisis? Commun. ACM 49(8), 15–16 (2006)
Hutchinson, J., Rouncefield, M., Whittle, J.: Model-driven engineering practices in industry. In: Proceedings of 33rd International Conference on Software Engineering (ICSE’11), pp. 633–642. ACM, New York (2011)
Hutchinson, J., Whittle, J., Rouncefield, M., Kristofferson, S.: Empirical assessment of MDE in industry. In: Proceedings 33rd International Conference on Software Engineering (ICSE’11), pp. 471–480. ACM, New York (2011)
International Standards Organization: Information Technology—Common Logic (CL): a framework for a family of logic-based languages, ISO/IEC Standard 24707:2007 (2007). http://standards.iso.org/ittf/licence.html
Lin, C., et al.: Experiences deploying MBSE at NASA JPL. Frontiers in Model-Based Systems Engineering Workshop. Georgia Institute of Technology (2011). (www.pslm.gatech. edu/events/frontiers2011/2.1̱Lin.pdf)
McLuhan, M.: Understanding Media: The Extensions of Man. MIT Press, Cambridge (1994)
Milner, R.: Communication and Concurrency, International Series in Computer Science. Prentice Hall, Upper Saddle River (1989)
Mohagheghi, P., Dehlen, V.: Where is the proof? A review of experiences from applying MDE in industry. In: Schiefendecker, I., Hartman, A. (eds.) Model Driven Architecture—Foundations and Applications (ECMDA-FA 2008), LNCS, vol. 5095, pp. 432–443. Springer, Berlin (2008)
Moody, D.: The ‘Physics’ of notations: toward a scientific basis for constructing visual notations in software engineering. IEEE Trans. Softw. Eng. 35(6), 756–779 (2009)
Neumann, P.: Computer Related Risks. Addison Wesley, Boston (1995)
The Object Management Group: Compilation of SysML RFI—Final Report, OMG Document syseng/2009-06-01 (2009)
The Object Management Group: Meta-Object facility (MOF) 2.0 Query/View/Transformation (QVT), OMG document formal/2011-01-01 (2011)
Czarnecki, K., Helsen, P.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3) (2006)
Syriani, E., Vangheluwe, H.: De-/re-constructing model transformation languages. In: Electronic Communications of the EASST, 29: Graph Transformation and Visual Modeling Techniques (GT-VMT) (2010)
Varro, D., Pataricza, A.: Generic and meta-transformations for model transformation engineering. In: Proceedings of the 7th International Conference on the Unified Modeling Language (UML 2004), pp. 290–304. Lisbon, Portugal (2004)
Jouault, F., Kurtev, I.: Transforming models with ATL. In: Proceedings of Model Transformations in Practice Workshop. MTIP), MoDELS Conference, Montego Bay, Jamaica (2005)
Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented metalanguages. In: Proceedings of the ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems, pp. 264–278. Montego Bay, Jamaica (2005)
Oster, C.: Evolving Lockheed Martin’s engineering practices through the creation of a model-centric digital tapestry. In: Frontiers in Model-Based Systems Engineering Workshop, Georgia Institute of Technology (2011). http://www.pslm.gatech.edu/events/frontiers2011/1.5_Oster.pdf
Petriu, D.: Software model-based performance analysis. In: Post-Proceedings of the MDD4DRES Summer School, Aussois 2009. Hermès Science Publications, Paris (2012) (in press)
Selic, B.: Personal reflections on automation. Program Cult Model-Based Softw Eng Autom Softw Eng J 14(3/4) (2008)
Sokolsky, O., Lee, I., Clarke, D.: Schedulability analysis of AADL models. In: Proceedings 20th International Parallel and Distributed Processing Symposium (IPDPS 2006). IEEE (2006)
The Standish Group International. Chaos Summary (2009). http://www1.standishgroup.com/newsroom/chaos~2009.php
United States Department of Labor—Bureau of Labor Statistics: Occupational Outlook Handbook, 2010–2011 Edition. Computer Software Engineers and Computer Programmers
Vitruvius: The Ten Books on Architecture (translated by M. H. Morgan). Dover Publications Inc. New York (1960)
Weigert, T., Weil, F.: Practical experience in using model-driven engineering to develop trustworthy systems. In: Proceedings of IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (SUTC’06), pp. 208–217. IEEE Computer Society (2006)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Prof. Jon Whittle and Gregor Engels.
Rights and permissions
About this article
Cite this article
Selic, B. What will it take? A view on adoption of model-based methods in practice. Softw Syst Model 11, 513–526 (2012). https://doi.org/10.1007/s10270-012-0261-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-012-0261-0