Interaction Flow Modeling Language

Last updated
Official logo of IFML (Interaction Flow Modeling Language) by OMG. IFML-Interaction-Flow-Modeling-Language.png
Official logo of IFML (Interaction Flow Modeling Language) by OMG.

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.

Contents

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

Main IFML concepts and notations. IFML-concetti.png
Main IFML concepts and notations.

An IFML model consists of one or more view containers (possibly nested). For example, windows in traditional desktop applications or page templates in Web applications. A view container can contain view components, which denote the 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 selecting one or more items from a list or for submitting inputs from a form. The effect of an event is represented by an interaction flow connection. The interaction flow expresses a change of state of the user interface. An event can also trigger an action, which is executed prior to updating the state of the user interface; for example, a delete or update operation on instances of a database. An input-output dependency between elements can be specified through parameter 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 . A set of blog posts describing the standardization process is available here.

A new, opensource IFML editor based on Eclipse, EMF/GMF and the Graphiti API is under development. The tool 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 Alf scripts for the back-end business logic. A sneak preview of the tool features can be seen in this video.

IFMLEdit.org is a web-based opensource IFML editor focused on education and agile development. It supports model editing and code generation and emulation. Currently it supports the generation of code as server side NodeJS, client side JavaScript and mobile applications via Cordova and 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.

Related Research Articles

Object Management Group technology standards consortium

The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.

Unified Modeling Language Developed by Grady Booch, Ivar Jacobson and James Rumbaugh.

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

Model–view–controller software design pattern

Model–view–controller is a software design pattern commonly used for developing user interfaces which divides the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user. This kind of pattern is used for designing the layout of the page.

In software and systems engineering, a use case is a list of actions or event steps typically defining the interactions between a role and a system to achieve a goal. The actor can be a human or other external system. In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals. The detailed requirements may then be captured in the Systems Modeling Language (SysML) or as contractual statements.

Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

Web modeling is a branch of Web engineering which addresses the specific issues related to design and development of large-scale Web applications. In particular, it focuses on the design notations and visual languages that can be used for the realization of robust, well-structured, usable and maintainable Web applications. Designing a data-intensive Web site amounts to specifying its characteristics in terms of various orthogonal abstractions. The main orthogonal models that are involved in complex Web application design are: data structure, content composition, navigation paths, and presentation model.

The World Wide Web has become a major delivery platform for a variety of complex and sophisticated enterprise applications in several domains. In addition to their inherent multifaceted functionality, these Web applications exhibit complex behaviour and place some unique demands on their usability, performance, security, and ability to grow and evolve. However, a vast majority of these applications continue to be developed in an ad-hoc way, contributing to problems of usability, maintainability, quality and reliability. While Web development can benefit from established practices from other related disciplines, it has certain distinguishing characteristics that demand special considerations. In recent years, there have been developments towards addressing these considerations.

Sequence diagram

A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams are typically associated with use case realizations in the Logical View of the system under development. Sequence diagrams are sometimes called event diagrams or event scenarios.

User interface design design of user interfaces for machines and software

User interface design (UI) or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the user experience. The goal of user interface design is to make the user's interaction as simple and efficient as possible, in terms of accomplishing user goals.

User interface modeling is a development technique used by computer application programmers. Today's user interfaces (UIs) are complex software components, which play an essential role in the usability of an application. The development of UIs requires therefore, not only guidelines and best practice reports, but also a development process including the elaboration of visual models and a standardized notation for this visualization.

Business Process Model and Notation

Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model.

Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications can be pre-installed on phones during manufacturing platforms, or delivered as web applications using server-side or client-side processing to provide an "application-like" experience within a Web browser. Application software developers also must consider a long array of screen sizes, hardware specifications, and configurations because of intense competition in mobile software and changes within each of the platforms. Mobile app development has been steadily growing, in revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct app economy jobs within the EU then 28 members, 60 percent of which are mobile app developers.

WebML is a visual notation and a methodology for designing complex data-intensive Web applications. It provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual design tools.

Executable UML is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combines a subset of the UML graphical notation with executable semantics and timing rules." The Executable UML method is the successor to the Shlaer–Mellor method.

Systems Modeling Language general-purpose modeling language for systems engineering applications

The Systems Modeling Language (SysML) is a general-purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems.

MagicDraw

MagicDraw is a visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Designed for business analysts, software analysts, programmers, and QA engineers, this dynamic and versatile development tool facilitates analysis and design of object oriented (OO) systems and databases. It provides the code engineering mechanism, as well as database schema modeling, DDL generation and reverse engineering facilities.

User experience design is the process of manipulating user behavior through usability, usefulness, and desirability provided in the interaction with a product. User experience design encompasses traditional human–computer interaction (HCI) design and extends it by addressing all aspects of a product or service as perceived by users. Experience design (XD) is the practice of designing products, processes, services, events, omnichannel journeys, and environments with a focus placed on the quality of the user experience and culturally relevant solutions. Experience design is not driven by a single design discipline. Instead, it requires a cross-discipline perspective that considers multiple aspects of the brand/ business/ environment/ experience from product, packaging, and retail environment to the clothing and attitude of employees. Experience design seeks to develop the experience of a product, service, or event along any or all of the following dimensions:

Applications of UML

UML is a modeling language used by software developers. UML can be used to develop diagrams and provide users (programmers) with ready-to-use, expressive modeling examples. Some UML tools generate program language code from UML. UML can be used for modeling a system independent of a platform language. UML is a graphical language for visualizing, specifying, constructing, and documenting information about software-intensive systems. UML gives a standard way to write a system model, covering conceptual ideas. With an understanding of modeling, the use and application of UML can make the software development process more efficient.

Stefano Ceri is an Italian computer engineer and professor of database management at Politecnico di Milano. He has been visiting professor at Stanford University between 1983 and 1990, and received the ACM SIGMOD Edward Codd Innovations Award in 2013.

Enterprise Architect (software) visual modeling and design tool based on the OMG UML

Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.

References

  1. 1 2 "IFML Specification document". OMG - Object Management Group. Retrieved 9 April 2013.
  2. A Foundation For a perfect UI Design by CitrusBits (March 20, 2015)

Further reading