Arquitectura de Proyectos de IT
© 2005
Arquitectura de Presentación
Jorge L García
Tuesday, October 4, 2011
2 Arquitectura de Proyectos de IT2
¿Qué es Presentación?
Es lo que permite al usuario interactuar
con el modelo de dominio de la
aplicación (ui / gui)
Tuesday, October 4, 2011
3 Arquitectura de Proyectos de IT2
Usabilidad
Fácil de aprender Fácil de usar Fácil de recordar Tolerante a errores Robusto Buena impresión (?)
La presentación es el punto de mayor impacto en la usabilidad.
Tuesday, October 4, 2011
4 Arquitectura de Proyectos de IT3
¿Por qué es tan complejo?
Se mezcla con la lógica de negocio
Cada usuario es diferente
Cambian los contextos de uso
Cuesta encontrar buenas abstracciones
No suele ser parte del análisis
No suele haber alguien dedicado
Tuesday, October 4, 2011
5 Arquitectura de Proyectos de IT3
Se mezcla con la lógica
“...Y cuando elijo el país, dependiendo si es Argentina u otro, debe validar si el CPA es correcto.”
Tuesday, October 4, 2011
6 Arquitectura de Proyectos de IT3
Usuarios diferentes
Etnografía Customización Accesibilidad
Tuesday, October 4, 2011
7 Arquitectura de Proyectos de IT3
Contexto de uso
Tuesday, October 4, 2011
8 Arquitectura de Proyectos de IT3
Un poco de historia
Botones y luces Impresoras Línea de comando Terminales Cliente Servidor Engines Gráficos Web RIA
Tuesday, October 4, 2011
9 Arquitectura de Proyectos de IT5
Decisiones a Tomar
1. ¿Cómo distribuirlo? 2. ¿Cliente liviano o pesado?3. ¿Quién controla el flujo de la aplicación?4. ¿Cómo se estructura la navegación?5. ¿Cómo se maneja el estado conversacional?6. ¿Cómo se relaciona con la lógica de dominio?7. ¿Dónde se integra la lógica?
Tuesday, October 4, 2011
10 Arquitectura de Proyectos de IT6
1- Distribución
¿Por qué?– Muchos clientes = muchas máquinas– Los usuarios están en distintos lugares– Puedo separar la presentación para solucionarlo ¿O no?
La presentación puede ser condicionada por el despliegue
Tuesday, October 4, 2011
11 Arquitectura de Proyectos de IT7
2- Cliente pesado y liviano
La decisión impacta básicamente en– Despliegue– Cercanía con el dominio– Ubicación de la lógica de negocio
Tuesday, October 4, 2011
12 Arquitectura de Proyectos de IT8
3- Control de la Iniciativa User Initiative
– Pedido-Respuesta– Orientado a Eventos
Application Initiative– Usuario contesta preguntas– Wizard– Alarmas y eventos disparados por la aplicación
Combinada– Interactivo, Conversación– Continuation
Tuesday, October 4, 2011
13 Arquitectura de Proyectos de IT9
4- Formas de Navegación
Pantallas y Formularios– Stateless– Terminal boba / Mainframe, Web Tradicional
Ventanas o Diálogos– Stateful / Wizards– Cliente – Servidor, RIA
Manipulación Directa– Objetos
Tuesday, October 4, 2011
14 Arquitectura de Proyectos de IT10
5- Estado conversacional (sesión)
Cliente
En cada pedido
Servidor (Session)
Compartido
Caso de Uso (Flow)
Tuesday, October 4, 2011
15 Arquitectura de Proyectos de IT11
6- Integración con el dominio de la aplicación
Stateless– Servicios– Procesos
Stateful– Eventos– Objetos
Tuesday, October 4, 2011
16 Arquitectura de Proyectos de IT12
7- ¿Dónde se integra la lógica? Campo a campo
– Validaciones– Máscaras– Pickers y otros controles más elaborados
Por formulario o pantalla– Lo más utilizado– Más cerca de la tecnología, a veces menos conceptual
Por caso de uso– Ejecución de un caso de uso de negocio
Tuesday, October 4, 2011
17 Arquitectura de Proyectos de IT16
Formas de desarrollar presentación
Visual
Programática– Template– Componentes
Declarativa
Automática / Introspectiva
Tuesday, October 4, 2011
18 Arquitectura de Proyectos de IT17
Ideas de Diseño y patrones
MVC – MVP Morphic Model Driven Presentation (MDP) Templates Components SPA Single Page Application
Tuesday, October 4, 2011
19 Arquitectura de Proyectos de IT18
Clientes pesados tradicionales
AWT, Swing, SWT – Java
.Net Desktop - VB6
Delphi
Dolphin – Smalltalk
Tuesday, October 4, 2011
20 Arquitectura de Proyectos de IT19
Web tradicionales
PHP JSP / Servlets ASP Cold Fusion Perl
Algunas herramientas Struts – Stripes Taglibs XSL
Tuesday, October 4, 2011
21 Arquitectura de Proyectos de IT20
Web + Components
Tapestry
JSF
ASP .Net
Web Objects
Tuesday, October 4, 2011
22 Arquitectura de Proyectos de IT21
Herramientas RIA
Javascript + DHTML
Applets
ActiveX
AJAX y Web Sockets
Flash
SVG (gráfico de vectores escalares) y Canvas
Tuesday, October 4, 2011
23 Arquitectura de Proyectos de IT22
Plataformas RIA
XUL (XML + Javascript + Stylesheets)
Flex (Macromedia, MXML), Lazslo, Air
GWT
HTML5
Java FX, Silverlight (.NET)
Tuesday, October 4, 2011
24 Arquitectura de Proyectos de IT23
MDP (Model Driven Presentation)
Naked Objects
Ruby on Rails
Tuesday, October 4, 2011
25 Arquitectura de Proyectos de IT13
Otros Problemas (I)
Usabilidad limitada– Drag & Drop– Máscaras– Eventos disparados por el server
Múltiples tareas simultáneas
Transacciones
Tuesday, October 4, 2011
26 Arquitectura de Proyectos de IT14
Otros Problemas (II)
Seguridad
Validación
Manejo de errores– Cómo mostrarlos– Múltiples errores simultáneos
Unit Testing de la UI
Tuesday, October 4, 2011
27 Arquitectura de Proyectos de IT15
Otros Problemas (III)
Navegabilidad
Múltiples formas de invocar funciones
User Session Management
Internacionalización
Tuesday, October 4, 2011
Top Related