SlideShare une entreprise Scribd logo
1  sur  30
Interaction Flow Modeling Language
Matteo Silva matteosilva
Politecnico di Milano and WebRatio
Webinar Mayo 31, 2013
2
¿Cuándo fue la ultima vez que desarrollaste el front-end de una
aplicación?
¿Cuándo fue la ultima vez que te enojaste haciéndolo?
El desarrollo de la UI (User Interface) de una aplicación y la
implementación de la interacción de usuario es una de las
fases mas “dolorosas” del proceso de desarrollo….
… para todos!
¿Es esté tu problema?
3
Las razones de tu frustración:
La complexidad de las UIs incrementa el tiempo de desarrollo
• Nuevo eventos, dispositivos, casos de uso, interacciones…
Herramientas primitivas en la programación de UI
• Widgets drag&drop
• Hooks to execution
Especialmente para las modernas UIs, gran parte del trabajo resulta
todavía manual mediante programación tediosa (por ejemplo
programación Javascript )
No existe ninguna metodología MDE (Model Driven Engineering ) que
abarque esta problemática, excepto WebML+WebRatio en el dominio de
las aplicaciones Web.
El problema del modelado de la UI
4
La comunidad de desarrolladores percibe una falta de
estandarización
La interacciónón de usuarios ha sido subestimada en la ingeniería del
software
• Más se focaliza en temas relativos al backend y arquitecturales
Los pocos intentos de estandarización de la UI fracasaron porque:
• Intentaron utilizar lenguajes de dominio generico (ej. UML)
• La notación era poco usable y poco efectiva
• Falta de implementaciones solidas por parte de software vendors
La falta de estandarización
5
Todo esto fue lo que nos motivó a proponer
Fuertemente inspirado por WebML, actualmente representa su
generalización desde el dominio Web a un dominio genérico para la
representación del Front-end de cualquier tipo de aplicación (Web,
Escritorio, Mobile, etc.)
Interaction Flow Modeling Language
El Lenguaje de Modelado para los Flujos de Interacción
6
Les haremos una oferta que no
podrán rechazar.
En menos de 2 años (¡un record
en OMG!), hemos obtenido una
aprobación de IFML como
estándar
Object Management Group
7
Objetivos
Un lenguaje de modelado para representar
La visualización de los contenidos en las interfaces de usuario
Patrones de navegación
Eventos de usuario y su interacción
Binding a la lógica de negocio
Binding a las capas de persistencia
del front-end de las aplicaciones pertinentes a diversos dominios funcionales
Interaction Flow Modeling Language
8
Especificación formal de las diferentes perspectivas del fron-end
Aislamiento de las problemáticas de la UI
Separación de los conceptos (interacción de usuario vs. backend)
Simplificación de la comunicación entre los expertos de UI y stakeholders
no tecnicos
Generación automática del código para el front-end de las aplicaciones
Ventajas
9
Enfoque la interacción de usuario:
UI mezcla temas de visualización y diseño gráfico
Distinguir la Interacción de la Interfaz
La VIEW part (=front-end) de una aplicación software
Componentes de view
Eventos
Interacción entre componentes
Interacción entre usuario y componentes (eventos)
Distribución de los componentes y referencia a los componentes de la capa de
datos y de la capa lógica de una arquitectura multicapa
Enfoque
10
Vistas multiples de la misma aplicación
Aplicaciones Mobiles y múltiple-dispositivo
Visualización e ingreso de data, y producción de eventos
Componentes independientes a widgets y presentación
Interaction flow (flujo de interacción), activados por usuarios o eventos
Contexto de usuario: el estado del usuario en el instante corriente de la
interacción (posición, historial, maquina, plataforma..)
Modularidad del modelo (reutilizo de los componentes o fragmentos del modelo)
Validación del “input” del usuario, de acuerdo a OCL (Object Constraint
Language) o a otros lenguaces similares
Aspectos cubiertos
11
IFML conceptos principales (core IFML) 1/2
Container
(contenidor)
ViewComponent
(componente de vista)
Event
(evento)
Action
(acción)
Navigation flow
(flujo de navegación)
Data flow
(flujo de datos)
Parameter binding
(vinculación de parametros)
12
IFML conceptos principales (core IFML) 2/2
Lo que ganas y lo que pierdes
Nuevos aspectos
• Modelado de eventos genéricos
• De usuario y de sistema
• Flujo entre componentes y
contenidores
Nuevo
• ViewComponent
• Details, List, Form
• Flow, Data Flow
• Action
• Port
Aspectos faltantes
• Modelación de orquestación
(cadenas de operaciones)
Viejo
• Unit
• Data, Index, Entry Units
• Link, Transport Link
• Operation Module
• Input/Output Collector
13
Cambios de terminología desde WebML
14
IFML Ejemplo de sintaxis 1/2
Flujo básico de navegación entre ViewComponents
15
IFML Ejemplo de sintaxis 2/2
ViewContainers inhestados
Tagged ViewContainers (XOR, L, D, Modal, Modeles)
16
IFML concrete syntax by example
Actions
ViewComponentParts:
• Data binding
• Parameters
Types of ViewComponents (<<List>>)
17
IFML – Agregar detalles a ViewComponents
Selection event
Submit event
.. Y todos los que necesitas para tu comodidad!
18
IFML – subtipos de componentes y eventos
IFML está definido por un metamodelo
IFML metamodel (1)
…
19
Tiene 2 paquetes principales:
IFML metamodel (2)
…
• IFML Core
• IFML Extensions
… y desde luego tu puedes
extender lo que quieras, para
diferentes campos y plataformas
(Web, Mobile, …)
20
Un ejemplo real.. La UI completa de GMAIL
21
Messages [L D]
GMAIL top [X]
Mbox
List
<<XOR>> Message Management
MailBox
Message
notification
<<XOR>> Message Reader
<<D>>
Message
Index
Message
details
<<L>> Settings
<<P>> Tag chooser
Report
Archive
Delete
Tag/
Folder
Index
Associate
to tag /
Move to
folder
<<M>> Tag creator
New Tag/
Folder
Create
Tag/
Folder
Message toolbar
OUT: NewTag
IN: ATag
OUT: NewTagName
IN: TagName
OUT: SelectedTag
IN: ATag
OUT: SelectedMessages
IN: MessageSet
Delete
Archive
Report
MoveTo
Create
New
Select
Tag
Create
MarkAll
MarkAll
AsRead
OUT: AllMessages
IN: MessageSet
<<parameter>>
MessageSet
<<XOR>> Message search
<<D>> Search
Message
keyword
search
<<P>> FullSearch
Message
full search
Show search
options
Search mail
OUT: Keyword
IN: SearchKey
<<L>> Message writer
<<form>> Message Writer
Send
Action
{Self.MessageRecipients >1}
OUT: MessageID
IN: MessageID
<<field>> To
<<field>> Cc
<<field>> Bcc
<<field>> Subject
<<field>> Body
<<field>> Attachment
OUT: Subject, From,
Cc, Body, “ReplyAll”
IN: “Re:”+ Subject, To, Cc,
Body, State
OUT: Subject, From,
“”, Body, “Reply”
IN: “Re:”+ Subject, To, Cc,
Body, State
OUT: Subject, “”, “”, Body,
“Forward”
IN: “Fw:”+ Subject, To, Cc,
Body, State
State =”Reply” OR
”Forward”
Save
Action
State =”Forward”
OR ”ReplyToAll”
<<parameter>> State
State =
”NewMessage” OR
“Forward”
Forward
Reply
ReplyToAll
Add Bcc
Add Cc
Edit subject
Add attachment
Send Save
Discard
Reply
ToAll
Reply
Forward
State =”Reply” OR
”ReplyToAll”
State =”Reply”
OR ”ReplyToAll”
OUT: Keyword, From,
To., ...
IN: SearchKey,
FromKey, ToKey, ..
*
22
IFML ejemplos concretos de sintaxis
ActivationExpression, SubmitEvent, Event generation
23
IFML ejemplos concretos de sintaxis
intra-component events and flows
24
Un meta modelo oficial del lenguaje que describe la semántica y las relaciones
entre los constructos del modelado
Una sintaxis grafica y concreta para la notación de interacción de flujos que
provee una representación intuitiva de la composición de la interfaz de usuario, la
interacción y la lógica de control para el diseñador de front-end.
Un Perfil UML consistente del metamodelo
Un formato de intercambio entre tools basado en XMI
Todo esto, especificado mediante una notación estándar
Resultados practicos a tener el estandar
25
Aspectos estáticos
El perfil UML de IFML
«page»
AlbumSearch
«page»
Albums
«page»
Album
Album Search Album Index Album Detail
«index»
Message
Index
«index»
MBox List «link»
26
Static aspects
Señales con valores “tagged”
Aspectos dinámicos
El perfil UML de IFML
«signal»
SelectMailMessages
mBox :string
Tagged values.
Parameter mBox
out name: selectedMBox
in name: mBox
«index»
MBox List
«index»
Message
Index
SelectMailMessages(mBox)
Una estrecha integración entre diferentes herramientas de
modelado
Gracias a XMI (formato de intercambio), Perfiles UML, especificaciones
propietarias de software vendors
Modelado IFML e
generación de UI
en contextos
industriales
avanzados
27
Integración e intercambio de Modelos
Tool UML que
implementan el
perfil IFML
28
Fuerte integración con otras perspectivas de modelado y capas de
modelado de una arquitectura de una app enterprise
Utilizo conjunto de IFML y otros lenguajes MDA, por ejemplo:
• UML
• BPMN
• SysML
• SoaML
• …
En particular abarca:
• DataBinding a clases y atributos de un Class Diagram UML
• Conexión a la lógica de business de bac-kend como metodos UML o diagramas
dinámicos UML (activity diagram, sequence diagram, state chart diagram, …)
Broader, enterprise-wide modeling
Matteo Silva
matteosilva
matteo.silva@webratio.com
Si quieres conocer mas acerca de MDE lee el
libro:
“Model Driven Software
Engineering in Practice”.
Brambilla, Cabot, Wimmer.
Morgan&Claypool, USA.
Matteo Silva
matteosilva
matteo.silva@webratio.com
¡Gracias por asistir!

