1 Generating Real-Time Systems Development Environment
Using Metaview
2 Transformations Using a Meta-system Approach To Software
Development
3 Complexity Metrics For Systems Development Methods
and Techniques
4 Software Metrics Using a Metasystem Approach to Software
Specification
5 MetaEdit-A Flexible Graphical Environment for Methodology
Modelling
6 MetaEdit+ A Fully Configurable Multi-User and Multi-Tool
CASE and CAME Environment
7 Modelling Requirements For Future Case: Issues and
Implementation Considerations
In the meta level, Metaview defines a meta model-EARA/GE model to support the description of a large class of development environment. EARA/GE (Entity-Aggregate-Relationship-Attribute with Graphical Extension) model is based on EARA model which includes the abstraction mechanisms of classification, aggregation and generalization. These features are needed to adequately model the sophisticated nature of the relationships in the environment level. There are no constraints in the EARA model, so a special language for expressing the constraints, ECL(Environment Constraint Language) is designed. In order to support graphics-based design, a graphical extension is provided. This GE extension uses diagrams, icons, edges, labels, handles, properties and pictures to represent different concepts of EARA. The meta level also contains tool definer for creating the generic tools. By specializing routines and definitions in the Tool Components Library, the Metaview Tools Library is created for tools configuration in environment level.
At the environment level, the environment definer uses the meta model to define the environment model. The environment model definition is expressed in an Environment Description Language (EDL). An environment definer can define different environments for different methodologies. After EDL is compiled and each tool in the environment is configured by the tool definer, the environment is ready to be used at the user level.
At the user level, the user (system developer) selects a particular specification environment which includes an environment model analyzer and environment tools. All of these facilities are used to store and analyze specifications for the system the user wants to define.
The flexibility of Metaview makes users use different environments in one CASE system easily. However, defining different environments in Metaview by EARA/GE model is not an easy task. EARA/GE model is simple to use but may be difficult to represent some complex environments. Under such conditions, good skills of definers are needed to model the environment in a efficient way.
The source and target environments for transformation should be defined by a meta-model description. Here they are defined by the EARA model. This makes the transformation approach more general and easier to be modified. The rules of transformation are defined in a environment transformation language(ETL). When executing the transformation rules, the source environment is analysed, and source objects are mapped to the target environment, then the target environment is analysed and completed. During these steps, interventions of designer are needed.
After the target environment is transformed, the designer can improve and optimize it. Much information which does not exist in the source environment should also be specified.
Two sets of metrics, which measure the complexity of single techniques, and of complete systems development methods, are proposed. These metrics provide a relatively fast and simple way to analyze the descriptive capabilities of a technique or method.
The measure of relative complexity of methods and techniques based on metamodels is significant because it can affect the learnability and ease of use of a method. Generally speaking, the more expressive method may be harder to learn, whilst being more effective for experienced users if the method's conceptual complexity does lead to greater expressive power. However, some limitations still exist in this method. First, OPRR can not represent constraints of some techniques. Second, OPRR can not deal appropriately with the interconnection among techniques. Third, the metrics by themselves can not be used to judge the ``goodness'' or the appropriateness for the task of the method, they should be combined with the values of other measurement methods.
This paper focuses on how metrics can be incorporated into software specification environments. With this approach, new metrics computations can be easily added and existing metrics can be easily altered, as part of the specification environment.
This paper uses a metasystem Metaview for specifying a particular specification environment. The metrics for the environment are defined using an extended version of ETL, and are associated with the basic objects of the Metaview's meta-metamodel-EARA model, namely entities, relationships and attributes. Metrics are also stored in the specification database as attributes. When each of the objects of the model is created or changed, the associated metrics are updated automatically. Next, working in a bottom-up fashion, aggregate metrics are updated at the aggregate level, and finally project metrics are updated at the project level.
Future research includes integrating product and process metrics during development, using metrics to help the transformational approach in forward and reverse software development, integrating top-down definitional approaches in Metaview, and the analysis of composite metrics.
MetaEdit is a multilingual environment offering a changeable methodology modelling language. This is achieved by offering a meta-meta model over the meta-model. OPRR(Object-Property-Role-Relationship) is selected as the meta-meta model of MetaEdit because of its good express power and simplicity. In the OPRR model, object is a thing which exists on its own, property is a describing characteristic associated with other meta types(object, relationship, or role), role is a link between an object and a relationship, and relationship is an association between two or more objects.
The design principles of MetaEdit is to separate the conceptual content of a methodology and its representation form. The type level and the instance level should also be separated. Based on these principles, MetaEdit support flexible graphical representation of a specific concept.
Three design principles ensure MetaEdit+ achieving the above goals: data independence, representation independence, and level independence. Data independence is defined in a similar way as in traditional database theory i.e. tools operate on design information without ``knowledge'' of its physical organization, or logical access structure. Representation independence allows conceptual design objects to exist independently of their alternative representations as text, matrix or graphical representations. Based on this principle, new tools can be added because each one is only responsible for its own paradigmatically different view on the same repository data. Level independence means that the environment follows a symmetrical approach in its treatment of data and meta data. Accordingly, the specifications of methods and their behaviours can be managed and manipulated in a similar way to any other objects in the environment.
A multi-level and Client/Server architecture is used in MetaEdit+ to support the three design principles. The lowest level, repository is on server side. It holds all the data contained in models and metamodels, in addition to user and locking information. All concurrency control is also processed in the repository. The middle level, MetaEngine, is on client side, which handles all operations on the data in repository through a service protocol. Tools manipulate repository data and communicate with each other only via the MetaEngine. The highest level, tools level, implements all concrete works such as environment management, model editing, model retrieval, and method management.
MetaEdit+ uses the GOPRR conceptual data model as a universal and generic meta-metamodel i.e. as a sole language to specify methods. GOPRR extends OPRR, allows multiple representations of the same conceptual object and even different graphical representations of the same object in the same representation paradigm. Aggregations are also supported by graph notation in GOPRR model.
To ease the effort of new tool generation, method management tools support alternative ways of method engineering such as creation from scratch, or reuse existed components or methods.
The next generation CASE environment should support flexible models by a meta-metamodel. The GOPRR is a good candidate for this requirement because of its express power and simplicity.
Three interrelated levels of modelling requirements are proposed. First, when data of Information System (IS) are represented by a single method, the method should have enough power to express complex relationships among objects such as classification, generalization and recursive structure. Domain knowledge and operational semantics are also needed in the method representation. Second, when data of IS are represented by multiple connected methods, different checks like verification and validation are important to ensure the consistency among different representations. Third, to support multiple users, CASE is required to describe and maintain knowledge of their environments such as user role models, method usage knowledge, guidelines for different situations. Communication models should also be provided to support user-to-user communications.
A three-level architecture is proposed to support the above requirements. They are meta-meta level, ME level (meta level) and ISD level (design level). Different methodologies and mechanisms to integrate them are defined in the meta-meta level. In the meta(ME) level, three models are described. Meta-datamodel contains specifications of techniques of a methodology concept space. Activity model guides the users through the development phases and helps the transformations and checking. Agent model defines the access to the models and coordinates tasks among users. In the design(ISD) level, the IS model represents the design information of an existing IS. In addition to the design data, the guidance for design, the user configuration and the organization are also included in the IS model.
Metacase development changes this situation. The meta-model of a metacase environment can be used to represent many methodologies [3][4][7]. Users can select a preferred methodology in their work. The tools that operate on design information need not have the ``knowledge'' of its physical organization, or logical access structure [4]. The uniform and formal representations of methodologies by a meta-model make the verification, validation and transformation possible and easy to implement. This is like after a database is used, applications can operate and share data easily.
MetaEdit+ [4] also proposes the representation independence which means the conceptual design objects exist independently of their alternative representations as text, matrix or graphical representations. The same design data can be operated by different tools. A user can select the tools that he needs and does not care about details in the design model. This is like the three model structure (user model, logical model and physical model) of database theory. The user model is independent of the logical model. Application can select a needed user model and does not care about the details of the logical model.
The level independence of MetaEdit+ means that the environment follows a symmetrical approach in its treatment of data and meta data. The specifications of methods and their behaviours can be managed and manipulated in a similar way to any other objects in the environment. Similarly, there is only one concept in a relational database-table. Information of tables in the database and all user data are all stored in tables. Accordingly, the system data and user data can be managed and manipulated in a similar way.
From the similarity of the past, we can expect that there would have further similarities between them in the future. For example, database theory has developed toward an distributed and object-oriented database. So we can try to describe how CASE can also develop toward these two directions.
[2] Germinal Boloix, Paul G. Sorenson, J. Paul Tremblay. Transformations Using a Meta-system Approach To Software Development
[3] Dinesh Gadwal, Piotr S. Findeisen, Paul G. Sorenson, J. Paul Tremblay, L. Beth Millar. Generating Real-Time Systems Development Environment Using Metaview
[4] Steven Kelly, Kalle Lyytinen, Matti Rossi. MetaEdit+ A Fully Configurable Multi-User and Multi-Tool CASE and CAME Environment
[5] Pentti Marttiin, Kalle Lyytinen, Matti Rossi, Veli-Pekka Tahvanainen, Kari Smolander, Juha-Pekka Tolvanen. Modelling Requirements For Future Case: Issues and Implementation Considerations
[6] Matti Rossi, Sjaak Brinkkemper. Complexity Metrics For Systems Development Methods and Techniques
[7] Kari Smolander, Kalle Lyytinen, Veli-Pekka Tahvanainen, Penttl Marttiin. MetaEdit-A Flexible Graphical Environment for Methodology Modelling.  
Deview is a project involves studying various aspects of software engineering with a focus on meta-systems.
    Click HERE to view information about Deview papers
MetaView is a project of
Computer Science Department of University of Alberta
    Click HERE to
download papers about MetaView
Students' summary of MetaView system who took this course before