¿Que pasa si persiste el enfoque actual para el desarrollo web

Anuncio
Orígenes de la Ingeniería Web
Pocos pueden discutir que Internet y la World-Wide Web están cambiando nuestras vidas. Cada día es
más común que tareas tales como la lectura del periódico, la compra de libros o discos, operaciones
bancarias, reserva de hoteles, compra de billetes de avión o tren, entre otras muchas, las realicemos
conectados con nuestro ordenador a Internet. Es así que, durante la última década hemos asistido al
crecimiento vertiginoso del desarrollo y uso de aplicaciones y sistemas Web cada vez más complejos y
sofisticados.
Desafortunadamente, dicha complejidad no parece estar acompañada de los mecanismos adecuados
que garanticen la calidad de unos sistemas de los que cada día tenemos mayor dependencia a nivel
social, funcional y económico.
Esta carencia de calidad ha venido generando una preocupación creciente entre la comunidad científica
y técnica involucrada en el desarrollo Web. Así pues, en los últimos años surgen varias iniciativas con el
objetivo de poner cierto orden dentro de la maraña que estamos creando y en la que nos movemos
habitualmente.
En 1998, Roger Pressman moderó una mesa redonda virtual con representantes la ingeniería software
tradicional y del desarrollo software basado exclusivamente en Internet. El debate principalmente se
centró en discutir si valía la pena aplicar un proceso de ingeniería a las aplicaciones con base en
Internet, o qué características tenían éstas que justificaran el no utilizarlo. La conclusión general fue que
aplicar un proceso de ingeniería nunca es una mala idea pero que éste debería adaptarse a los
requerimientos de cambio continuo y rapidez siempre presentes en el proceso de desarrollo Web.
De iniciativas como ésta y de otras como la organización de congresos y talleres especializados en el
desarrollo para la Web, surge el nacimiento de una nueva disciplina denominada Ingeniería Web.
La Ingeniería Web surge entonces, en 1998, como una nueva disciplina orientada a solucionar los
problemas derivados de una proliferación de sistemas web de baja calidad, realizados con una carencia
completa de proceso. Esta nueva disciplina identifica nuevos elementos propios de las aplicaciones web
que no se cubren en las Ciencias de la Computación, en la Ingeniería del Software o en los Sistemas de
Información.
La Ingeniería Web como disciplina no es una copia de la Ingeniería del Software, aunque parte de un
conjunto de principios bien arraigados en ésta última, adaptándolos a la naturaleza más abierta y
flexible de la Web.
¿Que pasa si persiste el enfoque actual para el desarrollo Web? Con la ausencia de un proceso
disciplinado para aplicaciones Web, cada vez nos preocupa mas 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 avanzamos en el tiempo, la infraestructura de las aplicaciones que
se están creando hoy en día puede llamarnos a lo que podríamos 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 las aplicaciones Web se van complicando, un fallo
en una de ellas puede propagar problemas en otros. Si esto ocurre, la confianza en Internet puede
romperse provocando resultados irremediables.
Con el objeto de evitar una Web enmarañada y así lograr un mayor éxito en el desarrollo de
aplicaciones Web complejas 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. Tales enfoques
deben tener en cuenta las características propias del medio, los diferentes entornos y escenarios, y en
la multiplicidad de perfiles de usuario implicando todo ello un reto adicional para el desarrollo de estas
aplicaciones.
Definiciones de Ingeniería Web
→ Aplicación de una aproximación sistemática, disciplinada y cuantificable al desarrollo, operación
y mantenimiento de aplicaciones basadas en la Web o la aplicación de la ingeniería al software
basado en la Web
1
→ 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 aplicaciones
basadas en Web.
Etapas de la Ingeniería Web
Formulación
Permite que el cliente y el diseñador establezcan un conjunto común de metas y objetivos para la
construcción de la aplicación Web. Para ello se establece un proceso de comunicación entre los dos
actores ya mencionados para establecer las razones de construcción de la aplicación Web. También
identifica el ámbito de esfuerzo en el desarrollo y proporciona un medio para determinar un resultado
satisfactorio. En esta etapa se realiza lo siguiente:
• Definir y Describir categorías de usuario: se identifican a todos aquellos que se benefician de forma
directa o indirecta de la aplicación Web. La complejidad de las aplicaciones Web es proporcional al
número de categorías de usuario. Para realizar esta definición es necesario responder las siguientes
preguntas:
 ¿Cual es el objetivo global del usuario al usar una aplicación Web?
 ¿Como llegara el usuario a la aplicación Web?
 ¿Que características gustan o disgustan al usuario?
