3.1 INGENIERIA WEB
MODULO III
Ingeniería de SoftwareINF - 163
Resumen preparado por Miguel Cotaña26/11/07
Los sistemas y aplicaciones basados en
Web (WebApps) ofrecen un complejo
arreglo de contenido y funcionalidad a
una amplia población de usuarios
finales.
La ingeniería Web (IWeb) es el proceso
con el que se crean WebApps de alta
calidad
La IWeb no es un clon perfecto de la IS,
pero toma prestados muchos conceptos
y principios fundamentales de ella.
Además, el proceso IWeb acentúa
actividades técnicas y administrativas
similares.
Al igual que cualquier disciplina de
ingeniería, la IWeb aplica un enfoque
genérico que se suaviza mediante
estrategias, táctica y métodos
especializados.
Actualmente en la red se puede apreciar
sistemas basados en Web mal
desarrolladas y que tienen muy altas
probabilidades de fracaso.
La IWeb 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 exitosos de
sistemas y aplicaciones basados en Web
de alta calidad”.
Powell establece, que 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”.
Atributos de los sistemas y aplicaciones basados en Web
En la mayoria de las WebApps se
encuentran los siguientes atributos:
Intensidad de red. Una WebApps
reside en una red y debe satisfacer las
necesidades de diferentes tipos de
usuarios.
Concurrencia. Un gran número de
usuarios pueden tener acceso a la
WebApps al mismo tiempo.
Carga impredecible. El número de
usuarios crece en forma exponencial.
Desempeño. Las WebApps, deben
responder con agilidad, al
requerimiento del usuario.
Disponibilidad. Las WebApps, deben
estar disponibles los 365 días del año.
Gobernada por los datos. Interfaz
con BD.
Sensibilidad de contenido. La calidad
y naturaleza estética del contenido sigue
siendo importante.
Evolución continua. El contenido de
las WebApps, debe actualizarse minuto a
minuto, o que el contenido sea calculado
de manera independiente para cada
solicitud. El cuidado continuo y la
alimentación permiten que un sitio Web
crezca en robustez e importancia.
Inmediatez. Los IWeb deben aplicar
métodos ágiles para el desarrollo de
WebApps.
Seguridad. Se deben aplicar fuertes
medidas de seguridad.
Estética. Cuando una aplicación se
diseña para ofrecer productos y servicios
o ideas, la estética puede tener tanto
que ver con el éxito como el diseño
técnico.
En el trabajo IWeb es usual encontrar
las siguientes categorías de
aplicaciones:Informativo;
Descarga;
Personalizable;
Interacción;
Entrada del usuario;
Orientada a transacciones;
Orientada a servicios;
Portal;
Acceso a una BD;
Almacén de datos.
El desarrollo de sistemas y aplicaciones
basados en Web incorpora modelos de
proceso especializados, métodos de IS
adaptados a las características del
desarrollo de WebApps y un conjunto
de importantes tecnologías
habilitadoras. Los procesos, métodos y
tecnologías (herramientas)
proporcionan un enfoque en estratos
de la IWeb.
Estratos de ingeniería de WebApps
Los modelos de procesos IWeb
adoptan la filosofía del desarrollo ágil.
Aoyama, describe la motivación para
el desarrollo ágil: Internet cambió la
prioridad principal del desarrollo de
software de qué a cuándo. El
reducido tiempo para el mercado se
ha convertido en el límite competitivo
por las que luchan las compañías.
Proceso
Aún cuando rápidos ciclos de tiempo
dominan la reflexión acerca del
desarrollo, es importante realizar el:
Análisis
Diseño
Implementación en forma
incremental
Prueba.
Sin embargo, dichas actividades del
marco de trabajo se deben definir
dentro de un proceso que:
1) Adopte el cambio;
2) Aliente la creatividad y la
independencia del equipo de
desarrollo y fortalezca la
interacción con los clientes;
3) Construya sistemas que utilicen
pequeños equipos de desarrollo;
4) Desarrollo evolutivo o incremental.
Abarca un conjunto de labores
técnicas para construir las WebApps:
Métodos de comunicación. Facilita
la comunicación entre IWeb y:
Usuarios finales;
Clientes de negocios;
Expertos en problemas de
dominio;
Diseñadores de contenido;
Líderes de equipo;
Gestores de proyecto.
Métodos
Métodos de análisis de requisitos.
Para satisfacer requerimientos de
clientes y usuarios potenciales.
Métodos de diseño. Abarca una
serie de técnicas de diseño que
abordan el contenido, la aplicación y
la arquitectura de información, así
como el diseño de interfase y la
estructura de navegación de la
WebApp.
Métodos de prueba. Incorpora:
Revisiones técnicas formales;
Pruebas de navegación;
Pruebas de facilidad de uso;
Pruebas de seguridad;
Pruebas de configuración.
Arquitectura de dos niveles
Es la más simple, se tiene el nivel del “Cliente” y el nivel del “Servidor”.
Arquitectura de tres niveles
El 1N consiste en la capa de presentaciónque incluye el navegador y el servidor web.El 2N contiene un programa o script. El 3Nproporciona al segundo los datosnecesarios para su ejecución.
Tecnología-lenguaje del lado del cliente:
Navegadores para Web;
HTML;
Javascript y Vbscript;
Applets en Java;
Flash (lenguaje ActionScript);
XML;
AJAX, acrónimo de AsynchronousJavaScript And XML (JavaScriptasíncrono y XML).
Herramientas y tecnología
Si la inmediatez y la evolución
continua son atributos principales
de una WebApp, un equipo de IWeb
debe elegir un modelo de proceso
ágil que produzca liberaciones de
WebApp a un ritmo vertiginoso
El proceso de ingeniería Web
Cualquiera de los modelo de proceso
ágil (PE, DSA, Melé, SCRUM, etc.) se
pueden aplicar de manera exitosa
como un proceso IWeb. El marco de
trabajo del proceso que se presenta
aquí es una amalgama de los
principios e ideas tratados en
capítulos anteriores.
Definición del marco de trabajo
W2000: Un marco para el diseño
Autoweb: Una metodología
WSDM: Web Site Design Method
OO-H: Object-Oriented
Hipermedia Method
OOWS: Object Oriented Web-
Solutions
UWE: UML Based Web
Engineering
OOHDM: Object Oriented
Hypermedia Design Method
La efectividad de cualquier proceso de
ingeniería depende de su
adaptabilidad:
Organización del equipo de
proyecto;
Modos de comunicación entre
miembros del equipo;
Actividades de ingeniería ;
Información recolectada;
Métodos empleados;
Restricciones del proyecto.
Antes de definir un marco de trabajo
de proceso para IWeb, se debe
reconocer que:
Las WebApps con frecuencia se
entregan de manera
incremental;
Los cambios ocurrirán
frecuentemente;
Los plazos son cortos.
El conjunto de mejores prácticas a
aplicar son:
1. Tomar tiempo para entender las
necesidades del negocio y los
objetivos del producto, incluso si
los detalles de la WebApp son
vagos;
2. Describir cómo interactuarán los
usuarios con la WebApp aplicando
un enfoque basado en escenarios;
Mejores prácticas en ingeniería Web
3. Desarrollar un plan del proyecto,
incluso si es muy breve;
4. Utilizar algún tiempo para modelar lo
que construirá;
5. Revisar la consistencia y calidad de los
modelos;
6. Utilizar herramientas y tecnología que
permitan construir el sistema con
componentes reutilizables;
7. No apoyarse en usuarios anteriores
para depurar.
Los métodos de ingeniería para
sistemas hipermedia y web, plantean
un modelo de proceso iterativo e
incremental y centrado en el usuario
con el objeto de mejorar la usabilidad
de las aplicaciones resultantes.
Características de desarrollo Hipermedia
¿Qué es la usabilidad?
• La usabilidad es la cualidad de un sistema respecto a:
su facilidad de usosu facilidad de aprendizajey la satisfacción del usuario
[Rosson y Carroll, 2002]
Objetivos de la usabilidad
• Que sea efectivo• Que sea eficiente• Que sea seguro• Que sea útil• Que se pueda aprender fácilmente• Que sea fácil de recordar cómo se usa
[Preece 2002]
• Que sea efectivoSe refiere a cómo de bien un sistema hace lo que se supone que debe hacer.
¿puede la gente hacer su trabajo de forma eficiente o acceder a la información que necesita?
• Que sea eficienteSe refiere a la forma en que un sistema ayuda a los usuarios a llevar a cabo sus tareas.
¿qué productividad tienen los usuarios?
• Que sea seguroSe refiere a que el usuario está protegido de condiciones peligrosas y de situaciones indeseables.
si el usuario comete un error, ¿puede recuperar la información?
• Que sea útilSe refiere a que el sistema proporciona eltipo de funcionalidades correctas, demanera que el usuario puede hacer loque necesita y lo que quiere hacer.
¿proporciona el sistema la funcionesapropiadas que permiten llevar a cabosus tareas en la manera en la que ellosquieren?
• Que se pueda aprender fácilmenteSe refiere al esfuerzo que requiere aprender a usar un sistema (regla de los 10 minutos).
¿cómo de fácil es aprender las tareas básicas del sistema?
• Que sea fácil de recordar como se usaSe refiere al esfuerzo que requiererecordar un sistema después de que sehaya aprendido como se usa y no sehaya utilizado durante un tiempo.
¿qué tipos de ayudas se proporcionanpara recordar el uso del sistema?
Principios de usabilidad
• Visibilidad del estado del sistemaSiempre mantiene al usuario informadosobre que se está haciendoproporcionando un “feedback” apropiadoen un tiempo razonable.
• Control del usuario y libertadSe debe proporcionar a los usuariosmecanismos de escape cuando se llegana situaciones no deseadas.
• Consistencia y estandarizaciónEvitar que diferentes palabras, acciones ysituaciones signifiquen la misma cosa.
• Ayudar a los usuarios a reconocer,diagnosticar y recuperar la situacióncuando se produce un errorUsar un lenguaje sencillo para describir lanaturaleza del error y sugerir la forma deresolverlo
• Impedir erroresIntentar impedir cometer errores cuandosea posible.
• Reconocimiento antes que recuerdoHacer los objetos, acciones y opcionesvisibles
• Estética y diseño minimalistaProhibir el uso de información que no es relevante o que se necesite raramente.
• Ayuda y documentaciónProporcionar información que se puedaalcanzar fácilmente y que proporcioneayuda siguiendo unos pasos concretos.