1.2 MetaEdit+ — a brief introduction
If you already have some experience with CASE tools, the
fastest way to introduce you to the MetaEdit+ environment is to explain how it
differs from other CASE tools. In the following we explain the key features of
MetaEdit+ that are often not found in other CASE tools:
 | multiple
projects |
 | multiple
methods |
 | multiple
users
|
 | multiple
tools |
 | multiple
platforms |
 | customisability
of the
environment |
1.2.1 Multi-project
In MetaEdit+ you can work in multiple projects, each of which
can consist of hundreds of models. You can work in several parallel projects at
the same time, and you can reuse and share data between these projects. Projects
can be based on the same or different methods, and users can be assigned access
to some projects and denied access to others.
A repository is composed of areas, corresponding to
projects: a group of models and their contents that are used together. In the
standard repository (named ‘db’ in the installation package), there
is a set of predefined projects each consisting of one of the methods listed in
Table 1-1. Furthermore, in the ‘demo’ repository there are also
example projects, like ‘Tutorial’, that include no methods
themselves, just models based on some methods in other projects (in MetaEdit+
these models are called graphs).
1.2.2 Multi-method
MetaEdit+ supports a wide variety of information system
development methods. Every version of MetaEdit+ already includes a large set of
predefined methods
. The table on the
following pages summarises these methods. Basically, the predefined methods
include support for four different modelling areas. These are business
modelling, planning and management of system architectures, structured methods,
and object-oriented methods.
As can be seen from the table, the predefined method
support in MetaEdit+ is extensive. One of the most powerful features of
MetaEdit+ is that you can use them all, even at the same time. Multi-method
features allow you to link and reuse data across different methods, maintaining
a flow of information between them. These features are explained in Section
5.3.
MetaEdit+ can offer such flexible method support because
it is based on metamodels. A metamodel
is a model of a
design method. By specifying a metamodel of a method into MetaEdit+, you
promptly get a CASE tool to support that method. You can view all existing (and
new) metamodels by using the method development tools. The metamodel-based
architecture also makes it very easy to modify existing methods in MetaEdit+.
The standard version of MetaEdit+ includes the ability to make modifications to
method symbols, dialogs and reports: for more extensive modifications or to add
new methods you need MetaEdit+ Method Workbench; alternatively MetaCase
Consulting may undertake such modifications or additions as consultancy
work.
Method
|
Techniques
|
Value chains and value
systems
(Porter)
|
Value Process Model
Critical Success
Factors
|
Activity Analysis
(Goldkuhl)
|
Activity Model
Goal
List
Problem List
|
Business Systems
Planning
(IBM)
|
Process/Organization
Matrix
Process/System
Matrix
Process/Entity
Matrix
System/Entity
Matrix
System/Organization
Matrix
Problem Table
|
Object Modelling Technique
(Rumbaugh et
al.)
|
Class Diagram
Data Flow
Diagram
State Diagram
Use-Case
Model
|
Object-Oriented
Design
(Booch)
|
Class Diagram
State Transition
Diagram
Object Diagram
Module
Diagram
Process Diagram
|
Object-Oriented Analysis and Design
(Coad/Yourdon)
|
Object Diagram
Object State
Diagram
Service Chart
|
OODLE
(Shlaer/Mellor)
|
Information Model
State
Model
Action Data Flow
Diagram
Object Access Model
|
Method
|
Techniques
|
Fusion
(Coleman et al.)
|
Object Model
Operation
Model
Object-Interaction
Graph
Visibility
Graph
Inheritance Graph
|
Moses
(Henderson-Sellers)
|
O/C Model
Event
Model
Inheritance Model
|
Object-Oriented Systems
Analysis
(Embley et al.)
|
Object-Relationship
Model
Object-Behavior
Model
Object-Interaction Diagram
|
Structured Analysis and
Design
(Yourdon)
|
Data Flow Diagram
Entity Relationship
Diagram
Structure Chart
State
Transition Diagram
|
Real-Time SA/SD
(Ward-Mellor)
|
RT Data Flow Diagram
Entity
Relationship Diagram
Structure
Chart
State Transition Diagram
|
Unified Modeling Language
(Booch et
al.)
|
Class Diagram
Use Case
Diagram
Activity
Diagram
Collaboration
Diagram
State Diagram
Object
Diagram
Component
Diagram
Deployment
Diagram
Operation Specification
|
1.2.3 Multi-user: the Object Repository
MetaEdit+ is a CASE environment that can run either as a
single-user workstation environment, or simultaneously on many workstation
clients connected by a network to a server. The basic architecture of the
environment is illustrated in
Figure 1-1.
The heart of the MetaEdit+ environment is the Object
Repository
. In the multi-user version this is located on a
server;
in the single user version it is in the same
computer as the client part of the environment.
The repository contains all the information about the
methods and models available, including all their elements and properties.
Hence, modification of system designs (or even methods) in one tool or MetaEdit+
client is reflected everywhere it appears, guaranteeing consistent and up to
date information. Similarly, reporting and code generation are based directly on
information stored in the repository.
In the multi-user environment, when one client commits his
changes those changes are available to all other clients: the other clients will
read the changes the next time they start a transaction. Thus very close
co-operation is possible between users working on related data. Simultaneous
changes by different users to the same data are prevented by locks; these
however allow a high permeability of access, in other words only directly
dangerous simultaneous modifications are forbidden — you can work without
continually being told that you cannot access some data because another user is
using it. Reading data is always allowed, regardless of other user’s
operations.

