Contexto
Es un día como cualquier otro en tu lugar de trabajo. Abres la laptop y aparecen las noticias más sobresalientes, el pronóstico del clima, la paridad el peso-dólar, el anuncio de algún nuevo videojuego. Decides utilizar la aplicación del banco para realizar el pago que tienes pendiente de tu tarjeta de crédito. Le echas un vistazo a tus correos electrónicos y recuerdas que debes corroborar tus calificaciones a través de la aplicación escolar porque estás a punto de terminar el semestre. Revisas tu agenda, que te recuerda que debes publicar una nota de felicitación a uno de tus mejores amigos porque es su cumpleaños.
Sin darte cuenta has estado utilizado algunas aplicaciones web. Estas aplicaciones permiten que nuestra vida sea más sencilla y hace que nos mantengamos intercomunicados.
La Internet es una plataforma que viene a replantear la forma en la que se hacen negocios. Cualquier negocio, pequeño o grande, debe considerar incluir en su plan estratégico el uso de Internet como una herramienta indispensable de comunicación con sus clientes.
Los negocios han descubierto las grandes ventajas que ofrece Internet para sus operaciones diarias. Muchos de ellos están migrando sus sistemas de información a aplicaciones web por su versatilidad en el diseño, funcionalidad, acceso e independencia del hardware.
Explicación
10.1 Contenido de la Web
Al hablar de una webapp o una aplicación web es referirse a un grupo de sistemas y aplicaciones que utilizan internet como plataforma para poder ofrecer algún servicio. Una webapp incluye desde una simple página web hasta aplicaciones que integran bases de datos, servicios de software, almacenamiento o aplicaciones especializadas, haciendo uso de ambientes de cómputo cada vez más complejos.
Una webapp puede ser diseñada no sólo por profesionales de sistemas de cómputo, sino también por diseñadores gráficos, mercadotecnia, finanzas, recursos humanos, contabilidad. Cada quien puede solicitar una serie de requerimientos específicos aprovechando las ventajas de la web.
Según Pressman (2010), las webapp tienen los siguientes atributos:
Modelo del contenido
Cuando un cliente desea hacer pública cierta información de su empresa a través de una página web lo que en realidad desea es administrar su contenido.
“El modelo del contenido identifica el espectro completo de contenido que dará la webapp. El contenido incluye datos de texto, gráficos e imágenes, video y sonido” (Pressman, 2010).
Al utilizar algún elemento que permite ofrecer información, ya sea a través de texto, un archivo de video, un banner informativo, una imagen, se dice que estamos utilizando un objeto de contenido que puede ser recuperado desde un archivo que reside en un servidor o en una base de datos, o puede ser incluido en la misma webapp.
Estos objetos son bastante útiles para la ingeniería de requerimientos ya que pueden ser incluidos como parte de la descripción de los casos de uso. El ingeniero de requerimientos debe describir el escenario que aclare qué función desempeñará en la webapp.
Por ejemplo, el requerimiento de una tienda virtual podría ser utilizar un carrito de compras que registre los productos que seleccione el usuario. El objeto “carrito de compras” es parte del modelo de contenido que se espera tenga cierto comportamiento.
El siguiente ejemplo propuesto por Pressman (2010), puedes observar que existen algunos objetos que son parte del modelo de contenido que parte de la siguiente descripción del requerimiento:
“Podré obtener información descriptiva y de precios de cada componente del producto”.
Al describir el componente en un modelo de contenido, es posible realizar un árbol jerárquico de objetos (recuadros sombreados) e información (recuadros en blanco) cuando el contenido incluye varios objetos que se encuentren relacionados. Este árbol puede ser la base para diseñar el contenido de la webapp.
Imagen del Árbol de datos de un modelo de contenido. Obtenida de Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico. (7ª ed.). México: McGraw Hill. Figura: 7.10. Sólo para fines educativos.
10.2 Interacción y funcionalidad
La interacción de una webapp permite aclarar la forma en la que el usuario operará la aplicación y la funcionalidad explica las acciones que puede realizar. En el modelado de requerimientos de la aplicación web van de la mano.
Modelo de interacción
La interacción la puedes modelar a través de casos de uso, diagramas de secuencia, diagramas de estado y prototipos de interfaz de usuario. Lo importante al modelar la interacción es que describas la experiencia que esperas que tenga el usuario al utilizar alguna función. Significa que deberás detallar en un modelo gráfico los pasos que deberá realizar el usuario para llegar a obtener un resultado. Por ejemplo, si el modelo de interacción y funcionalidad describe demasiados pasos para elegir los productos, ingresar los datos de envío, elegir el método de pago y recibir su factura, podría provocar que el usuario se pierda, no pueda regresar a un paso anterior o desaliente la compra.
Un prototipo de la interfaz de usuario podría aclarar al usuario la forma en la que se realiza la interacción y cada función. A pesar que se diga que diseñar una interfaz es una actividad de diseño, en opinión de Pressman (2010) es una buena idea crear un prototipo de la interfaz de usuario desde el análisis de un sistema pues entre más pronto se revise la representación física de la interfaz de usuario, es más probable que se obtenga éxito en lograr los resultados que espera.
Algunas preguntas que puedes hacerte para modelar la interacción son:
¿Es posible utilizar íconos que representen claramente la acción?
¿El usuario puede deshacer la acción en caso de cambiar de opinión?
¿En qué lugar de la webapp aparecerá el menú de opciones?
¿Qué ayuda es posible ofrecer al usuario en caso de alguna duda?
Modelo funcional
El modelo funcional permite demostrar que los requerimientos funcionales del sistema son tomados en cuenta y no falta ninguno, lo que da tranquilidad al usuario sobre lo que incluye el sistema. A estas funciones Pressman (2010) les llama funcionalidad observable, porque es el resultado visible del software.
Sin embargo, también es importante establecer las funciones “no visibles” o las operaciones necesarias para producir las funciones visibles. Por ejemplo, un webapp que permite graficar un reporte a partir de los datos de un archivo requiere de una serie de elementos que permitirán generar el gráfico, que es la parte compleja de la funcionalidad, recordando que como parte de la ingeniería de requerimientos, al describir la funcionalidad no visible se evite describir demasiado el “cómo”, y se centre más bien el “qué”.
10.3 Navegación y configuración
Modelo de navegación
La navegación de una webapp debe ser modelada expresando las características que espera ver el usuario. Probablemente existan algunas funciones que sean más críticas y se requerirá un acceso directo, mientras otras podrían ser ubicadas en otros lugares porque son acciones poco comunes o rara vez utilizadas.
El diseñador debe considerar estos requerimientos para facilitar al usuario ubicar rápidamente las funciones que son importantes.
Imagen de Navegación de una WebApp. Obtenida de https://msdn.microsoft.com/es-es/library/windows/apps/hh761500.aspx Sólo para fines educativos.
En este sentido Pressman (2010) sugiere contestar las siguientes preguntas en el modelado de la navegación:
Observa cómo estas preguntas ofrecen información que deberá tomar en cuenta el diseñador para proponer una navegación adecuada a las necesidades y requerimientos del cliente.
Modelos de configuración
Los modelos configuración permiten describir los atributos técnicos tanto del lado del cliente como del lado de servidor. Son bastante útiles para aquellos sistemas que son desarrollados para sustituir a un sistema existente y que contempla reutilizar el equipo (hardware) actual.
Por ejemplo: los requerimientos técnicos de una aplicación web de usuarios de Mac OSx serán relativamente diferentes a los de una PC en cuanto al tipo de navegador.
En un modelo de configuración se describe:
Esta información podrá moldear un diseño específico para el desarrollo del sistema, que considere las características de configuración actuales.
Cierre
Los requerimientos de las aplicaciones web pueden definirse de una forma ágil cuando no requieren una gran cantidad de funciones. Tienen la ventaja de trabajar por módulos que se pueden ir interconectando cada vez que se terminen y el contenido puede cambiar en cuestión de segundos.
Estas ventajas permiten al negocio responder de una manera más ágil a las necesidades de sus clientes, les abre las puertas a mercados internacionales, ahorros en sus costos de operación e incrementar la disponibilidad de sus servicios.
El ingeniero de requerimientos debe enfocarse principalmente en modelar el contenido, la funcionalidad, la interacción, la configuración y la navegación porque esencialmente es lo que define el resultado de una aplicación web.
La próxima vez que realices alguna actividad en Internet, analiza la cantidad de aplicaciones que utilizas y cuáles son las características que hacen que prefieras una en vez de otra. Verás que es una mezcla entre el diseño estético y funcionalidad.
Checkpoint
Asegúrate de poder:
Referencias
Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico (7ª ed.). México: McGraw Hill.
Glosario
API: es la abreviación de Application Program Interface, es un grupo de rutinas, protocolos y herramientas que facilitan la integración de funciones de diferentes componentes de un software.
Breadcrumbs: También llamada “ruta de navegación”. Es un modelo de navegación de páginas web que permite al usuario ubicarse en un menú jerárquico. Por lo general puedes identificar los breadcrumbs cuando aparecen la ruta de las páginas en hipervínculos separadas por el símbolo “>”, por ejemplo: Carreras profesionales > Ingeniería > Desarrollo de software.
Protocolo: Consiste en una serie de reglas que permiten la intercomunicación entre equipos o plataformas de diferente arquitectura.