• Definición de Requisitos Básicos: un requisito es una condición o capacidad que debe poseer o
cumplir la aplicación Web para satisfacer una necesidad o demanda especifica. Se consideran
requisitos aspectos tales como facilidades ofrecidas al usuario, restricciones de la aplicación Web y
para el desarrollo de esta y otras propiedades generales. Los clientes deben definir y ordenar sus
requisitos de acuerdo a su prioridad y tipo. Por lo tanto, los requisitos pueden ser:
 Funcionales: describen los servicios que se esperan del sistema
 No funcionales: restricciones de cómo los requisitos funcionales son implementados
 De Contenido: responden a la pregunta de que información debe almacenar y
administrar la aplicación Web
• Analizar la información recopilada y hacer un seguimiento a los clientes.
• Definir casos de uso: toda la información recolectada y tratada se modela con la utilización de
Casos de Uso y Notación UML. Este paso tiene una connotación especial ya que constituye el
puente hacia el Modelado de Análisis. Un Caso de Uso permite capturar información de cómo una
aplicación trabaja, o de cómo se desea que trabaje y constituye una especificación de cómo una
entidad se comporta e interactúa con los usuarios.
Análisis
Esta etapa se enfoca en buscar respuestas a las siguientes preguntas:
 ¿Que información o contenido se presentará o manipulará?
 ¿Que funciones realizará el usuario final?
 ¿Que comportamiento tendrá la Aplicación Web?
