Many new features in formalmind Studio

Over the last two months, we put a lot of work into formalmind Studio: We polished the rough edges and we implemented new features. Maybe you already noticed these, as we rolled some of them out silently, like jumping to the target of links. Others we already announced, like Consequent, the ReqIF validator. But here is the full list.

So here is our Christmas gift to you, and to the open source.

Before we start: Trends in Systems Engineering (German)

We mentioned it before: We launched a new German-language blog, Systems Engineering Trends. Recent Stories include:

If you speak German, please check it out, and please forward this to interested friends and colleagues. Visit SE-Trends >>

New Features in fmStudio

Here is the list of new features:

Bidirectional SpecRelations

SpecRelations (Links) have a source and a target. Therefore, there are incoming and outgoing links. We always counted the number of incoming links, but upon double clicking on the link column, only the outgoing links were shown. We finally change that, so now you can also see the incoming links.

You can see this to the right, where three requirements are linked from Start to Middle to End. Also note that the lines between SpecRelations are weaker, so that the SpecObjects are visually grouped with their SpecRelations.

Following SpecRelations

Another long overdue feature: Users don't just want to see the target of a Link (which is shown in the Properties view, if the rightmost column is selected); they also want to be able to jump to the target requirements in the Specification where it is used.

This is not as trivial as it sounds: Requirements (SpecObjects) are referenced. This means that the SpecObject can be referenced multiple times, or not at all. In those scenarios, the tool lists all locations where the SpecObject is used in a dialog.

Faster SpecRelations

And while we were dealing with the linking, we also made it faster. If you encountered performance problems with SpecRelations in the past, please give it a try again.

Validation everywhere

We recently released Consequent, which performs ReqIF validation. We now automatically validate upon saving, so that you always know if something is wrong. You can disable this via Window | Preferences | ProR | Validate ReqIF on save.

Another place, where it is easy to introduce invalid model elements is the type configuration (fmStudio | Datatype Configuration). Therefore, the dialog now features a functioning "validate" button and requires users to click it before closing it. We also started to add validation rules to Presentations (extensions to the tool).

Last, clicking on a Problem now also selects the corresponding element in the editor. For now there is the limitation that the element must exists in the open editor, but we plan on chaning that as well.

Improvements in ID Generation

fmStudio always had the ability to generate human-readable IDs via the ID Presentation (accessible via fmStudio | Presentation Configuration). We made a number of improvements: The starting value is automatically determined, useful if some IDs have already been created manually. Also, if ID clashes are detected (e.g. because the file was modified outside fmStudio), the validator will produce an error, as shown in the screenshot below: The ID REQ-1 is used twice, which is shown in the Problems View.

New ReqIF Wizard (Prostep-conform)

We also created a new Wizard that takes the recommendations from the ProSTEP ReqIF Implementor Forum into account. This means that using that Wizard for new ReqIF files will make it much easier to import them in other tools. You can create new models via File | New | ReqIF 10 Model (with Attributes from Implementation Guide).

A model created this way also has the ID-Presentation configured, which means that human-readable IDs are also generated automatically.

Note: If the Wizard does not show up, you may have to reset your perspective via Window | Reset Perspective... You can also access it via File | New | Other...

Automatic Columns

fmStudio supports multiple Specifications. But upon creation of a new one, no columns were configured. Now the columns are created as soon as you add a requirement (SpecObject) to a new Specification. The SpecObject's attributes are used as the template for the columns.

Also, the Column Dialog fmStudio | Configure Columns now features an additional button, Auto add Columns. Upon activation, the first 50 SpecObjects of the Specification are inspected and missing columns are added.

Little Improvements everywhere

And last, we fixed a lot of little things, sped things up, and made usage easier. This includes new keyboard shortcuts, bug fixes and the like.

Happy Holidays!

Even though we doubt that you will spend Christmas evening writing requirements, we still hope that these new features will make your work with ReqIF in 2016 a little easier.

Image courtesy of Mister GC at


This article was published first at Formal Mind.

New Blog launched: Systems Engineering Trends

Earlier this year, we launched a survey, asking how we could improve this blog. After shuffling through the answers, we decided to keep this blog as is, but to launch an additional, second blog. We are proud to announce:


The Systems Engineering Trend Blog can be found at What is this blog about?

  • It is in German, as we realize that a lot of our readers (and customers) reside in Germany
  • It is generally commerce-free: In the Formal Mind Blog (what you are reading right now), we often talk about our products and services. SE-Trends is focused on independent knowledge transfer.
  • It is social: Content is cross-posted on various social networks, and you can easily share content. Of course, you can also comment directly (without requiring login).
  • It appears weekly: We publish new content every week. If you prefer delivery via newsletter, you can choose between weekly and monthly delivery.

Bonus: If you sign up for the SE-Trends newsletter today, you will receive a copy of the Eclipse Magazin-Article "Entwicklung mit System", which was published earlier this year. Of course you can unsubscribe anytime.

