La información que obtienes durante el levantamiento de requerimientos es un conjunto de datos muy grande, que en su estado natural es poco útil. Debemos analizarla para entender cuatro cosas respecto a nuestro sistema:

— El contexto en el que se desempeña

— La información que pertenece al dominio del sistema

— Cómo y dónde se procesa la información

— El comportamiento que debe tener el sistema ante diferentes estímulos

¡Acompáñame para conocer en qué consiste el Análisis de los requerimientos!

Contexto

Las aplicaciones de software no realizan su trabajo de forma aislada. Estos interactúan con diferentes actores que se encuentran dentro de un sistema complejo, tales como otras aplicaciones, hardware y dispositivos, redes y ubicaciones remotas. A esto le llamamos El Contexto del sistema, y en él encontraremos información importante para definir nuestros requerimientos no funcionales.

Cosas que debes buscar para definir el contexto:

  • Otras aplicaciones y software que se está usando. Los usuarios pueden mencionar estos otros programas o descubrirlos en los manuales o documentos que te faciliten. Debes registrar cuantas instancias hay y si se encuentran en varias versiones.
  • Ubicaciones remotas. ¿Dónde se encuentran geográficamente los usuarios o los otros sistemas que interactúan? En esto, debes prestar atención para entender cómo se comunican, si existe una infraestructura de red de telecomunicación actualmente o será necesario desarrollar una. Debes comprender cómo es el acceso a cada lugar, geográficamente, para entender cómo será la comunicación con estos puntos remotos y no suponer ni asumir que la infraestructura de internet funcionará igual en todas partes.
  • Hardware y dispositivos. ¿Qué hardware especializado se usa e interactuará con nuestro software? ¿Qué dispositivos emplearán tus usuarios para acceder al sistema? ¿En qué versiones se encuentran? ¿Cuál es la variedad de dispositivos, sistemas operativos y capacidades que tienen? ¿Cuántos son y quiénes los usan? ¿Cuál es la posibilidad de cambiarlos por otros? Esta información te permitirá entender, más adelante, cuáles son las decisiones de tecnología que deberás tomar. Ten en cuenta que tu sistema deberá ser adecuado para el contexto y no obligar a los usuarios a que se adapten al sistema. 

Entender el contexto es muy importante y no se debe dar por hecho. Dale un tiempo a tus actividades de análisis para definirlo.

Dominio de la información

Los conceptos de información son entendidos de diferente forma en los distintos dominios. Piensa por ejemplo en un “Cliente”; en el contexto de los negocios, es alguien que consume productos y servicios, del cual nos interesa conocer su nombre, datos demográficos y otros atributos; pero en el dominio la informática, un “Cliente” es un dispositivo o programa que se comunica con un servidor para consultar información o ejecutar funciones de hardware; de este cliente, nos interesa conocer su origen, dirección, capacidad, permisos, entre otros atributos.

Así pues, debemos definir las entidades de información que se usarán en nuestro software y las relaciones entre ellas; debemos hacer esto de acuerdo al dominio en el que están nuestros usuarios.

El análisis del dominio es un diccionario de datos, que nos permite entender qué significa cada concepto o sustantivo que se usa en el dominio. No es un diccionario para una base de datos todavía, sino una descripción de alto nivel que nos permite entender qué significa, para un usuario, un concepto que él utiliza con frecuencia y cómo se relaciona con otros conceptos. Esto te permitirá encontrar los procesos en los que se origina y transforma cada parte de la información.

Por ejemplo, piensa nuevamente en el Cliente y en una Factura. Ambos estarán definidos por un conjunto de datos que les pertenecen y que esperaremos encontrar en el software. Ahora, ¿cómo se relacionan ambos conceptos? Una factura es creada cuando un cliente completa una compra, así que encontramos una relación entre ambos y un proceso en el que la información de ambos está involucrada. Haz lo mismo con los diferentes conceptos de información que aparecen en el dominio.

Procesamiento

La información en nuestro software se crea y se transforma a través de varios procesos. En el análisis de los requerimientos, debemos definir claramente cómo y dónde ocurren las actividades de procesamiento de la información. Deberás apoyarte en tu análisis del Contexto, pues una entidad de información podría estar en diferentes partes del sistema. Por ejemplo, piensa en un concepto como Usuario, cuya información utilizas para autorizar el acceso y conocer los permisos que tiene. Piensa que tu aplicación utiliza otro software para autenticar al usuario, como Facebook Login. Tanto tu aplicación como Facebook tendrán la información del Usuario, pero se usará o procesará en actividades diferentes en lugares diferentes. Facebook la usará para indicar si el usuario es válido o no, y tu aplicación recibirá esa información. Tu aplicación cambiará los permisos del usuario, y esa información no se intercambiará con Facebook, entre otros actividades que modelarás y definirás en esta parte de tu análisis.

Comportamiento

El comportamiento del sistema, en el análisis de requerimientos, no hace alusión a algo como la Usabilidad o la User Experience (UX), sino a la descripción de cómo se deberá comportar el sistema ante ciertos estímulos y en ciertos estados. En este análisis, nos interesa definir escenarios generales de funcionamiento correcto, errores y excepciones. Por ejemplo, si la información es completa y el usuario solicita guardarla, el sistema debe transitar a un estado de éxito; si la información es incompleta ante el mismo estímulo, el sistema debe permanecer en el mismo estado y no permitir que la información se guarde. También, debemos definir cuál debe ser el comportamiento ante eventos como alta demanda, alta carga o ancho de banda limitado. Como otro ejemplo, definir que si el servidor tarda más de 20 segundos en completar una petición, el cliente debe cancelar la transacción e iniciar una nueva.

En el análisis del comportamiento, también es importante revisar cómo es que los usuarios interactuarán con tu aplicación. Entiende como usuarios a las personas, al hardware y a otro software. Esto es, cuál es el tipo de acciones que hacen tus usuarios: peticiones mediante texto, peticiones mediante una interfaz gráfica, carga de archivos, descarga de archivos, uso de interfaces de hardware y software y procesos automáticos.

Conclusión

El análisis de requerimientos te permite entender el sistema en alto nivel. No debe ser una especificación detallada, sino un modelo concreto de los participantes, la información, los procesos existentes y el comportamiento esperado. Hay varios recursos y herramientas que se usan para hacer el análisis: Diagramas de flujo, diagramas de clases, diagramas de secuencias, diagramas de flujo de datos, diagramas de secuencia, entre otros. Usa los que le brinden información valiosa al equipo y desecha todo lo que no. Evita, en medida de lo posible, la sobredocumentación y el detalle exagerado. Mi recomendación es: un diagrama de contexto, un modelo de dominio con un diagrama de clases, diagramas de actividad para representar el procesamiento de información y diagramas de secuencia para el comportamiento.

Al hacer esta actividad, ahora sí podrás describir, brevemente de qué se va a tratar el sistema que se construirá:

  • Es una aplicación que interactúa con estos actores, procesa estas entidades de información, con actividades que ocurren aquí y allá y debe comportarse así ante estos estímulos.

¡Verás que no es necesario escribir una novela de García Márquez para describirlo!

 

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.