Interaction Flow Modeling Language Explained

The Interaction Flow Modeling Language (IFML) is a standardized modeling language in the field of software engineering. IFML includes a set of graphic notations to create visual models of user interactions and front-end behavior in software systems.

The Interaction Flow Modeling Language was developed in 2012 and 2013 under the lead of WebRatio and was inspired by the WebML notation, as well as by a few other experiences in the Web modeling field.

It was adopted as a standard by the Object Management Group (OMG) in March 2013.[1]

Focus

IFML supports the platform independent description of graphical user interfaces for applications accessed or deployed on such systems as desktop computers, laptop computers, PDAs, mobile phones, and tablets. The focus of the description is on the structure and behavior of the application as perceived by the end user.

IFML describes user interactions and control behaviors of front-end of applications belonging to the following domains:

IFML does not cater to the specification of bi-dimensional and tri-dimensional computer based graphics.

IFML does not apply to the modeling of presentation issues (layout/look and feel) of an application front-end or to the design of business logic and data components. Although these aspects are not the focus of the language, IFML allows designers to reference external models or modeling artifacts regarding these aspects from within IFML models.

Content of the standard

The IFML specification[1] consists of:

Main modeling concepts

An IFML model consists of one or more view containers (possibly nested).For example, windows in traditional desktop applications or page templates inWeb applications. A view container can contain view components, which denotethe publication of static or dynamic content, or interface elements for data entry(such as input forms). A view component can have input and output parameters.

A view container and a view component can be associated with events, that can represent users'interactions or system-generated occurrences. For example, an event for selectingone or more items from a list or for submitting inputs from a form. The effectof an event is represented by an interaction flow connection. The interactionflow expresses a change of state of the user interface. An eventcan also trigger an action, which is executed prior to updatingthe state of the user interface; for example, a delete or update operation oninstances of a database. An input-output dependency between elements can be specified throughparameter bindings associated with navigation flows or through data flows, that only describe data transfer.

IFML also includes concepts for defining constraints, modularization, and context awareness (e.g., based on user profile, device, location) over modeling elements.IFML concepts can be extended with standard extension mechanisms based on stereotyping.

Benefits

The cost of front-end application development has increased with the emergence of an unprecedented range of devices, technological platforms, and communication channels, which are not accompanied by the advent of an adequate approach for creating a Platform Independent Model (PIM) that can be used for designing user interactions independently of the implementation platform. This causes front-end development to be a costly and inefficient process, where manual coding is the predominant development approach, reuse of design artifacts is low, and portability of applications across platforms remains difficult.

IFML brings several benefits to the development of application front-ends:

Implementations and tools

IFML is currently supported by WebRatio http://www.webratio.com.A set of blog posts describing the standardization process is available here.

A new, open-source IFML editor based on Eclipse, EMF/GMF and the Graphiti API is under development. Thetool will be released as an open-source Eclipse Project. The tool will include mappings from IFML abstract concepts to the platform-specific concepts of Java Swing, Microsoft WPF, and HTML.The modeling of the IFML diagrams for the UI part can be complemented with (executable) UML diagrams according to fUML specifications combined with Alfscripts for the back-end business logic. A sneak preview of the tool features can be seen in this video.

IFMLEdit.orghttps://www.ifmledit.org is a web-based open-source IFML editor focused on education and agile development.It supports model editing, code generation and emulation.Currently it supports the generation of code for server side NodeJS, client side JavaScript and mobile applications via Cordova or Flutter.

History

IFML was inspired by the WebML notation, invented at Politecnico di Milano by Stefano Ceri and Piero Fraternali, with a team of people including Roberto Acerbis, Aldo Bongio, Marco Brambilla, Sara Comai, Stefano Butti and Maristella Matera.

Further reading

External links

Notes and References

  1. Web site: IFML Specification document. OMG - Object Management Group. 9 April 2013.
  2. https://citrusbits.com/user-stories-foundation-ui-design/ A Foundation For a perfect UI Design