And last, if you have ideas on how SE-Trends could be improved, let us know. In particular, for social sharing, we focused on professional networks (namely LinkedIn, Xing, Google Plus and Twitter). Should we also include personal networks (like Facebook or WhatsApp)? We look forward to your feedback.


This article was published first at Formal Mind.

Consequent, the ReqIF Validator

The first exchange of requirements using the Requirements Interchange Format (ReqIF) can be frustrating: There are many tools out there, and there are still some interoperability issues.  If a tool refuses to process a ReqIF file, where lies the problem? To answer this question, we developed a new, free tool: Consequent, the validation tool for ReqIF files. Read more about it below.

Formal Mind at EclipseCon and TdSE

But first, let us remind you of two upcoming events next week and the week thereafter. Dr. Michael Jastram will talk about the use of ReqIF in the rail industry:

If you would like to meet at one of these conferences, please drop us a note.

Binom Beta-Test starting soon

In mid November, we will release a beta-version of Binom, which is the name of the new ReqIF compare component. Once released, Binom will not be free of charge. Join the Binom Beta Test >>

Consequent Requirements Validation

Our new component Consequent is completely free and built right into formalmind Studio. Just right-click on a ReqIF file in the Project Explorer and select Validate | Consequent ReqIF Validation. You will get a list of all issues in the Problem View.  Further, you can see the problems right in the XML, as shown here:

Consequent validates ReqIF files according to a number of criteria, which include:

  • Violations of the ReqIF specification
  • Validation of the ReqIF and XHTML schemas
  • Checking whether embedded objects exist
  • Validation of Links across files (command line version only)
  • Violations of the ProStep Implementor Guide

The resulting issues are classified as errors or warnings, depending on whether they represent actual problems, or just violations of best practices. Of course, you can disable individual validation rules.

Detailed instructions on usage, as well as the command line version, can be found at the Consequent Page at Formal Mind >>


We would like to thank the ProStep ReqIF Implementor Forum, an industry group concerned with the interoperability of ReqIF tools, which financed this functionality.

We hope that you find Consequent useful.

Image courtesy of Stuart Miles /

This article was published first at Formal Mind.

Beta-Testers Wanted for Binom, the New ReqIF Compare

The Requirements Interchange Format (ReqIF) is used to exchange requirements – as the name suggests. But most of the time, you would do more than just one exchange, and if you do this, you may want to know what actually changed between two versions.

This is not really news, and our free formalmind Studio has had a simple compare function for a long time. But it is not very sophisticated and – let's be honest – not really fit for a production environment. So we set out to change this and built a brand new compare tool for ReqIF. And we invite you to become a beta tester.

But first some news

There are some events in Germany coming up that you may be interested in:

Become a Beta Tester of Binom, the new ReqIF Compare

In a few weeks, we will start beta testing of Binom, which is the name of the new ReqIF compare component. If you would like to participate, then click the link below.

Once released, Binom will not be free of charge. Of course it is free to beta testers, and those who actively participate will have a chance to purchase it at a discount. Binom will be included in our Axiom component for free.

If you sign up below, we will send you the installation instructions, once the beta test starts.

Join the Binom Beta Test >>

Binom for Comparing ReqIF Files

Just so you know what's in store, here are a few screenshots from the new feature.

Showing Changes in the Specification Structure

Especially with big models, it is important to easily see the structural changes. Therefore, we put a lot of effort into the structural compare, which looks as follows:

There are broadly two kinds changes in the structure of a Requirements Document (or Specification, in ReqIF terminology): (1) moving elements around, including in and out of hierarchies, and (2) adding (or removing) requirements. The above image shows both.

The moving around of elements can be seen in a number of places. For instance, the order of Five has changed to the position before Four. Likewise, for the element Nine, the hierarchy has changed, becoming a child of Eight (rather than a sibling).

The removal of an element can be seen with Seven, which has been removed.

We use visual cues to visualize what happens. Changes in elements are marked by boxing them, and corresponding elements are connected by lines. Changes propagate to the top of the hierarchy, which is the reason why the root Specification Requirements Document is marked with a dashed line, but not boxed.

We are still fine-tuning the styling, and if you decide to participate in the beta test, we are looking forward to your feedback.

Content Changes

All changes in the model are shown in an intuitive tree view, which can also be printed and filtered. The following is an extract of such a list of changes.

The changes contain a description that "speaks". For instance, the requirement One has changed. By drilling down in the hierarchy, the actual change ("One Modified" to "One") is found. But this is just a summary. A complete side-by-side comparison is available in the Properties View. The attributes that have changed are marked by a yellow background:

Filters and Navigation

Last, we will provide a number of ReqIF-specific filters. For instance, you can exclude certain attributes from the comparison. Some ReqIF exchange tools generate a whole bunch of attributes that are used internally by that tool. You can just filter them out. Correspondingly, do you really want to know if the timestamp of an element changed if its value has not changed? Filtering is important to just see what's relevant.

Binom also provides the ability to jump from change to change through the model, ensuring that you look through all of them.

Beta-Test Binom

We hope that this little preview made you curious and hope that you will join the Binom Beta Test!

