Skip to content

Metacase Study Guide

Testimonials

At MetaCase, our users are among the smartest people in this industry, so we take their opinions seriously. We hope you'll give them a minute to tell you why MetaEdit+ is simply the best DSM tool on the market.

"Even as a beginner with MetaEdit+, I could define a domain-specific activity language in about six hours- design, testing and one failed trial included," says Laurent Safa, Panasonic.

"Modeling with MetaEdit+ was indeed quite convenient and a lot easier to accomplish than trying to achieve the same results with Eclipse GMF," Ulf Hesselbarth, Siemens

"Extremely user-friendly maintenance of metamodels, especially when compared to Microsoft's DSL Tools," says Risto Moilanen, University of Jyväskylä.
"MetaEdit+ has been proven the most stable of the available frameworks and provides the best support for defining concrete syntax," Kirsten Mewes, Verified Systems International GmbH
"MetaEdit+ is a versatile language workbench that enables building high quality visual DSLs for any domain. The tool offers DSL developers an impressive productivity through an optimum set of concepts, which allow light-weight, agile and fast DSL development and evolution, " Andriy Levytskyy, Luminis
"The DSM solution makes development significantly faster and easier than the old manual coding practices," Jari Lehto, Nokia Siemens Networks

"A detailed evaluation proved the benefits of the DSM solution: an increase of at least 750%in developer productivity, and greatly improved quality in the code and development process," Juha Kärnä, Polar

"MetaEdit+ is a great tool — a powerful and flexible environment where it is easy to create your own modeling languages and editors. My personal favorite is the ability to effectively constrain how concepts can be used, allowing you to make simple, intuitive editors where users can create models without thinking. This is exactly how modeling should work," Stephan Schulz, CTO, Conformiq

"MetaEdit+ is a powerful and extremely user-friendly DSL environment," De Jiu Chen, KTH

"MetaEdit+ is the most sophisticated DSM tool," writes Scott Ambler.

"MetaEdit+ has eliminated our need to outsource software development activities," says Akihito Iwai, Chief Engineer, Denso.

"Where we have applied DSM we have seen our development costs reduced by as much as 95%. With MetaEdit+ we generate full production quality code from domain-specific models," Hannu Savela, Ouman

"Based on our tool comparison and experiences, MetaEdit+ is a good environment for the development of a DSML and code generator," writes Sanna Sivonen, VTT

"MetaEdit+ provides convenient tool support for domain (meta-)modeling as well as for the definition of concrete instance data, which is simplified by a domain-specific graphical user interface. Easy to learn — easy to use!" Cord Giese, Research Analyst, Delta Software Technology

"I absolutely love MetaEdit+ and I think that it is the best in its class by far," Peter Madziak, ObjectSharp Consulting

"MetaEdit+ is by farthe most advanced tool in the graphical DSL category,"writes Markus Völter, Author of Model-Driven Software Development (2006)

"Greatly speeds up the development process and communication with end-users," M. Hänninen, Enpocket.

"It's now easy to make modifications when the AUTOSAR version is changed — implementation and testing requirements are both reduced," says Yohsuke Satoh, Engineer, Denso.

"I created a modeling language to demonstrate SIP-based Service Creation during one afternoon. The speed and ease of use of MetaEdit+ is key in showing telco operators and equipment vendors the value of model-driven development with a tailorable service creation environment," Tony Sloos, CTO, ICT Solutions.

"Wow! Superb customer service, what else can I say?" Olli Savolainen, Stadia.

"In contrast to Xtext, GMF and Rascal, MetaEdit+ provides a development standard on an industrial level," Johannes Feuser, Univ of Bremen
"MetaEdit+ is still for me the reference implementation for DSM tools and has solved problems such as being able to load old models after upgrading the metamodel that most other vendors haven't come to grips with yet," writes Peter Bell, CEO/CTO, SystemsForge

"I've been working with MetaEdit+ for a while now and it is absolutely brilliant. The support is great and the flexibility provided is beyond excellent," says Patrick Phelan, Telecommunications Software & Systems Group, Waterford Institute of Technology.

"I can't tell you how much I enjoy working with MetaEdit+. It's an amazing tool, and really helpful to me: all in all a joy to work with." Daniel Gross, Ph.D. (University of Toronto)
"MetaEdit+ has proved to be a mature tool that offers a simple and elegant approach to develop DSLs", write Nelly Bencomo and Gordon Blair, Lancaster University.

Want a different perspective? Why not read what top industry analysts have to say about MetaEdit+ and DSM, or peruse the awards that MetaCase and MetaEdit+ have been honored to receive over the years. If you want something more concrete, feel free to delve into some detailed case studies or look at some examples of DSM.