Además se realizan cuatro tipos de Análisis:
• Análisis de Contenido: es 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 video y sonido.
• Análisis de Interacción: es la descripción detallada de la interacción del usuario con la aplicación
Web. Casos de Uso
• Análisis Funcional: es la descripción detallada de todas las funciones y operaciones que se
aplicaran en el contenido de la Aplicación Web, y que fueron obtenidas tras el Análisis de
Interacción, donde se crearon los escenarios de utilización o Casos de Uso.
• Análisis de la Configuración: es la descripción en detalle del entorno y de la infraestructura donde
reside la aplicación Web. Se hace debido a que es necesario que el diseño e implementación de la
aplicación Web se acomode a una diversidad de ambientes, tanto del lado del servidor como del
2
cliente. Para ello se especifican elementos tales como hardware del servidor, sistemas operativos,
protocolos de comunicación, grado de utilización de la base de datos, entre otros.
Diseño
Esta etapa se centra mayoritariamente en el usuario, e incluye la influencia de las artes o aspectos
visuales (parte visual de la aplicación), el contenido (información que se muestra al usuario), la
tecnología (funcionalidad de la aplicación y la finalidad (beneficios). En la etapa de Diseño de la
Ingeniería Web son aplicables los conceptos y principios usados en la Ingeniería del Software, aunque
no es un clónico perfecto de esta.
Calidad en el Diseño de Aplicaciones Web
La calidad se refiere a las características mensurables que se pueden comparar con estándares
conocidos como longitud, color, entre otros. A nivel de software existen unas métricas técnicas que
proporcionan una manera sistemática de valorar un conjunto de reglas claramente definidas. Las
métricas o requisitos de calidad más importantes para evaluar la calidad de las aplicaciones Web son:
→ Usabilidad
→ Funcionalidad
→ Fiabilidad
→ Eficiencia
→ Capacidad de Mantenimiento
•
Diseño Arquitectónico: se centra en la filosofía de navegación que será establecida para los
usuarios que utilizan la aplicación Web y visualizan información en ella.
→ Arquitectura de contenido: se refiere a la estructura hipermedia global de la aplicación Web.
Existen 4 tipos de estructuras que son:
 Estructuras lineales: aparecen cuando es común la sucesión predecible de
interacciones. Por ejemplo, la presentación de un manual de usuario en las que las
paginas de información se presentan con gráficos relacionados, videos cortos y sonidos
solo después de haber presentado un prerrequisito.
 Estructuras reticulares: esta opción puede aplicarse cuando el contenido de la aplicación
Web se puede organizar categóricamente en dos dimensiones o mas. Por ejemplo,
considere una situación en la que un sitio de comercio electrónico vende zapatos
deportivos. La dimensión horizontal de la retícula representa el tipo de zapato deportivo
en venta (de atletismo, ) la dimensión vertical representa la oferta proporcionada por los
fabricantes de zapatos deportivos
 Estructuras Jerárquicas: es el tipo de estructura más común. Consiste en diseñar una
estructura jerárquica de la aplicación Web que permita el flujo en horizontal atravesando
las ramas verticales de la estructura. Por tanto, el contenido presentado en la rama 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 permite una navegación rápida por la
estructura de la aplicación Web, puede originar también confusión por parte del usuario.
 Estructuras de Red: en este tipo, las aplicaciones Web se diseñan de tal 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.
•
Diseño de Navegación: se refiere a la definición de las rutas de navegación que permitan al usuario
acceder a los contenidos de la aplicación Web. Generalmente una aplicación Web tendrá una
variedad de roles de usuarios diferentes. Cada uno de estos roles pueden tener asociados
3
diferentes niveles de acceso al contenido de la aplicación. Por ejemplo, un usuario con un rol de
visitante puede tener acceso a un contenido limitado, mientras que un usuario con un rol de cliente
registrado puede tener una variedad más amplia de información y servicios. Debido a esto se hace
necesario lo siguiente:
→ Identificar la semántica de Navegación para diferentes usuarios: es necesario crear una
Unidad Semántica de Navegación para cada una de las metas asociadas a los roles de
usuario. Una USN es un conjunto de estructuras de información y navegación relacionadas
que colaboran en el cumplimiento de ciertos requisitos del usuario. Las USN están
compuestas por los siguientes elementos:
 Formas de Navegación: representan la mejor forma o ruta de navegación para que los
usuarios con ciertos perfiles logren la meta deseada.
 Nodos de Navegación: son las partes que contienen información accesible al usuario.
→ Definir la mecánica o sintaxis de navegación: entre las mecánicas de navegación encontramos
las siguientes:
→ Vinculo de Navegación Individual: vínculos basados en texto, iconos, botones y metáforas
gráficas.
 Barra de Navegación horizontal: lista de las principales categorías de contenido en una
barra que contiene vínculos de forma horizontal.
 Columna de navegación vertical
 Pestañas: representan las categorías de contenido por medio de marcas que se
seleccionan cuando se requiere un vinculo.
 Mapas de Sitio: proporcionan una tabla de contenido que incluye todos los objetos de
la aplicación.
•
Diseño Estético: también llamado Diseño Gráfico, describe la apariencia de la aplicación desde un
punto de vista artístico, complementando de esta forma los aspectos técnicos de la aplicación Web.
Sin él, la aplicación Web puede ser funcional pero no atractiva. Implica la realización de las
siguientes actividades:
→
Establecer la plantilla de pantalla: las plantillas se pueden utilizar para
proporcionar un marco de trabajo esquemático al diseño estético de una aplicación Web.
→
Establecer el tema o imagen de la aplicación Web: se refiere a cual va a ser el
tratamiento gráfico que van a tener los elementos de la interfaz de la aplicación Web
•
Diseño de Contenido: desarrolla una representación de diseño para lo siguiente:
→ Objetos de Contenido: se refiere a entidades que incluyen información específica de contenido y
determinadas características de implementación como parte de su diseño.
→ Mecanismos requeridos para establecer relaciones entre cada uno de esos objetos.
•
Diseño de la Interfaz: se describe la estructura y organización de la interfaz de usuario de la
aplicación Web, la cual debe ofrecer al usuario final una experiencia gratificante y satisfactoria. Toda
interfaz de usuario debe presentar las siguientes características:
Fácil de
Aprender
Navegar
Usar
Intuitiva
Consistente
Eficiente
Libre de errores
Funcional
Básicamente, se debe seguir el siguiente flujo de trabajo en esta etapa:
1. Revisar la información obtenida en el modelo de análisis
2. Desarrollar un bosquejo aproximado de la plantilla de la interfaz de la aplicación Web
3. Correlacionar los objetivos del usuario con acciones específicas de la interfaz.
4. Definir un conjunto de tareas de usuario que estén asociadas con cada acción
4
5. Elaborar bosquejos con imágenes de la pantalla para cada acción de la interfaz
6. Identificar los objetos de la interfaz de usuario que se requieren para implementarla.
Este flujo de actividades genera una Plantilla de la Interfaz que sirve para esbozar de manera general la
distribución de los objetos en la aplicación. También se genera una serie de Guiones que están
formados por una serie de escenas individuales que presentan una línea secuencial de la interacción y
el recorrido de las distintas pantallas con sus respectivos objetos.
Generación de Páginas
Es una actividad de construcción que hace uso extensivo de las herramientas automatizadas para
la creación de la Aplicación Web. Por lo general, el contenido definido en fases anteriores, se
fusiona con los diseños arquitectónicos, de navegación y de la interfaz para elaborar páginas Web
ejecutables en algún lenguaje como HTML. Durante esta actividad también se lleva a cabo la
integración con el software intermedio, el cual constituye una capa de software intermedio entre el
cliente y el servidor y permite gestionar los mecanismos de comunicaciones. Por ejemplo, si se
hace la petición de una página Web desde un navegador en el cliente, el software intermedio
determina la ubicación y envía una petición para dicha página. El servidor Web, interpreta la
petición y envía la página al software intermedio, quien la dirige al navegador de la máquina cliente
que la solicitó.
Pruebas
Dado que las aplicaciones Web residen en una red y operan con muchos sistemas operativos,
diferentes navegadores, plataformas e hardware y protocolos de comunicaciones, la búsqueda de
errores representa un reto significativo en esta etapa.
La aplicación Web se implementa en una variedad de configuraciones de entornos y comprobar así
la compatibilidad con cada configuración y el desempeño en una diversidad de condiciones
operativas y de cargas para asegurar que la aplicación Web responde a la interacción del usuario.
Se crea una matriz de referencias cruzadas que define todos los sistemas operativos probables,
plataformas de hardware para navegadores y protocolos de comunicación. Entonces se llevan a
cabo pruebas para descubrir los errores asociados con todos y cada una de las configuraciones
posibles.
La aplicación Web también se prueba con una población de usuarios finales controlada y
monitorizada para descubrir errores que indiquen que no hay concordancia con los requisitos del
cliente. Para ello se selecciona un grupo de usuarios que abarque todos los roles posibles de
usuarios. La aplicación Web 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 navegación y contenido, los intereses en
usabilidad, compatibilidad, fiabilidad y rendimiento de la aplicación Web.
Métodos de Desarrollo de Aplicaciones Web
Las metodologías de desarrollo de aplicaciones Web presentadas a continuación, están agrupadas
de acuerdo a su Modelo de Proceso, que especifica un conjunto de acciones requeridas para
desarrollar la aplicación Web; y al contexto particular donde pueden ser aplicadas estas acciones:
Métodos para el Desarrollo de Sistemas de Información Web: estos métodos se caracterizan por:
→ Imponer una disciplina de trabajo sobre el proceso de desarrollo
→ Hacer un especial hincapié en la planificación total de todo el trabajo a realizar y una vez que
esta todo detallado, comienza el ciclo de desarrollo de la aplicación Web
→ No se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando
se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar de
forma continua y rápida.
5
Métodos para el Desarrollo de Aplicaciones Hipermedia: Hipermedia es el término con que se
designa al conjunto de métodos o procedimientos para escribir, diseñar o componer contenidos que
tengan texto, video, audio, mapas u otros medios, y que además tenga la posibilidad de interactuar
con los usuarios.
Métodos o Procesos Ágiles para el Desarrollo de Aplicaciones Web: Los procesos ágiles son una
buena elección cuando se trabaja con requisitos desconocidos o variables. Si no existen requisitos
estables, no existe una gran posibilidad de tener un diseño estable y de seguir un proceso
totalmente planificado, que no vaya a variar ni en tiempo ni en dinero. En estas situaciones, un
proceso adaptativo será mucho más efectivo que un proceso predictivo. En general, las
aplicaciones Web cumplen la mayor parte de las características mencionadas anteriormente, por lo
que la utilización de procesos ágiles podría ser beneficiosa para este tipo de desarrollos.
Métodos para el Desarrollo de Sitios Web Instruccionales: Un Sitio Web Instruccional es el
ambiente o entorno interactivo de enseñanza-aprendizaje, que permite al estudiante obtener la
posibilidad de interactuar o comunicarse, a través de Internet, con el contenido, con el profesor o
facilitador y con los demás participantes del curso, por medio de las asignaciones, charlas,
debates, exámenes, pruebas cortas, y otros dispositivos que puedan tomar el lugar de un libro, una
unidad o un capítulo del material. Un Sitio Web Instruccional se compone básicamente de los
siguientes elementos: Contenido (enmarcado en una Guía de Estudio y un Proceso de Evaluación),
Instructor(es), Estudiantes, Medios de Transmisión de la Información, Herramientas de
Comunicación y un Sistema Administrativo del Curso.
Métodos para el Desarrollo de Aplicaciones de Comercio Electrónico: El Comercio Electrónico
puede definirse como el uso de las tecnologías computacional y de telecomunicaciones que se
realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes
y servicios. El Comercio Electrónico es una metodología moderna para hacer negocios que detecta
la necesidad de las empresas, comerciantes y consumidores de reducir costos, así como mejorar la
calidad de los bienes y servicios, además de mejorar el tiempo de entrega de los bienes o
servicios. Por lo tanto no debe seguirse contemplando el comercio electrónico como una
tecnología, sino que es el uso de la tecnología para mejorar la forma de llevar a cabo las
actividades empresariales. También puede entenderse como cualquier forma de transacción
comercial en la cual las partes involucradas interactúan de manera electrónica en lugar de hacerlo
de la manera tradicional con intercambios físicos o trato físico directo. Actualmente la manera de
comerciar se caracteriza por el mejoramiento constante en los procesos de abastecimiento, y como
respuesta a ello los negocios a nivel mundial están cambiando tanto su organización como sus
operaciones. El comercio electrónico es el medio de llevar a cabo dichos cambios dentro de una
escala global, permitiendo a las compañías ser más eficientes y flexibles en sus operaciones
internas. Las compañías utilizan el Comercio Electrónico para desarrollar los aspectos siguientes:
→ Creación de canales nuevos de mercadeo y ventas.
→ Acceso interactivo a catálogos de productos, listas de precios y folletos publicitarios.
→ Venta directa e interactiva de productos a los clientes.
→ Soporte técnico interrumpido, permitiendo que los clientes encuentren por sí mismos, y
fácilmente, respuestas a sus problemas mediante la obtención de los archivos y programas
necesarios para resolverlos.
6
Descargar