Contenu connexe

Tendances

Planificacion Programacion 2
Planificacion Programacion 2Planificacion Programacion 2
Planificacion Programacion 2Porfirioben
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)urumisama
 
Arquitectura Orientada a Servicios joseadugarte
Arquitectura Orientada a Servicios joseadugarteArquitectura Orientada a Servicios joseadugarte
Arquitectura Orientada a Servicios joseadugartethearcangelboss
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...Jesús Navarro
 
Manejador de Base de Datos
Manejador de Base de Datos Manejador de Base de Datos
Manejador de Base de Datos Brenda Medina
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSDarwin Durand
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridadkamui002
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOSfas_sakura
 

Tendances (20)

Planificacion Programacion 2
Planificacion Programacion 2Planificacion Programacion 2
Planificacion Programacion 2
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
 
Arquitectura Orientada a Servicios joseadugarte
Arquitectura Orientada a Servicios joseadugarteArquitectura Orientada a Servicios joseadugarte
Arquitectura Orientada a Servicios joseadugarte
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 
Manejador de Base de Datos
Manejador de Base de Datos Manejador de Base de Datos
Manejador de Base de Datos
 
Requerimientos del Software
Requerimientos del SoftwareRequerimientos del Software
Requerimientos del Software
 
CREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOSCREACION Y MANEJO DE LA BASE DE DATOS
CREACION Y MANEJO DE LA BASE DE DATOS
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
2 Curso de POO en java - modelamiento casos de uso
2 Curso de POO en java - modelamiento casos de uso2 Curso de POO en java - modelamiento casos de uso
2 Curso de POO en java - modelamiento casos de uso
 