A metaCASE tool is a type of application software that provides the possibility to create one or more modeling methods, languages or notations for use within the process of software development. Often the result is a modeling tool for that language. MetaCASE tools are thus a kind of language workbench, generally considered as being focused on graphical modeling languages.

Another definition: MetaCASE tools are software tools that support the design and generation of CASE tools. In general, metaCASE tools should provide generic CASE tool components that can be customised and instantiated into particular CASE tools. The intent of metaCASE tools is to capture the specification of the required CASE tool and then generate the tool from the specification.[1]

Overview[edit]

Quick CASE tools overview[edit]

Building large-scale software applications is very complicated process which is not easy to handle. Software companies must have good system of cooperation throughout developing teams and good displicine is highly required.

Nevertheless, using CASE tools is modern way how to speed up software development and ensure higher level of application design. However, there are another issues which has to be kept in mind. First of all usage of these tools doesn't guarantee good results because they are usually large, complex and extremely costly to produce and adopt.

CASE tools can be classified as either front-end or back-end tools [2] depending on the phase of software development they are intended to support: for example, “Front-end’ analysis and design tools versus “Back-end” implementation tools. For a software engineers working on a particular application project, the choice of CASE tool would typically be determined by factors such as size of project, methodology used, availability of tools, project budget, and numbers of people involved. For some applications, a suitable tool may not be available or the project may be too small to benefit from one.

CASE tools support a fixed number of methodologies but software development organizations dynamically change their adopted methodologies.

Quick metaCASE tools overview[edit]

MetaCASE products are usually highly specialised, application development environments which produce a custom tool(set) from a high level description of the required tools. [3][4]

So in other words metaCASE technology approaches the methodology automation from a dynamic perspective.

MetaCASE tools allow definition and construction of CASE tools that support arbitrary methodologies. A CASE tool customizer first specifies the desired methodology and customizes the corresponding CASE tool. Then software developers use that CASE tool to develop software systems. An advantage of this approach is that the same tool is used with different methodologies, which in turn, reduces the learning curve and consequently the cost. Any desired methodology can be automated or modified by the developing organization which provides a dynamic capability in today's dynamic and competitive world. From another perspective this technology can be used as a practical teaching tool considering the shortened length of development and learning times that suits academic course periods.

Differences between metaCASE and CASE tools[edit]

Most CASE tools for object-oriented modeling are heavily based on the UML method. A method also dictates other CASE tool functions, such as how models can be made, checked and analyzed, and how code can be generated. For example, a tool can generate CORBA IDL definitions only if the modeling language can adequately specify and analyze CORBA compliant interfaces. If the tool (and method) does not generate them, it offers very little, if any, support for work on interface design and implementation.

When using methods developers often face similar difficulties. They can not specify the domain and system under development adequately because the method does not provide concepts or notations for the task at hand. End-users may find the models difficult to read and understand because they are unfamiliar with the modeling concepts. Typically they also find it difficult to map the concepts and semantics used in the models to their application domain. After creating the models, which fail even to illustrate the application domain adequately, the tool does not provide the necessary reports nor does it generate the required code.

What is needed then is the ability to easily capture the specifications of any method and then to generate CASE tools automatically from these specifications. Later when the situation in the application domain evolves and the development environment changes you may incrementally update the method support in your CASE tool. This is exactly what metaCASE technology offers.[5]

How metaCASE works[edit]

Traditional CASE tools are based on a two-level architecture: system designs are stored into a repository, whose schema is programmed and compiled into the CASE tool. This hard-coded part defines what kind of models can be made and how they can be analyzed. Most importantly, only the tool vendor can modify the method, because it is fixed in the code. MetaCASE technology removes this limitation by providing flexible methods.

This is achieved by adding one level above the method level.

MetaCASE tools are based on a three-level architecture:

  1. The lowest, the model level, is similar to that of CASE tools. It includes system designs as models.
  2. The middle level contains a model of the method, i.e. a metamodel. A metamodel includes the concepts, rules and diagramming notations of a given method. For example, a metamodel may specify concepts like a class and an inheritance, how they are related, and how they are represented. However, instead of being embedded in code in the tool, as in a fixed CASE tool, the method is stored as data in the repository. The use of metamodels has recently become more popular. Many method books now include metamodels of their method, and several important innovations, such as XMI, are metamodel-based. Unlike a CASE tool, a metaCASE tool allows the user to modify the metamodel. Hence, metaCASE is based on the flexibility of the method specifications.
  3. This is achieved by having a third, higher level that includes the metamodeling language for specifying methods. This level is the hard-coded part of the metaCASE software.

