The Graphical Modeling Framework (GMF) of Eclipse is a promising open source platform for building your own model editors. We’ve performed a preliminary analysis of GMF as a platform for our methodologies for model-driven applications, and this post highlights its strengths and weaknesses. We also propose directions for future development of GMF that would simplify the use of the framework and extend its capabilities for view management and model execution.

The upside of GMF is that basic functionality can be put together without programming, based on your own domain specific metamodel. Through additional mappings, different diagrams can be integrated into a coherent architecture, and graphical symbols can be customized. Open source makes it easier for software developers to extend the framework.

On the downside, the programming paradigm of Eclipse is at odds with our end user driven approach. Our direct model execution ambition seems difficult to implement inside a framework based on extensive code generation. While we emphasize queries and views for generating role and purpose specific interfaces, GMF relies more on transformation. Read the rest of this entry »

Active knowledge modeling (AKM) is a business-centric approach to dynamically reconfigurable service oriented architectures (SOA). Services are made available to users in the situation they find themselves, as captured by enterprise models, in a business level language. The role of a knowledge architecture is to bring purpose and context to the services, and to dynamically compose and configure business solutions from basic services in a manner far more flexible than a conventional BPMS.   

We here explore the relationships between AKM and SOA, through SOA reference models, reference architectures, maturity models, and standards. Several frameworks have been developed in order to capture and explain just exactly what service oriented architectures are. This post gives an overview of different frameworks, their purpose and perspectives:   

  • Reference models developed to explain and create agreement about the meaning of key terms, and the dependencies between them,
  • Reference architectures, template solutions for a domain, outlining typical components and subsystems, aspects and layers of services,
  • Development and maturity models that describe different generations of SOA, or the path from a conventional application architecture towards a fully service oriented realization.
  • Modeling architectures, presenting overviews of modeling methods, which models should be developed and how they fit together, and how the modeling languages are structured.

Web services (WS) standards are also plentiful. People have mapped them before, but the dependencies between different standards are seldom visualized. We present a WS standards map that captures major dependencies.

Read the rest of this entry »

Business processes are commonly defined as a set of related activities directed at producing an outcome. In bureaucratic case processing, the outcome is typically a decision, which is documented in a case file and communicated using e.g. formal letters. For the management, improvement and automation of some of these processes, BPM and workflow systems are adequate. Knowledge intensive processes like engineering, design, and construction, however, produce outcomes that are far more complex. To manage, improve, and automate such processes, we must design product models and process models in parallel, with evolving product structures as the core and foundation. This post presents a case from oil&gas field development, outlines why a product-driven business process management approach is needed, and how it is applied. Read the rest of this entry »

The visual modeling editor of the Oslo platform is now available for community technology preview (CTP). Since the first Oslo CTP half a year ago, the focus of the public discourse has been the textual language M, taking a programmers’ perspective, focusing on the design of textual domain specific languages and repository database structures. For those of us more interested in visual modeling and a new paradigm for model-driven applications, it has been a long wait.

This post summarizes early experiences from playing with Quadrant. Its user interface is novel, uniform, and functional, but a bit cumbersome, and as an early preview it exposes a lot of the underlying wiring, nuts and bolts. Interesting features are the combination of textual and graphical views, and the use of multiple layers for zoom and navigation. Some functionality is well supported, such as customizing views and interacting with large models in multiple workpads. On the other hand, services for e.g. relationship modeling are poor. The current scope of Quadrant is limited to visualizing and editing instance data. Metamodeling and definition of new extents (storage areas) must be done in the Intellipad text editor. Read the rest of this entry »

With model-driven applications in Oslo, Microsoft aims to reduce the amount of code needed for custom applications by 90%. Recognizing that “the model is the application”, they envision a move away from the model editor as a separate tool for developers. In our perspective, UML is a visual programming language and Microsoft’s M is a textual modeling language. To be accessible to business users, a visual modeling language is needed.
Read the rest of this entry »

During the past decade, model-driven software engineering has matured through the standards developed by the OMG (Object Management Group). Model-driven architectures (commonly known as MDA) and model-driven applications are complementary approaches to developing new IT solutions. Business level enterprise models serve as an excellent starting point for conventional software application development. The main objective of model-driven applications however, is not to increase the amount of software code, but rather to create a new kind of software platform that can be configured and repurposed through modeling, rather than programming. There are therefore some clear differences between MDA and model-driven applications: Read the rest of this entry »

Based on 10-15 years of experience in research and development of model-driven applications, I here propose some design principles for active modeling platforms. The objective is to provide end users with a modeling framework that is simple enough for their use, yet powerful enough to define complete executable applications. While most of these principles are known to modeling experts, few are fully supported by the modeling tools currently on the market. The principles deal with modeling language, openness and evolution, reuse and inheritance, multiple views, modeling tools and methodologies. Read the rest of this entry »