Object modelling languages: An evaluation and some key expectations for the future

  • Authors:
  • Franck Barbier;Brian Henderson-Sellers

  • Affiliations:
  • IRIN, Université de Nantes, 2, rue de la Houssinière, BP 92208, 44322 Nantes Cedex 3, France E‐mail: Franck.Barbier@irin.univ‐nantes.fr;COTAR, School of Computing Sciences, University of Technology, Sydney, P.O. Box 123, Broadway, NSW 2007, Australia

  • Venue:
  • Annals of Software Engineering
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Object modelling languages are graphical semi‐formal specification languages. They are tools to capture and formalise requirements in the earlier phases of software development, as well as providing support for describing designs, software architecture and even detailed implementations later in the process. One can consider these languages to have reached some level of maturity, especially because their precursors, the Object‐Oriented Analysis and Design methods, have now been used and tested intensively in industry for many years. In addition, these modelling languages have been the subject of many improvements by the scientific community. Nevertheless, some dissatisfaction persists. In this paper, we aim to re‐analyse several parts of the deep structure of two leading object modelling languages: OML and UML, in order to show how they can really increase software quality. Their structure is based on metamodelling, which is the way the semantics of these two languages is expressed. This structure is also the source of a proliferation of modelling constructs (for example, different forms of inheritance associated with distinct notational elements) whose use must clearly influence, in particular, reusability – a key expectation in a software engineering process. More generally, we identify some deficiencies in these languages, which allows us to highlight some appropriate evolutionary paths. In discussing dynamic metamodelling and scalability, we specifically outline that a main current drawback is the difficulty of implementing these languages in Computer‐Aided Software Engineering tools.