Ingeniería Web
Ingeniería Web
Ingeniería Web
Ingeniería Web
Objetivo:
INGENIERIA WEB
El Modelo de Contenido
El Modelo de Interacción
El Modelo Funcional
El Modelo de Configuración
Análisis relación-navegación
Introducción de diseño
Diseño Estético
Diseño de Contenido
1
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Diseño Arquitectónico
Diseño Navegación
Estrategias de pruebas
Prueba de Contenido
Pruebas de Navegación
Pruebas de Configuración
Pruebas de Seguridad
Pruebas de Desempeño.
INGENIERIA WEB
1. Formular el problema
2. Planificar
4. Diseñar la solución
2
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Los sistemas basados en Web involucran una mezcla entre publicación impresa y
desarrollo de software, entre marketing e informática, entre comunicaciones internas y
relaciones externas y entre arte y tecnología. Por lo que la gran mayoría de WebApp
tiene las siguientes características:
5. Disponibilidad (24x7)
11. Soporte (ATC) (ayuda en línea, grupos de discusión, redes sociales y vínculos
relacionados).
3
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Principio Descripción
Competencia
Enfoque común
Colaboración
Organización propia
4
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
MSF personalizado
5
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Proceso IWeb
6
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
13. Formulación
1. Recopilación de requisitos.
Planeación
Modelado
1. Análisis de requisitos
7
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
2. Diseño
1. Diseño de contenido/aplicación
3. Diseño de interface
4. Diseño de la navegación.
Construcción
8. retroalimentación y ajustes.
Unido a estos cinco pasos para un proceso incremental debe ir acompañado de los
puntos básicos de administración de cambios y riesgos.
SCRUM
2. Esto es seguido por una serie de ciclos de velocidad (SPRINT), donde cada ciclo
desarrolla un incremento del sistema
8
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
SPRINT (2 a 4 semanas)
9
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
9. tomar el tiempo necesario para entender las necesidades del negocio y los
objetivos del producto
10. describir cómo interactúan los usuarios con la WebApp basado en escenarios
11. desarrollar un plan de proyecto, así sea muy pequeño, con entregables
tempranos
10
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
16. utilizar herramientas y tecnología que permitan construir WebApp con la mayor
reutilización de componentes y portabilidad
La Formulación
Inicia con la identificación de las necesidades del negocio, exponiendo los objetivos de
la WebApp, definiendo grandes características y funciones, recopilando los requisitos
para conducen al desarrollo del modelo de análisis.
Si bien en la formulación se deben exponer las grandes necesidades, sin embargo por
lo general también se exponen detalles o especificaciones que el cliente y el Ingeniero
Web desean hacerlo.
11
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
1. Pedir a los clientes que definan las categorías de usuario y describan cada
categoría
2. comunicarse con los clientes para definir los requisitos básicos de la WebApp.
Para esta comunicación se usan varios mecanismos como:
12
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
3. Se pide a los usuarios que ordenen como gustaría que se les organizará
el contenido y su funcionalidad (straight through process – directo al
proceso)
4. Así como también listar las etiquetas que utilizaremos para enlazar a
estos contenidos y funciones
4. Definir casos de uso que describan escenarios de interacción para cada clase de
usuario (de la jerarquía de usuarios). Se describe como interactúa cada
categoría de usuario (actor) con la WebApp para lograr una acción específica.
Esto servirá para el análisis y pruebas.
13
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
documento formal, existen varios tipos, la IEEE sugiere el manejo de SRS o ERS
(Especificación de Requisitos de Software).
Planeación
La Ingeniería Web necesita un enfoque ágil para el manejo de proyectos que variará
dependiendo de la magnitud del proyecto, así como de cómo enfrentará su desarrollo.
Planeación de WebApp:
14
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
5. Se tiene una gran idea, así que se puede comenzar a construir la WebApp
ahora
8. Burocratizarse.
4. modelado de Contenido
15
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
8. análisis relación-navegación
El Modelo de Contenido
Este modelo contiene los elementos estructurales que son necesarios para satisfacer
los requisitos de contenido de la WebApp, como son las clases de contenido por
ejemplo texto, imágenes gráficas, fotografías, imágenes video, audio, etc. Así como
todas las clases de análisis visibles para el usuario que se crean para la interacción con
la WebApp. Estas se derivan del análisis gramatical de los casos de uso.
En algunas ocasiones los objetos se los define individualmente, pero existe en otros
casos que debe hacerse un árbol de datos (jerarquía) que bosquejen las relaciones
entre los objetos de contenido según su jerarquía.
Las clases de análisis son las entidades visibles por el usuario como por ejemplo
FacturadeMateriales, ComponentedeProducto, etc.
16
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
17
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
18
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
19
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
El Modelo de Interacción
Las WebApp que proveen “conversación” con el usuario final deben ser modelado su
interacción por medio de cuatro elementos:
20
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
El Modelo Funcional
13. funcionalidad observable respecto al usuario . Por ejemplo una calculadora para
el momento de añadir artículos al carrito de compras y para hacer cálculos de
impuestos y valores de entrega
21
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
22
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
El Modelo de Configuración
Las WebApps deben ser construidas para que funcionen en una diversidad de
ambientes (clientes y servidores), por lo que se deben especificar las características de
hardware y software soportados, así como también especificar las interfaces bien
23
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
definidas y seguras para la interacción con las bases de datos y el resto de aplicaciones
de la empresa y asociadas.
Por esta razón debe someter a la WebApp a una serie de pruebas de estas
configuraciones.
Para definir este modelo de configuración en algunas ocasiones basta con solo listar los
atributos que debe tener tanto el cliente como los servidores, mientras que en otros
casos amerita modelar por medio de diagramas de despliegue UML.
24
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Análisis relación-navegación
“la navegación no solo es la acción de moverse de una página a otra, sino la idea de
moverse a través de un espacio de información”.
El ARN (análisis relación navegación) sirve para determinar la estructura de relación
de la aplicación (relaciones potenciales en los dominios que pueden implementarse
como vínculos más adelante), así como las estructuras de navegación apropiadas
sobre estos vínculos, meta-información y navegaciones adicionales .
El ARN se organiza en cinco pasos:
15. análisis de los participantes: identifica las diversas categorías de usuario. (ya se
vio en formulación anteriormente)
22. ¿Ya existe información descriptiva acerca del elemento? Si es así, ¿dónde está?
24. ¿El elemento lo componen otros pequeños elementos? Si es así, ¿cuáles son?
25
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
29. ¿Este elemento siempre aparece al mismo tiempo con otros elementos? Si es
así, cuales son los otros elementos?
31. ¿El elemento puede ser asociado con una meta u objetivo de formulación
especifico? Con un requisito WebApp especifico?.
1. ¿Ciertos elementos deben ser más fáciles de alcanzar que otros (requieren
menos navegación)?
4. ¿En cada punto de la interacción del usuario debe estar disponible un mapa o
menú de navegación completo (en oposición a solo un simple vínculo de
retroceso o punto dirigido)?
1. ¿El usuario puede realizar un “recorrido” que subraye los elementos más
importantes (objetos de contenido y funciones) disponibles?
En pequeños WebApp deben invertirse poco tiempo en el diseño porque se asume que
los WebApp tienen la característica de inmediatez y volatilidad. Sin embargo en
26
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
WebApp más grandes (más de 100 objetos) deben invertirse más tiempo porque debe
aplicarse la calidad al software.
Esta calidad de software WebApp cuenta con varios requisitos que deben cumplirse
como son: facilidad de uso, funcionalidad, confiabilidad, eficiencia, facilidad de
mantenimiento.
Métricas de interfaz
A estos requisitos les podemos adicionar otros (estos los vimos en calidad de software
en sitios Web en Negocios Electrónicos) como: seguridad, disponibilidad, escalabilidad,
código seguro y time-to-market (tiempo para llegar al mercado).
Metas del diseño. Estas son aplicables a toda WepApp sin importar el tamaño o
complejidad:
27
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Pirámide del Diseño IWeb. El diseño para Ingeniería Web es una mezcla adecuada
de estética, contenido y tecnología que descansa en una pirámide de 6 niveles que son
los pasos a seguir en el Diseño.
Toda interfaz de usuario debe tener las características: fácil de usar, fácil de aprender
(en Web no debería haber capacitación), fácil navegar, intuitiva, consistente, eficiente,
libre de errores y funcional; ofreciendo al usuario final una experiencia satisfactoria y
gratificante. (directo al proceso).
El Ingeniero Web debe diseñar la interfaz de modo que conteste a las siguientes
preguntas (conforme navegue el usuario en la Web):
1. ¿Dónde estoy?
28
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
1. Facilitar la navegación
11. Ley de Fitt (el tiempo para adquirir un objetivo es una función de la distancia a
la que se halla y de su tamaño. Método efectivo para modelar rápidos
movimientos dirigidos - 1950). Como por ejemplo la localización de los atributos
dentro de la página para seleccionar o ingresar información usando el ratón o
teclas debe ser de lo más cercano, fácil y obvio posible
14. Metáforas (utilizar una metáfora de interacción hace más fácil el aprendizaje y
uso). Al usar una metáfora (llamando imágenes, conceptos) de experiencia
humana, es decir, como el usuario hace comúnmente esta operación fuera del
29
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
16. Legibilidad (toda la información presentada debe ser legible por jóvenes y
ancianos con estilos de letras legibles, tamaños y colores adecuados)
17. Estado de rastro (cuando sea necesario, se debe guardar el rastro del estado
de la interacción del usuario, con el objetivo que, si el usuario sale y luego
desea regresar más tarde, pueda hacerlo al punto donde se quedó) esto con la
ayuda de cookies
18. Navegación visible (dar la sensación del usuario están en el mismo lugar y que
se les lleva el trabajo a sus lugares)
19. Rapidez de lectura (leer en computadora es un 25% más lento que hacerlo en
papel, por lo que NO se debe forzar al usuario a leer voluminosas cantidades de
texto)
21. Los usuarios prefieren no desplazarse (se puede mover hacia abajo, sin
embargo que no se mueva hacia la derecha)
24. Opciones de navegación deben ser obvias (debe estar siempre bien
estructuradas y ergonómicamente saludable).
30
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
4. Definir un conjunto de tareas de usuario que estén asociadas con cada acción.
(cada acción del usuario por ejemplo comprar un producto está relacionado con
un conjunto de tareas que fueron identificadas en el análisis y ahora en el
diseño se las correlaciona su interacción para identificar asuntos de navegación,
objetos de contenido y funciones)
10. Refinar y revisar el modelo de diseño de la interfaz (revisar toda la interfaz para
confirmar que exista consistencia y por sobre todo facilidad de uso).
También conocido como diseño gráfico, debe ser hecho por un “artista” o especialista
en diseño gráfico. Para realizar esta fase se debe regresar a la jerarquía de usuarios
desarrollado en el análisis, preguntando quienes son los usuarios de la WebApp y que
“apariencia” desean.
No existen reglas absolutas para el diseño de plantillas, sin embargo se enumeran los
siguientes lineamientos generales:
31
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
26. resaltar el contenido, (el 80% debe ser contenido y el resto para la navegación
y otras características)
31. Los medios audiovisuales (imágenes, video, sonido) utilizados deben ser de lo
más liviano posible para evitar paginas lentas (considerar la realidad del
servicio de Internet de la región del usuario).
32. Agregar efectos como, por ejemplo: efecto Parallax scrolling: donde la
imagen/fondo o la textura que se encuentra como fondo de pantalla se
desplaza más lento que el resto del sitio. Si los elementos que se encuentran
más superficiales, como botones y menús, se mueven más rápido que aquellos
que se encuentran en el fondo, se crea un efecto de profundidad en la pantalla,
similar al 3D. Una recomendación, no es bueno poner todo en esta modalidad,
tiene que sobresalir lo importante, y eso se consigue gracias a un buen balance
de elementos.
Puede iniciar con colores, estampas y formas.
https://es.wix.com/blog/2015/10/que-es-el-efecto-parallax-y-como-puedes-
usarlo/
32
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
http://www.awwwards.com/50-examples-of-responsive-web-design.html
http://www.dtelepathy.com/blog/design/responsive-design-great-ux
http://www.graphic-design.com/
http://gtechdesign.net/es/blog/tendencias-en-diseno-grafico-2017
33
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Diseño de Contenido
33. del Ingeniero Web que diseña los objetos de contenido y sus relaciones
34
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
“los buenos diseñadores pueden crear normalidad a partir del caos, pueden comunicar
las ideas con claridad por medio de la organización y el manejo de las palabras y los
dibujos”
Luego del modelo de contenido en el análisis que se especificaron ciertos atributos de
las clases de contenido, se procede con la inserción de atributos específicos de
implementación propios del diseño.
Una vez que se detallan todos los objetos de contenido se deben diseñar la parte
estética (apariencia y percepción adecuada), así como se debe estructurar el número
de objetos que se insertaran en una página web conforme las necesidades del usuario
y las restricciones impuestas por el dispositivo, por rapidez en descarga y conexiones
de Internet.
Diseño Arquitectónico
Arquitectura de Contenido
35
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
36
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
37
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
38
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
39
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Can
Portal Internet ales Aplicaciones
Diseño Navegación
40
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
11. Pestañas: es una variación de la de barra o columna pero que dan la sensación
de marca
El diseño de componentes para WebApp se los hace de manera similar que para los
sistemas convencionales orientados a objetos (sensibles al cambio y reducen la
propagación de efectos secundarios cuando ocurren cambios), pues estos varían más
bien por su ambiente de implementación y marcos de trabajo.
41
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
No está por demás recordar que los componentes al igual que las clases deben estar
bajo los conceptos de:
Las métricas de diseño deben ser creadas para facilitar al Ingeniero Web para medir la
calidad de una forma cuantitativa/cualitativa, debiendo responder a las siguientes
preguntas:
42
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
21. El contenido está diseñado en una forma que proporciona la mayor información
con el menor esfuerzo?
24. Los componentes están diseñados en una forma que reduce la complejidad de
procedimientos y aumenta la confiabilidad y el desempeño?.
Como en todo software desarrollado, debe aplicarse un plan de pruebas desde el inicio
y no esperar al final del proyecto para detectar errores. Es así que metodologías de
proyectos como MSF tienen dentro de su planificación general del proyecto un punto
dedicado a la planeación de pruebas para poder preparar los ambientes y personal
adecuado para las pruebas que por cierto son de diferentes tipos.
43
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
28. facilidad de uso: para cada categoría de usuario, que va relacionado con la
sintaxis y semántica de la navegación
Estrategias de Pruebas
44
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
2. revisar el modelo de interfaz para confirmar que todos los casos de uso se
pueden acomodar
45
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Prueba de Contenido
46
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
10. Validar que los datos brutos provenientes de la DBMS hacia el servidor y
este hacia el cliente estén correctamente formateados para crear los
objetos de contenido
40. las características de la interfaz se prueban para asegurar que las reglas del
diseño, la estética y el contenido visual relacionado están a disposición del
usuario sin error alguno
42. la interfaz se prueba frente cada caso de uso (USN) para descubrir errores de
semántica, y facilidad de uso
47
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
cgi, cookies, mecanismos de interfaz especificas (como por ejemplo la validaciones que
debe tener un carrito de compras).
Para esto se sugiere probar cada caso de uso (categorías de usuario) versus el diseño
de la interfaz para confirmar que no hay errores y si los hubiere como los maneja y su
recuperación.
56. Cookies
48
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
58. Análisis de valores límite. Probar los valores máximos o mínimos de campos o
atributos que maneja el componente o la función
59. Pruebas de ruta. Para comprobar y garantizar que se ha ejercitado toda ruta
posible en su funcionamiento.
Existen circunstancias en las que la funcionalidad es tan extensa que complica probar
todas las posibles situaciones, por lo que una sugerencia sería acudir a un análisis de
riesgo para obtener los casos de prueba de mayor riesgo, como por ejemplo:
61. ¿Cuáles áreas del sitio amerita más dura interacción con la DB?
62. ¿Cuáles mecanismos específicos (cgi, applets, activex) son los más complejos?
63. ¿Qué tipos de problemas causará la mayoría de las quejas o la peor publicidad?
49
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Pruebas de Navegación
Las pruebas de navegación garantizan que todos los mecanismos que permiten al
usuario de la WebApp viajar a través de ella sean funcionales y validar que cada USN
pueda ser alcanzado por la categoría de usuario adecuada.
67. Todo nodo de navegación del USN es accesible dentro del contexto de rutas
definidas en el USN?
68. Si la interfaz del usuario proporciona una guía para ayudar en la navegación, es
comprensible?
71. Existe una forma para descontinuar la navegación antes de haber alcanzado
todos los nodos, y se puede regresar a punto donde se descontinuó para
proceder desde ahí?
72. Todo nodo se alcanza desde el mapa de sitio? Los nombres son significativos
para el usuario?
73. Si un nodo dentro de una USN es accedido desde alguna fuente externa, es
posible proceder hacia el siguiente nodo de la ruta? Es posible regresar al nodo
previo en la ruta?
Pruebas de Configuración
50
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
77. Las medidas de seguridad del sistema permiten a la WebApp ejecutarse y dar el
servicio a los usuarios sin interferencia y a un buen desempeño?
Pruebas de Seguridad
Este tema es de gran alcance, porque las pruebas de seguridad están diseñadas
para probar la vulnerabilidad en el ambiente cliente, las comunicaciones de red y el
ambiente del lado del servidor. Al punto que si la WebApp es crucial para el
manejo del negocio de la empresa, es aconsejable que se haga una certificación de
la seguridad con empresas especializadas en esta labor.
51
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Por ejemplo:
1. Claves de acceso débiles
2. Mala administración de servidores y componentes de red
3. Personal mal entrenado
4. Software desactualizado
5. "Trucos de vendedores de tecnología" cuyos productos en realidad no
cumplen las especificaciones de seguridad
6. Problemas de protocolos
7. Servicios críticos sobre redes inseguras
8. Problemas de seguridad en aplicaciones
Pruebas de Desempeño
52
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
4. Que ocurre cuando se aplican cargas que rebasan la capacidad máxima del
servidor?.
Para contestar a estas preguntas se hacen las pruebas de desempeño comunes (carga
y tensión).
10. El servidor pone en cola las peticiones que no alcanza a resolverlas para ir
atendiendo poco a poco como su capacidad lo permita?
14. Ciertas funciones del WebApp se descontinúan cuando el servidor llega a sus
umbrales (memoria, procesador, disco)?.
53
Ingeniería de Software II – Ingeniería Web – Pablo Pintado MBA
Una variación de pruebas de tensión son las llamadas pruebas pico, que son las
mismas pruebas de tensión pero se lo hace muy repentino llegar o sobrepasar el límite
volviendo a la normalidad y luego nuevamente sobrepasando el límite para efectos de
poder comprobar cuan bien que el sistema/servidor se recupera regresando a su
normalidad.
54