This tutorial focuses on the Domain-specific Language (DSL) called IFML, which has been adopted as a standard by OMG in March 2013. The Interaction Flow Modeling Language (IFML) is designed for expressing content, user interaction and control behaviour of the front-end of software applications, as well as the binding to the persistence and business logic layers. IFML is the missing piece for modeling the front end of software applications and perfectly complements other modeling dimensions in broad system modeling projects. Therefore, IFML works best when integrated with other modeling languages in the MDA suite, such as UML and BPMN. This tutorial illustrates the basic concepts of IFML, presents the design best practices and integration with other modelling languages, and discusses some industrial experiences (also featuring quantitative measures of productivity) achieved by the companion tool WebRatio. At the end of the tutorial, attendees will get a general knowledge about IFML (they will be able to design simple models and to derive models from existing interfaces), will be able to associate front-end design with system modelling at large, will see the associated MDE tool WebRatio at work, and will get a glimpse of real-life industrial applications developed for large enterprises. This will let them appreciate the advantages of a model-driven development approach at work within large-scale industrial project.
The tutorial is aimed at both industrial and academic attendees, including Ph.D. students. Prerequisite for attending the tutorial is a general knowledge about the bases of model-driven development, software engineering, and some general purpose modelling languages like UML.
Similar to IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling & design. A standard of Object Management Group (OMG). By Marco Brambilla
Similar to IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling & design. A standard of Object Management Group (OMG). By Marco Brambilla (20)
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling & design. A standard of Object Management Group (OMG). By Marco Brambilla
1. IFML: Building the front end of
Web and Mobile applications with OMGâs
Interaction Flow Modeling Language
Marco Brambilla
marco.brambilla@polimi.it
@marcobrambi
3. What is a model?
Models
Mapping Feature A model is based on an original (=system)
Reduction Feature A model only reflects a (relevant) selection of
the originalâs properties
Pragmatic Feature A model needs to be usable in place of an
original with respect to some purpose
ModelrepresentsSystem
Purposes:
âą descriptive purposes
âą prescriptive purposes
4. CIM, PIM, PSM
Modeling Levels
Computation independent (CIM): describe requirements and
needs at a very abstract level, without any reference to
implementation aspects
Platform independent (PIM): define the behavior of the
systems in terms of stored data and performed algorithms,
without any technical or technological details
Platform-specific (PSM): define all the technological aspects in
detail
12. User interaction has been overlooked in software engineering standards
Hence the Interaction Flow Modeling Language (IFML)
Standardization gap
13. 13
We were going to make them an
offer they couldnât refuse.
In less than 2 years
(a record in OMG!), we obtained
approval of the IFML standard
The Object Management Group
14. User interaction has been overlooked in software engineering standards
Hence the Interaction Flow Modeling Language (IFML)
In less than 2 years (a record in OMG!), we obtained approval of the beta
IFML standard
Version 1.0 due to come out in these weeks
Standardization gap
27. Multiple views for the same application
Mobile and multi-device applications
Visualization and input of data, and production of events
Components independent of concrete widgets and presentation
Interaction flow, initiated by the user or by external events
User context: the user status in the current instant of the interaction (position,
history, machine, platform,âŠ)
Modularization of the model (design-time containers for reuse purpose)
User input validation and constraints, according to OCL or other existing
constraint languages
Covered aspects
29. IFML by example
Basic navigation flow between ViewComponents
Artists
List
Artists
Artist
Event
View
Component
View Container
ParameterBinding«ParameterBindingGroup»
SelectedArtist ï AnArtist
30. IFML by example
Album
Search
«Window» AlbumSearch
Album
List
«Window» Albums
Album
Details
«Window» Album
«ParameterBindingGroup»
Title ï AlbumTitle
Year ï AlbumYear
«ParameterBindingGroup»
SelectedAlbum ï AnAlbum
«Form» «List» «Details»
31. IFML by example
Nesting of ViewContainers
Tagged ViewContainers (XOR)
Artist and
Album List
Albums&Artists
Albums&Artists
Artist Details
Artist
Album Details
Album
[XOR] Album or Artist
«ParameterBindingGroup»
SelectedAlbum ï AnAlbum
«ParameterBindingGroup»
SelectedArtist ï AnArtist
Select Artist
Select Album
32. ViewComponentParts:
âą Data binding
âą Parameters
Types of ViewComponents (<<List>>)
IFML â adding details to ViewComponents
«DataBinding» MailMessage
«ConditionalExpression»
self.mm2MailMessageGroup =
MailBox
«List» Message List
«Parameter» MailBox : MailBox
33. Joint use of IFML and other modeling languages:
âą DataBinding to classes and attributes of UML Class Diagrams
âą Also with other content models, such as: Entity-Relationship,
Ontologies, âŠ
Data binding
35. Joint use of IFML and other modeling languages
Connection of Actions to back-end business logic as
âą UML methods of classes
âą whole UML dynamic diagrams
â activity diagram, sequence diagram, state chart diagram, âŠ
Dynamic Behaviour
40. IFML concrete syntax by example
intra-component events and flows
[L] Message Writer
Send
«Form» Message Writer
«SimpleField» to: String
«SimpleField» cc: String
«SimpleField» bcc: String
«SimpleField» subject: String
«SimpleField» body: String
«Parameter» State
«SimpleField» attachment: âŠ
Save
Add cc
Add bcc
Edit Subject
Add attachment
Reply to all
Reply
Forward
Discard
«ActivationExpression»
State <> âForwardâ
Send Save
«ActivationExpression»
State = âReplyâ or
State = âReply Allâ
«ParameterBindingGroup»
âRe:â + subject ï subject
from ï to
cc ï cc
body ï body
âReply Allâ ï State
«ParameterBindingGroup»
âRe:â + subject ï subject
from ï to
cc ï cc
body ï body
âReply Allâ ï State
«ParameterBindingGroup»
âFw:â + subject ï subject
body ï body
âForwardâ ï State
«ActivationExpression»
State <> âReplyâ
«ActivationExpression»
State <> âReply Allâ
Action
Confirmed
Action
Confirmed
41. IFML concrete syntax by example
<<Details>>
Confirmation
Message
Confirmation Page
Action
Confirmed
Capturing of custom events
Note: typical problem of event-based systems (termination, âŠ)
42. IFML example â online payment
Product
List
Shopping Cart
«List»
Customer
Information
Customer Information
«Form»
Execute
the
payment
Checkout
«ParameterBindingGroup»
Name ï Name
Payment
Information
Payment Information
«Form»
«ParameterBindingGroup»
Name ï Name
CreditCard ï CC
Confirmation
Confirmation
Message
«Details»
«ParameterBindingGroup»
Totalï Amount
43. IFML concrete syntax â modules
IFML Modules - definition
Execute
the
payment
«ParameterBindingGroup»
Name ï Name
«ParameterBindingGroup»
Name ï Name
CreditCard ï CC
Customer
Information
Customer Information
«Form»
Payment
Information
Payment Information
«Form»
Amount
Confirmation
Payment
Execution
45. Multiple aspects modeling â 1
(business and requirements)
UML Use Case BPMN process
UML Sequence
IFML
UML Statechart
Handle Rental
Sales Clerk
Handle Renter
<<Include>> <<Extend>>
Handover Car
<<UML Actor>>
Sales Clerk
<<UML
Model>>
IT
system
new rental
change
days
accept
payment
46. Integration with UML Use Cases
Each use case can be described by
A business process
A plain UI description in IFML
Some UML dynamic diagrams (e.g., activity, sequence, âŠ)
Handle Rental
Sales Clerk
Handle Renter
<<Include>> <<Extend>>
Handover Car
47. Integration with BPMN
The UI of each activity
can be described by
An IFML module
Some UML dynamic
diagrams (e.g.,
activity, sequence, âŠ)
Execute
the
payment
«ParameterBindingGroup»
Name ï Name
«ParameterBindingGroup»
Name ï Name
CreditCard ï CC
Customer
Information
Customer Information
«Form»
Payment
Information
Payment Information
«Form»
Amount
Confirmation
Payment
Execution
48. Example of UML - IFML mapping
IFML Model
<< Use Case>>
Handle Rental
xUMLUseCaseDiagram
<<xUML Actor>>
Sales Clerk
<< Use Case>>
Handle Renter
<<Include>> <<Extend>>
<< Use Case>>
Handover Car
<<UML Actor>>
Sales Clerk
Handle
Rental
xUML Sequence Diagrams
<<UML Model>>
IT system
new rental
change dates
accept payment
IFML models can be
reworked or refined
after being generated
50. Description of deployment architecture
UI is just one facet of system design
Often need to position it in a broader architectural vision
UML deployment diagram
Integration with UML
52. âą Manual specification of BPMN process model
âą Automatic transformation of BPMN to WebML
âą Possible manual refinement of WebML models
âą Automatic running code generation on J2EE platform
âą Virtuous development cycle
Model-driven Development Process
(IFML)
54. Executability experiment within OMG
IFML
editor
IFML
code
generator
UML
editor
Alf editor
+ parser
Alf
compiler
fUML
model
fUML
Interpreter
Platform
speciïŹc
UI code
produces
calls
IFML
model
produces
calls
input
UI
execution
backend
business logic
execution
55. An official metamodel of the language which describes the semantics of and
relations between the modeling constructs
A graphical concrete syntax for the interaction flow notation which provides an
intuitive representation of the user interface composition, interaction and control
logic for the front-end designer
A UML Profile consistent to the metamodel
An interchange format between tools using XMI
All this, specified through standard notations themselves
Practical results of having a standard
56. Static aspects
Also: interchange with profile-based diagrams.
The UML Profile for IFML
«page»
AlbumSearch
«page»
Albums
«page»
Album
Album Search Album Index Album Detail
Dynamic aspects
«index»
MBox List
«index»
Message
Index
SelectMailMessages(mBox)
57. BPMN and/or UML editor
Tight and seamless integration between different modeling tools
âą Thanks to XMI interchange format, UML profiles, vendor-specific notation
implementations
âą Thanks to model to model transformations
IFML modeling and
industrial-strenght
UI generation
Model integration and interchange
UML tool implementing
IFML profile
Other Domain-
specific modeling tool
XMI model
exchange
Model to
model
transformation
58. Joint usage of IFML with other MDA languages can be devised:
âą SysML
âą SoaML
âą âŠ
⊠and also with other frameworks (e.g., Model Driven Enterprise
Engineering)
Broader, enterprise-wide system modeling
73. MessageList
«Menu» Message toolbar
«Parameter» MessageSet
Delete
Archive
Report
MessageSelection
«Modeless» Tag Chooser
«Modal» Tag Creator
Select Tag Tag Folder List
Create New
New Tag FolderCreate
Message toolbar
MessageSelection
[XOR] Tags
Mailbox
«List»
«List»
«Form»
74. MessageList
«Menu» Message toolbar
«Parameter» MessageSet
Delete
Archive
Report
MoveTo
MessageSelection
«Modeless» Tag Chooser
«Modal» Tag Creator
Select Tag
MailBox
Tag Folder List
Create New
New Tag Folder
Create
Delete
Archive
Report
Associate
to Tag /
Move to
folder
Create Tag
and
Associate
Tag / Move
to folder
«List»
«ParameterBindingGroup»
SelectedMessages ï MessageSet
«ParameterBindingGroup»
SelectedMessages ï MessageSet
«ParameterBindingGroup»
SelectedTag ï ATag
«List»
«ParameterBindingGroup»
NewTagName ï TagName
«Form»
75. [XOR] MessageSearch
[D] Search
Message keyword
search
«Modeless» FullSearch
Message Full
Search
Show search options
Search mail Search mail
MailBox
Message List
«List»
«Form» «Form»
«ParameterBindingGroup»
Keyword ï Key
«ParameterBindingGroup»
Keyword ï Key
From ï FromKey
To ï ToKey
«ParameterBindingGroup»
Keyword ï Keyword
Search forms
76. [XOR] MessageSearch
[D] Search «Modeless» FullSearch
Search mail
MailBox
«Form» Message Keyword Search «Form» Message Full Search
«SimpleField» Keyword: String
«SimpleField» Keyword: String
Search mail
«SimpleField» From: String
«List» Message List
«DataBinding» MailMessage
«ConditionalExpression» MailMessage IN
self.mm2MailMessageGroup = Mailbox
«ConditionalExpression»( if (Key.size() <= title.size()) then
Sequence(1..title.size() - Key.size()) -> exists(i |
title.substring(i,i+ Key.size()) = Key )
else
false) OR
(if (from.size() <= self.from.size()) then
Sequence(1..self.from.size() - from.size()) -> exists(i |
self.from.substring(i,i+ from.size()) = from )
else
false
)
Show search
options«ParameterBindingGroup»
Keyword ï Key
«ParameterBindingGroup»
Keyword ï Keyword
«ParameterBindingGroup»
Keyword ï Key
From ï From
Search Conditions
78. «Form» MessageWriter
Search mail
«RichTextSimpleField» Body
«RichTextToolBar» Toolbar[ClientSide]
ApplyFormat
[ClientSide]
ApplyFormat
Remove format «Modal» Alert
Cancel
[ClientSide]
ApplyFormat
Ok
[L] Message Writer
Client Side Logic
79. Typical mobile UI
Simple app
Complex interactions
Touch events
Example 2: Instagram
AutoMobile FP7 SME
EU research project
http://automobile.webratio.com
88. Detailed MediaViewer
«NestedList» MediaViewer
<< Modal >> User Medi
Menu
<< Modal >> LoggedUser
MediaMenu
«DataBinding» Media
See
Location
See
User
<<ModuleReference>>
Map
<<ModuleReference>>
User
<<ModuleRef>>
Tag
«NestedDataBinding» contains
SeeAllCommen
ts
«VisualizationAttributes» postTime, location, file
«VisualizationAttributes» numLikes
«ActivationExpression»
likedBy->size() <11
See
Media
Menu
See User
SeeSameTag
Comment
Toggle
Preference
Like
<<DoubleTouch>
> Like/See Tagged
Play / Stop
<<Touch>>
Play/Stop
«ActivationExpression»
type==âVideoâ
«ActivationExpression»
username != Context.userna
«ActivationExpression»
userName == Context.usern
<<ModuleReference>>
Likers
SeeLikers
See
Media
Logged
Menu
«ActivationExpression»
numLikes >10
BlockSize=6
«VisualizationAttributes» userName, text
«NestedDataBinding» comprises
«VisualizationAttributes» tagName
See User
«NestedDataBinding» mentions
«VisualizationAttributes» userName
See User
«NestedDataBinding» likedBy
«ConditionalExpression»
MediaOIDs->includes (oid)
«VisualizationAttributes» userName
«NestedDataBinding» postedBy
«VisualizationAttributes» userName, photo
Share Delete TagPeople
Report CopyURL
89. User Profile UI
Upper section
Lower
section
Commands
Profile menu
ProfileData ProfileData
93. 93
Classical ecommerce web site
Extensive coverage of products and details (huge site!)
But patterns of interaction are much simpler than minimalist
mobile UIs!
Basic content model coming up nextâŠ
Example 3: eBay
104. An Eclipse-based development environment allowing:
Modeling: ER + IFML + BPMN
100% code generation of standard JEE applications
âą Clear separation between design time and run time
âą No proprietary runtime
Quick and agile development cycles
Extending the generation rules
âą Defining new presentation styles
âą Defining new components
Versioning, teamwork, full lifecycle mgt
Truly multi-role model-driven development
What is WebRatio
Requirement Analysis
Solution Modeling
Prototype Generation
Results Verification
105. WebRatio is
now at 7th release
on the market since 2001
WebRatio customers
130+ companies and 500+ commercial users
mainly Italy, USA, Europe and Latin America
WebRatio adoption
15,000+ users of the free edition
Used in hundreds of universities all over the world
WebRatio partners
40+ software houses and system integrators
300+ universities worldwide, 13.000+ students
Some numbers
106. You capture business requirements in abstract,
technology independent models
BPMN + IFML
WebRatio â Step 1
Business
User
WebRatio
Modeller
107. You customize the environment by defining your own
generation rules
HTML 5 + CSS + Java
WebRatio â Step 2
Layout
Designer
Java
Programmer
108. You get a tailored, yet standard, Java Web application
with no proprietary runtime
Code generation
WebRatio â Step 3
WebRatio
Modeller
Business
User
110. Involve business users in the development process and
converge quickly to the target
Agile, quick prototyping
Requirement
Analysis
Solution
Modelling
Application
Generation
Results
Validation
113. Kinds of application
Corporate
Operations
Human Capital
Management
Product Life Cycle
Management
Customer
Relationship
Management
Enterprise
Resource
Planning
Supply Chain
Management
Knowledge
Support
Sales and Lead
Management
Marketing
Resources Mgt
Web Customer
Services
B2C/B2B
E-Commerce
Learning
Management
Document
Management
Project
Management
Customer
Information Mgt
Partner
Relationship Mgt
Recruitment
Training
Workforce
Management
Supplier
Relationship Mgt
Business
Intelligence
Web Content
Management
Knowledge
Management
Risk and
Compliance
Enterprise
Governance
Order Mgt
Payment Services
Orchestration
Web Front-End of
accounting sys.
Front-Office
Process Mgt
Financial
Services
114. B2C + CMS Web applications initially for 14 EU countries
Corporate news, Product technical & commercial data, Service &
Partner area, Where to BuyâŠ
Multilingual, multi-actor, distributed workflows for local and
central PMs, local and central MarCom managers
... and a: very limited Time to Market (7 weeks!!)
Acer
115. Size & effort
Class Dimension Value
Number of localized B2C web sites 14
Number of main CMS applications 4 (Admin, News, Product, Other
content)
Number of supported languages 12 for B2C Web sites, 1 for
CMS
Number of data entry masks 39
Number of automatically generated database tables 46
Number of automatically generated database views 82
Number of automatically generated database
queries
279 for data extraction, 89 for
data update
Number of automatically generated JSP page
templates
48
Number of automatically generated or reused Java
classes
250
Size
Number of automatically generated Java lines of
code
12500 Non commented lines of
code
Number of elapsed workdays 49
Number of development staff-months (analysts and
developers)
6 staff-months (6 weeks x 4
persons)
Total number of prototypes 9
Average elapsed man days between consecutive
prototypes
5,4
Time &
effort
Average number of development man days per
prototype
15,5
116. Size & effort
DEGREE OF AUTOMATION
Number of manually written SQL statements 17(SQL constraints)
Percentage of automatically generated SQL code 96%
Number of manually written/adapted Java classes /JSP templates 10% JSP templates
manually adapted
Percentage of automatically generated Java and JSP code 90% JSP templates,
100% Java classes
COST AND ROI
Total cost of software development of first version 75.000 âŹ
HW, SW licenses, and connectivity cost of first version 70.000 ⏠(db server
license)
Return on investment of first version 12-15 months
Average effort of extension to one additional country 0,5 staff-months
Average cost of extension to one additional country 7.500 âŹ
Average ROI of extension to one additional country 2 months
PRODUCTIVITY
Number of function points 177 (B2C web site)
+ 612 (CMS) = 789
Average number of function points delivered per staff-month 131,5
117. On the positive side:
Almost 80% of the delivery effort concentrates in the phases of
data design, hypertext design and prototyping:
âą more development time is spent with the application stakeholders
MDD allows a more flexible distribution of
responsibilities between the IT department and the
business units
The peak productivity rates has reached five times the
number of delivered function points per staff-month of
a traditional programming language like Java
Comments
118. On the negative side..
Acer estimates that it took from 4 to 6 months to have fully
productive developers with MDD, IFML, and WebRatio
Difficult to find skilled people
..but..
The initial investment in human capital required by MDD pays
off in the mid term
âą MDD benefits testing, maintenance, and evolution (which account
for over 60% of the total lifecycle cost)
âą reasoning on the system is far more effective at the conceptual
level
Comments (continued)
119. Maintenance effort
Served Contries and Applications
4 4 4 5 5
17
24
32
41
56
17
21
24
28
31
0
10
20
30
40
50
60
2001 2002 2003 2004 2005
Year
Units
Number of developers
Number of
maintained
applications
Number of served
countries
120. âą Public company owned by the City of Turin in Italy
âą Local public transport serving 190 million passengers every
year.
âą A new e-ticketing system (avail able at
http://ecommerce.gtt.to.it and serving 64,000 daily passengers)
âą published on-line in only 2 months.
âą The application comprises 100 page templates (IFML pages)
and 1215 IFML units.
âą KEY: iterative and quick prototyping approach supported by
WebRatio
GTT: Turin Transportation Group
121. âą Multi-utility company buying and selling wholesale electric
power.
âą Integrated Energy Management System that replaced individual
productivity tools used by traders for the management of
electric power.
âą KEY: quick prototyping approach and involvement of actual
users in the development process.
âą Deployment of final app in 6 months after the initial meeting
with WebRatio (time to market that took one-third of the time
estimated in case of adoption of a traditional development)
A2A: Utility in Milan
122. âą Banking (UniCredit)
âą BPM + SOA + Web interfaces
âą Crucial points: modularization, multiple models integration,
multiple tools integration, strict runtime platform
requirements
âą Banking (ABI)
âą System integration (Pure backend!)
âą Why IFML?
âą Latin America
âą Cooperatives, banks, public bodies, central government
âą Wholesale (IKEA)
âą Financial / leasing (GE Capital)
Other experiences
123. âą Models integration
âą Large applications with strong need for coherence and
standardized paradigms
âą Cooperatives, banks, public bodies, central government
âą Service orientation
âą No pure modeling exists
âą Code generation still win-win
Where IFML works
124. Components and pages per project
1"
10"
100"
1000"
10000"
100000"
10" 100" 1000"
Number'of'units'
Number'of'pages'
129. Conclusion: innovation eco-system
Research
(Research group
at Polimi)
Method,
Language
and Platform
Spin-off
(WebRatio)
Customers
(including EU
projects)
Teaching
(Polimi and int.l courses)
innovation
innovation toolsuite
Toolsuite, industrial requirements
innovation
requirementsuse cases
Standard
& other SME
Partners
130. Some Ads
âModel Driven Software
Engineering in Practiceâ.
Brambilla, Cabot, Wimmer.
Morgan&Claypool, USA, 2012
www.modeldrivenstar.com And the upcoming
IFML book!
Interaction Flow
Modeling Language
Model-driven UI
Engineering of Web
and Mobile Apps
with IFML
Morgan Kaufmann,
The OMG press,
USA, 2014
131. S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera: Designing Data-
Intensive Web Applications, Morgan-Kaufmann Publishers, San Francisco, ISBN 1-55860-
843-5 (Series edited by Jim Gray, foreword by Adam Bosworth) 590 pages.
M. Brambilla, J. Cabot, M. Wimmer: Model Driven Software Engineering in Practice.
Morgan & Claypool, USA, September 2012, foreword by Richard Soley (OMG), 184 pages.
ISBN 978-1608458820.
Manolescu, M. Brambilla, S. Ceri, S. Comai, P. Fraternali: Model-driven design and
deployment of service-enabled web applications. ACM Trans. Internet Technology (TOIT).
5(3), pp. 439-479 (2005).
M. Brambilla, S. Ceri, P. Fraternali, I. Manolescu: Process modeling in Web applications.
ACM Trans. Softw. Eng. Methodol (TOSEM). 15(4), pp. 360-409 (2006).
M. Brambilla, I. Celino, S. Ceri, D. Cerizza, E. Della Valle, F. M. Facca: Model-Driven
Design and Development of Semantic Web Service Applications, ACM Trans. on Internet
Technology (TOIT). 8(1), pp.3:1 - 3:31 (2007).
M. Brambilla: From Requirements to Implementation of Ad-hoc Social Web Applications: an
Empirical Pattern-Based Approach. IET Software, 6(2), 2012, pp.114-126.
M. Brambilla, S. Ceri, S. Comai, C. Tziviskou. Exception Handling in Workflow-Driven Web
Applications. WWW 2005 Int. Conference on World Wide Web. ACM, pp. 170-179.
(some) references