OMT
OMTOMT
OMT
 
Presentacion Joomla
Presentacion JoomlaPresentacion Joomla
Presentacion Joomla
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 

Similaire à Webinar IFML en Español

Bpm forum 2013 WebRatio - BPMN & IFML
Bpm forum 2013   WebRatio - BPMN & IFMLBpm forum 2013   WebRatio - BPMN & IFML
Bpm forum 2013 WebRatio - BPMN & IFMLMatteo Silva
 
Modelado de sistemas software
Modelado de sistemas softwareModelado de sistemas software
Modelado de sistemas softwareJavier Ramírez
 
Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo Jm
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
 
Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01hucarre
 
Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01hucarre
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebPierina G. Abad
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 

Similaire à Webinar IFML en Español (20)

Bpm forum 2013 WebRatio - BPMN & IFML
Bpm forum 2013   WebRatio - BPMN & IFMLBpm forum 2013   WebRatio - BPMN & IFML
Bpm forum 2013 WebRatio - BPMN & IFML
 
Modelado de sistemas software
Modelado de sistemas softwareModelado de sistemas software
Modelado de sistemas software
 
Introduccion a la ingenieria de software
Introduccion a la ingenieria de softwareIntroduccion a la ingenieria de software
Introduccion a la ingenieria de software
 
