![IFML-Interaction-Flow-Modeling-Language](https://upload.wikimedia.org/wikipedia/commons/3/3c/IFML-Interaction-Flow-Modeling-Language.png)
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
WebML (Web Modeling Language) 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 d ...
notation, as well as by a few other experiences in the
Web modeling
Web modeling (aka model-driven Web development) 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 lang ...
field.
It was adopted as a standard by the
Object Management Group
The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portable and interoperab ...
(OMG) in March 2013.
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:
* HTML+HTTP based Web applications.
* Rich Internet Applications, as supported by the HTML 5 standard.
* Mobile applications.
* Client-server applications.
* Desktop applications.
* Embedded Human Machine Interfaces for control applications.
* Multichannel and context-aware applications.
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
consists of:
* The IFML
metamodel
A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
(
MOF).
* The IFML
UML profile A profile in the Unified Modeling Language (UML) provides a generic extension mechanism for customizing UML models for particular domains and platforms. Extension mechanisms allow refining standard semantics in strictly additive manner, preventing ...
.
* The IFML visual syntax (Defined through Diagram Definition and Diagram Interchange specification).
* The IFML
XMI model exchange format.
Main modeling concepts
![IFML-concetti](https://upload.wikimedia.org/wikipedia/commons/1/14/IFML-concetti.png)
An IFML model consists of one or more ''view container''s (possibly nested).
For example, windows in traditional desktop applications or page templates in
Web applications. A view container can contain ''view component''s, 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 ''parameter''s.
A view container and a view component can be associated with ''event''s, 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 flow''s, that only describe data transfer.
IFML also includes concepts for defining constraints, modularization, and
context awareness
Context awareness refers, in information and communication technologies, to a capability to take into account the ''situation'' of ''entities'', which may be users or devices, but are not limited to those. ''Location'' is only the most obvious el ...
(e.g., based on user profile, device, location) over modeling elements.
IFML concepts can be extended with standard extension mechanisms based on
stereotyping
In social psychology, a stereotype is a generalized belief about a particular category of people. It is an expectation that people might have about every person of a particular group. The type of expectation can vary; it can be, for example ...
.
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
A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it.
The term platform-independent model is most frequently ...
(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:
* It supports the formal specification of the front-end from different perspectives: interface composition, user interaction, event management.
* It supports connection with the business logic, the data model, and the graphical presentation layer.
* It isolates the specification of the front-end from implementation-specific issues.
* It improves the development process, by fostering the separation of concerns between roles in the interaction design.
* It enables the communication of UI design to non-technical stakeholders.
A Foundation For a perfect UI Design
by CitrusBits (March 20, 2015)
Implementations and tools
IFML is currently supported by WebRati
A set of blog posts describing the standardization process is availabl
here
A new, opensource
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
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 Executable UML (xtUML or xUML) 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 "combine ...
specifications combined with Alf
scripts for the back-end business logic. A sneak preview of the tool features can be seen in thi
video
IFMLEdit.o
is a web-based opensource
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
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
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
, client side JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
and mobile applications via Cordova or Flutter.
History
IFML was inspired by the WebML
WebML (Web Modeling Language) 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 d ...
notation, invented at Politecnico di Milano
The Polytechnic University of Milan () is the largest technical university in Italy, with about 42,000 students.
The university offers undergraduate, graduate and higher education courses in engineering, architecture and design.
Founded in 18 ...
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.
References
Further reading
*
*
*
* {{Citation , author1= R. S. Wazlawick, year=2014, chapter= Interface Tier Design with IFML, title=Object-Oriented Analysis and Design for Information Systems: Modeling with UML, OCL, and IFML, series=Morgan Kaufmann, pages=289–334
External links
* IFML.or
http://www.ifml.org
* IFML official specification document
http://www.omg.org/spec/IFML/
* WebM
http://www.webml.org
* WebRatio
http://www.webratio.com
* IFMLEdit.or
http://www.ifmledit.org
Specification languages
Software design
Computer standards