The basic usage of the metamodel has been described above. Figure 6.18 shows a simple powertype pattern for Task/*Kind, resulting in a methodology clabject called ValidateRequirementsTask.


Figure 6.18: A powertype pattern in the task domain (after [14])

Source: ISO

Suppose that this particular methodology requires that all validate requirements tasks need to be explicitly controlled as to whether they need signing off by the users or not. In other words, some enacted validate requirements tasks will require signing off while others will not, and this must be recorded according to the methodology. Since ValidateRequirementsTask is a specialized form of Task, then an additional attribute to store this information can be added in a straightforward manner (Figure 6.19). This new attribute represents the fact that some, but not all, requirement validation tasks, when actually performed in the Endeavour domain, will need signing off before the requirements can be considered validated. The methodologist captures this by incorporating this new NeedsSignOff attribute into the class facet of the method fragment. In programming language terms, this is known as “programming by difference” – a key strategy in the object-oriented paradigm. When this method fragment is instantiated for an endeavour, it and all the other (standard) attributes are allocated ...

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.