What is IFML?
IFML is a very powerful concept and if implemented correctly can yield enormous ROI, while simplifying one of the most time-consuming aspects of code development, maintenance and migration, namely UI and navigation.
IFML or Interaction Flow Modeling Specification was formally adapted by OMG in 2014 and then published in March 2015. Its primary purpose is to capture UI and navigation flow of applications in a Visual model which can then be translated using code-generators of any language(s) for which IFML engines are available. Originally known as the WebML, it is now IFML because it is no longer limited to web development but also used for mobile apps.
Thanks to IFML, it is now possible to visually model UI and navigation flows which can then be translated into the programming language of your choice. This opens enormous possibilities in rapid software development, especially if used in conjunction with UML and BPM specifications. How?
First, the visual model “is” the code and needs little documentation.
Since the model is visual, it clearly articulates the flows of the interactions and is a documentation by itself, easily understandable by all stakeholders. With expert modelers, the models can be created during the early stages of development even as business analysts are still gathering requirements. Remember, the visual model “is” the code. Agile development suddenly takes on a new form.
Second, the code is future-proof.
What do I mean by that? The code is visual and can be input to any IFML- supporting engine to generate the source code in the language of your choice. Yes, it is possible to write engines that will read IFML and generate code in Objective C, Java, C#, JS or any other language. If one language gets obsolete, migration to another is just a matter of auto-code-generation with the latest engines for the new language.
Third, the code is consistent across all applications.
Imagine not having to implement best practices in code development across the globally distributed development teams. This auto-generated code will already be engineered to follow the best practices in coding, security, accessibility and other areas.
I think, with a plethora of coding languages, platforms and cross-platform development options, visual modeling may just be the common glue that holds other codebases together and future-proof investments in development and migration. Stay tuned for deeper insights on IFML.