Modeling Tools for complex domains

The ever increasing complexity of today’s business domains requires efficient abstractions to empower and support individuals in managing and maintaining their complex solutions. For this purpose, modeling has been successfully adopted in various domains, e.g.:

Software engineering: To model entities, architecture, and behavior of a system for documentation and generation of code, as well as for validation, analysis, etc.
Engineering: To develop or configure complex products, such as cars, processors, chips, etc.
Finance: To describe, simulate, and configure complex products such as insurances or fund 

… and many more

For over a decade EclipseSource has been focused on supporting you conceptually and technically in designing and implementing the best possible solution for your use case. Get in contact with us or learn more about the typical aspects of a modeling tool below.

Web-based Modeling Tools

image1

While Eclipse has been the dominant player for almost two decades when it comes to modeling platforms, web technologies are also getting more and more adoption when building modeling tools. This is true for many reasons. Web technologies simplify the deployment and portability and offer more flexibility when aiming at a modern look-and-feel. These aspects are getting even more important as modeling tools are not anymore only heavyweight engineering tools used by engineers. They are integrated in business applications being used also by people without an engineering background.

With our deep involvement in web technologies, ranging from Eclipse Theia, Eclipse Che, RAP to JSON Forms, and our long experience in developing modeling tools, we are the ideal partner for building web-based modeling tools. Since many years we are working on technologies that enable transferring the best and most successful concepts and platforms of the Eclipse-based modeling ecosystem to a web technology stack by using technologies, such as JSON, JSON Schema, JSON Forms, RESTFul Services, Angular, Eclipse Che, Theia, React, etc.

Desktop-based Modeling Tools

blurred-background-close-up-coffee-cup-908284

In certain scenarios, modeling tools require direct access to the local machine’s hardware, connected devices or or other infrastructure. This can have several good reasons, such as your modeling tool configures a device that is connected to your local machine or has to communicate with your local infrastructure; or your modeling tool runs sophisticated analyses and powerful visualizations, so that native hardware access is crucial to achieve optimal performance. In such cases, a desktop-based modeling tool is often the best option.
EclipseSource has gained a lot of experience in the past 10+ years in selecting the right technology mix for your custom solution and building powerful desktop tools for many diverse domains. Contact us and we support you in bringing your existing project forward or in designing the optimal solution for you from scratch.

Eclipse-based Modeling Tools

Screenshot from 2018-03-27 14-01-52

Eclipse has arguably the best ecosystem when it comes to technologies, platforms, and tools for building a modeling environment. Famous and mature frameworks, such as the Eclipse Modeling Framework (EMF), are the foundation of thousands of successful modeling tools across basically all industries and domains. EclipseSource has been deeply involved in the development and adoption of Eclipse-based modeling technologies since well more than a decade. Based on our experience from numerous customer projects and our leading role in the development of various modeling frameworks, we are your ideal partner for providing support before and during the development of modeling tools of any kind, in any domain. You are an expert in your domain, we are experts in applying well-proven and powerful technologies from the Eclipse Modeling Framework (EMF) ecosystem such as EMF Compare, EMF Forms, EMFStore, Papyrus, GMF, GEF, Xtext, Xtend, etc. Together we can efficiently build a solution for your domain.

Graphical / Diagrams

image1

Graphical diagram editors are the core visualization method for many modeling languages and tools,  including standard languages for example UML, SysML and BPMN or domain-specific graphical languages. If utilized correctly, they can provide a huge efficiency boost, if not, they can result in a maintenance nightmare, unsatisfied users and a lot of unnecessary cost. 

EclipseSource has well over a decade of experience in successfully designing and implementing graphical diagram editors and in creating sustainable solutions. We can support you with pragmatic and tailored solutions to handle the complexity of your specific use case. As graphical modeling is more than just drawing, we integrate your diagrams with other core features of a modeling tool suite. EclipseSources has always actively driven innovation in the area of diagram technologies and graphical modeling tools, starting from the early days of GEF, GMF, Papyrus, Sirius and continuing in the web enabled by Sprotty and GLSP.

Get in contact with us to discuss how we can support your graphical modeling solution!

Textual / DSLs

image7

Many aspects of a product, especially behavior, but also constraints, rules or even the structure can be described most efficiently using a domain-specific textual language (DSL). Focussing a language on a particular use case allows you to reduce the complexity for the user compared to full-blown general purpose programming languages. Therefore, DSLs can significantly improve the efficiency, and sometimes even more importantly: They allow non-programmers to become part of the development process. In this way you can remove a layer between domain experts and the final product design.

