Interaction Flow Modeling Language
Model-Driven UI Engineering of Web and Mobile Apps with IFML
Marco Brambilla
Professor of Software Engineering, Politecnico di Milano, Milano, Italy
Piero Fraternali
Professor of Web Technologies, Politecnico di Milano, Milano, Italy
Table of Contents
Copyright
Acquiring Editor: Steve Elliot
Editorial Project Manager: Kaitlin Herbert
Project Manager: Priya Kumaraguruparan
Cover Designer: Mark Rogers
Morgan Kaufmann is an imprint of Elsevier
225 Wyman Street, Waltham, MA 02451, USA
Copyright 2015 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publishers permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods, professional practices, or medical treatment may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
ISBN: 978-0-12-800108-0
For information on all MK publications visit our website at www.mkp.com
Foreword
A decade and a half ago, on the strength of a relatively new modeling language standard and a notion that software development needed to be more abstract, the Object Management Group (OMG) took a leap of faith and launched an effort known as the Model Driven Architecture (MDA). The idea was simple: like other, better-established engineering disciplines, software development should begin with abstract models, models that could be organized, evaluated, tested & shared before the targeted system was built. After all, its much easier (and less expensive) to change a system when its in a high-level (but precise) language, than to change it after it has been fully built (or worse, fielded with customers and users).
Oddly, many fought the idea. We at OMG were convinced by other engineering disciplines; after all, no ship is launched without first architecting the design on paper (or online) and considering various important aspects. An important aspect for a ship, which is best ascertained at design time rather than at launch time, is its center of gravity (CG). After all, the CG of a ship had better be below the water line; if it isnt below the water line at launch time, it will be soon after (as the Swedes discovered to their chagrin at the 10 August 1628 launch of the great warship Vasa, which sank 1300 m into its maiden voyage in Stockholm harbor). Evaluation of models can save quite a lot of time, money and effort, and the MDA approach has had a salutatory effect on software development in the 21st century. The best systems are fully architected and designed, with those designs evaluated before development begins. Even better, though one cannot automate the construction of a ship or a building from its blueprints, in the software realm one can automate the construction of a software system from its blueprint (model), and many telecommunications, banking & military systems are in fact built that way today.
Another major trend of the 21st century is computing everywhere. Fewer and fewer complex systems are implemented without computing infrastructure today. The music industry, the news industry, the telecommunications industry and the banking industry have been totally disrupted by computing interfaces music travels by MP3 instead of by physical records and tapes; news travels by text & HTML instead of by newsprint paper; voice travels by voice-over-IP (VoIP) instead of regular telecommunications channels; and money is by far more virtual than paper or metal today. This has necessitated the construction of thousands of user interfaces to access services and functions; dropping a tape into a tape recorder was quite simple and straightforward, but every MP3 player in the world has a different user interface, and some of them are quite bizarre and non-intuitive.
These two trends, modeling and computing everywhere, havent quite caught up with each other. From the launch of the first international multi-market standard modeling language (the Unified Modeling Language, or UML, in September 1997) to 2013, there has been no standard way to model user interfaces. This problem is made even worse when one considers that many software systems need to be executable on multiple computing platforms after all, you want to listen to music on your desktop computer, your laptop computer, your music player, perhaps even your wristwatch and your hearing aid. Necessarily these different computing platforms have different user interfaces have you ever seen a screen on a hearing aid? and while software modeling languages have for decades supported execution on multiple computing platforms, they have not supported multiple interfaces on multiple computing platforms.
This is more important than it might sound. One of the major software product failures of the second decade of this millennium has been the attempt by major software vendors to support a single user interface concept on all computing platforms (including servers, desktop computers, laptop computers and telephones). The touch-screen concept makes sense for telephones (with their relatively small screens and our relatively large fingers); it makes less sense for many on desktops and laptops (where generally there is a full-size keyboard available, and many computing users would prefer to use that keyboard and mouse); it makes no sense for servers (which are generally headless, that is, without screens at all.
What is needed, of course, is to apply the concept of abstract models to user interfaces, and this the new OMG Interaction Flow Modeling Language (IFML) is designed to do. Becoming a fully-recognized standard in March, 2014, the IFML allows the system modeler to capture the user interaction and content of the front-end (user interface) of any system (including software systems) and model the control behavior of that systems front-end.