29-Capítulo Ing. Web

Transcripción

29-Capítulo Ing. Web
CAPÍTULO
29
INGENIERÍA WEB
L
A World Wide Web e Internet han introducido a la población en general en el mundo de
la informática. Compramos fondos de inversión colectivos y acciones, descargamos
música, vemos películas, obtenemos asesoramiento médico, hacemos reservas de habitaciones en hoteles, vendemos artículos personales, planificamos vuelos en líneas aéreas, conocemos gente, hacemos gestiones bancarias, recibimos cursos universitarios, hacemos la compra
-es decir, en el mundo virtual se puede hacer todo lo que se necesite-. Se puede decir que
Internet y la Web son los avances más importantes en la historia de la informática. Estas tecnologías informáticas nos han llevado a todos nosotros a la era de la informática (con otros
millones de personas quienes finalmente entrarán también). Durante los primeros años del siglo
veintiuno estas tecnologías han llegado casi a formar parte de nuestra vida diaria.
Para todos nosotros que recordamos un mundo sin Web, el crecimiento caótico de la tecnología tiene su origen en otra era -los primeros días del software-. Eran tiempos de poca disciplina, pero de enorme entusiasmo y creatividad. Eran tiempos en que los programadores a
menudo entraban en otros sistemas, algunas veces con buena intención y otras con mala intención. La actitud que prevalecía parecía ser la de «Hazlo rápidamente, y entra en el campo, que
nosotros lo limpiaremos (y mejor sería que entendieras lo que realmente queremos construir)
cuando actuemos». ¿Le suena familiar?
En una mesa redonda virtual publicada en IEEE Software [PRE98], mantuve en firme mi
postura en relación con la ingeniería de Web:
Me parece que cualquier producto o sistema importante es merecedor de recibir una ingeniería. Antes
de comenzar a construirlas, lo mejor es entender el problema, diseñar una solución viable, implementarla
de una manera sólida y comprobarla en profundidad. Probablemente también se deberían controlar los
cambios a medida que el trabajo vaya avanzando, y disponer de mecanismos para asegurar la calidad del
resultado final. Muchos de los que desarrollan Webs no dicen lo mismo; ellos piensan que su mundo es
realmente diferente, y que simplemente no se van a aplicar los enfoques de ingeniería del software convencionales.
&Quées? Los sistemas y aplicaciones
(WebApps) basados en Web hacen posible que una población extensa de usuarios finales dispongan d e una gran
variedad de contenido y funcionalidad
La ingeniería Web no es un clónico perfectode la ingeniería del software, pero
toma prestado muchos de los conceptos y principios básicos de la ingeniería del software, dando importancia a
las mismas actividades técnicas y de
gestión. Existen diferencias sutiles en
la forma en que se llevan a cabo estas
actividades, pero la filosofía primordial
es idéntica dado que dicta un enfoque
disciplinado para el desarrollo de un
sistema basado en computadora.
&Quién
lo hace? Los ingenieros Web y
los desarrolladores d e contenido no
técnicos crean las WebApps.
&Porqué es importante? A medida
que las WebApps se integran cada vez
más en grandes y pequeñas compa-
ñías (por ejemplo, comercio electrónico), y cada vez es más importante la
necesidad d e construir sistemas fiables, utilizables y adaptables. Esta es
la razón por la que es necesario un
enfoque disciplinado para el desarrollo de WebApps.
&Cuálesson los pasos a seguir ? Al
igual que cualquier disciplina de ingeniería, la ingeniería Web aplica. un
enfoque genérico que se suaviza con
estrategias, tácticas y métodos especializados. El proceso de ingeniería
Web comienza con una formulación del
problema que pasa a resolverse con
las WebApps. Se planifica el proyecto
y se analizan los requisitos d e l a
WebApp, entonces se lleva a cabo el
diseño de interfaces arquitectónico y
del navegador. El sistema se implementa utilizando lenguajes y herramientas especializados asociados con
la Web, y entonces comienzan las prue-
52 1
s. Dado que las WebApps están e n
nte evolución, deben de estae los mecanismos para el control de configuraciones, garantía de
calidad y soporte continuado.
4 Cuál es el producto obtddo? La
elaboración de una gran variedad d e
productos de trabajo de ingenierfa Web
(por ejemplo, modelos d e análisis.
modelos de diseño, procedimientos d e
pruebas). Y como producto final l a
WebApp operativa.
1 Cómo puedo estar seguro de que
lo he hecho correctamente?Aplicando las mismas prácticas SQA que se
aplican en todos los procesos de ingeniería del software -las revisiones técnicas formales valoran los modelos de
análisis y diseiío-; las revisiones especializadas tienen en consideración la
usabilidad y la comprobación se aplica para descubrir errores en el contenido, funcionalidad y compatibilidad.
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRdCTICO
Esto nos lleva a formular una pregunta clave: ¿Pueden aplicarse principios, conceptos y métodos de ingeniería en el desarrollo de la Web? Creo que muchos de
ellos sí se pueden aplicar, pero su aplicación quizás
requiera un giro algo diferente.
Pero, ¿qué ocurriría si estuviera equivocado?, y ¿si
persiste el enfoque actual y específico para ese desarrollo de la Web? Con la ausencia de un proceso disciplinado para sistemas basados en Web, cada vez nos
preocupa más la manera en que nos podemos enfrentar con problemas serios para obtener éxito en el desarrollo,
empleo y «mantenimiento» de estos sistemas. En esencia, a medida que entramos en el nuevo siglo, la infraestructura de las aplicaciones que se están creando hoy en día puede llevamos a algo que se podría llamar «Web
enmarañada». Esta frase connota un cúmulo de aplicaciones basadas en Web pobremente desarrolladas y con una
probabilidad de fallo bastante alta. Y lo que es peor, a medida que los sistemas basados en Web se van complicando, un fallo en uno de ellos puede propagar y propagará problemas muy extensos en todos. Cuando ocurra esto,
la confianza en Internet se puede romper provocando resultados irremediables. Y lo que es aún peor, puede conducir a una regulación gubernamental innecesaria y mal concebida, provocando daños irreparables en estas tecnologías singulares.
Con objeto de evitar una Web enmarañada y lograr un mayor éxito en el desarrollo y aplicación de sistemas
basados en Web complejos y a gran escala, existe una necesidad apremiante de enfoques de ingeniería Web disciplinada y de métodos y herramientas nuevos para el desarrollo, empleo y evaluación de sistemas y aplicaciones
basados en Web. Tales enfoques y técnicas deberán tener en cuenta las características especiales en el medio nuevo, en los entornas y escenarios operativos, y en la multiplicidad de perfiles de usuario implicando todo ello un
reto adicional para el desarrollo de aplicaciones basadas en Web.
La Ingeniería Web (IWeb) está relacionada con el establecimiento y utilización de principios científicos, de
ingeniería y de gestión, y con enfoques sistemáticos y disciplinados del éxito del desarrollo, empleo y mantenimiento de sistemas y aplicaciones basados en Web de alta calidad [MUR99].
. ,..,
-
'.
B
,
,
.
No hay mucho que decir con respecto al hecho de que
los sistemas y las aplicaciones' basados en Web (nos
referiremos a estas como WebApps) son muy diferentes
de las otras categorías de software informático que se
tratan en el Capítulo 1. Powell resume las diferencias
básicas cuando afirma que los sistemas basados en Web
«implican una mezcla de publicación impresa y desarrollo de software, de marketing e informática,de comunicaciones internas y relaciones externas, y de arte y
tecnología» [POW98]. Los atributos siguientes se van
a encontrar en la gran mayoría de las WebApps2:
Intensivas de Red. Por su propia naturaleza, una
WebApp es intensiva de red. Reside en una red y debe
dar servicio a las necesidades de una comunidad diversa de clientes. Una WebApp puede residir en Internet
(haciendo posible así una comunicación abierta par todo
el mundo). De forma alternativa, una aplicación se puede ubicar en una Intranet (implementando la comunicación a través de redes de una organización) o una
Extranet (comunicación entre redes).
I En esta categoria se incluyen unos sitios Web completos, funcio
nalidad especializada dentro de los sitios Web y aplicaciones de proceso de informacion que residen en Internet, en una Intranet o en
una Extranet
En el contexto de este capitulo el termino «aplicacion Webn abarcara todo, desde una pagina Web simple que podria ayudar a un consumidor a calcular el pago de un alquiler de un coche hasta un sitio
Web completo que proporcione los servicios completos para viales
de negocios y de vacaciones
las WebApps son intensivas de red, controladas
por el contenido y en continua evolución. Estos atributos
tienen un profundo impacto dentro de la forma
en que se lleva a coba lo IWeb.
Controlada por el contenido. En muchos casos, la
función primaria de una WebApp es utilizar hipermedia para presentar al usuario el contenido de textos, gráficos, sonido y vídeo.
522
CAPfTULO 29
INGENIERfA WEB
medidas de seguridad en toda la infraestructura que apoya una WebApp y dentro de la misma aplicación.
Estética. Una parte innegable del atractivo de una
WebApp es su apariencia e interacción. Cuando se ha
diseñado una aplicación con el fin de comercializarse o
vender productos o ideas, la estética puede tener mucho
que ver con el éxito del diseño técnico.
Las características generales destacadas anteriormente se aplican a todas las WebApps, pero con un grado diferente de influencia. Las categorías de aplicaciones
que se enumeran a continuación son las más frecuentes
en el trabajo de la Web [DAR99]:
informativa: se proporciona un contenido solo de lectura con navegación y enlaces simples;
descarga: un usuario descarga la información desde
el servidor apropiado;
Evolución continua. A diferencia del software de aplicaciones convencional, que evoluciona con una serie de
versiones planificadas y cronológicamente espaciadas,
las aplicaciones Web están en constante evolución. No
es inusual que algunas WebApps (específicamente, su
contenido) se actualicen cada hora.
Algunos argumentan que la evolución continua de
las WebApps hace que el trabajo realizado en ellas sea
similar a la jardinería. Lowe [LOW99] trata este tema
con el siguiente escrito:
La ingeniena está a punto de adoptar un enfoque científico y consecuente, suavizado por un contexto específico y
práctico, para el desarrollo y el comisionado de sistemas y
aplicaciones. El desarrollo de los sitios Web suele estar destinado a crear una infraestructura (sembrar el jardín) y entonces «ocuparse» de la información que crece y brota dentro
del jardín. Después de un tiempo, el jardín (es decir, el sitio
Web) continuará evolucionando, cambiando y creciendo.
Una buena arquitectura inicial deberá permitir que este crecimiento ocurra de forma controlada y consecuente.. .podnamos hacer que «tres cirujanos» podaran los «árboles» (es
decir, las secciones del sitio Web) dentro del jardín (el sitio
en sí) a la vez se asegura la integridad de las referencias cruzadas. Podríamos disfrutar de «guarderías de jardín» donde
«se cultiven))las plantas jóvenes (es decir, las configuraciones de diseño para sitios Web). Acabemos con esta analogía,
no vaya a ser que vayamos demasiado lejos.
¿Cómo se pueden
tategorizar las WebApps?
personalizable: el usuario personaliza el contenido
a sus necesidades específicas;
interacción: la comunicación entre una comunidad
de usuarios ocurre mediante un espacio chat (charla),
tablones de anuncios o mensajería instantánea;
entrada del usuario: la entrada basada en formularios es el mecanismo primario de la necesidad de
comunicación;
orientada a transacciones: el usuario hace una solicitud (por ejemplo, la realización un pedido) que es
cumplimentado por la WebApp;
orientado a servicios: la aplicación proporciona un
servicio al usuario, por ejemplo, ayuda al usuario a
determinar un pago de hipoteca;
portal: la aplicación canaliza al usuario llevándolo
a otros contenidos o servicios Web fuera del dominio de la aplicación del portal;
acceso a bases de datos: el usuario consulta en una
base de datos grande y extrae información;
aZmacenes de datos: el usuario hace una consulta en
una colección de bases de datos grande y extrae información.
Las características y las categorías destacadas anteriormente en esta sección, y las categorías de aplicaciones representan los hechos reales para los ingenieros
de la Web. La clave es vivir dentro de las restricciones
impuestas por las características anteriores y aun así
tener éxito en la elaboración de la WebApp.
Un cuidado y una alimentación continua permite que
un sitio Web crezca (en robustez y en importancia). Pero
a diferencia de un jardín, las aplicaciones Web deben
de servir (y adaptarse a) las necesidades de más de un
jardinero, Las siguientes características de WebApps
son las que conducen el proceso:
Inmediatez. Las aplicaciones basadas en Web tienen
una inmediatez [NOR99] que no se encuentra en otros
tipos de software. Es decir, el tiempo que se tarda en
comercializar un sitio Web completo puede ser cuestión
de días o semanas3. Los desarrolladores deberán utilizar los métodos de planificación, análisis, diseño, implementación y comprobación que se hayan adaptado a
planificaciones apretadas en tiempo para el desarrollo
de WebApps.
No hay duda de que la inmediotez o menudo prevalece
en el desorrolla de las WebApps, pero hay que tener
cuidodo, porque el hecho de hocer olga rápidomente
no significo tener el privilegio de hacer un irobajo
de ingenierío pobre. lo rápido y erróneo roros veces
tiene un resultado acepiable.
Seguridad. Dado que las WebApps están disponibles
a través de1 acceso por red, es difícil, si no imposible,
limitar la población de usuarios finales que pueden acceder a la aplicación. Con objeto de proteger el contenido confidencial y de proporcionar formas seguras de
transmisión de datos, deberán implementarse fuertes
29.1.1. Atributos de calidad
Todas las personas que hayan navegado alguna vez por la
Web o hayan utilizado una intranet de una compañía pue-
Páginas Web sofisticadas pueden elaborarse en pocas horas
523
INGENIERfA DEL SOFTWARE. UN ENFOQUE PR A C TI CO
Desarrollo basado en componentes
Las tecnologías de componentes estudiadas en los Capítulos 27 y 28 han evolucionado en gran parte gracias al
crecimiento explosivo de los sistemas y aplicaciones
basados en Web. Retomando el estudio del capítulo anterior, los ingenieros Web disponen de tres estándares
importantes para la infraestructura: CORBA,
COMDCOM y JavaBeans. Estos estándares (acompañados por los componentes preconstmidos, herramientas
y técnicas) proporcionan una infraestructuraque permite
a los que diseñan emplear y personalizar componentesde
terceras partes permitiéndoles así comunicarse unos con
otros y con servicios a nivel de sistemas.
den opinar sobre lo que hace una «buena» WebApp. Los
puntos de vista individuales vm’an enormemente. Algunos usuarios disfrutan con gráficos llamativos, en cambio
otros solo quieren un texto sencillo.Algunos exigen información copiosa, otros desean una presentación abreviada.
En efecto, la percepción de «lo bueno» por parte del usuario (y como consecuencia, la aceptación o no aceptación
resultante de la WebApp) podría ser más importante que
cualquier discusión técnica sobre la calidad de la WebApp.
Pero ¿cómo se percibe la calidad de la WebApp?
¿qué atributos deben de exhibirse ante los ojos de los
usuarios para lograr lo bueno y al mismo tiempo exhibir las características técnicas de calidad que permitan
a un ingeniero corregir, adaptar, mejorar y soportar la
aplicación a largo plazo?
Arbol detallado de los requisitos
de calidad para WebApps
En realidad, todas las características generales de la
calidad del software estudiadas en los Capítulos 8, 19
y 24 se aplican también a las WebApps. Sin embargo,
las características más relevantes -usabilidad, fiabilidad, eficiencia y capacidad de mantenimiento- proporcionan una base Útil para evaluar la calidad de los
sistemas basados en Web.
Olsina y sus colaboradores [OSL99] han preparado
un «árbol de requisitos de calidad» que identifica un
conjunto de atributos que conduce a WebApps de alta
calidad. La Figura 29.1 resume su trabajo.
Seguridad
Si en una red reside una WebApp, ésta está abierta a un
acceso sin autorización. En algunos casos, ha sido el personal interno el que ha intentado acceder sin autorización.
En otros casos, intrusos (hackers) pueden intentar acceder por deporte, por sacar provecho o con intenciones más
maliciosas. Mediante la infraestructura de red se proporciona una variedad de medidas de seguridad, tales como
encriptación, cortafuegos y otras. Un estudio amplio de
este tema queda fuera del ámbito de este libro. Para más
información, el lector interesado puede consultar en esta
bibliografía: [ATK97], [KAE991 y [BRE991.
Estándares de Internet
Durante la última década el estándar dominante en la
creación del contenido y la estructura de la WebApp ha
sido HTML, un lenguaje de marcas que posibilita al desarrollador proporcionar una serie de etiquetas que describen una gran variedad de objetos de datos (texto,
gráficos, audio/vídeo, formularios, etc.). Sin embargo, a
medida que las aplicaciones crecen en tamaño y complejidad, se ha adoptado un nuevo estándar -XMLpara la próxima generación de WebApps. XML
(Extensible Markup Language) el Lenguaje de marcas
extensible es un subconjunto estrictamente definido del
metalenguaje SGML [BRA97], permitiendo que los diseñadores definan etiquetas personalizadas en las descripciones de una página Web. Mediante una descripción del
metalenguaje XML, el significado de las etiquetas personalizadas se define en la información transmitida al
sitio del cliente. Para más información sobre XML, el
lector interesado deberá consultar [PAR991 y [STL99].
Facilidad de corrección
FIGURA 29.1. Árbol de requisitos de calidad (OSL 99).
29.1.2. Las tecnologías
El diseño y la implementación de sistemas basados en
Web incorporan tres tecnologías importantes: el desarrollo basado en componentes, la seguridad y los estándares
de Internet. Un ingeniero Web deberá estar familiarizado
con las tres para construir WebApps de alta calidad.
524
8 3 M VJü3IN33NI
CZC
.
. .
.....
.. ,.:
..
. ,
,
.~
.
1.
“
62 O?il.LldV3
INGENIERfA DEL SOFTWARE. UN ENFOQUE PR A CTICO
cliente. Es en este punto en donde se solicitan cambios
(tienen lugar ampliaciones del ámbito). Estos cambios
se integran en la siguiente ruta mediante el flujo incremental del proceso.
La formulación y el análisis de sistemas y aplicaciones
basados en Web representan una sucesión de actividades de ingeniería Web que comienza con la identificación de metas globales para la WebApp, y termina con
el desarrollo de un modelo de análisis o especificación
de los requisitos para el sistema. La formulación permite que el cliente o diseñador establezca un conjunto
común de metas y objetivos para la construcción de la
WebApp. También identifica el ámbito de esfuerzo en
el desarrollo y proporciona un medio para determinar
un resultado satisfactorio. El análisis es una actividad
técnica que identifica los datos y requisitos funcionales
y de comportamiento para la WebApp.
en zonas geográficas en donde actualmente no tenemos dmacenes de ventas.
Finalmente, la compañía define la demografía para
la WebApp: «Los usuarios potenciales de HogarSeguroInc.com son propietarios de casas y de negocios
pequeños.»
Las respuestas que se han establecido anteriormente implican metas específicas para el sitio Web HogarSeguroInc.com. En general, se identifican dos categorías
[GNA99]:
Metas informativas:indican la intención de proporcionar el contenido y/o información específicos para
el usuario final.
Metas aplicables: indican la habilidad de realizar
algunas tareas dentro de la WebApp.
29.4.1. Formulación
Powell [POW98] sugiere una serie de preguntas que
deberán formularse y responderse al comienzo de la etapa de formulación:
¿Cuál es la motivación principal para la WebApp?
¿Por qué es necesaria la WebApp?
¿Quién va a utilizar la WebApp?
"*%
c
VE
Poro toda WebApp deberán definirse metas
informativos y aplicables.
¿Qué preguntas
En el contenido de la Web HogarSeguroInc.com,una
meta informativa podría ser la siguiente:
se deberían hacer
para formular el problema?
El sitio proporcionará a los usuarios especificaciones de un
producto detallado, como descripción técnica, instruccionesde
instalación e información de precios.
La respuesta a estas preguntas deberá ser de lo más
sucinto posible. Por ejemplo, supongamos que el fabricante de sistemas de seguridad en el hogar ha decidido
establecer un sitio Web de comercio electrónico para
vender sus productos directamente a los consumidores.
Una frase que describiera la motivación de la WebApp
podría ser la siguiente:
El examen de las respuestas anteriores llevará a
poderse aplicar la afirmación de meta siguiente:
HogarSeguroInc.com consultará al cliente sobre la instalación (es decir, sobre la casa, oficina/almacén rninorista) que se va a proteger, y dará recomendaciones personalizadas sobre el producto y la configuración que se va
utilizar.
HogarSeguroInc.com5permitirá a los consumidores configurar y comprar todos los componentes necesarios para instalar un sistema de seguridad en casa o en su comercio.
Una vez que han identificado todas las metas aplicables e informativas se desarrolla el perfil del cliente.
El perfil del usuario recoge «las características relevantes de los usuarios potenciales incluyendo antecedentes, conocimiento, preferencias e incluso más»
[GNA99]. En el caso de HogarSeguroInc.com, el perfil de usuario identificará las características de un comprador típico de sistemas de seguridad (esta información
sería proporcionada por el departamento de marketing
de HogarSeguroInc.com).
Una vez que se han desarrollado las metas y los perfiles de usuarios, la actividad de formulación se centra en
Es importante destacar que en esta frase no se ha proporcionado ningún detalle. El objetivo es delimitar la
intención global del sitio Web.
Después de discutir con otros propietarios de HogarSeguro Inc., la segunda pregunta se podría contestar de
la siguiente manera:
HogarSeguroInc.com nos permitirá vender directamente a
los consumidores, eliminando por tanto los costes de intermediarios, y mejorando de esta manera los márgenes de beneficios. También nos permitirá aumentar las ventas en un 25 por
100 por encima de las ventas anuales y nos permitirá penetrar
HogurSeguro ya se ha utilizado anteriormente como ejemplo en el
libro.
526
CAPfTULO 29
INGENIERfA W E B
la afirmación del ámbito para la WebApp (Capítulo 5).
En muchos casos, las metas ya desarrolladas se integran
en la afirmación del ámbito. Además es Útil, no obstante, indicar el grado de integración que se espera para la
WebApp. Es decir, a menudo es necesario integrar los
sistemas de información existentes (por ejemplo, la aplicación de base de datos existente) en un planteamiento
basado en Web. En este punto se tienen en consideración
también los temas de conectividad.
29.4.2. Análisis
Los conceptos y principios que se trataron para el análisis de los requisitos del software (Capítulo 11) se aplican sin revisión en la actividad de análisis de ingeniería
Web. Para crear un modelo de análisis completo para la
WebApp se elabora el ámbito definido durante la actividad de formulación. Durante la IWeb se realizan cuatro tipos de análisis diferentes:
Análisis del contenido. Se trata de la identificación
del espectro completo de contenido que se va a proporcionar. En el contenido se incluyen datos de texto,
gráficos, imágenes, vídeo y sonido. Para identificar y
describir cada uno de los objetos de datos que se van a
utilizar dentro de la WebApp se puede utilizar el modelado de datos (Capítulo 12).
Análisis de la interacción. Se trata de la descripción detallada de la interacción del usuario y la
WebApp. Para proporcionar descripciones detalladas
de esta interacción se pueden desarrollar casos prácticos (Capítulo 11).
Análisis funcional. Los escenarios de utilización
(casos de uso) creados como parte del análisis de interacción definen las operaciones que se aplicarán en el
contenido de la WebApp e implicarán otras funciones
de procesamiento. Aquí se realiza una descripción detallada de todas las funciones y operaciones.
Análisis de la configuración. Se efectúa una descripción detallada del entorno y de la infraestructura en
donde reside la WebApp. La WebApp puede residir en
Internet, en una intranet o en una Extranet. Además, se
deberá identificar la infraestructura (es decir, la infraestructura de los componentes y el grado de utilización
de la base de datos para generar el contenido) de la
WebApp.
Aun cuando se recomienda una especificación
detallada de los requisitos para WebApps grandes y
complejas, tales documentos no son los usuales. Se
puede decir que la continua evolución de los requisitos de la WebApp puede hacer que cualquier documento se quede obsoleto antes de finalizarse. Aunque
se puede decir que esto sucede de verdad, es necesario definir un modelo de análisis que pueda funcionar como fundamento de la siguiente actividad de
diseño. Como mínimo, la información recogida durante las cuatro tareas de análisis anteriores deberá ser
revisada, modificada a petición, y organizada para
formar un documento que pueda pasarse a los diseñadores de WebApps
Con objeto de realizar un diseño eficaz basado en
Web, el ingeniero deberá trabajar reutilizando cuatro
elementos técnicos [NAN98]:
Principios y métodos de diseño. Es importante destacar que los conceptos y principios del diseño estudiados en el Capítulo 13 se aplican a todas las WebApps.
La modularidad eficaz (exhibida con una cohesión alta
y con un acoplamiento bajo), la elaboración paso a paso,
y cualquier otra heurística de diseño del software conducirá a sistemas y aplicaciones basados en Web más
fáciles de adaptar, mejorar, probar y utilizar.
Cuando se crean aplicaciones Web se pueden reutilizar los métodos de diseño que se utilizan para los sistemas orientados a objetos estudiados anteriormente en
este libro. La hipermedia define «objetos» que interactúan mediante un protocolo de comunicación algo similar a la mensajería. De hecho, la notación de diagramas
La naturaleza de inmediatez de las aplicaciones basadas en
Web unida a la presión de evolucionar continuamente obliga a que un ingeniero establezca un diseño que resuelva el
problema comercial inmediato, mientras que al mismo tiempo obliga a definif una arquitectura de aplicación que tenga la habilidad de evolucionar rápidamente con el tiempo.
El problema, desde luego, es que resolver (rápidamente) el
problema inmediato puede dar como resultado compromisos que afectan a la habilidad que tiene la aplicación de evolucionar con el paso del tiempo.
3
Referencia Web
Uno fuente volioso de líneas generales prácticos
poro el diseño de sitios Web se puede enconbar en
www.ibm.tom/ibm/eas y/design/lower/
1060100.html
527
INGENIERfA DEL SOFTWARE. UN ENFOQUE PR A CTICO
propuesta por UML (Capítulos 21 y 22) puede adaptarse y utilizarse durante las actividades de diseño de las
WebApps. Además, se han propuesto otros hipermedios
de métodos de diseño (por ejemplo, [ISA95], [SCH96]).
Reglas de oro. Las aplicaciones hipermedia interactivas (WebApps) llevan construyéndose ya hace una
década. Durante ese tiempo, los diseñadores han desarrollado un conjunto de heurísticas de diseño (reglas de
oro) que se podrán volver a aplicar durante el diseño de
aplicaciones nuevas.
Configuraciones de diseño. Como se ha destacado
anteriormente en este libro, las configuraciones de diseño son un enfoque genérico para resolver pequeños problemas que se pueden adaptar a una variedad más amplia
de problemas específicos. En el contexto de las
WebApps, las configuraciones de diseño se pueden aplicar no solo a los elementos funcionales de una aplicación, sino también a los documentos, gráficos y estética
general de un sitio Web.
Plantillas. Las plantillas se pueden utilizar para proporcionar un marco de trabajo esquemático de cualquier
configuración de diseño o documento a utilizar dentro
de una WebApp. Nanard y Kahn [NAN98] describen
este elemento de diseño reutilizable de la siguiente
manera:
Lineal
Lineal con flujo
o pciona I
FIGURA 29.3. Estructuras lineales.
Lineal
con desviaciones
Una vez que se ha especificado una plantilla, cualquier parte de una estructura hipermedia que se acopla a esta plantilla
se podrá generar o actualizar automáticamente llamando solamente a la plantilla con datos relevantes [para dar cuerpo al
esquema]. La utilización de plantillas constructivas depende
implícitamente del contenido separado de los documentos hipermedia, de la especificación y de su presentación: los datos fuente se organizan en la estructura del hipertexto tal y como se
especifica en la plantilla
29.5.1. Diseño arquitectónico
El diseño arquitectónico para los sistemas y aplicaciones basados en Web se centra en la definición de la
estructura global hipermedia para la WebApp, y en la
aplicación de las configuraciones de diseño y plantillas
constructivas para popularizar la estructura (y lograr la
reutilización). Una actividad paralela, llamada diseño
del contenido6, deriva la estructura y el formato detallados del contenido de la información que se presentará como parte de la WebApp.
la mopria de las estructuras de las WebApps
simplemente aparecen. Evite esto trampa. Estoblezco
el diseña estructural de la WebApp explicitamente
antes de empezar a desarrollar los detalles de la pógina
y de la navegación.
Estructuras de las WebApps
La estructura arquitectónica global va unida a las metas
establecidas para una WebApp, al contenido que se va
a presentar, a los usuarios que la visitarán y a la filosofía de navegación (Sección 29.5.3) establecidos. Cuando el encargado de la arquitectura va a realizar el diseño
de una WebApp típica puede elegir entre cuatro fuentes diferentes [POW98].
¿Cuáles son las opciones
disponibles para el diseño de
una WebApp?
Las estructuras lineales (Fig. 29.3) aparecen cuando es común la sucesión predecible de interacciones
(con alguna variación o diversificación). Un ejemplo
clásico podría ser la presentación de un manual de usuario en la que las páginas de información se presentan
con gráficos relacionados, vídeos cortos o sonido solo
después de haber presentado un prerrequisito. La sucesión de presentación del contenido queda predefinida y
se puede decir que, generalmente, es lineal. Otro ejemplo podría ser la sucesión de una entrada de pedido de
un producto donde se tenga que especificar la información específica en un orden específico. En tales casos,
El diseño del contenido es una actividad no técnica que llevan a
cabo redactores publicitarios, artistas, diseñadores gráficos y otros
que generan el contenido de las WebApps. Para más información,
véase IDlN98) y \LYN99].
CAPÍTULO 29
INGENIERfA W E B
del extremo izquierdo de la jerarquía puede tener enlaces
de hipertexto que lleven al contenido que existe en medio
de la rama derecha de la estructura. Sin embargo, debería
de destacarse que aunque dicha rama permita una navegación rápida por el contenido de la WebApp, puede originar también confusión por parte del usuario.
las estructuras que se muestran en la Figura 29.3 son las
adecuadas. A medida que el contenido y el procesamiento crecen en complicación, el flujo puramente lineal que se muestra a la derecha da como resultado
estructuras lineales más sofisticadas en las que se puede invocar el contenido alternativo, o en donde tiene
lugar una desviación para adquirir un contenido complementario (la estructura se muestra a la derecha en la
Fig. 29.3).
El ocoplomiento es un temo engoñoso poro
lo orquiteciuro de los WebApps. Por un lodo, focilita
lo novegoción. Pero, por otro, también puede hocer
que el usuorio use pierdo». No rehogo conexiones
horizontales dentro de uno jerorquío.
FIGURA 29.4. Estructura reticular.
Las estructuras reticdares (Fig. 29.4) son una opción
arquitectónica que puede aplicarse cuando el contenido
de la WebApp puede ser organizado categóricamente en
dos dimensiones (o más). Por ejemplo, consideremos una
situación en la que un sitio de comercio electrónico vende palos de golf. La dimensión horizontal de la retícula
representa el tipo de palo en venta (por ejemplo, maderas, hierros, wedges, putters). La dimensión vertical representa la oferta proporcionada por los fabricantes de palos
de golf. De aquí que un usuario pueda navegar por la retícula horizontalmente para encontrar la columna de los
putters, y recorrer la columna para examinar las ofertas
proporcionadas por los vendedores de putters. Esta arquitectura WebApp es de utilidad solo cuando se encuentra
un contenido muy regular [POW98].
FIGURA 29.5. Estructuras jerárquicas.
Una estructura en red o de «web pura» (Fig. 29.6)
se asemeja en muchos aspectos a la arquitectura en evolución para los sistemas orientados a objetos. Los componentes arquitectónicos (en este caso las páginas Web)
se diseñan de forma que pueden pasar el control
(mediante enlaces de hipertexto) a otros componentes
del sistema. Este enfoque permite una flexibilidad de
navegación considerable, aun cuando puede resultar
confuso para el usuario.
"*%
C
VE
Las estructuras reticulares funcionan bien cuando
el contenido puede organizarse categóricamente
en dos dimensiones o más.
Las estructurasjerúrquicas (Fig. 29.5) son sin duda la
arquitectura WebApp más común. A diferencia de la división de jerarquías de software estudiadas en el Capítulo
14, que fomentan el flujo de control solo a lo largo de las
ramas verticales de la jerarquía, se podrá diseñar una
estructura jerárquica de la WebApp para posibilitar (por
medio de la ramificación de hipertexto) el flujo de control en horizontal atravesando las ramas verticales de la
estructura. Por tanto, el contenido presentado en la rama
FIGURA 29.6. Estructura en red o (cweb pura)).
Las estructuras arquitectónicas estudiadas en los
párrafos anteriores se pueden combinar para formar estruc529
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO
turas compuestas. La arquitectura global de una WebApp
puede ser jerárquica, pero parte de la estructura puede
exhibir características lineales, mientras que otra parte de
la arquitectura puede confeccionarse en red. La meta del
diseñador arquitectónico es hacer corresponder la estructura de la WebApp con el contenido que se va a presentar y con el procesamiento que se va a llevar a cabo.
Tamiz: una configuración que va guiando al usuario
a través de una serie de opciones (decisiones) con el
fin de llevar al usuario a un contenido específico e
indicado por la sucesión de opciones elegidas o decisiones tomadas.
Vecindario: una configuración que abarca un marco
de navegación uniforme por todas la páginas Web
para permitir que un usuario tenga una guía de navegación consecuente independientemente de la localización de la WebApp.
Las configuraciones de diseño de hipertexto aue se
han descrito anteriormente se pueden rekilizar a medida que el contenido va adquiriendo el formato que permitirá la navegación a través de una WebApp.
Patrones de diseño
Como se ha destacado anteriormente en este mismo
libro, los patrones de diseño son un buen método para
resolver pequeños problemas que pueden adaptarse a
una variedad mucho más amplia de problemas específicos. En el contexto de los sistemas y aplicaciones basados en Web, los patrones de diseño pueden aplicarse en
el nivel jerárquico, nivel de componentes y nivel de
hipertexto (de navegación).
29.5.2. Diseño de navegación
Una vez establecida una arquitectura de WebApp, una
vez identificados los componentes (páginas, guiones,
applets y otras funciones de proceso) de la arquitectura, el diseñador deberá definir las rutas de navegación
que permitan al usuario acceder al contenido y a los servicios de la WebApp. Para que el diseñador pueda llevarlo a cabo, debe (1) identificar la semántica de la
navegación para diferentes usuarios del sitio; y (2) definir la mecánica (sintaxis) para lograr la navegación.
Generalmente una WebApp grande tendrá una variedad de roles de usuarios diferentes. Por ejemplo, los
roles podrían ser el de visitante, cliente registrado o
cliente privilegiado. Cada uno de estos roles se pueden
asociar a diferentes niveles de acceso al contenido y de
servicios diferentes. Un visitante puede tener acceso
sólo a un contenido limitado, mientras que un cliente
registrado puede tener acceso a una variedad mucho
más amplia de información y de servicios. La semántica de la navegación de cada uno de estos roles sería
diferente.
El diseñador de WebApps crea una unidad semántica de navegación (USN) para cada una de las metas asociadas a cada uno de los roles de usuario [GNA99]. Por
ejemplo, un cliente registrado puede tener seis metas
diferentes, todas ellas con un acceso a información y
servicios diferentes. Para cada meta se crea una USN.
Gnaho y Larcher [GNA99] describen la USN de la
siguiente manera:
En los Copitulos 14 y 22 se puede sncontror mbs
informa¿& sobre las configuracionesde diseh.
Cuando dentro de una WebApp se requiere la funcionalidad del proceso de datos, pueden aplicarse los
patrones de diseño arquitectónicas a nivel de componentes propuestas por [BUS96], [GAM95] y otros. Los
patrones de diseño a nivel de hipertexto se centran en
el diseño de las características de navegación que permiten al usuario moverse por el contenido de la WebApp
fácilmente. Entre muchos de los patrones de diseño de
hipertexto propuestos en literatura sobre este tema se
encuentran los siguientes [BER98]:
Ciclo: una configuración que devuelve al usuario al
nodo de contenido visitado anteriormente.
regla
Anillo de Web: una configuración que implementa
un «gran ciclo que enlaza hipertextos enteros viajando por un tema» [BER98].
Contorno: un patrón que aparece cuando varios ciclos
inciden en otro, permitiendo navegar por rutas definidas por los ciclos.
Contrapunto: un patrón que añade comentarios de
hipertexto interrumpiendo la narrativa del contenido
para proporcionar más información o más indagación.
Mundo de espejo: el contenido se presenta utilizando
diferentes hilos narrativos, cada uno con un punto de
vista o perspectiva diferente. Por ejemplo, el contenido que describe una computadora personal podría
permitir al usuario seleccionar una narrativa «técnica» o «no técnica» que describa la máquina.
La estructura de una USN se compone de un conjunto de
subestructuras de navegación que llamarnosformas de navegación [WoN (Ways of navigating)]. Una WoN representa
la mejor forma de navegación o ruta para que usuarios con
ciertos perfiles logren su meta o submeta deseada. Por tanto, el concepto de WoN se asocia al concepto de Perfil de
Usuario.
La estructura de una WoN se compone de un conjunto de
nodos de navegación (NN) relevantes conectados a enlaces
de navegación, entre los que algunas veces se incluyen las
USNs. Eso significa que las USNs pueden agregarse para
formar una USN de nivel superior, o anidarse en cualquier
nivel de profundidad.
530
CAPfTULO 29
INGENIERfA WEB
do, la sofisticación de las capacidades, los servicios de
procesamiento y el beneficio global de la WebApp en
sí, una interfaz con un diseño pobre decepcionará al
usuario potencial y podrá de hecho hacer que el usuario se vaya a cualquier otro sitio. Dado el gran volumen
de WebApps que compiten virtualmente en todas las
áreas temáticas, la interfaz debe «arrastrar» inmediatamente al usuario potencial. Nielsen y Wagner [NIE96]
sugieren unas cuantas líneas generales y sencillas en el
rediseño de una WebApp:
Probabilidad de que los errores del servidor, incluso
los más pequeños, hagan que el usuario abandone el
sitio Web y busque información y servicios en algún
otro sitio.
@&
CLAVE
Una USN se compone de un coniunto de subestructuras
de navegación llamadas ((formas de navegación)) (WoN).
Una USN representa una meta de navegación específica
para un tipo específico de usuario.
Durante las etapas iniciales del diseño de navegación, para determinar una o más WoNs para cada meta
de usuario, se evaluará la estructura de la WebApp
(arquitectura y componentes). Como se ha destacado
anteriormente, una WoN identifica los nodos de navegación (por ejemplo, páginas Web), y entonces los enlaces que hacen posible la navegación entre ellos. La WoN
entonces se organiza en USNs.
A medida que avanza el diseño, se va identificando la
mecánica de cada enlace de navegación. Entre otras
muchas opciones se encuentran los enlaces basados en
texto, iconos, botones, interruptores y metáforas gráficas.
El diseñador deberá elegir los enlaces de navegación adecuados para el contenido y consecuentes con la heurística que conduce al diseño de una interfaz de alta calidad.
Además de elegir la mecánica de navegación, el diseñador también deberá establecer las convenciones y ayudas adecuadas. Por ejemplo, los iconos y los enlaces
gráficos deberán tener un aspecto «clickable (capacidad
de accederse)» con los bordes biselados, y dar así una
imagen en tres dimensiones. La realimentación visual
o de sonido se deberá diseñar para proporcionar al usuario una indicación de que se ha elegido una opción de
navegación. Para la navegación basada en texto, se deberá utilizar el color que indica los enlaces de navegación
y proporcionar una indicación de los enlaces por los que
se ha navegado. Estas son solo unas pocas convenciones de las docenas que hacen que la navegación por la
red sea agradable. Además de las convenciones, en este
punto también se deberán diseñar ayudas de navegación
tales como mapas de sitios, tablas de contenidos, mecanismos de búsqueda y servicios dinámicos de ayuda
¿Cuáles son algunas
de las líneas generales
básicas para el diseño
de la interfaz de un sitio Web?
La velocidad de lectura del monitor de una computadora es aproximadamente un 25 por 100 más lento
que leer una copia impresa. Por tanto, no hay que obligar al usuario a leer cantidades voluminosas de texto,
particularmente cuando el texto explica la operación
de la WebApp o ayuda a navegar por la red.
Evite los símbolos «bajo construcción» -levantan
expectación y provocan un enlace innecesario que
seguramente sea decepcionante-.
Los usuarios prefieren no tener que recorrer la pantalla. Dentro de las dimensiones normales de una
ventana del navegador se deberá incluir información
importante.
Los menús de navegación y las barras de cabecera se
deberán diseñar consecuentemente y deberán estar
disponibles en todas las páginas a las que el usuario
tenga acceso. El diseño no deberá depender de las funciones del navegador para ayudar en la navegación.
La estética nunca deberá sustituir la funcionalidad.
Por ejemplo, un botón sencillo podría ser una opción
de navegación mejor que una imagen o icono estéticamente agradables, pero vagos cuya intención no
es muy clara.
29.5.3. D i s e ñ o de la interfaz
Los conceptos, principios y métodos de diseños de interfaz que se presentaron en el Capítulo 15 son todos aplicables al diseño de interfaces de usuario para WebApps.
Sin embargo, las características especiales de los sistemas y aplicaciones Web requieren otras consideraciones adicionales.
3
Referencia We6
Uno de los mejores grupos de recursos de usabilidad
de la Web ha sido recogido por el Grupo de Usabiiidad,
y se puede encontrar en la dirección
www.usability.com/umi-links.htm
con los sitios
Las opciones de navegación deberán ser obvias,
incluso para el usuario casual. El usuario deberá buscar la pantalla para determinar cómo enlazar con otro
contenido o servicio.
La interfaz de usuario de una WebApp es la «primera
impresión». Independientemente del valor del conteni53 1
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO
Una interfaz bien diseñada mejora la percepción
del contenido o de los servicios del usuario que proporciona el sitio Web. No tiene que ser necesariamente deslumbrante, pero deberá estar siempre bien
estructurada y ergonómica. Un estudio completo
de las interfaces WebApp de usuario está fuera
del ámbito de este libro. Los lectores interesados
pueden consultar [SAN96], [FLE98], [ROS98], o
[LYN99] entre los cientos de ofertas que existen
como guía.
En el Capítulo 17, se destacó que las pruebas son el proceso de ejercitar el software con la intención de encontrar (y por último corregir) los errores. Esta filosofía
fundamental no se cambiará para el caso de las WebApps.
De hecho, dado que los sistemas y aplicaciones basados
en Web residen en una red e interoperan con muchos sistemas operativos diferentes, navegadores, plataformas de
hardware, y protocolos de comunicación,la búsqueda de
errores representa un reto significativopara los ingenieros Web.
ces de navegación (Sección 29.5.2) son revisados
para asegurar su correspondencia con los especificados en cada USN del rol de usuario.
3. Se aplican pruebas de unidad a los componentes de
proceso seleccionados y las páginas Web. Cuando
lo que se tiene en consideración es el tema de las
WebApps el concepto de unidad cambia. Cada una
de las páginas Web encapsulará el contenido, los enlaces de navegación y los elementos de procesamiento
(formularios, guiones, applets). No siempre es posible o práctico comprobar cada una de las caractensticas individualmente. En muchos casos, la unidad
comprobable más pequeña es la página Web. A diferencia de la comprobación de unidades de software
convencional, que tiende a centrarse en el detalle
algorítmico de un módulo y los datos que fluyen por
la interfaz del módulo, la comprobación por páginas
se controla mediante el contenido, proceso y enlaces encapsulados por la página Web.
¿Qué pasos hay que seguir
para la comprobación de una
WebApp?
El enfoque de las pruebas de las WebApps adopta los
principios básicos de todas las pruebas del software (Capítulo 17) y aplica estrategias y tácticas que ya han sido
recomendadas para los sistemas orientados a objetos (Capítulo 23). Este enfoque se resume en los pasos siguientes:
1. El modelo de contenido de la WebApp es revisado para
descubrir errores. Esta actividad de <<prueba»se asemeja en muchos aspectos a la de un corrector ortográfico de un documento escrito. De hecho, un sitio
Web grande tendrá la capacidad de construir un listado de los servicios de correctores profesionales para
descubrir errores tipográficos, errores gramaticales,
errores en la consistencia del contenido, errores en
representaciones gráficas y de referencias cruzadas.
tos esírategios de integmcii se abarcan
en los Capítulos 18 y 23.
4. Se construye la arquitectura, se realizan las pruebas
de integración. La estrategia para la prueba de integración depende de la arquitectura que se haya elegido
para la WebApp. Si la WebApp se ha diseñado con una
estructurajerárquica lineal, reticular o sencilla, es posible integrar páginas Web de una manera muy similar
a como se integran los módulos del software convencional. Sin embargo, si se utiliza una jerarquía mezclada o una arquitectura de red (Web), la prueba de
integración es similar al enfoque utilizado para los sistemas OO. La comprobación basada en hilos (Capítulo 23) se puede utilizar para integrar un conjunto de
páginas Web (se puede utilizar una USN para definir
el conjunto adecuado) que se requiere para responder
a un suceso de usuario. Cada hilo se integra y se prueba
individualmente. La prueba de regresión se aplica para
asegurar que no haya efectos secundarios. La comprobación de agrupamientos integra un conjunto de
páginas colaborativas (determinadas examinando los
casos prácticos y la USN). Los casos de prueba se derivan para descubrir errores en las colaboraciones.
5. La WebApp ensamblada se prueba para conseguir
una funcionalidad global y un contenido. Al igual
que la validación convencional, la validación de los
para los que
se sabe qué
particular,
PPS),Y se
2. El modelo de diseño para la WebApp es revisado
para descubrir errores de navegación. Los casos
prácticos derivados como parte de la actividad de
análisis permite que un ingeniero Web ejercite cada
escenario de utilización frente al diseño arquitectónico y de navegación. En esencia, estas pruebas no
ejecutables ayudan a descubrir errores en la navegación (por ejemplo, un caso en donde el usuario no
pueda leer un nodo de navegación). Además, los enla532
CAPfTULO 29
sistemas y aplicaciones basados en Web se centra en
acciones visibles del usuario y en salidas reconocibles para el usuario que procedan del sistema. Para
ayudar en la derivación de las pruebas de validación,
las pruebas deberán basarse en casos prácticos. El
caso práctico proporciona un escenario con una probabilidad alta de descubrir errores en los requisitos
de interacción del usuario.
6. La WebApp se implementa en una variedad de configuraciones diferentes de entornos y comprobar así
la compatibilidad con cada configuración. Se crea
una matriz de referencias cruzadas que define todos
los sistemas operativos probables, plataformas de
hardware para navegadores7 y protocolos de comunicación. Entonces se llevan a cabo pruebas para des-
29.7
INGENIERfA WEB
cubrir los errores asociados con todas y cada una de
las configuraciones posibles.
7. La WebAppse comprueba con una población de usuarios finales controlada y monitorizada. Se selecciona
un grupo de usuarios que abarque todos los roles posibles de usuarios. La WebApp se pone en práctica con
estos usuarios y se evalúan los resultados de su interacción con el sistema para ver los errores de contenido y de navegación, los intereses en usabilidad,
compatibilidad, fiabilidad y rendimiento de la WebApp.
Dado que muchas WebApps están en constante evolución, el proceso de comprobación es una actividad
continua, dirigida por un personal de apoyo a la Web
que utiliza pruebas de regresión derivadas de pruebas
desarrolladas cuando se creó la WebApp.
PRC)BLEMASTIhN
Dada la inmediatez de las WebApps, sería razonable
preguntarse: ¿necesito realmente invertir tiempo esforzándome con la WebApp? ¿no debería dejarse que la
WebApp evolucionara de forma natural, con poca o ninguna gestión explícita? Muchos diseñadores de Webs
optarían por gestionar poco o nada, pero eso no hace
que estén en lo cierto.
La ingeniería Web es una actividad técnica complicada. Hay muchas personas implicadas, y a menudo trabajando en paralelo. La combinación de tareas
técnicas y no técnicas que deben de tener lugar (a tiempo y dentro del presupuesto) para producir una
WebApp de alta calidad representa un reto para cualquier grupo detprofesionales. Con el fin de evitar cualquier confusión, frustración y fallo, se deberá poner
en acción una planificación, tener en cuenta los riesgos, establecer y rastrear una planificación temporal
y definir los controles. Estas son las actividades clave
que constituyen lo que se conoce como gestión de proyectos.
ciplinas.. .» Aun cuando los autores están absolutamente
en lo cierto, los «renacentistas» no disponen de muchas
provisiones, y dado las exigencias asociadas a los proyectos importantes de desarrollo de WebApps, el conjunto de conocimientos diversos necesario podrá distribuirse
incluso mejor dentro del equipo de IWeb.
Los equipos de IWeb pueden organizarse de forma
muy similar a como se organizan los equipos de software del Capítulo 3. Sin embargo, pueden existir diferencias entre los participantes y sus roles. Entre los muchos
conocimientos que deben distribuirse por los miembros
del equipo IWeb se encuentran los siguientes: ingeniería
del software basada en componentes,realización de redes,
diseño arquitectónico y de navegación, lenguajes y estándares de Intemet, diseño de interfaces para personas, diseño gráfico, disposición del contenido y pruebas de las
WebApps. Los roles' siguientes deberán ser distribuidos
entre los miembros del equipo IWeb:
los actividodes asociados con lo gestión de proyectos
de soíiware se esíudion en lo Porte Segunda
de este libro.
¿Qué papeles juegan
las personas que forman
parte del equipo de IWeb?
29.7.1. El equipo de IWEB
La creación de una buena aplicación Web exige un amplio
abanico de conocimientos. Tilley y Huang [TIL99] se
enfrentan a este tema cuando afirman: «Hay muchos
aspectos diferentes en relación con el software de aplicaciones [Web] debido al resurgimiento del renacentista,
aquel que se encuentra cómodo trabajando en varias dis-
Desarrolladores y proveedores de contenido. Dado
que las WebApps son controladas inherentemente por
el contenido, el papel de los miembros del equipo IWeb
se centra en la generación y/o recolección del conteni-
7 Los navegadores son excelentes para implementar sus propias interpretaciones ((estándar. ligeramente diferentes de HTML y Javascript.
Para un estudio de temas de compatibilidad, véase www.browsercaps.com.
Estos roles se han adaptado de Harsen y sus colaboradores [HAN99].
533
INGENiERfA DEL S O F T W A R E . U N E N F O Q U E PRÁCTICO
el desarrollo e implementación de normas para el
funcionamiento de la WebApp;
el establecimiento de los procedimientos de soporte
y realimentación;
los derechos de acceso y seguridad de la implementación;
la medición y análisis del tráfico del sitio Web;
la coordinación de los procedimientos de control de
cambios (Sección 29.7.3);
la coordinación con especialistas de soporte.
El administrador también puede estar involucrado
en las actividades técnicas realizadas por los ingenieros de Web y por los especialistas de soporte.
do. Retomando la idea de que el contenido abarca un
amplio abanico de objetos de datos, los diseñadores y
proveedores del contenido pueden proceder de diversos planos de fondo (no de software). Por ejemplo, el
personal de ventas o de marketing puede proporcionar
información de productos e imágenes gráficas: los productores de medios pueden proporcionar imagen y sonido; los diseñadores gráficos pueden proporcionar diseños
para composiciones gráficas y contenidos estéticos; los
redactores publicitarios pueden proporcionar contenido basado en texto. Además, existe la posibilidad de
necesitar personal de investigación que encuentre y dé
formato al contenido externo y lo ubique y referencie
dentro de la WebApp.
Editores de Web. El contenido tan diverso generado
por los desarrolladores y proveedores de contenido deberá organizarse e incluirse dentro de la WebApp. Además,
alguien deberá actuar como conexión entre el personal
técnico que diseña la WebApp y los diseñadores y proveedores del contenido. Esta función la lleva a cabo el
editor de Web, quien deberá entender la tecnología tanto del contenido como de la WebApp en donde se incluye el lenguaje HTML (o ampliaciones de generaciones
posteriores, tal como XML), la funcionalidad de bases
de datos y guiones, y la navegación global del sitio Web.
Ingeniero de Web. Un ingeniero Web cada vez se
involucra más con la gran cantidad de actividades del
desarrollo de una WebApp entre las que se incluyen la
obtención de requisitos, modelado de análisis, diseño
arquitectónico, de navegación y de interfaces, implementación de la WebApp y pruebas. El ingeniero de Web
también deberá conocer a fondo las tecnologías de componentes, las arquitecturas cliente/servidor, HTML/XML,
y las tecnologías de bases de datos; y deberá tener conocimiento del trabajo con conceptos de multimedia, plataformas de hardware/software, seguridad de redes y
temas de soporte a los sitios Web.
Especialistas de soporte. Este papel se asigna a la persona (personas) que tiene la responsabilidad de continuar
dando soporte a la WebApp. Dado que las WebApps están
en constante evolución, el especialistade soporte es el responsable de las correcciones, adaptaciones y mejoras del
sitio Web, donde se incluyen actualizaciones del contenido, implementación de productos y formularios nuevos,
y cambios del patrón de navegación.
Administrador. Se suele llamar Weh master, y es el
responsable del funcionamiento diario de la WebApp,
en donde se incluye:
29.7.2. Gestión del proyecto
En la Parte Segunda de este libro se tuvieron en consideración todas y cada una de las actividades globalmente llamadas gestión de proyectos'. Las métricas de
procesos y proyectos, la planificación de proyectos (y
estimación), el análisis y gestión de riesgos, la planificación temporal y el rastreo, SQA y CGS, se estudiaron en detalle. En teoría, la mayoría de las actividades
de gestión de proyectos, si no todas, estudiadas en capítulos anteriores, se aplican a los proyectos de IWeb. Pero
en la práctica, el enfoque de IWeb para la gestión de
proyectos es considerablemente diferente.
En primer lugar, se subcontrata un porcentaje sustancial" de WebApps a proveedores que (supuestamente) son especialistas en el desarrollo de sistemas y
aplicaciones basados en Web. En tales casos, un negocio (el cliente) solicita un precio fijo para el desarrollo
de una WebApp a uno o más proveedees, evalúa los
precios de los candidatos y selecciona un proveedor para
hacer el trabajo. Pero, ¿qué es lo que busca la organización contratista?, ¿cómo se determina la competencia de un proveedor de WebApps?, ¿cómo se puede
saber si un precio es razonable?, ¿qué grado de planificación, programación temporal, y valoración de riesgos
se puede esperar a medida que una organización (y su
subconstratista) se va embarcando en un desarrollo
importante de WebApps?
En segundo lugar, el desarrollo de WebApps es una
área de aplicación relativamente nueva por tanto se pueden utilizar pocos datos para la estimación. Hasta la
fecha, no se ha publicado virtualmente ninguna métrica de IWeb. De hecho, tampoco han surgido muchos
estudios sobre lo que esas métricas podrían ser. Por tanto, la estimación es puramente cualitativa -basada en
9 Se recomienda que lectores no familiarizados con los conceptos
básicos de gestión de proyectos revisen en este momento el Capítul0 3 .
l o Aun cuando los datos de industria fiables son dificiles de encontrar, es seguro decir que este porcentaje es considerablemente mayor
que el que se encuentra en el trabajo del software convencional.
534
CAPfTUI.0 29
INGENIERfA WEB
una WebApp con éxito. Esta información deberá de
documentarse en una especificación del producto.
2. Se deberá desarrollar internamente un diseño aproximado de la WebApp. Obviamente una persona
experta en el desarrollo de WebApps creará un diseño
completo, pero puede ahorrar tiempo y dinero identificando el aspecto e interacción general de la
WebApp para el proveedor de subcontratación (esto
siempre puede modificarse durante las etapas preliminares del proyecto). El diseño deberá incluir la indicación del proceso interactivo que se va a llevar a
cabo (por ejemplo, formularios, entrada de pedidos).
3. Se deberá desarrollar una planijicación temporal aproximada del proyecto, incluyendo no solo las fechas
finales de entrega, sino también lasfechas hito (significativas). Los hitos deberán adjuntarse a las versiones
de entrega posibles a medida que avanza el proyecto.
4 . Se deberá identificar el grado de supervisión e interacción del contratista con el proveedor. Deberá
incluirse el nombre del contacto del proveedor y la
identificación de la responsabilidad y autoridad del
contacto, la definición de los puntos de revisión de
calidad a medida que el desarrollo va avanzando, y
la responsabilidad de los proveedores en relación con
la comunicación entre organizaciones.
Toda la información desarrollada en los pasos anteriores deberá de organizarse en una solicitud de opciones que se transmite a los proveedores candidatos".
experiencias anteriores con proyectos similares-. Pero
casi todas las WebApps tienen que ser innovadoras
-ofreciendo algo nuevo y diferente a aquellos que la
utilizan-. De aquí que la estimación experimental, aunque sea Útil, está abierta a errores considerables. Por
consiguiente, ¿cómo se derivan estimaciones fiables?,
¿con qué grado de seguridad pueden cumplirse los programas temporales definidos?
En tercer lugar, el análisis de riesgos y la programación temporal se predican bajo un entendimiento claro
del ámbito del proyecto. Y sin embargo, la característica de «evolución continua» tratada en la Sección 29.1
sugiere que el ámbito de la WebApp sea fluido. ¿Cómo
pueden controlar los costes la organización contratista
y el proveedor subcontratado?, y ¿cómo pueden planificar el momento en que es probable que los requisitos
cambien drásticamente a lo largo del proyecto?, ¿cómo
se puede controlar el cambio del ámbito?, y lo que es
más importante, dado su naturaleza ¿deberán controlarse los sistemas y aplicaciones basados en Web ?
Llegado a este punto de gestión de proyectos para
WebApps, las preguntas que se han formulado por las
diferencias destacadas anteriormente no son fáciles de
responder. Sin embargo, merece la pena tener en consideración una serie de líneas generales.
Inicio de un proyecto. Aun cuando la subcontratación sea la estrategia elegida para el desarrollo de
WebApps, una organización deberá realizar una serie
de tareas antes de buscar el proveedor de subcontratación para hacer el trabajo.
1. Muchas de las actividades de análisis tratadas en la
Sección 29.3 se deberán realizar internamente. Se
identifica el público de la WebApp; se confecciona un
listado de aquellos con intereses internos en la
WebApp; y se definen y revisan las metas globales de
la WebApp; se especifica tanto la información como
los servicios que se van a proporcionar en la WebApp;
se destacan los sitios Web rivales, y se definen las
«medidas» cuantitativas y cualitativas para obtener
Selección entre los proveedores de subcontratación candidatos. En los últimos años han surgido miles
de compañías de «diseño Web» para ayudar a las empresas a establecer una presencia y/o implicación Web en
el comercio electrónico. Muchas han llegado a tener
adicción por el proceso IWeb, mientras que otras muchas
se asemejan a los intrusos informáticos (hackers).Con
objeto de seleccionar el desarrollador de Web candidato, el contratista deberá llevar a cabo una diligencia obligada: (1) entrevistar a los clientes antiguos para
determinar la profesionalidad del proveedor de Web, la
habilidad de cumplir los compromisos de horarios y costes, y la habilidad de comunicarse eficazmente; (2) determinar el nombre del ingeniero jefe de Web del proveedor
de proyectos anterior con éxito (y después cerciorarse
de que esta persona se vea obligada mediante contrato
a su implicación en el proyecto), y (3) examinar cuidadosamente las muestras de trabajo del proveedor simi-
I I Si el trabajo de desarrollo de la WebApp e s dirigida por un grupo
interno, nada cambia. El proyecto se inicia de la misma manera.
535
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
lares en aspecto e interacción (y en área de negocios) a
la WebApp que se va a contratar. Antes incluso de que
se vaya a establecer la oferta, una reunión cara a cara
puede proporcionar una buena impresión para que el
contratista y el proveedor conecten bien.
Evaluación de la validez de las ofertas de precios
y de la fiabilidad de las estimaciones. Dado que existen muy pocos datos históricos y el ámbito de las
WebApps es notoriamente fluido, la estimación es inherentemente arriesgada. Por esta razón algunos proveedores incorporarán márgenes sustanciales de seguridad
en las ofertas de precios de un proyecto. Evidentemente esto es comprensible y adecuado. La pregunta no es
si tenemos la mejor solución para nuestra inversión, sino
la serie de preguntas que se muestran a continuación:
¿Es el coste acordado una buena oferta para proporcionar un beneficio directo o indirecto sobre la inversión y justificar así el proyecto?
¿Es el proveedor de la oferta una muestra clara de la
profesionalidad y experiencia requeridos?
Si la respuesta es «sí», el precio ofertado es justo.
El grado de gestión del proyecto que se puede esperar o realizar. La formalidad asociada con las tareas de
gestión del proyecto (llevadas a cabo tanto por el proveedor como por el contratista) es directamente proporcional
al tamaño, coste y complejidad de la WebApp. Para proyectos complejos y grandes deberá desarrollarse una planificación que defina las tareas del trabajo, los puntos de
comprobación, los productos de trabajo de ingeniería, los
puntos de revisión del cliente y los hitos importantes. El
proveedor y el contratista deberán evaluar el riesgo en
conjunto, y desarrollar los planes de mitigar, monitorizar
y gestionar esos riesgos considerados como importantes.
Los mecanismos para la seguridad de calidad y el control
de cambios se deberán definir explícitamente al escribirse. Y tendrán que establecerse métodos de comunicación
entre el contratista y el proveedor.
Evaluación de la planificación temporal del desarrollo. Dado que las planificaciones de desarrollo de las
WebApps abarcan un período de tiempo relativamente
corto (normalmente menos de un mes o dos), la planificación de desarrollo deberá tener un alto grado de granularidad. Es decir, las tareas del trabajo y los hitos
menores se tendrán que planificar día a día. Esta granularidad permite que el contratista y el proveedor reconozcan la reducción del tiempo de planificación antes
de que amenace la fecha de finalización.
Gestión del ámbito. Dado que es muy probable que
el ámbito cambie a medida que avanza el proyecto de la
WebApp, el modelo de proceso deberá ser incremental
(Capítulo 2). Esto permite que el equipo de desarrollo
«congele» el ámbito para poder crear una nueva versión
operativa de la WebApp. El incremento siguiente puede
afrontar los cambios de ámbito sugeridos por una revisión del incremento precedente, pero una vez que comienza el incremento, el ámbito se congela de nuevo
«temporalmente».Este enfoque hace posible que el equipo de la WebApp trabaje sin tener que aceptar una coniente continua de cambios, pero reconociendo la característica
de evolución continua de la mayoría de las WebApps.
Las líneas generales sugeridas anteriormente no pretenden ser un recetario a prueba de tontos para WebApps
puntuales y con una producción a un coste bajo. Sin
embargo, ayudarán tanto al contratista como al proveedor a iniciar el trabajo suavemente con unos conocimientos mínimos.
29.7.3. Problemas GCS para la IWEb
Durante la última década, las WebApps han evolucionado y han pasado de utilizar dispositivos informales
para la difusión de información a utilizar sitios sofisticados para el comercio electrónico. A medida que las
WebApps van creciendo en importancia para la supervivencia y el crecimiento de los negocios, también crece el control de la configuración. ¿Por qué? Porque sin
controles eficaces cualquier cambio inadecuado en una
WebApp (recordemos que la inmediatez y la evolución
continua son los atributos dominantes de muchas
WebApps) puede conducir a: (1) una ubicación no autorizada de la información del producto nuevo; (2) una
funcionalidad errónea y pobremente comprobada que
frustra a los visitantes del sitio Web; (3) agujeros de
seguridad que ponen en peligro a los sistemas internos
de las compañías, y otras consecuencias económicamente desagradables e incluso desastrosas.
Se pueden aplicar las estrategias generales para la
gestión de la configuración del software (GCS) descritas en el Capítulo 9, pero las tácticas y herramientas
deberán adaptarse y ajustarse a la naturaleza única de
las WebApps. Cuando se desarrollan tácticas para la
gestión de configuración de las WebApps, deberán tenerse en consideración cuatro temas [DAR99]: el contenido, las personas, la escalabilidad y la política.
Contenido. Una WebApp normal contiene una gran
cantidad de contenido -texto, gráficos, applets, guiones,
archivos de sonido y vídeo, elementos activos de páginas, tablas, corrientes de datos y muchos más-. El reto
es organizar este mar de contenido en un conjunto razonable de objetos de configuración (Capítulo 9). y entonces establecer los mecanismos de control de configuración
adecuados para estos objetos. Un enfoque será modelar
el contenido de la WebApp mediante la utilización de técnicas convencionales de modelado de datos (Capítulo
11), adjuntando un conjunto de propiedades especializadas a cada objeto. La naturaleza estática y dinámica de
536
CAPfTULO 2 9
INGENIERfA WEB
Personas. Dado que un porcentaje significativo del
desarrollo de las WebApps continúa realizándose dependiendo del caso, cualquier persona que esté implicada
en la WebApp puede (y a menudo lo hace) crear el contenido. Muchos creadores de contenido no tienen antecedentes en ingeniería del software y no tienen ningún
conocimiento de la necesidad de una gestión de configuración. La aplicación crece y cambia de forma incontrolada.
Escalabilidad. Las técnicas y controles aplicados a
una WebApp pequeña no tienen buena escalabilidad.
No es muy común que una WebApp sencilla crezca significativamente cuando se implementan las interconexiones que existen dentro de los sistemas de
información, bases de datos, almacenes de datos y pasarelas de portales. A medida que crece el tamaño y la
complejidad, los pequeños cambios pueden tener efectos inalcanzables y no intencionados que pueden ser
problemáticos. Por tanto, el rigor de los mecanismos de
control de la configuración deberán ser directamente
proporcionales a la escalabilidad de la aplicación.
Política. ¿Quién es el propietario de una WebApp?
Esta pregunta se argumenta en compañías grandes y
pequeñas, y la respuesta tiene un impacto significativo
en las actividades de gestión y control asociadas con la
IWeb. En algunos casos los diseñadores de WebApps
se encuentran fuera de la organización TI, dificultando
posiblemente la comunicación. Para ayudar a entender
la política asociada a IWeb, Dart [DAR991 sugiere las
siguientes preguntas: ¿quién asume la responsabilidad
de la información en el sitio Web? ¿quién asegura que
los procesos de control de calidad se han llevado a cabo
antes de publicar la información en el sitio Web? ¿quién
es el responsable de hacer los cambios? ¿quién asume
el coste del cambio? Las respuestas ayudarán a determinar qué personas dentro de la organización deberán
adoptar un proceso de gestión de configuración para las
WebApps.
La gestión de configuración para la IWeb está todavía en su infancia. Un proceso convencional de GCS
puede resultar demasiado pesado y torpe. La gran mayoría de las herramientas GCS no tienen las características que permiten adaptarse fácilmente a la IWeb. Entre
los temas que quedan por tratar se encuentran los
siguientes [DAR99]:
creación de un proceso de gestión de configuración
que sea lo suficientemente hábil como para aceptar la
inmediatez y la evolución continua de las WebApps;
aplicación de mejores conceptos y herramientas de
gestión de configuración para aquellos que desarrollan y no están familiarizados con la tecnología;
suministro del soporte a los equipos de desarrollo de
WebApps distribuidos;
suministro de control en un entorno de cuasipublicación, donde el contenido cambia de forma casi continua;
consecución de la granularidad necesaria para controlar una gran cantidad de objetos de configuración;
incorporación de la funcionalidad de gestión de configuración en las herramientas IWeb existentes;
gestión de cambios en objetos que contienen enlaces con otros objetos.
Estos y otros temas deberán afrontarse antes de que se
disponga-magestión de configuración eficaz para la k e b .
Se puede argumentar que el impacto de los sistemas y
aplicaciones basados en Web es el acontecimiento más
significativo en la historia de la informática. A medida
que las WebApps crecen en importancia, el enfoque de
ingeniería de Web disciplinado ha empezado a evolucionar -basado en principios, conceptos, procesos y
métodos que se han desarrollado para la ingeniería del
software-.
Las WebApps son diferentes de otras categorías de
software informático. Son intensivas de red, están gober-
nadas por el contenido y están en continua evolución. La
inmediatez que conduce a su desarrollo, la necesidad primordial de seguridad al funcionar, y la demanda de estética y la entrega del contenido funcional son otros factores
diferenciadores.Durante el desarrollo de la WebApp hay
tres tecnologías que se integran con otras de ingeniería
del software convencional; desarrollo basado en componentes, seguridad y lenguajes de notas estándar.
El proceso de ingeniería de Web comienza con la formulación -una actividad que identifica las metas y los
cada objeto y la longevidad proyectada (por ejemplo,
existencia temporal y fija, o un objeto permanente) son
ejemplos de las propiedades necesarias para establecer
un enfoque GCS eficaz. Por ejemplo, si se cambia un
objeto de contenido cada hora, se dice que tiene una longevidad temporal. Los mecanismos de control de este
objeto serán diferentes (menos formales) de los que se
aplicanyaun componente de formularios (objeto permanente).
Es esencial conirolor el cambio durante los proyectos
Web, aun cuando puede hocene de formo exagerado.
Empiece por los procedimientos de control de cambio
de relativo informalidad Kopihlo 91. lo meto inicial será
evitar los efectos de trinquete en cambios incontrolodos.
537
INGENlERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
objetivos de la WebApp-. La planificación estima el
coste global del proyecto, evalúa los riesgos asociados
con el esfuerzo del desarrollo y define una programación
temporal del desarrollo. El análisis establece requisitos
técnicos e identifica los objetos del contenido que se incorporarán en la WebApp. La actividad de ingeniería incorpora dos tareas paralelas: diseño del contenido y diseño
técnico. La generación de páginas es una actividad de
construcción que hace un uso extenso de herramientas
automatizadas para la creación de WebApps, y la com-
probación ejercita la navegación de la WebApp, intentando descubrir errores en la función y el contenido, y
asegurando mientras tanto que la WebApp funcione
correctamente en diferentes entomos. La ingeniería de
Web hace uso de un modelo de proceso iterativo e incremental porque la línea temporal del desarrollo para la
WebApp es muy corta. Las actividades protectoras aplicadas durante el trabajo de la ingeniería del software
-SQA, GCS, gestión de proyectos- se aplican a todos
los proyectos de ingeniería de Web.
[ATK97] Atkins, D., et al., Internet Security: Professional
Reference, New Riders Publishing, 2.&ed., 1997.
[MUR991 Murugesan, S., WebE Home Page, http://fistserv.macarthur.uws.edu.au./san/WebHome,Julio de 1999.
[BER98] Bemstein, M., «Pattems in Hypertext», Proc. gth
ACM Conf. Hypertext, ACM Press, 1998, pp. 21-29.
[NAN98] Nanard, M., y P. Kahn, «Pushing Reuse in Hypermedia Design: Golden Rules, Design pattems and constructive Templates», Proc. gth ACM conf. On Hypertext
and Hypermedia, ACM Press, 1998, pp. 11-20.
[BRA97] Bradley, N., The Concise SGML Companion, Addison-Wesley, 1997.
[NIE96] Nielsen, J., y A. Wagner, «User Interface Design for
the WWWD,Proc. CHI' 96 conference on Human Factors
in Computing systems, ACM, Press, 1996, pp. 330-331.
[BRE99] Brenton, C., Mastering Network Security, Sybex,
Inc., 1999.
[BUS961 Buschmann, E et al., Pattern-Oriented Software
Architecture, Wiley, 1996.
[NOR99] Norton, K., «Applying Cross Functional Methodologies to Web Development», Proc. Ist ICSE Workshop on Web Engineering, ACM, Los Ángeles, Mayo de
1995.
[DAR991 Dart, S., «Containing the Web Crisis Configuration Managemenb, Proc. Is' ICSE Workshop on Web engineering, ACM, Los Ángeles, Mayo de 1999".
[OSL99] Olsina, L. et al., «Specifying Quality Characteristics and Attributes for Web Sitesm, Proc. Is' Workshop on
Web Engineering, ACM, Los Angeles, Mayo de 1995.
[DIN98] Dinucci, D., M. Giudice y L. Stiles, Elements of
Web Design: The DesignerS Guide to a New Medium, 2.3
ed., Peachpit Press, 1998.
[PAR991 Pardi, W.J., XML in Action, Microsoft Press, 1999.
[GAM95] Gamma, E. et al., DesignPatterns, Addison-Wesley, 1998.
[POW98] Powell, T.A., Web Site engineering, Prentice-Hall,
1998.
[GNA99] Gnaho, C., y E Larcher, «A User Centered Methodology for Complex and Customimizable Web Applications engineerinp, Proc. 1st ICSE Workshop on Web
engineering, ACM, Los Ángeles, Mayo de 1999.
[PRE98] Pressman, R.S. (moderador), «Can Intemet-Based
Applications be Engineered?», IEEE Sofmare, Septiembre de 1998, pp. 104-110.
[HAN991 Hansen, S., Y. Deshpande y S. Murgusan, «A Skills
Hierarchy for Web Information system Development»,
Proc. 1"' ICSE Workshop on Web Engineering, ACM, Los
Ángeles, Mayo de 1999.
[ROS981 Rosenfeld, L., y P. Morville, Information Architecture for the World Wide Web, O'Reilly & Associates, 1998.
[ISA95] Isakowitz, T. et al., «RMM: A Methodology for
Structured Hypermedia Design», CACM, vol. 38, n." 8,
Agosto de 1995, pp. 43-44.
[SCH96] Schwabe, D., G. Rossi y S. Barbosa, «Systematic
Hypermedia Application Design with OOHDMD,Proc.
Hypertext ' 96, pp. 116-128.
[KAE99] Kaeo, M., Designing Network Security, Cisco
Press, 1999.
[SPO98] Spool, J.M., et al., Web Site Usability: A Designer's Guide, Morgan Kaufmann Publishers, 1998.
[LOW99] Lowe, D., «Web Engineering or Web Gardening?»,
WebNet Journal, vol. 1, n." 2, Enero-Marzo de 1999.
[STL99] St. Laurent, S., y E. Cerami, Building XML Applications, McGraw-Hill, 1999.
[LYN99] Lynch, P.J., y S. Horton, Web Style Guide: Basic
Design Principles for Creating Web Sites, Yale University
Press. 1999.
[TIL99] Tilley, S., y S. Huang, «On the emergence of the
Renaissance Software engineer», Proc. 1"' ICSE Workshop
on the WebEngineering, ACM, Los Angeles, Mayo de 1999.
[SAN961 Sano, D., Designing Large-Scale Web Sites: A
Visual Design Methodology, Wiley 1996.
I2 Los procedimientos del Primer Taller ICSE sobre Ingeniena del %IRware se publican en la red en http://ñstserv.marcarthur.
uws.edu.au/san/icse99-WebE/ICSE99-Web-E-~/default.htm
538
CAPfTULO 29
INGENIERfA WEB
29.10. Realice un análisis del contenido para HogarSeguroInc.com o para un sitio Web asignado por su profesor.
29.1. ¿Existen otros atributos genéricos que diferencien a las
WebApps de otras aplicaciones de software? Enumere 2 Ó 3.
29.2. ¿Cómo se juzga la calidad de un sitio Web? Confeccione una lista de 10 atributos de calidad prioritarios que considere más importantes.
29.3. Realice una pequeña investigación y realice un trabajo
de 2 ó 3 páginas que resuma una de las tres tecnologías que
se destacaron en la Sección 29.1.2.
29.4. Utilizando un sitio Web real como ejemplo, ilustre las
diferentes manifestaciones del «contenido» de la WebApp.
29.5. Responda a las tres preguntas de formulación para un
sitio Web con el que esté familiarizado. Desarrolle una afirmación de ámbito para el sitio Web.
29.6. Desarrolle un conjunto de perfiles para HogarSeguroInc.com o un sitio Web asignado por su profesor.
29.7. Desarrolle una lista completa de metas informativas y
aplicables para HogarSeguroInc.com o un sitio Web asignado por su profesor.
29.8. Elabore un conjunto de casos de uso para HogarSeguroInc.com o un sitio Web asignado por su profesor.
29.9. ¿En qué difiere el análisis del contenido del análisis funcional y de interacción?
29.11. Sugiera tres «reglas de oro» que servirán como guía en
el diseño de WebApps.
29.12. ¿En qué difiere una configuración de diseño WebApp
de una plantilla?
29.13. Seleccione un sitio Web con el que esté familiarizado
y desarrolle un diseño arquitectónico razonablemente completo para el sitio. ¿Qué estructura arquitectónica seleccionó
el diseñador del sitio?
29.14. Haga una investigación breve y escriba 2 ó 3 páginas
que resuman el trabajo actual en las configuraciones de diseño de las WebApps.
29.15. Desarrolle un diseño arquitectónico para HogarSeguroInc.com o para un sitio Web asignado por su instructor.
29.16. Utilizando un sitio Web real como ejemplo, desarrolle
una crítica de su interfaz de usuario y haga una recomendación que lo mejore.
29.17. Describa la manera en que una gestión de proyecto para
sistemas y aplicaciones basados en Web difieren de la gestión
de proyecto para el software convencional. ¿En qué se asemeja?
Menasce y Almeida (Capacis Planning f o r Web Performance: Metrics, Models, and Methods, Prentice-Hall, 1998)
tratan la valoración cuantitativa del rendimiento de las
WepApps. Amoroso (Intrusion Detection: An Introduction to
Internet Surveillance, Correlation, Trace Back, Traps, and
Response, 1ntrusion.Net Books, 1999) proporciona una guía
detallada para los ingenieros de Web que están especializados en temas de seguridad. Umar (Application (Re)Engineering: Building Web-Based Applications and Dealing With
Legacies, Rentice-Hall, 1997) estudia estrategias para la transformación (reingeniería) de sistemas anteriores en aplicaciones basadas en Web. Mosley (Client Sewer S o f i a r e Testing
on the Desk Top and the Web, Prentice-Hall, 1999) ha escrito uno de los mejores libros que estudian los temas de comprobación asociados con WebApps.
Haggard (Survival Guide to Web Site Developrnent,
Microsoft Press, 1998) y Siegel (Secrets of Successful Web
Sites: Project Management on the World Wide Web, Hayden Books, 1997) proporcionan una guía para el gestor que
debe de controlar y hacer un seguimiento del desarrollo de
WebApps.
Una amplia variedad de fuentes de información sobre ingeniería de Web está disponible en Internet. Una lista amplia y
actualizada de referencias en sitios (páginas) web se puede
obtener en http:/www.pressman5.com.
Durante los últimos años se han publicado cientos de libros
que tratan uno o más temas de ingeniería de Web, aunque
relativamente pocos tratan todos los aspectos. Lowe y Hall
(Hypertext and the Web: An Engineering Approach, Wiley,
1999), y Powell [POW98] abarcan razonablemente estos
temas. Norris, West y Warson (Media Engineering: A Quide
to Developing Information Products, Wiley, 1997), Navarro
y Khan (Effective Web Design: Master the Essentials, Sybex,
1998), Fleming y Koman (Web Navigation: Designing the
User Experience, O'Reilly & Associates, 1998), y Sano
[SAN961 también abarcan aspectos importantes del proceso
de ingeniería.
Además de [LYN99], [DIN98] y [SPO98], los siguientes
libros proporcionan una guía útil para los aspectos del diseño de WebApps tanto técnicos como no:
Baumgardt, M., Creative Web Design: Tips and Tricks
Step by Step, Springer Verlag, 1998.
Donnelly, D. et al., Cutting Edge Design: The Next Generation, Rockport Publishing, 1998.
Holzschlag, M.E., Web by Design: The Complete Guide,
Sybex, 1998.
Niederst, J., y R. Koman, Web Design in a Nutshell: A
Desktop Quick Reference, O'Reilly & Associates, 1998.
Weinman, L., y R. Prirouz, Click Here: Web Communication Design, New Riders Publishing, 1997.
539

Documentos relacionados