The design and the technical implementation of textual DSLs is a core discipline of every software toolsmith and so it is for us at EclipseSource. Over many years, we have developed DSLs for various customers and domains, from finance to engineering, from medicine to software development. We are experts in language design, as well as common technologies such as Xtext, the language server protocol (LSP) and of course textual editors such as Monaco in Theia and the Eclipse IDE itself. Get in contact with us to find out how we can improve your efficiency by developing a custom textual DSL.

Trees / Forms / Properties

image5

Modeling languages are a great tool to describe hierarchies and structures of products and systems, e.g. the composition of a physical product, a semiconductor or the structure of a software system. Visualizing this structured data is often most efficiently accomplished by providing a tree-based view combined the form-based detail views showing the properties of model elements. Especially combined with graphical and textual languages, form-based UIs provide benefits for data exploration, entry and modification.

As the main driver behind technologies such as EMF Forms and JSON Forms, EclipseSource is a knowledge leader for the design and implementation of data-centric, form-based and tree-based property views. With a strong focus on declarative approaches, we can help you to create efficient editors and integrate them with your toolchain. Talk to us to learn more about our services and the technologies we drive in this area.

Versioning

image2

Most modeling tool suites require and facilitate the collaboration of domain experts on domain model instances. Only by providing support  to maintain a detailed history, for branching and merging, can you support efficient work-flows in collaborative environments. While textual languages can be versioned using common approaches such as Git, graph-based models require customized approaches which acknowledge the semantics of a  graph-based model language.

EclipseSource is a world-leading service provider for versioning solutions for textual, graphical and structural models. With our deep involvement in technologies such as EGit, EMF Compare and EMF Store, we have the architectural and practical expertise to implement the most efficient versioning solution for your model tool. Get in contact with us and let us know more about your specific requirements!

Validation / Analysis / Simulation

image3

One very common benefit of modeling products, systems or complex relationships is to gather crucial information  in the early stages of the design process and on a high level of abstraction. This includes validating models before they go into production to detect errors and inconsistencies. This also includes domain-specific analyses and simulations to collect valuable information about a modeled system. Efficient model validations, analyses and simulations can provide early feedback in a design process, thereby reducing the error rate and thus save money.

We at EclipseSource have supported numerous customer projects in efficiently enabling validation, analyses and simulators for their domain-specific modeling languages. We have extensive experience with all common constraint languages, such as XSD, Ecore or JSON Schema, but also with integrating custom approaches. Our modeling experts are focused on grasping a deep understanding for your custom and domain-specific analysis and simulation requirements and work hand-in-hand with your domain-experts to integrate these into your toolchain. Get in contact with us and let us collaborate on the ideal solution for your project!

Transformation / Generation

image8

In most domains, models are finally used to generate some other artefacts, may it be source code, documentation or the specification for automated production. Additionally, models can be transformed into different representations for specific purposes. Model transformations and code generators allow you to finally close the loop of your domain-specific model-driven development cycle.

EclipseSource has decades of experience in writing model transformations and code generators. We can support your project with in depth knowledge of the conceptual design as well as sound technical knowhow about transformation languages and technologies for code generation templates (such as Xtend). Talk to us and let us design the optimal solution for your model-based approach!

Concept & Evaluate

Before creating any modeling tool, the actual model has to be externalized. Based on our extensive experience in abstracting complex domains, we can provide you with guidance through this step. By using frameworks, we can support you with early prototype versions of a modeling tool for your domain. This enables you to test and evaluate early stages of custom models. Further, a technical basis including platforms and frameworks must be selected. We support your evaluation of technologies and enable you to make the right decision at this early phase of your project.

Support & Training

While modeling can assist with the high complexity of your domain, it also adds new concepts and technologies to your project. Our customized trainings are an optimal way to jumpstart your team. With ongoing developer support we can immediately answer urgent questions, provide template solutions, assist in the first design decisions, and provide code reviews. Thereby, we support you to avoid common pitfalls in the beginning of your projects and efficiently transfer the required knowledge to your team.

Consult & Implement

Let our experienced developers help you to efficiently implement your solution in time. We can actively collaborate with your existing team, contribute certain modules, or even take over complete projects for you. You will benefit from the experience and knowledge our experts have acquired in a huge diversity of successful projects. We can be used to work efficiently and to be integrated into existing processes and infrastructure or, alternatively, to set them up with you.

Create & Maintain

One main goal of modeling is to save development efforts by being able to adopt frameworks. Based on the custom model definition, those frameworks can generically solve cross-cutting requirements, such as visualization, versioning, or transformation. We are heavily involved in the development of modeling frameworks and can therefore assist you to adopt the right solution. Furthermore, we can even create new domain-specific frameworks for you. Finally, when applying a framework, we can ensure the on-going and long-term maintenance for you.