All the three levels are tightly related: a model is based on a metamodel, which in turn is based on a metamodeling language. Clearly, no modeling is possible without some sort of metamodel. This dependency structure is similar to that between objects, classes and metaclasses in some object-oriented programming languages. [5]

metaCASE tools[edit]

This is a list of currently available metaCASE tools; many other modeling tools may also offer some measure of metamodeling functionality

Real benefits of using metaCASE tools[edit]

Jackson [6] recognises the vital difference between an application’s domain and its code: two different worlds, each with its own language, experts, ways of thinking etc. A finished application forms the intersection between these worlds. The difficult job of the software engineer is to build a bridge between these worlds, at the same time as solving problems in both worlds.

Empirical studies [7][8] have consistently shown that only around half of all development projects use methods. Among those using methods, over 50% either modify the methods to better fit to their need or even develop their own methods [9][10]

In a standard CASE tool, the method supported by the tool is fixed: it cannot be changed. In a metaCASE tool, there is complete freedom to change the method, or even develop an entirely new method. Both models and metamodels (method descriptions) are stored as first-class elements in the repository. This allows an organisation to develop a method that suits their situation and needs, and to store and disseminate that knowledge to all developers. The tool and method then guide developers, provide a common framework for them to work in, and integrate the work of the whole team.[11]

Research prototypes and even commercial metaCASE tools have existed for many years, but only recently have there been tools which are mature, user-friendly and stable for both the method developer and the method user. One of the most widely known and used metaCASE tools [12][13] is MetaEdit+.

Following list represents several kinds of ways how these tools can be used within software development:[14]

  • can reduce the time and cost to develop a computer-aided environment
  • can support formal software development methods
  • can be used as an information systems modeling tool
  • can support the creation of a wide range of modeling languages
  • can support CASE and modeling language training
  • can support modeling language comparison and integration

These tools should also possess the following characteristics:[14]

  • enabling users to create method support for their own software engineering methods with low learning curve
  • to have easy to use graphical CASE tools to support simple and efficient user interactions
  • to have the capability to check the consistency of a model, even at run-time
  • to have standard report generation facility
  • to possess complexity management tool that provides restricted views and granular model representations
  • to possess sophisticated input dialogs for creation and modification of model data
  • to possess customizable multi-method support

See also[edit]

References[edit]

  1. ^A rapid development model for metaCASE tool design, Conceptual Modeling — ER '97, Maokai Gong, Louise Scott, Yingping Xiao and Ray Offen, ISBN 978-3-540-63699-1
  2. ^Definition In: D. Schefstrom, ‘System Development Environments: Contemporary Concepts’ in Schefstrom, D and van den Broek, G (eds) Tool Integration John Wiley and Sons (1993).
  3. ^IPSYS Toolbuilder Manual, Version 2.1 Lincoln Software Ltd (1996)
  4. ^G. Stumer, Oracle 7: A User’s and Developer’s Guide International Thomson Publishing (1995)
  5. ^ ab[1] ABC TO METACASE TECHNOLOGY, WHITE PAPER, MetaCase, 5605 North MacArthur Blvd. 11th Floor, Irving, Texas 75038
  6. ^Jackson, M.A., Software requirement & Specifications A lexicon of practice, principles and prejudices Addison Wesley, ACM Press, 1995
  7. ^Necco, C.R., Gordon, C.L., Tsai, N.W. Systems Analysis and Design: Current Practices, MIS Quarterly, December, 1987.
  8. ^Fitzgerald, B., The use of system development methods: a survey. Paper ref 9/95, Univ. College Cork, 1995.
  9. ^Russo, N., Wynekoop, J., Walz, D., The use and adaptation of system development methodologies. Procs of International Conference of IRMA, Atlanta, May 21-14, 1995.
  10. ^Hardy, C., Thompson, J., Edwards, H., The use, limitations and customisation of structured systems development methods in the UK. Information and Software Technology, 37 (9), 1995.
  11. ^Visual domain-specific modelling: Benefits and experiences of using metaCASE tools, Steven Kelly, MetaCASE
  12. ^Isazadeh, H., Lamb, D.A., CASE Environments and MetaCASE Tools, Technical Report 1997-403, Queen’s University, Canada, February 1997
  13. ^Alderson, A., Cartmell, J.W., Elliott, A., ToolBuilder: From CASE Tool Components to Method Engineering, Peer Logic white paper, 1999
  14. ^ abPrinciples of MetaCASE systems, Vivekanandan Suresh Kumar