Image courtesy of Suvro Datta /

This article was published first at Formal Mind.

ReqIF in the News (German)

In letzter Zeit wird wieder viel von ReqIF geredet.  Hervorheben möchten wir unter anderem die folgenden zwei Artikel:

Neben dem Thema "offene Standards" wird auch in beiden Artikeln das Thema Modellierung angesprochen. Insbesondere wurde bei Daimler MBSE (Model-Based Systems Engineering) als Schlüsseltechnologie erkannt.

Wir bei Formal Mind sind überzeugt, dass modellbasierte Entwicklung mit offenen Technologien die einzige Möglichkeit ist, das rasante Tempo bei der Entwicklung beizubehalten.  Modelle ermöglichen (teil)automatisierte Validierung, Verifizierung, Testgenerierung, Konsistenzprüfung, Änderungsmanagement und vieles mehr. Wenn aber die Modelle nicht offenen Standards folgen, dann machen sich die Hersteller auf eine gefährliche Art und Weise von den Herstellern der Software-Werkzeuge abhängig.

Viel Spaß beim Lesen – und wir freuen uns über Kommentare zu diesen Entwicklungen.


This article was published first at Formal Mind.

Where is ReqIF Today? Survey Results from ReConf 2015

ReConf is the largest conference on requirements engineering in Europe. Of course, Formal Mind was present, both with a talk and as an exhibitor.  We have already posted a retrospective.

At the same time we supervised a group of students who were participating in the Entrepreneurship Lab of the University of Düsseldorf.  Two of these students joined us at ReConf and surveyed attendees on ReqIF.  Following are some of the results that may be of interest to our readers.

German Alert: As the students produced a report in German, and the charts from the report that are shown here are in German as well.  In the context of this article, their interpretation should be fairly straight forward, even if you don't speak German.

New: Join the Discussion!

We recently enabled the ability to leave comments (at the bottom), so please join the discussion. Anonymous posting is possible, no need to sign up if you don't want to.

Two Out of Three Know RIF/ReqIF

During the two days in Munich, the students managed to interview almost 60 participants regarding their opinions about the Requirements Interchange Format (ReqIF).  As expected most of the respondents were requirements engineers (38%). The rest was a mix of managers, consultants and the like.

This article was published first at Formal Mind.

8. Juni: Vortrag in Bonn (kostenlos)

Für die Leser, die Deutsch sprechen und nächsten Montag in der Nähe von Bond sind, könnte die folgende Veranstaltung interessant sein: Michael Jastram wird beim Eclipse DemoCamp den Vortrag "Systementwicklung mit Eclipse in der Lehre" halten. Details hier >>

Teilnehmer erhalten ein kostenloses Exemplar vom formalmind Studio Handbuch (solange der Vorrat reicht)!

This article was published first at Formal Mind.

Why ReqIF is better than RIF

When the ReqIF standard was created, it was called RIF.  Only when the OMG took over the standard, it was renamed: Unfortunately, there was already an established standard called RIF, the W3C Rule Interchange Format.

Today, both ReqIF and RIF exist and are in use.  Many tools support RIF as well, so potential adopters may wonder why to go with the new ReqIF, when there is an established RIF standard around.  Which one to pick?

This article was published first at Formal Mind.

Finally See Big Cells as a Whole

Thousands of users are using formalmind Studio on a regular basis, and we get a lot of positive feedback and words of encouragement.  But there is one thing that drives many users mad: If an attribute is large, then it is not shown as a whole, but "truncated".  This is particularly annoying for embedded images.  While there has been a work-around (using edit mode), this was cumbersome and not really that user-friendly.

Therefore, we finally addressed this issue, by building a new Specification editor.  Don't worry the old one is still there, in case you prefer it.

This article was published first at Formal Mind.

ISO/IEC 29110 (Part 1): Lightweight Standard-based Software and Systems Engineering

Those familiar in the software and systems engineering domain are typically familiar with ISO/IEC 15288, a standard covering processes and life cycle stages. But it's huge, and small organizations have a hard time to justify its adaptation, for good reasons. For those not familiar with the standard should check out  What is ISO/IEC 15288 and Why Should I Care?

Before we Start: Some News

Last week, we spent in Munich at ReConf 2015.  We posted our impressions in a separate article – please check it out.

Also, the current issue of Eclipse Magazin (German) features the article "Entwicklung mit System: Systems Engineering mit Eclipse" by Michael Jastram.

This article was published first at Formal Mind.

This article was published first at Formal Mind

Our Blogs

We want to share our latest insights regarding formal methods and requirements as well as the latest developments regarding our OpenSource tools, ProB and ProR.  We will post new information roughly twice a month, so you won't be overwhelmed.  You can either subscribe via email (below), subsribe to our RSS Feed or visit this page.

Contact us

+49 (211) 58 38 84 58


Subscribe to our monthly Newsletter (see what to expect)

By providing your email and clicking "Subscribe", you allow Formal Mind GmbH to send you regular emails regarding requirements knowledge, as well as the occasional message regarding their products and services. I can withdraw my agreement any time.