UML is good to model many things but clearly misses the point when it comes to design complex user interfaces and interactions. Attempts to use UML for this usually end up with complex profiles that are almost impossible to apply.
Therefore, I was happy to see that the OMG launched a RFP for an Interaction Flow Modeling Language with the idea of coming up with a domain-specific modeling language for expressing the content, user interaction and control behaviour of the front-end of applications.
More than one year after that (not bad for an standardization process), the new IFML standard has been finally adopted. The consortium pushing the standard was lead by WebRatio (see also our interview with the WebRatio CEO) so it’s no surprise the notation resembles that of the WebML (web modeling language), e.g. see this simple example showing a web page displaying a list of artists and giving full details of the one selected by the user.
As Ed Seidewitz said, With IFML and the UML executable standards (fUML and the Alf), it is now possible to create a complete, executable app in (OMG) standard modeling languages.
You can see a tutorial on this new Interaction Flow Modeling Language standard.
ICREA Research Professor at Internet Interdisciplinary Institute (UOC). Leader of the SOM Research Lab focusing on the broad area of systems and software engineering. Home page.
Which tool can be used for building IFML
IFML is getting supported more and more while it gets standardized.
At the moment you can use WebRatio (www.webratio.com), which is a commercial implementation of IFML with industry-strenght collaborative work, code generation, model debugging and checking, and integration with ER and BPMN modeling. Free, unlimited trial edition of the tool is available.
Alternatively, there exist a few small open source editors, that only cover the design of the basic concepts of the language:
For instance, you can use this one:
If the tool makes what you want that is obviously great. If you see room for improvement then one alternative is to use a Language Workbech and implement your own modeling tool for IFML. After two hours work see editor I’ve created today here: http://t.co/Z4Ak4KzaqD.
This naturally requires an investment to define the language first, but then it also allows you to better target specific interaction styles (see samples of various UI/interaction languages at: http://www.metacase.com/cases/dsm_examples-ui.html) and also target different UI frameworks and code. In other words, you may then fully decide what you want!