7.1 Modeling languages for method engineering
The first contribution of the thesis deals with extended
support for metamodeling. Before proposing metamodeling constructs we surveyed
method knowledge and described method-tool companionship. Survey into method
knowledge was needed to understand various types of method knowledge and explain
the focus of method engineering taken in the thesis: modeling conceptual
structures behind modeling techniques. The concept of method-tool companionship
was applied to describe how tools can support method use through abstraction,
checking, form conversion and review. Although we view metamodeling in the
context of modeling tools our interest is on metamodeling. The reason why we
have studied metamodels in tools is that metamodels which do not influence ISD
have a limited impact. Conversely, modeling of ISs is more beneficial if the
models can be applied for implementing ISs. Among the categorical choices in
metamodeling languages we have focused on semantic data models. They are most
widely applied in large metamodeling efforts and as metametamodels of metaCASE
tools and repositories.
Extended support for metamodeling was developed by
proposing new constructs for metamodeling languages. We found a limited set of
constructs which can help method engineers to specify relevant aspects of
modeling techniques. It is clear that unlimited support for all types of methods
is impossible. Unlike with many other metamodeling languages we did not try to
build a language which is as powerful as possible. Rather we sought to balance
power and ease of use so that it can be used with minimal effort but the
language is at the same time powerful enough to model methods. In fact, ME has
the same objective: to develop methods which help users to perceive and specify
relevant aspects of object systems rather than model “everything”.
The examination of metamodeling constructs was carried out
by conducting a content analysis of a chosen sample of the method literature.
This type of an inductive approach has not been generally used in such an extent
to develop metamodeling languages. In all, we analyzed 17 methods consisting of
72 modeling techniques of which 3 methods and 19 modeling techniques are
reported in detail in this thesis. The methods covered different ISD phases
including business modeling, requirements engineering, system analysis and
system design methods. The literature described the concepts, rules, notations
and possible requirements in building tool support for methods. The data was
classified into distinct types allowing us to simplify and systematize
conceptual structures of methods. In our case, the classification of method
knowledge was based on the metamodeling languages supported by metaCASE tools.
The metamodeling approach allowed us to capture and understand method knowledge
and the metaCASE tools allowed building, checking, and querying on metamodels,
as well as to make tool adaptations. Hence, as a by-product of the analysis, we
developed a modeling tool for each method.
The content analysis allowed us to categorize method
knowledge and identify constructs which are needed to model methods more
completely. The metamodeling constructs were divided into those necessary for
modeling single techniques and those needed to integrate multiple techniques.
Furthermore, we identified varying scopes in method name spaces and crafted
checking modes for each construct.
The proposed metamodeling constructs lead us to assess
available metamodeling languages. This assessment revealed that current
methodical support for method modeling is modest. While in recent years some
progress has been made in outlining conceptual and theoretical principles for
metamodeling and metamodel based tools (for a survey see Kelly 1997, Tolvanen et
al. 1996) we found that available metamodeling languages do not provide adequate
ME support. Having evolved from general purpose data models or data modeling
languages, existing ME languages are capable of expressing specific semantic
constraints imposed by the business data modeling domain. Many of the languages
promoted for ME are applied on ISD as well and the required metamodeling
constructs are quite different than those needed in IS modeling. As a result of
the assessment, we identified structures of method knowledge which could not be
represented adequately with the studied metamodeling languages. For example,
metamodeling languages offered limited constructs for modeling interconnected
techniques and the identified scopes of method knowledge were inadequate. In
this sense, the content analysis of method literature contributed to the current
understanding of detailed method knowledge. It revealed several aspects of
method knowledge which have not been identified by the developers of
metamodeling languages. The evaluation also lead us to examine the limitations
of semantic data models as a foundation for metamodeling. With respect to
modeling tools, the semantic data models are powerful in describing static
aspects, but poor in describing dynamic rules applied in modeling
techniques.
The results of the evaluation can be applied by
researchers and practitioners alike: developers of metamodeling languages can
use them for analyzing and extending their languages; tool vendors can apply
them for extending their metametamodel based tools; and method engineers can use
them to identify method knowledge which is neglected. Extended metamodeling
constructs allow organizations to better specify, understand, analyze and refine
methods.