Desarrollo y Características de Aplicaciones Web
¿Qué son las WebApps?
Son sistemas y aplicaciones basadas en la web que entregan contenido complejo y funcional a muchos usuarios finales.
¿Qué es la Ingeniería Web?
La ingeniería web es el proceso con el que se crean WebApps de alta calidad.
¿Quién lo hace?
Los ingenieros web y los desarrolladores del contenido que no es técnico crean las WebApps.
¿Por qué es importante?
La ingeniería web es importante por la necesidad de construir sistemas confiables, prácticos y adaptables.
¿Cuáles son los pasos?
Se parte con la formulación del problema que se resolverá con la WebApp, se planea el proyecto IWEB y se modelan los requisitos y el diseño de la WebApp. El sistema se construye con las herramientas adecuadas y especializadas para desarrollar sitios web, para luego ser entregada la aplicación web a los usuarios finales y se evalúa mediante criterios tanto técnicos como empresariales.
¿Cuál es el resultado obtenido?
El resultado obtenido es una WebApp completamente operativa.
¿Cómo puedo estar seguro de que lo he hecho correctamente?
Se aplican prácticas de aseguramiento de calidad del software para valorar la calidad de los modelos web, el contenido y las funciones globales del mismo.
La Ingeniería web aplica sólidos principios científicos, de ingeniería y de administración, y enfoques disciplinados y sistemáticos para el desarrollo, despliegue y mantenimiento de un sistema y aplicaciones basados en web de alta calidad.
Atributos de los Sistemas y Aplicaciones Basados en Web
Los sistemas basados en web involucran una mezcla entre publicación impresa y desarrollo del software, entre marketing e informática, entre arte y tecnología.
- Intensidad de red: una WebApp reside en una red y debe satisfacer las necesidades de muchos clientes o usuarios, puede residir en internet, también en una intranet, y una extranet.
- Concurrencia: es la capacidad que tenga la WebApp de dar acceso a una gran cantidad de usuarios al mismo tiempo.
- Carga impredecible: habla de la cantidad de usuarios que utilizan la WebApp, que pueden variar en cantidades importantes día a día; un día x de la semana puede tener 10 usuarios, como otro día puede tener 10000 usuarios.
- Desempeño: rendimiento de velocidad de la WebApp al cargar páginas o transferir datos. Si un usuario debe esperar demasiado por alguna solicitud hecha, puede irse a cualquier otro sitio.
- Disponibilidad: es la capacidad que tenga la WebApp de mantenerse disponible a los clientes o usuarios; ellos siempre pedirán una disponibilidad de 24/7.
- Gobernada por datos: las WebApps usan hipermedia para representar todo su contenido, ya sea en texto, audio, video al usuario final; las WebApps se utilizan también para tener acceso a información a una base de datos.
- Sensibilidad al contenido: es la calidad y naturaleza estética del contenido de una WebApp.
- Evolución continua: las WebApps evolucionan de manera continua, se actualizan sobre una agenda minuto a minuto. La evolución continua de las WebApps, son comparables al «trabajo de jardinería», esto es, la creación de infraestructura (sembrar el jardín) y luego «cultivar» la información. Con el paso del tiempo la WebApp continuará cambiando y creciendo en robustez e importancia.
- Inmediatez: los ingenieros web deben aplicar métodos de planeación, análisis, diseño, implementación y puesta a prueba que han sido adaptados al poco tiempo entregado para desarrollar la WebApp.
- Seguridad: consiste en proteger el contenido confidencial y ofrecer modos seguros de transmisión de datos.
- Estética: es la presentación y la disposición de los elementos existentes en la WebApp.
Categorías de Aplicación
- Informativo: se entrega contenido solo de lectura con navegación y enlaces simples.
- Descarga: un usuario descarga información del servidor en cuestión.
- Personalizable: el usuario personaliza el contenido según sus necesidades específicas.
- Interacción: comunicación entre usuarios por medios de chats, tableros de anuncios o mensajería instantánea.
- Entrada de usuario: entradas con base en formularios, principal mecanismo para las necesidades de comunicación.
- Orientada a transacciones: el usuario hace una solicitud (como a un banco online) que ejecuta la WebApp.
- Acceso a una base de datos: el usuario consulta una gran base de datos.
- Almacén de datos: el usuario consulta una colección de grandes bases de datos y extrae información.
Proceso
Los modelos de procesos de ingeniería web adoptan la filosofía del desarrollo ágil, que posee un enfoque de desarrollo riguroso que incorpora rápidos ciclos de desarrollo. Posee un marco de trabajo que consiste en 1) adoptar el cambio 2) alentar la creatividad del equipo de desarrollo 3) construir sistemas que utilicen pequeños equipos de desarrollo 4) subrayar el desarrollo evolutivo.
Métodos
Abarca un conjunto de labores técnicas, que se categorizan de la siguiente manera:
- Métodos de comunicación: definen el enfoque con que se facilita la comunicación entre ingenieros web y los demás participantes de la WebApp como usuarios finales o clientes de negocios.
- Métodos de análisis de requisitos: entregan una base para comprender el contenido que entregará una WebApp.
- Métodos de diseño: abarcan una serie de técnicas de diseño que abordan el contenido, la aplicación y la arquitectura de la información.
- Métodos de prueba: incorpora revisiones técnicas formales, pruebas de navegación, pruebas de facilidad de uso, pruebas de seguridad y de configuración.
Herramientas y Tecnología
Con el tiempo han evolucionado un grupo de herramientas y tecnología según las WebApps también ganan complejidad. Existen muchos lenguajes de modelación como HTML, XML; lenguajes de programación como Java; componentes como activeX, .NET; navegadores, herramientas multimedia.
Los principales atributos de una WebApp son la inmediatez y la evolución.
Definición del Marco de Trabajo
- Las WebApps con frecuencia se entregan de manera incremental, quiere decir que las actividades del marco de trabajo se repetirán cada vez que un incremento en la WebApp se someta a ingeniería.
- Los cambios ocurrirán frecuentemente, esto pasa como resultado de la evaluación de un incremento, como consecuencia de cambiar los requerimientos.
- Los plazos son cortos, reduciendo la creación y revisión excesiva de documentación de ingeniería, pero el análisis crítico del diseño y prueba deben realizarse igual.
Marco de Trabajo de Ingeniería Web
- Comunicación con el cliente: consiste en dos grandes tareas, el análisis del negocio y la formulación.
- Planeación: en este punto se crea el plan del proyecto para la WebApp.
- Modelado: se aplican labores de análisis y diseño de ingeniería de software.
- Construcción: se aplican las herramientas y la tecnología web para la construcción de la WebApp.
- Despliegue: la WebApp se configura para su ambiente operativo y de trabajo, y comienza el periodo de evaluación.
Refinamiento del Marco de Trabajo
El modelo del proceso de ingeniería web debe ser adaptable, cada actividad del marco de trabajo se deja a discreción del juicio del equipo de ingeniería web. En algunos casos, el marco de trabajo se dirige de manera informal. El equipo siempre será el responsable de producir un incremento WebApp de alta calidad. El marco de trabajo puede modificarse, eliminarse o extenderse en base a las características del problema.
Mejores Prácticas en Ingeniería Web
- Tomar tiempo para entender las necesidades del negocio y los objetivos del producto, incluso si los detalles de la WebApp son vagos.
- Describir cómo interactuarán los usuarios con la WebApp aplicando escenarios diversos.
- Desarrollar un plan del proyecto, aunque sea breve.
- Utilizar algún tiempo para modelar lo que se construyó.
- Revisar la consistencia y calidad de modelos.
- Utilizar herramientas y tecnología que permitan construir el sistema con tantos componentes reutilizables sea posible.
- No apoyarse en usuarios anteriores para depurar la WebApp, es mejor diseñar pruebas amplias y ejecutarlas antes de liberar el sistema.