compendio de ingeniería del softwarecotana.informatica.edu.bo/downloads/iweb-2010.pdf · resumen...

44
3.1 INGENIERIA WEB MODULO III Ingeniería de Software INF - 163 Resumen preparado por Miguel Cotaña 26/11/07

Upload: ngokien

Post on 04-Oct-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

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.

• Coincidencia entre el sistema y el mundoreal

Hablar con el lenguaje del usuario.

• 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.

• Flexibilidad y eficiencia en el usoProporcionar aceleradores que seaninvisibles a los novatos

• Ayuda y documentaciónProporcionar información que se puedaalcanzar fácilmente y que proporcioneayuda siguiendo unos pasos concretos.

Ingeniería de la usabilidad

• Conjunto de conceptos y técnicas paraplanificar, realizar y verificar los objetivosde usabilidad de un sistema. [Rosson yCarroll, 2002]

• Busca conocer exactamente que criteriosse usarán para juzgar la usabilidad de unproducto.