3.3 Metamodels and metamodeling languages
This section discusses metamodels and metamodeling languages
as used in this thesis to describe tool-supported modeling techniques. This
discussion is important because all ME is based on some formalism and because it
deals with our research question on modeling method knowledge. Accordingly, in
the next subsections we shall define metamodels and metamodeling. This is
followed by a representation of different types of metamodels, and especially
metamodels which are based on semantic data
models.
3.3.1 Defining metamodeling and metamodels
Models play a crucial role in ME, as in all engineering. Only
those aspects of a method can be engineered which can be made explicit through a
representation. Modeling of methods is not important only in constructing
methods, but has also proven to have advantages in systematizing and formalizing
weakly defined methods (Tolvanen and Lyytinen 1993), providing a more
“objective” approach to comparing methods (Hong et al. 1993, Rossi
and Brinkkemper 1996), supporting standardization efforts (e.g. Booch et al.
1997, OMG 1997), and examining linkages between ISD methods and programming
languages (Hillegersberg 1997). Metamodeling is also successfully used in
building flexible modeling tools (Kelly 1997, Kelly and Smolander 1996),
interfaces between tools (CDIF 1997), and repository definitions (CASE Outlook
1989). Metamodels can differ greatly based on their purpose and the type of
method knowledge considered. For example, Brodie (1984) analyzed various
semantic data models and showed that there is a need for application-specific
data models. Similarly, the ME frameworks and underlying metamodels focus on
different types of method knowledge (cf. Section 3.2.2).
In its simplest form we can say that a metamodel is
a conceptual model of an ISD method (Brinkkemper 1990). Metamodels can be
further divided into different types depending on what type of method knowledge
is modeled. Hereafter, we use the term metamodel to refer to a meta-data model
which describes the static aspects of a method. Consequently,
metamodeling can be defined as a modeling process which takes place one
level of abstraction and logic higher than the standard modeling process (van
Gigch 1991). The relationships between modeling and metamodeling are illustrated
in Figure 3-3.
FIGURE 3-3 Metamodeling and modeling (after Brinkkemper
1990).
In metamodeling, the focus is on method knowledge applied
in modeling. In the case of meta-data modeling this means the conceptual
structure and notation of the method. Accordingly, the resulting metamodel
captures information about the concepts, constraints, rules and representation
forms used in modeling techniques. IS developers use this knowledge —
although often unconsciously — in IS modeling tasks (see Smolander et al.
1990). Clearly, no modeling is possible without some sort of (explicit or
implicit) metamodel. The same is also true for metamodeling as it also uses its
own methods and tools which, in turn, can be described one level higher in
metametamodels (and so ad infinitum).
Kotteman and Konsynski (1984) show that at least four
levels of instantiation are necessary to integrate the modeling of the usage and
evolution of ISs. A similar observation underlies the architecture of the ISO
IRDS (Information Resources Dictionary Standard, (ISO 1990)), and in the
universal framework for information activities by Auramäki et al. (1987).
The levels and their hierarchy are illustrated in Figure 3-4.
FIGURE 3-4 ISO IRDS repository framework.
The application level includes application data and
program execution. An example of the former could be “Juha-Pekka
Tolvanen” and an example of the latter the procedure by which this data
has been added or removed in the application. This level corresponds to the
instances of class-based languages and to instantiations of an IS model.
The IRD level includes database schemata and application
programs, plus any intermediate specifications, and also specifications of
non-computerized activities (e.g. business processes and work flows). This
corresponds to the class level of class-based languages and instantiations of a
metamodel (i.e. IS models). An example of the information at this level would be
a definition of “customer” information as part of the database
schema.
The IRD definition level specifies the languages in which
schemata, application programs, and specifications are expressed. It may also
contain the specification of possible static and dynamic inter-relationships
between these languages, for instance how various design models are linked. This
corresponds to the metaclass level of languages such as Smalltalk, and
instantiations of a metametamodel (i.e. metamodels). An example of the
information at this level would be the specifications of the ER diagram
technique and its component types, such as “entity” or
“cardinality”.
Finally, the IRD Definition Schema Level specifies a
metametamodel according to which the IRD Definition level objects can be
described and interlinked. An example would be ‘concept’ (Wijers
1991) or OPRR’s ‘Object’ metatype (Smolander 1992).
As the right side of the figure illustrates, these four
levels can be grouped into interlocking level pairs. The interlocking is
necessary since making sense of instances is not possible without type level
information. To illustrate the interlocking pairs in Figure 3-4 the boxes are
joined, and to represent that the number of instances is normally greater than
the number of types the figure is in the shape of a pyramid. Thus, the hierarchy
can be understood as being instantiations in which the higher level forms the
type definitions for the lower level instances, in the same way as classes
define objects, and metaclasses define classes. A level pair can also be
intuitively understood as a database where the upper level is the schema and the
lower level the database state.
The lowest pair, IS use, corresponds to application
databases, consisting of a schema and of a database state used in daily
business. At the database state level the data element “Juha-Pekka
Tolvanen” is useless if its type information is not known (e.g. row in a
customer table of a database). The middle pair, ISD, corresponds to data
dictionaries or CASE tool repositories used to store models of IS. IS modeling
tools also operate at this level. For example, an ER diagram describes a
“customer” as an entity. The topmost pair, ME, corresponds to meta
databases, such as metaCASE tools or CAME tools which store models of methods,
i.e. metamodels. Here the metamodeling language plays the role of type
information and modeling technique metamodels are viewed as instances. For
example, an “entity” is described as an object type, an instance of
the metatype ‘Object’, in an ER diagram metamodel. On the ISD level,
types included in a metamodel determine what one can observe or describe about
the application level while using the method.
Our research questions focus on the topmost pair of the
IRDS framework. The first question on metamodeling constructs seeks to find
applicable concepts and constraints for metamodeling languages, i.e. to define
metametamodels. In other words, metametamodels provide constructs for
metamodeling languages. The second research question on incremental ME deals
with how the applicable instances of the ME level, i.e. metamodels can be
recognized and constructed for ISD. Hence, the research itself can be placed
above the IRD schema level, i.e. on a fifth level.
Although we mostly operate with concepts of the ME level
we sometimes need to refer also to instances on the ISD level. To distinguish
the concepts and the level on which we currently operate we use the following
naming conventions. On the IRD schema level, we use the term metatype to denote
any of the concepts used in a metamodeling language. On the IRD definition
level, one of these metatypes is instantiated to describe a certain method
component, resulting in what we call a type (i.e. an instance in a metamodel).
Hence, in ME, an entity object type refers to an instance in a metamodel. This
then itself plays the role of type on the ISD level, when it is instantiated to
an entity used as an element in a model of the object IS.
Since some of the metamodeling constructs refer to
instances of models, i.e. to the IRD level we need to refer to them also. For
example, to refer to all entities described in an ER model we use the term
instances of an entity object type. Because the naming becomes complicated we
use apostrophes to refer to things on the IRD definition level. Hence
‘entity’ means the type described in a metamodel. This means the
same as an entity object type although the latter is more precise, since it
mentions also the metatype. Because in most cases the metatype is clear, e.g. it
is clear that ‘class’ is an object type not a relationship type, we
normally use the shorter naming version.
3.3.2 Types of the meta-data modeling languages examined
Starting from Teichroew et al. (1980), most of the meta-data
modeling languages rely on some existing semantic data model (Hull and King
1987). Two types of semantic models, ER-based models and NIAM-based models, have
been investigated in particular. Extensions of the ER model (Sorenson et al.
1988, Welke 1988, Smolander 1991, Venable 1993) seek to improve its expressive
power by suggesting new integrity constraints (Welke 1988, Smolander 1991, Kelly
and Tahvanainen 1994) and verification rules (Wijers 1991), and by representing
complex objects (Venable 1993). The NIAM-based conceptual metamodeling
formalisms (Bommel et al. 1991, Hofstede et al. 1993, Hofstede and Weide 1993)
pursue similar goals, but are often founded on a more formal basis than the
ER-based modeling languages.
The reasons for applying semantic data models in ME are
the same as in ISD. They are easy to use, support communication, and yet are
powerful and formal enough to describe methods and implement them in
customizable ISD tools. Moreover, methods in CASE tools are largely based on
semantic data models and thus their users are familiar with them. Some models,
like ER or NIAM, are even applied at both levels. Because of the symmetry
between models in ME and ISD the semantic data model based metamodels should be
easy to use and understand for method users. This is especially relevant for
incremental ME in which metamodels are constantly used to refine ISD methods.
The requirement for ease of use is further highlighted if the users of the
modeling tool or their customizers are not familiar with a specific programming
language.
Second, support for communication is especially important
when multiple method stakeholders need to agree on and participate in ME. Also,
metamodels can be applied for teaching (Mathiassen et al. 1996) and method
related helps can be generated from metamodels (e.g. MetaCase 1994). Support for
easy use and communication are achieved by the use of graphical representation
in metamodeling languages. Although some metamodeling languages seek to model
methods totally with graphical constructs (e.g. CoCoA (Venable 1993)), in
practice they all include some graphically “invisible” metamodeling
constructs. In other words, not all constructs of the metamodeling language have
notational support. Most of the approaches aim to add extra constraints
(Smolander 1992, Ebert et al. 1996), or whole constraint languages (e.g. ter
Hofstede 1993) to existing graphical metamodeling languages. Another approach is
to apply graphical metamodeling languages to describe only a subset of the
metamodeling constraints (e.g. Harmsen 1997).
From the method user point of view, easiness and support
for communication could be better achieved with a natural language, rich
pictures, or with other similar techniques, but they would not satisfy the third
requirement of formality. Moreover, these do not reflect any knowledge specific
to ME and metamethods: they do not explicitly describe or implicitly provide
guidance on which components, rules, or constraints of methods should be
considered during ME. In addition to pure representation of methods,
metamodeling languages should provide a formal basis for building tool support.
This means that all essential method knowledge must be captured into the formal
metamodel.
The modeling power and formality of metamodeling can also
be supported by other types of metamodeling languages. For example, for this
purpose Saeki and Wenyin (1994) adapted an object-oriented modeling language
called Object-Z. Ahituv (1987) introduces a formal metamodel which views an
information system as the data flow that moves from one state to another, and by
which some existing methods can be modeled. The work of (Oei et al. 1992, Oei
and Falkenberg 1994, Oei 1995) introduces a formal language for modeling methods
and transforming them into a method hierarchy. Also set-theoretical constructs
(Bergsten et al. 1989), and predicate-logic (Brinkkemper 1996, Harmsen 1997)
have been applied to metamodeling. However, these fail in other criteria as they
neither support communication nor are they as easy to use as semantic data
models (although some of them like MEL have close connections with the data
modeling side). Semantic data models provide better modularity and
maintainability, which are particularly important for incremental ME. Moreover,
the development of metamodeling languages mainly to satisfy the modeling power
aspect is questionable because this requirement can already be supported with
programming languages. Hence, if we concentrate only on achieving the greatest
possible modeling power, assembler or C++ is close to the ultimate metamodeling
language.
The requirements formulated above are important for
incremental ME and direct us to focus on semantic data models. Additional
reasons for this focus are the popularity of semantic data models as repository
schemas (CASE Outlook 1989), and the dominance of their use in large
metamodeling efforts (Hong et al. 1993, Heym 1993, Henderson-Sellers and
Bulthuis 1996a, 1996b, Hillegersberg 1997) when compared to other types of
metamodeling languages. The former reason allows us to test and validate the
metamodels in a tool environment (cf. Section 4.2.3), and the latter reason to
compare the metamodels.
3.3.3 Modeling power of meta-data models
Like other modeling languages, metamodeling languages focus on
specific aspects of the domain to be modeled, and therefore lead to different
types of representations. One major difference between these languages is
therefore how well they describe various types of method knowledge. This is
related to our first research question, since our aim is to improve the
metamodeling power of semantic data models. Ideally, a metamodeling language
should capture method knowledge as completely as possible (Griethuysen 1982,
Welke 1988, Brinkkemper 1990, Tolvanen et al. 1993). By complete we mean the
100% principle suggested by Griethuysen (1982) in the context of metamodeling,
and Welke’s (1988) “no loss” criterion in the context of a
repository metamodel.
In the following we consider a small example to illustrate
the use of different semantic data models in metamodeling. This allows us to
describe different approaches to define method knowledge and to introduce them
for later evaluation (cf. Section 4.5). We focus mostly on widely-known
metamodeling languages. These are summarized in Table 3-3 and illustrated in the
following subsections together with an example. The metamodeling languages
mostly follow ER-based models, except NIAM which can be considered as an
object-relationship model (Kim and March 1995), and MEL which is based on
first-order predicate logic, but uses an ER-based graphical notation.
TABLE 3-3 Examples of metamodeling languages.
The metamodeling example is based on a small piece of
method knowledge as follows:
In object-oriented design the life-cycle of class instances must be specified
with one or more state models. A state model contains states and transitions
between two states. A state must be specified by a name and a class may have
only one state with a given name. Each transition must be specified with an
action which is executed when a transition occurs. An action is specified as an
operation of a class.
This example deals mainly with knowledge related to a
single modeling technique, but also includes a connection to class diagrams. The
example is quite common in object-oriented methods (e.g. Coad and Yourdon 1991a,
Rumbaugh et al. 1991) but is made more explicit than is often possible to find
from method text-books.
The metamodels made were reviewed by the users or
developers of metamodeling languages, except the metamodel made with ASDM and
MEL. Users of these metamodeling languages were not available, and their
developers did not respond to our inquiries.
3.3.3.1 Entity-Relationship model
The ER model has been commonly applied as a schema for
repositories (CASE Outlook 1989), and most of the meta-data modeling languages
originate from the ER model. Therefore, several versions and dialects of ER
modeling exist. They vary based on whether attributes are allowed only for
entities, whether inheritance of entities is allowed, etc. (cf. Batani et al.
1992). Here we apply a version of the ER model which allows the definition of
attributes attached to entities, and recognize cardinality constraints between
entities (in an ER model this constraint defines how many times instances of an
entity can participate in a relationship).
The reasons for extending the ER model for metamodeling
are the same as in extending it for IS modeling - its limited modeling power.
Figure 3-5 illustrates limitations of the ER model with two versions of our
state model example.
FIGURE 3-5 Two metamodels of state model defined with
the ER model.
In the figure, entities are illustrated with a rectangle,
relationships with a diamond, and attributes with an ellipse. The cardinality
constraints (1 or M in the metamodel) are shown side-by-side with the related
entity. The metamodel on the left defines that each state can participate in
several transition relationships, and that states have state names. No
information is given for example on the state model itself, nor that transitions
must be specified with an action.
To specify all rules in the example, the metamodel could
be defined differently. For example, to specify that transitions are defined
with an action, a transition could be defined as an entity instead of a
relationship. The larger metamodel on the right illustrates this possibility.
The cardinality constraint value one defines furthermore, that a transition can
not be an n-ary relationship. However, when an entity type is used to represent
a transition no distinction can be made between design elements that can exist
independently (i.e. states) and design elements which exist between independent
design elements (i.e. transitions). Thus, in the latter version of the
metamodel, there is no explicit constraint (cf. Brodie 1984) to distinguish
between transitions and states. Moreover, the metamodel does not specify method
knowledge adequately because it allows transitions which are
“unconnected” to states. This distinction between states and
transitions could be made with the first version of the metamodel since in the
ER model relationships can exist only when related to entities. This constraint
is thus inherent in the ER model (a basic semantic property of the ER model,
Brodie 1984). Moreover, other method knowledge related to state modeling with
object-oriented methods is not defined adequately in either of the versions. For
example, mandatory action names, unique state names, and the requirement that
every class must be specified with state models are not captured with the ER
model.
3.3.3.2 ASDM and the reference model of information system development
ASDM is a semantic data model developed at the University of
St. Gallen and it has been used to describe the reference model of ISD (Heym and
Österle 1992, Heym 1993). ASDM has also been used for metamodeling
according to the rules defined in the reference model (Heym 1993). The reference
model includes the widest range of method knowledge as it aims to cover other
knowledge in addition to that defined in modeling techniques (part of
deliverable model of the reference model). These extensions, excluded here, deal
with the ISD process, versioning of metamodels, guidelines for integrity, and
method related contingencies. Each of these is also represented with different
metamodeling languages. Based on the reference model another, existing, metaCASE
tool was used to develop a tool called MERET (Heym and Österle 1993), which
could represent and compare methods, but not implement them into a CASE
tool.
ASDM is used as a notation to metamodel modeling
techniques (cf. Heym and Österle 1992). The notation of the language
follows the ER model and initially Chen’s (1976) version of ER model was
used to define methods. The extensions in ASDM deal with inheritance,
aggregation and identifying different concepts in the modeling techniques. These
concepts are subtyped from an entity type. Because of these extensions, our
state model example can be specified more adequately than with the standard ER
model (cf. Figure 3-6).
FIGURE 3-6 A metamodel of a state model defined with ASDM
(adapted from Heym 1993, p 210).
Although the same entity symbol of ASDM is applied for
most of the method concepts, the reference model classifies them into
meta-entity types, meta-relationship types and meta-attribute types. Hence, a
‘transition’ is considered as a relationship type and an action as
an attribute type. Furthermore, meta entity types are subtyped into fundamental
entity types (i.e. state) and structural entity types (class name) although this
can not be easily noticed from the graphical metamodel. Typically, structural
entity types are results of an aggregation relationship.
The metamodel based on the reference model shares some of
the limitations already discussed for the ER model. Links between modeling
techniques are not defined, uniqueness of state names is not defined, and
because minimum cardinalities can not be specified we can not define mandatory
relationships. Although the reference model distinguishes techniques and their
components, the “explains” (Heym and Österle 1992, p 11)
relationship does not allow the definition of any rules of the technique-related
connections other than the maximum cardinality. Hence, for example, the rule
that each class must be specified in one or more state models can not be
included in the metamodel. Moreover, the metamodels developed in Heym (1993) do
not include these types of connections. The focus of the reference model, as
reflected in its name, is on more general method knowledge and therefore it
lacks detailed metamodeling capabilities. In fact, Heym and Österle (1993)
aim to describe all method related knowledge at a high level of granularity to
understand and compare methods.
3.3.3.3 Object-Property-Relationship-Role model
The OPRR model has been developed by Welke (1988) and
Smolander (1992). The focus of the OPRR model has been from the beginning to
specify single modeling techniques. It extends the largely unspecified
‘role’ concept of the ER model to clarify the way in which objects
participate in a certain relationship. In other words, the role defines what
“part” an object plays in a relationship (Smolander 1992). A role
can have also properties. OPRR applies the same representation as the ER model
and the role type is represented by a circle.
This model forms a specification language for graphical
method representations in the MetaEdit tool (Smolander et al. 1991). MetaEdit
can be applied as a CASE tool (MetaCase 1994), metaCASE tool (Smolander et al.
1991), or even to customize other metaCASE tools (Rossi et al. 1992). To better
address tool implementation and formalization of OPRR Smolander (1992) has added
additional constraints into OPRR, namely identifying properties, a duplication
policy for object types (whether homonyms are allowed), direction for
relationships and modeling technique related data types. A useful feature of
MetaEdit is that a graphical OPRR representation can be built up, and compiled
in this environment at any time during metamodeling. Therefore the
implementation of the CASE tool is easy and straightforward after the graphical
representation of the method in OPRR has been achieved (see Tolvanen and
Lyytinen 1993). This possibility allows testing the metamodel (cf. Figure 3-7)
as a “specification” for IS modeling.
FIGURE 3-7 A metamodel of a state model defined with
OPRR.
Regarding extensions to the ER model, the transition now
has an action, and states are identified based on their names (double lined
ellipse). The duplication policy is also used for states (although not
represented in the graphical notation of OPRR): there can not be two different
states with the same name. In modeling this means that copies of the same state
are allowed, and changing the name of one state is reflected in all copies of
that state. The uniqueness of states would make better sense if a state had
other properties, like actions executed in the state (as in OMT, Rumbaugh et al.
1991).
Because OPRR focuses on specifying single techniques, a
connection between a class and a state model can not be specified. Of course,
the relationship could be specified with a normal OPRR relationship (like with
the second version of the ER-based metamodel) but no distinction could be made
between relationships between techniques and within a technique. Moreover,
mandatory actions can not be specified, nor actions referring to operations of a
class, nor that state names are dependent on the class they belong to. Thus,
according to the OPRR metamodel a state model of another class can not use the
same names for states (referring to different states).
3.3.3.4 Method Engineering Language
MEL is a language for describing and manipulating (i.e.
selecting and assembling) parts of ISD methods. It is designed specifically to
support ME (Brinkkemper 1996, Harmsen 1997). Because of its general focus on
supporting all ME tasks, MEL describes both product (i.e. conceptual structure
and notation) and process aspects of method knowledge. In this sense it is very
similar to ASDM (Heym 1993) although MEL has not been applied so extensively to
model ISD methods. Like ASDM MEL too has a supporting tool, called Decamerone,
for describing methods and customizing a third-party repository (Maestro II).
The selected repository, however, limits the number of possible methods
supported. Therefore Decamerone is limited to combining existing methods which
can be already stored with Maestro II (e.g. the support for object-oriented
concepts has only later been added into Maestro II).
Although MEL is founded on first order predicate logic,
its relation to semantic data models can be easily detected. Moreover, MEL also
includes a graphical modeling language which is a subset of MEL and very similar
to the ER and OPRR models. Figure 3-8 illustrates the metamodel of our example,
both with a textual and a graphical part of MEL. Parts of the metamodel which
are related to guiding the method selection and modeling process are
excluded.
FIGURE 3-8 A metamodel of state model defined with textual
and graphical part of MEL.
As the metamodels illustrate the textual and graphical
part are largely equivalent. Since the graphical part is only a subset of MEL it
is not adequate to define all the method knowledge of our example. The
limitations are similar to the limitations of OPRR. In MEL additional
constraints can be specified with predicate logic. For example, the following
constraint to deny recursion could be added to a transition relationship:
Rule1: forall T1 in transition
forall A1, A2 in State [has_source (T1, A1) and has_target (T1, A2) implies not
(A1=A2)];
These types of additions are possible for all metamodeling
languages, but they provide limited help for method modeling since they do not
guide towards modeling relevant aspects of methods. In other words, aspects
which are not required in ME at all can be defined as well. This is paradoxical
because the aim of methods is to focus attention on relevant aspects of IS, but
on the metalevel (i.e. metamethods) this requirement is often ignored. Moreover,
as already discussed, these extensions do not support maintainability, ease of
use and communication as well as semantic data models.
By inspecting the definition of MEL and example metamodels
it is unclear how all method knowledge related to the example can be specified
with the predicate logic extensions. These include identity and different
scopes: for example that each state must have a unique name among states of the
class, and that actions must refer to operations defined for the related class.
Unfortunately, the metamodels made to illustrate the use of MEL include only a
few examples of detailed metamodels of modeling techniques.
3.3.3.5 ComplexCoveringAggregation
CoCoA (ComplexCoveringAggregation) has been developed to
support conceptualization and data modeling of complex problem domains (Venable
1993). As stated in the name of the model, its extensions deal with modeling
aggregations which cover entities and named relationships, n-ary relationships,
alias naming, and entity categories (through the named roles they participate
in). CoCoA has also been applied in metamodeling (Venable 1993) and method
integration, and is intended to be used as a metametamodel for a modeling tool
(Grundy and Venable 1996). Most of the metamodeling efforts carried out with
CoCoA have focused, however, on data modeling techniques, and larger
metamodeling efforts including whole methods have not, to our knowledge, been
reported.
Since method knowledge can also be considered as a complex
object, i.e. as involving shared method elements and multiple levels of
granularity, CoCoA performs better than the earlier metamodeling languages (cf.
Figure 3-9). The metamodel specifies most of the method knowledge, such as
identification of modeling techniques and their components: that more than one
state model for a class is possible; and that transition relationships are
binary. Furthermore, a covering aggregation is used to describe the components
of the modeling technique (large gray box), and that a class can have several
attributes and operations. Moreover, an “action” alias is used to
denote that class operations are applied in transitions. This means that actions
which are not described as operations should not be possible. However, the
dependency to operations of a state model related class (or its superclasses)
can not be specified.
FIGURE 3-9 A metamodel of a state model defined with
CoCoA.
All method knowledge related to our example, however, is
not specified even with CoCoA. First, no possibility exists to define which
attribute values are mandatory: it should not be possible to define states
without state names, or transitions without actions, but the CoCoA metamodel
does not distinguish between mandatory and optional values. One possibility
would be to model mandatory properties with a single aggregate, like an
attribute of a class, with multiplicity value of one-to-one (1,1). Second, as in
the ER model, the distinction between a transition and a state is not clear
since they are not sub-typed as in ASDM (Heym 1993). However, with a minimum
cardinality the mandatory participation of each transition in both possible
roles is guaranteed. The difficulty to distinguish types which refer to a
modeling technique (e.g. state model) and its components (e.g. state) also
exists because both are represented as entities. Moreover, if the state model
applied n-ary roles, the number of role instances a relationship instance can or
must have can not be specified with CoCoA. Third, there is no specification of
the requirement that a class can not have several different states with the same
name. Implicitly, we can expect that each name must be unique, but CoCoA does
not restrict the scope of instances in which the uniqueness should be valid. For
example, along all class diagrams, classes with the same name typically denote
the same class (e.g. Booch 1991), but several classes can have states named
similarly but which still refer to different states.
3.3.3.6 Nijssen’s Information Analysis Method
NIAM (Nijssen’s Information Analysis Method) has been
developed primarily to support information analysis (Verheijen and Van Bekkum
1982, Nijssen and Halpin 1989) but it has also been applied in several
metamodeling efforts (e.g. Wijers 1991, Hofstede 1993). It is also a good
example of method evolution since several versions of NIAM exist with a wide
variety in the terminology. In the metamodeling effort we have applied basic
NIAM with the PSM extension (Hofstede 1993). To our knowledge, no modeling tool
using NIAM as a metametamodel is available.
The NIAM/PSM based metamodel of the state model example is
illustrated in Figure 3-10. A state, a transition, a class, an attribute and an
operation are defined as object types and illustrated with circles. As with the
ER model, NIAM does not distinguish between relationships and objects. Although
transitions could be modeled as a relationship, the constraints could not be
specified as it is defined with an object type. Attributes, also called label
types (ter Hofstede 1993) or slots (Verheijen and Van Bekkum 1982) are similarly
represented with circles but the name of an attribute is described in brackets.
FIGURE 3-10 A metamodel of a state model defined with
NIAM.
The linkages between attributes and object types are
described with relationships (also called a bridge type or a fact type) although
one-to-one relationships (e.g. between a class and a class name) could also be
defined by adding the attribute name in brackets below the name of the object
type. The use of relationships has the advantage of illustrating different
constraints. A total role constraint, illustrated as a black dot on the object
or attribute type part of the relationships, specifies a mandatory role. For
example, each state must be described with a state name and all state names must
belong to at least one state. The uniqueness constraint, illustrated with arrows
in role symbols, shows which instances of a role or concatenation of roles must
be unique. For example, only one instance of a class name can appear in the
relationship between classes and class names. The uniqueness constraint is also
used to define that each state can have only one state name, and the same state
name can be used as a value for many states. The rule of the example that a
class may have only one state with a given name could be added to the metamodel
as a relationship with a uniqueness constraint, but then no difference could be
made between different kinds of relationships (i.e. those defined between states
and transitions of STD and those defined for describing constraints). The total
role constraints in input and output roles define that each state has an input
or an output of a transition and that each transition has a state as an input or
output. This specification can not be used as a metamodel for guiding modeling
actively. According to the constraints, creation of the first state would
require creation of a transition which could not be possible because other
states are not available.
Although NIAM can support most constraints of a state
model it does not address multiple interconnected techniques. Therefore, the
metamodel includes PSM extensions (ter Hofstede 1993). Modeling techniques are
defined as schema types and illustrated as rounded boxes around technique
related types. The linkage between state models and classes is described as a
NIAM relationship. This relationship can be distinguished from other
relationships because it is drawn outside the schema types. The total role
constraint and the uniqueness constraint are used to define that each state
model must be related to only one class (i.e. other classes can not refer to the
same state model). Finally, linkages between the values of actions and operation
names can not be defined with the graphical constraints of PSM/NIAM. As with
MEL, additional grammars like LISA-D (Hofstede et al. 1993) have been proposed
and could be used. For example, a correspondence between an operation name of a
class and an action of a transition would then be:
Action of Transition PART-OF
State model is-explosion-of Class has THAT Operation name EQUALS
Action.
3.3.3.7 Graph-Object-Property-Relationship-Role model
GOPRR (Graph-Object-Property-Relationship-Role) has been
developed from the OPRR data model (c.f. Smolander 1991, Marttiin et al. 1995,
Tolvanen et al. 1993, Kelly et al. 1996, Kelly 1997). It has been developed
specifically for metamodeling. The GOPRR model is implemented in a MetaEdit+
metaCASE tool (Kelly 1997, MetaCASE 1996a) which enables GOPRR-based metamodels
to be instantiated at any time in the same tool as a model.
We will apply GOPRR in method analysis and metamodeling in
Chapter 4. Therefore, the GOPRR model is described in more detail in the
appendix. Here we briefly define the main extensions to OPRR. As the extra G in
the acronym indicates, the main extension is a graph metatype. It is a
collection of all other GOPRR types (including the graph type) chunked together
into a modeling technique. The GOPRR model also offers three semantic
relationship types between graphs and other non-property types (i.e. object,
relationship and role types): inclusion, decomposition, and explosion. Inclusion
means that a graph may consist of instances of particular object types,
relationship types and role types. Moreover, an object type in a graph type may
be either decomposed or exploded into another graph.
In addition to the graph metatype, GOPRR extends OPRR with
an abstraction mechanism to generalize and specialize non-properties. It applies
single inheritance, where an ancestor can contain a number of descendants, but
each descendant can have only one ancestor. Cartesian aggregation is defined so
that non-property types can contain any number of property types; in the other
direction, a property type can be shared by many non-property types. GOPRR also
applies cardinality constraints in a different way than in OPRR. In GOPRR,
cardinality defines a minimum and a maximum number of instances of a role type a
relationship type instance may have. In other words, this defines whether
relationships are binary, specific n-ary, or whether some roles are optional.
Other additions of GOPRR include local names for properties and a collection
data type
[14]. These are described in the
example and in the appendix.
Because of these extensions GOPRR can capture almost all
the method knowledge related to our example. GOPRR does not have a standardized
graphical notation (Kelly 1997). Rather, metamodels are specified through forms
represented as windows in MetaEdit+ tool (e.g. Rossi and Tolvanen 1995). One
main reason for this choice is the relatively large number of constraints which
are not best represented with a graphical notation. If they were added to
increase the picturability (cf. Venable 1993) it would make GOPRR-based
metamodel representations inherently complex. Graphical notations have, however,
been implemented for metamodel representations. Following Kelly and Tahvanainen
(1994) and Hillegersberg (1997) we have defined a similar graphical notation to
make metamodels readable and more comparable with notations of other
metametamodels. This notation is used to illustrate the example metamodel in
Figure 3-11.
In the GOPRR representation used, a technique is defined
as a graph type represented with a window symbol. Inclusion is described by
drawing components (i.e. types) inside the window symbol of a technique (i.e.
graph type). The relationship between a property and a non-property includes the
local name of the property in that non-property, whether it is unique there, and
whether it is the identifying property. For example, a class name is defined as
an identifier and is unique among all classes. These constraints are not added
to the property type because GOPRR supports reusability of types and these
constraints may be different in other places where the property type is used
(Kelly 1997). The data type of operations of a class is
‘collection’, and this is illustrated with a double-lined ellipse.
Hence, the metamodel specifies that each class can have a collection of
operations and each operation can be defined through its name and return type.
More generally, a property type can also be linked to GOPRR types other than an
object type.
FIGURE 3-11 A metamodel of a state model defined with
GOPRR.
Property sharing is used in the metamodel to define that
both transitions and operations refer to the same operation name. For the
purpose of state modeling, an operation is called an action by defining the
local name. Modeling the life-cycle of classes with state models is specified
with an explosion link represented as a dotted line with a cross in a box and an
arrowhead from the class to the state model.
The GOPRR metamodel, however, does not define all method
knowledge. Mandatory actions and state names can not be defined because the
metamodel does not differentiate between optional and mandatory values. A recent
addition to GOPRR for checking property values, however, can support the
definition of mandatory properties. The uniqueness of state names depending on
the class can not be specified because the uniqueness constraint is relevant
among all instances (as with class names). Mandatory explosions (i.e. each class
has at least one state model) and that only one class can refer to a single
state model can not be specified. Moreover, although operation name and action
refer to the same property type, similarly to the CoCoA alias, no restriction
can be defined on the population of property type values. Hence, an action in a
state model can refer to any operation defined for any class. The correct
definition should be that an action can refer to any of the operations of the
related class or its superclasses.
3.3.4 Constructs of metamodeling languages
In this section we defined metamodeling in the context of ME
and described a set of metamodeling languages. Our focus is on semantic data
models because of their support for communication, ease of use, and a formal
enough basis to enable metamodel-based tool adaptation.
The set of metamodeling languages is illustrated by
modeling a small example of method knowledge. With respect to our first research
question of representing method knowledge “completely”, the
metamodeling exercises were used to analyze the modeling power of the
metamodeling languages. This revealed both similarities and differences among
the constructs provided for metamodeling, although the example was so small that
not all limitations or strengths could be described. This would require modeling
a larger sample of ISD methods, as performed in Chapter 4. The metamodeling
exercises, however, clearly showed the limitations of the basic ER model and
showed how additional constraints are used to model methods.
In this thesis our main interest is on finding essential
metamodeling constructs which could be used as predefined and generalized
(meta)knowledge about modeling techniques. In other words, constraints like
cardinality in the ER model and explosions in GOPRR already guide engineers to
identify, capture and construct certain aspects of method knowledge (i.e. for
each relationship at least the maximum cardinality must be examined). The
currently used constraints, however, are not adequate as the metamodeling
example clearly demonstrates. Hence, instead of applying programming languages
or additional grammars (e.g. Harmsen 1997, (ter Hofstede et al. 1993, Saeki and
Wenyin 1994) we seek constructs which are relevant in metamodeling with semantic
data models. The limited number of metamodeling constructs will help method
engineers to focus on perceiving known rules about method knowledge, speed up
the metamodeling process, and support communication among the participants in ME
efforts. Hence, our aim is to find constructs specific to our domain of
metamodeling, in the same way as developers of ISD methods try to find
constructs specific to their domains of application.
[14] Recently GOPRR has been
extended with multiplicity constraints, and with checking of property values
through a constraint specification language (Kelly 1997).