Tema modeloobjeto-1pp
Tema modeloobjeto-1ppTema modeloobjeto-1pp
Tema modeloobjeto-1pp
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño
 
Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01
 
Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01Universidadautnomadeaguascalientes 101201081351-phpapp01
Universidadautnomadeaguascalientes 101201081351-phpapp01
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_Diseñoweb
 
computacion
computacioncomputacion
computacion
 
Com521
Com521Com521
Com521
 
Estructura de casos de uso
Estructura de casos de usoEstructura de casos de uso
Estructura de casos de uso
 
Sesion1 adsi
Sesion1 adsiSesion1 adsi
Sesion1 adsi
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Silabo prog-movil-sis
Silabo prog-movil-sisSilabo prog-movil-sis
Silabo prog-movil-sis
 
Generalidades de visual basic 8
Generalidades de visual basic 8Generalidades de visual basic 8
Generalidades de visual basic 8
 
Generalidades de visual basic 8
Generalidades de visual basic 8Generalidades de visual basic 8
Generalidades de visual basic 8
 

Dernier

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Dernier (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Webinar IFML en Español

  • 1. Interaction Flow Modeling Language Matteo Silva matteosilva Politecnico di Milano and WebRatio Webinar Mayo 31, 2013
  • 2. 2 ¿Cuándo fue la ultima vez que desarrollaste el front-end de una aplicación? ¿Cuándo fue la ultima vez que te enojaste haciéndolo? El desarrollo de la UI (User Interface) de una aplicación y la implementación de la interacción de usuario es una de las fases mas “dolorosas” del proceso de desarrollo…. … para todos! ¿Es esté tu problema?
  • 3. 3 Las razones de tu frustración: La complexidad de las UIs incrementa el tiempo de desarrollo • Nuevo eventos, dispositivos, casos de uso, interacciones… Herramientas primitivas en la programación de UI • Widgets drag&drop • Hooks to execution Especialmente para las modernas UIs, gran parte del trabajo resulta todavía manual mediante programación tediosa (por ejemplo programación Javascript ) No existe ninguna metodología MDE (Model Driven Engineering ) que abarque esta problemática, excepto WebML+WebRatio en el dominio de las aplicaciones Web. El problema del modelado de la UI
  • 4. 4 La comunidad de desarrolladores percibe una falta de estandarización La interacciónón de usuarios ha sido subestimada en la ingeniería del software • Más se focaliza en temas relativos al backend y arquitecturales Los pocos intentos de estandarización de la UI fracasaron porque: • Intentaron utilizar lenguajes de dominio generico (ej. UML) • La notación era poco usable y poco efectiva • Falta de implementaciones solidas por parte de software vendors La falta de estandarización
  • 5. 5 Todo esto fue lo que nos motivó a proponer Fuertemente inspirado por WebML, actualmente representa su generalización desde el dominio Web a un dominio genérico para la representación del Front-end de cualquier tipo de aplicación (Web, Escritorio, Mobile, etc.) Interaction Flow Modeling Language El Lenguaje de Modelado para los Flujos de Interacción
  • 6. 6 Les haremos una oferta que no podrán rechazar. En menos de 2 años (¡un record en OMG!), hemos obtenido una aprobación de IFML como estándar Object Management Group
  • 7. 7 Objetivos Un lenguaje de modelado para representar La visualización de los contenidos en las interfaces de usuario Patrones de navegación Eventos de usuario y su interacción Binding a la lógica de negocio Binding a las capas de persistencia del front-end de las aplicaciones pertinentes a diversos dominios funcionales Interaction Flow Modeling Language
  • 8. 8 Especificación formal de las diferentes perspectivas del fron-end Aislamiento de las problemáticas de la UI Separación de los conceptos (interacción de usuario vs. backend) Simplificación de la comunicación entre los expertos de UI y stakeholders no tecnicos Generación automática del código para el front-end de las aplicaciones Ventajas
  • 9. 9 Enfoque la interacción de usuario: UI mezcla temas de visualización y diseño gráfico Distinguir la Interacción de la Interfaz La VIEW part (=front-end) de una aplicación software Componentes de view Eventos Interacción entre componentes Interacción entre usuario y componentes (eventos) Distribución de los componentes y referencia a los componentes de la capa de datos y de la capa lógica de una arquitectura multicapa Enfoque
  • 10. 10 Vistas multiples de la misma aplicación Aplicaciones Mobiles y múltiple-dispositivo Visualización e ingreso de data, y producción de eventos Componentes independientes a widgets y presentación Interaction flow (flujo de interacción), activados por usuarios o eventos Contexto de usuario: el estado del usuario en el instante corriente de la interacción (posición, historial, maquina, plataforma..) Modularidad del modelo (reutilizo de los componentes o fragmentos del modelo) Validación del “input” del usuario, de acuerdo a OCL (Object Constraint Language) o a otros lenguaces similares Aspectos cubiertos
  • 11. 11 IFML conceptos principales (core IFML) 1/2 Container (contenidor) ViewComponent (componente de vista) Event (evento) Action (acción)
  • 12. Navigation flow (flujo de navegación) Data flow (flujo de datos) Parameter binding (vinculación de parametros) 12 IFML conceptos principales (core IFML) 2/2
  • 13. Lo que ganas y lo que pierdes Nuevos aspectos • Modelado de eventos genéricos • De usuario y de sistema • Flujo entre componentes y contenidores Nuevo • ViewComponent • Details, List, Form • Flow, Data Flow • Action • Port Aspectos faltantes • Modelación de orquestación (cadenas de operaciones) Viejo • Unit • Data, Index, Entry Units • Link, Transport Link • Operation Module • Input/Output Collector 13 Cambios de terminología desde WebML
  • 14. 14 IFML Ejemplo de sintaxis 1/2 Flujo básico de navegación entre ViewComponents
  • 15. 15 IFML Ejemplo de sintaxis 2/2 ViewContainers inhestados Tagged ViewContainers (XOR, L, D, Modal, Modeles)
  • 16. 16 IFML concrete syntax by example Actions
  • 17. ViewComponentParts: • Data binding • Parameters Types of ViewComponents (<<List>>) 17 IFML – Agregar detalles a ViewComponents
  • 18. Selection event Submit event .. Y todos los que necesitas para tu comodidad! 18 IFML – subtipos de componentes y eventos
  • 19. IFML está definido por un metamodelo IFML metamodel (1) … 19
  • 20. Tiene 2 paquetes principales: IFML metamodel (2) … • IFML Core • IFML Extensions … y desde luego tu puedes extender lo que quieras, para diferentes campos y plataformas (Web, Mobile, …) 20
  • 21. Un ejemplo real.. La UI completa de GMAIL 21 Messages [L D] GMAIL top [X] Mbox List <<XOR>> Message Management MailBox Message notification <<XOR>> Message Reader <<D>> Message Index Message details <<L>> Settings <<P>> Tag chooser Report Archive Delete Tag/ Folder Index Associate to tag / Move to folder <<M>> Tag creator New Tag/ Folder Create Tag/ Folder Message toolbar OUT: NewTag IN: ATag OUT: NewTagName IN: TagName OUT: SelectedTag IN: ATag OUT: SelectedMessages IN: MessageSet Delete Archive Report MoveTo Create New Select Tag Create MarkAll MarkAll AsRead OUT: AllMessages IN: MessageSet <<parameter>> MessageSet <<XOR>> Message search <<D>> Search Message keyword search <<P>> FullSearch Message full search Show search options Search mail OUT: Keyword IN: SearchKey <<L>> Message writer <<form>> Message Writer Send Action {Self.MessageRecipients >1} OUT: MessageID IN: MessageID <<field>> To <<field>> Cc <<field>> Bcc <<field>> Subject <<field>> Body <<field>> Attachment OUT: Subject, From, Cc, Body, “ReplyAll” IN: “Re:”+ Subject, To, Cc, Body, State OUT: Subject, From, “”, Body, “Reply” IN: “Re:”+ Subject, To, Cc, Body, State OUT: Subject, “”, “”, Body, “Forward” IN: “Fw:”+ Subject, To, Cc, Body, State State =”Reply” OR ”Forward” Save Action State =”Forward” OR ”ReplyToAll” <<parameter>> State State = ”NewMessage” OR “Forward” Forward Reply ReplyToAll Add Bcc Add Cc Edit subject Add attachment Send Save Discard Reply ToAll Reply Forward State =”Reply” OR ”ReplyToAll” State =”Reply” OR ”ReplyToAll” OUT: Keyword, From, To., ... IN: SearchKey, FromKey, ToKey, .. *
  • 22. 22 IFML ejemplos concretos de sintaxis ActivationExpression, SubmitEvent, Event generation
  • 23. 23 IFML ejemplos concretos de sintaxis intra-component events and flows
  • 24. 24 Un meta modelo oficial del lenguaje que describe la semántica y las relaciones entre los constructos del modelado Una sintaxis grafica y concreta para la notación de interacción de flujos que provee una representación intuitiva de la composición de la interfaz de usuario, la interacción y la lógica de control para el diseñador de front-end. Un Perfil UML consistente del metamodelo Un formato de intercambio entre tools basado en XMI Todo esto, especificado mediante una notación estándar Resultados practicos a tener el estandar
  • 25. 25 Aspectos estáticos El perfil UML de IFML «page» AlbumSearch «page» Albums «page» Album Album Search Album Index Album Detail «index» Message Index «index» MBox List «link»
  • 26. 26 Static aspects Señales con valores “tagged” Aspectos dinámicos El perfil UML de IFML «signal» SelectMailMessages mBox :string Tagged values. Parameter mBox out name: selectedMBox in name: mBox «index» MBox List «index» Message Index SelectMailMessages(mBox)
  • 27. Una estrecha integración entre diferentes herramientas de modelado Gracias a XMI (formato de intercambio), Perfiles UML, especificaciones propietarias de software vendors Modelado IFML e generación de UI en contextos industriales avanzados 27 Integración e intercambio de Modelos Tool UML que implementan el perfil IFML
  • 28. 28 Fuerte integración con otras perspectivas de modelado y capas de modelado de una arquitectura de una app enterprise Utilizo conjunto de IFML y otros lenguajes MDA, por ejemplo: • UML • BPMN • SysML • SoaML • … En particular abarca: • DataBinding a clases y atributos de un Class Diagram UML • Conexión a la lógica de business de bac-kend como metodos UML o diagramas dinámicos UML (activity diagram, sequence diagram, state chart diagram, …) Broader, enterprise-wide modeling
  • 29. Matteo Silva matteosilva matteo.silva@webratio.com Si quieres conocer mas acerca de MDE lee el libro: “Model Driven Software Engineering in Practice”. Brambilla, Cabot, Wimmer. Morgan&Claypool, USA.