(page 1)
Desarrollo de aplicaciones Web
Desarrollo en la web
No es diseno grafico
Posibles enfoques
- Web como documentos
- Web como programas
Desarrollos caoticos
El estado del arte es preocupante
Solucion: ingenieria?
(page 2)
Desarrollo de aplicaciones Web
Ingenieria
Un ingeniero es el que hace cosas que cualquier otra persona podria hacer, pero con el doble seguridad y la mitad de gastos.
- Software tradicional se basa en la ingenieria del software
- La web no es software tradicional
- Ingenieria para desarrollos web?
(page 3)
Desarrollo de aplicaciones Web
Ingenieria en desarrollos web
No es software tradicional
No se pueden aplicar todas las tecnicas de ingenieria del software
- Materia desconocida para mucha gente
- Poca experiencia acumulada (veteranos)
- Quienes desarrollan la web?
- Herramientas web no tan maduras
- Desarrollos web son mucho mas rapidos
(page 4)
Desarrollo de aplicaciones Web
Sitios Web
Tipos de sitios web de mide por su complejidad
- Sitio web de contenido estatico
- Contenido estatico + formularios
- De acceso de datos dinamicos (BBDD)
- Uso de Tec. Ingenieria: sugerido
- De generacion dinamica
- Uso de Tec. Ingenieria: recomendado
- Aplicaciones web
- Uso de Tec. Ingenieria: totalmente necesario
(page 5)
Desarrollo de aplicaciones Web
Aplicaciones web 'con base'
Todas ellas van a tener en comun
- Correctas
- Libre de errores: links, HTML, ...
- Se pueden probar todas sus partes
- "unit", pruebas 'de caja'
- Mantenible
- Facilidad para hacer cambios
- 3/4 de los gastos
(page 6)
Desarrollo de aplicaciones Web
Aplicaciones web 'con base' (II)
- Reusable
- Modularidad
- Cohesion de los modulos
- Presentacion adecuada
- Usable
- Presentacion visual
- Bien documentado
- "Web Application Extension for UML"
(page 7)
Desarrollo de aplicaciones Web
Aplicaciones web 'con base' (III)
- Eficiente
- Tiempo de ejecucion
- Red
- Ancho de Banda
- Latencia (Keep-alive)
- Utilizacion de la red
- El uso de aplicaciones web pueden ser frustantes para los usuarios finales
- elpais.es: 10s en cargar, 90s lectura = 90%
- iprint.com: 1s accion, 9s en cargar = 10%
(page 8)
Desarrollo de aplicaciones Web
iprint.com
(page 9)
Desarrollo de aplicaciones Web
Hay/Habra problemas cuando..
- Sitios con similares funcionalidades no comparten codigo
- Se arreglan los mismos bugs varias veces y por separado?
- Necesidades temporales impiden un buen desarrollo
- No se mantiene un control de bugs
- No existe repositorio o control de cambios
(page 10)
Desarrollo de aplicaciones Web
Modelos de desarrollo
Desarrollo JAD
- JAD: Joint Application Development
- 1.- Reunion inicial y primer prototipo
- 3.- Modificaciones de la aplicacion (1, 4)
Nada recomendable o imposible de aplicar en el desarrollo de aplicaciones web.
(page 11)
Desarrollo de aplicaciones Web
Modelos de desarrollo
Desarrollo en cascada
- Definicion del problema
- Analisis de requisitos y especificacion
- Prototipado
- Implementacion y pruebas
- Integracion
- Release y mantenimiento
- Desarrollos rapidos, demasiada doc
- Resultados visibles solo al final
(page 12)
Desarrollo de aplicaciones Web
Modelos de desarrollo
Desarrollo en espiral
- Refinaciones progresivas de la aplicacion
- Mucho mas flexible que desarrollo en cascada
- Release often (software libre ;-)
- Version inicial con la base
- Resto se subdivide en modulos con su propio ciclo de desarrollo
(page 13)
Desarrollo de aplicaciones Web
Modelos de desarrollo: en espiral
(page 14)
Desarrollo de aplicaciones Web
Documentacion
Casos de uso
(page 15)
Desarrollo de aplicaciones Web
Documentacion
Diagrama de secuencia
(page 16)
Desarrollo de aplicaciones Web
Interfaces de usuario
Diseno de interfaces de usuario
- No es un arte
- No agrada a los desarrolladores
- No es diseno grafico
Calidad de los interfaces
- Dificilmente calculable
- Bien disenado cuando el programa hace exactamente lo que el usuario final quiere.
- "Prueba de la madre" en GNOME
(page 17)
Desarrollo de aplicaciones Web
Interfaces de usuario
La aplicacion la debe poder usar cualquiera
Ley del minimo esfuerzo
- Por cada opcion del UI obligamos al usuario a tomar una decision
- Leer es muy cansado
- Dialogos
- Texto corto y concreto
Cuidado con el mouse
- La gente no siempre lo controla bien
- Touchpads, trackballs, ...
- Doble click sin moverlo
(page 18)
Desarrollo de aplicaciones Web
Usuario feliz
Usuario no feliz
Usuario es feliz cuando
- Tiene el control de la aplicacion
- La aplicacion responde
HTML no es suficiente para muchos GUIs
- Java/Applets es la solucion?
(page 19)
Desarrollo de aplicaciones Web
Usabilidad aplicaciones tradicionales
(page 20)
Desarrollo de aplicaciones Web
Usabilidad de aplicaciones web
(page 21)
Desarrollo de aplicaciones Web
Tecnologias
La tecnologia tambien es importante.. pero ni mucho menos lo mas importante.
- Escalable a las necesidades de la aplicacion
(page 22)
Desarrollo de aplicaciones Web
Tecnologias (II)
- Con una base de conimiento amplia
(page 23)
Desarrollo de aplicaciones Web
Implementacion
- Modelo-Vista-Componente
- Skin
- Formulario
- Logica de la aplicacion
(page 24)
Desarrollo de aplicaciones Web
Implementacion
- Modulos
- mod_python
- mod_perl
- mod_ruby
(page 25)
Desarrollo de aplicaciones Web
Referencias
(page 26)
Transparencia sobre comparacion Pytho y Java (1)
Transparencia sobre comparacion Pytho y Java (2)