As we said in Section 3.1, the goal of any software development methodology should be obtaining a valuable, working product, and the process that we need to follow in order to obtain it is simply a necessary evil. If the final product could be obtained magically with very little effort, the process that we often follow would not be followed at all.

Rather than evaluating product and process (and producer) aspects separately, as we have done in Sections 3.1 and 3.2, the joint specification of modelling languages and development processes is, arguably, a better way to define methodologies (Figure 3.7). It allows a better degree of completeness than can be achieved by the separate specification of these two aspects (i.e. process and product), as is done, for instance, in the OMG suite of products. This separates SPEM and UML but then needs to bridge the gap (Figure 3.8).

The ISO/IEC 24744 standard metamodel [20] supports this by using the concept of action. An action represents a usage event of a task upon a work product; in other words, it describes how a specific task acts upon a specific work product, by creating it, reading (but not altering) it, modifying it or destroying it. This approach, clearly based on the classic create, read, update and delete (CRUD) approach to database interfacing, allows for a rich interaction between the process and product side of methodologies, departing from the more traditional way in which they are ...

Get Metamodelling for Software Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.