Figure 1-1. Architecture of MetaEdit+.
Each client of
MetaEdit+ offers an integrated set of tools. A tool is a type of window with
associated functionality. These tools are:
 | Launcher,
|
 | Diagram
Editor, |
 | Matrix
Editor, |
 | Table
Editor, |
 | Browsers, |
 | Info
Tool, |
 | Component
Selection
Tool, |
 | Report
Browser, |
 | Method
development tools. |
The tools, except for the
method development tools, are discussed in more detail in Chapters
2,
3
and
4. Basically, each tool offers a
specific functionality, whilst still following some general principles common to
all tools of MetaEdit+.
Please note that the method development tools and their
use are described in a separate manual: ‘MetaEdit+ Method Workbench
User’s Guide’. Similarly, extra tools for the MetaEdit+ system
administrator are described in the ‘MetaEdit+ System Administrator’s
Guide’.
1.2.4 Multi-tool
In MetaEdit+ you can choose what kind of tools you want to
use. You can view the same data as a graphical diagram, as a matrix, or as a
table, changing the view according to your needs.
Figure 1-2
illustrates this multi-tool feature. It shows the three editors of MetaEdit+
(Diagram Editor, Matrix Editor and Table Editor) with each tool containing the
same graph. Thus, the Diagram Editor shows a graphical specification of a Data
Flow Diagram of a ‘Sales system’, and the Matrix Editor provides a
matrix view on the same graph. Further, the same graph is also represented in a
Table Editor showing all the processes of the ‘Sales
system’.
All the tools are integrated through the Object
Repository, which maintains and enforces the consistency between the tools.
Suppose that you want to change a name of the process ‘Verify
orders’ at the Data Flow Diagram in Diagram Editor. When you accept the
change of the name, other tools react to the change and show the modifications
accordingly.
Similarly, all the editors have common user interfaces and
functionality, and only those parts that differ because of the nature of the
tool (i.e. diagram, matrix, table) are different. This eases the learning and
use of different tools in MetaEdit+.

Figure 1-2. Three editors of MetaEdit+.
1.2.5 Multi-platform
MetaEdit+ is designed to be platform independent and thus
follows the principles of open systems to work on all major
platforms
. Full platform independence is supported for
both the environment and the data. Currently MetaEdit+ is available on the
following platforms:
Platform
|
Hardware
|
Operating system
|
Windows
|
Pentium
|
Windows 95 or later
|
Windows NT
|
Pentium
|
Windows NT 4.0 or later
|
Linux
|
486, Pentium
|
Red Hat Linux 5.2 or later
|
Solaris
|
Sun SPARC workstation
|
Solaris 2.5 or later
|
HP-UX
|
HP 9000 Series 700 workstation
|
HP-UX 10.02 or later
|
Customisability
MetaEdit+ is a metaCASE tool
. That is,
it is a CASE tool that can be extensively modified — customised — to
be used with different development methods, their concepts, languages, graphical
representations, operations, connections to other methods, reports and code
generation. All these features are available in the Method Workbench version of
MetaEdit+; many are also available in the standard CASE version. In both cases,
you must belong to the group of those assigned the right to metamodel, specified
by your system administrator.
MetaEdit+ can be customised in the following
ways:
 | Available
methods
|
| If
none of the methods currently supported in MetaEdit+ is suitable for you, you
have all the capabilities to develop your own methods and CASE tool support for
them. MetaEdit+’s configuration capabilities allow you to define modelling
languages, operations and connections to other methods. To modify existing
methods or add new ones you need to have the Method Workbench version of
MetaEdit+; with the CASE version the system administrator can remove methods,
but nobody can modify or add
them. |
 | Graphical
representations
|
| As
different dialects of methods use different notations and
symbols, MetaEdit+ allows you to change and modify graphical representations,
whether methods use graphs that are diagrams, matrices, or tables. Users with
metamodelling rights can design and modify graphical representations with the
Symbol Editor; existing representations can be modified with the CASE version of
MetaEdit+. |
 | Dialogs |
| You
can modify the contents and appearance of property dialogs
used when MetaEdit+ is used as a CASE tool. As with graphical representations,
users with metamodelling rights can modify dialogs with the CASE version of
MetaEdit+. |
 | Report
customisation |
| Report
customisation and the use of user-defined
reports is possible with MetaEdit+ Report Browser. With
this tool you can choose which parts of your design data you want to have
written out, in which format and to which destination (file or output window).
You can save these report definitions, and run them on your design models to
produce output in the format you
specified. Reports
can be customised with the CASE version of MetaEdit+ and any user can execute
created or modified reports, but you can only save them to the repository if you
have metamodelling rights. |