SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.German Rodriguez
 
Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3David Motta Baldarrago
 
Del modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosDel modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosYAMILA GASCON
 
Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisisguest0a6e49
 
03 gestión de pruebas de software diseño de casos de pruebas
03 gestión de pruebas de software   diseño de casos de pruebas03 gestión de pruebas de software   diseño de casos de pruebas
03 gestión de pruebas de software diseño de casos de pruebasAntonio Quiña
 
Modelado de caso de uso y Diagrama de Caso de Uso
Modelado de caso de uso  y Diagrama de Caso de UsoModelado de caso de uso  y Diagrama de Caso de Uso
Modelado de caso de uso y Diagrama de Caso de Usoturlahackers
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistemaIsrael Rey
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecysLeonel Narvaez Ruiz
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedioEmanuel Gs
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuenciaLenin Vivanco
 

Was ist angesagt? (20)

Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.
 
Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3
 
Del modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosDel modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitos
 
Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisis
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
03 gestión de pruebas de software diseño de casos de pruebas
03 gestión de pruebas de software   diseño de casos de pruebas03 gestión de pruebas de software   diseño de casos de pruebas
03 gestión de pruebas de software diseño de casos de pruebas
 
Modelado de caso de uso y Diagrama de Caso de Uso
Modelado de caso de uso  y Diagrama de Caso de UsoModelado de caso de uso  y Diagrama de Caso de Uso
Modelado de caso de uso y Diagrama de Caso de Uso
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
Factibilidad legal y cronograma
Factibilidad legal y cronogramaFactibilidad legal y cronograma
Factibilidad legal y cronograma
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Diagramas de estado
Diagramas de estadoDiagramas de estado
Diagramas de estado
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
Diagrama de Casos de uso
Diagrama de Casos de usoDiagrama de Casos de uso
Diagrama de Casos de uso
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedio
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Kürzlich hochgeladen (12)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

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.