Documentos de Académico
Documentos de Profesional
Documentos de Cultura
html
La gestión de los requerimientos funcionales deficiente, es citada como una de las causas más
frecuentes en el fracaso de los proyectos, es por ello que es importante entender que son los
requerimientos funcionales, bajo qué metodologías deben identificarse y gestionarse para
asegurar el logro de los objetivos.
En este artículo se explica qué son los requerimientos funcionales, cual es la importancia de
definirlos sin ambigüedades y cómo se realiza la gestión de los requerimientos después de que
han sido identificados, bajo enfoques predictivos y metodologías ágiles de gestión de proyectos
de software.
“Los requerimientos funcionales son las descripciones explicitas del comportamiento que debe
tener una solución de software y que información debe manejar.”
Expresan las capacidades o cualidades que debe tener la solución para satisfacer los
requerimientos de los interesados de proyecto.
Se expresan en términos de cuál debe ser el comportamiento de la solución y que información
debe manejar.
Deben proporcionar una descripción lo suficientemente detallada para permitir el desarrollo e
implementación de la solución.
Son los que más influyen en si la solución será aceptada o no por los usuarios.
Importancia de definir los requerimientos funcionales
Los problemas y errores en la gestión de requerimientos funcionales son citados como una de
las causas más frecuentes que ocasionan insatisfacción de las expectativas de los interesados en
proyectos de software.
Profundizando en las causas de estos problemas, las situaciones observadas con mayor
frecuencia son:
Siguiendo estas prácticas podemos asegurar una mejor aceptación de los requerimientos
funcionales cuando llegue el momento de la implementación.
Bajo un enfoque de proyecto predictivo, esto es, un proyecto de software ejecutado con la
metodología de ciclo de vida de desarrollo de sistema (Cascada), esto es, el desarrollo del
sistema se realiza el fases claramente delimitadas, el Análisis, diseño, desarrollo, pruebas e
implementación de la solución.
Especialistas conocidos como Analistas de negocio (Business Analyst) realizan reuniones con los
interesados (Por ejemplo los usuarios de la nueva solución) para levantar cuáles son sus
requerimientos.
Se utilizan distintas técnicas de levantamiento de requerimientos funcionales, como pueden ser
las entrevistas, mesas de trabajo o tormenta de ideas.
De todo este proceso surge un documento de requerimientos de software que describe la
funcionalidad que se espera de la nueva solución.
Para que el enfoque sea exitoso, el documento debe ser lo más detallado posible. Sin embargo,
un problema es que al tener que ser detallado, los revisores pueden verse abrumados,
ocasionado que ciertos errores no sean identificados.
Una vez aprobado, el documento de requerimientos de software se convierte en un contrato,
cualquier aspecto que el equipo de desarrollo no implemente se convierte en una causa de no
aceptación. Por otro lado, cualquier aspecto adicional o cambio solicitado por los interesados
debe llevar un proceso de cambio de alcance.
En situaciones donde tenemos una solución conocida, los estándares para implementar nuevos
requerimientos funcionales están definidos y existe claridad en las reglas por todas las partes, el
enfoque predictivo es el que da los mejores resultados.
Las metodologías ágiles establecen un enfoque más flexible sobre lo que es un requerimiento
funcional, los proyectos son ejecutados en iteraciones cortas se fomenta una mayor constante
interacción entre usuario y desarrolladores abrazando el cambio en lugar de rechazarlo.
¿Te gustaría saber más acerca de cuáles son estas técnicas? te recomendamos los siguientes
artículos:
La guía del Business Analysis Body of Knowledge (BABOK) en su version 3, define las actividades
involucradas en la gestión de requerimientos, a saber:
Trazabilidad de requerimientos.
Mantenimiento de requerimientos.
Priorizar requerimientos.
Evaluar cambios en los requerimientos.
Aprobar requerimientos.
Por otra parte, las metodologías ágiles como por ejemplo Scrum, integran la gestión de
requerimientos dentro del enfoque, por ejemplo la priorización de requerimientos ocurre de
forma natural manejando un product bakclog que se prioriza de acuerdo al avance que tenga la
elaboración de requerimientos funcionales y su valor para el negocio. Por otro lado, la
evaluación de cambios a los requerimientos se realiza en las reuniones Sprint Review que
ocurren al final de cada iteración.
lunes, 6 de febrero de 2017
Requerimientos funcionales: Ejemplos
Los requerimientos funcionales de un sistema, son aquellos que describen cualquier actividad
que este deba realizar, en otras palabras, el comportamiento o función particular de un sistema
o software cuando se cumplen ciertas condiciones.
Por lo general, estos deben incluir funciones desempeñadas por pantallas específicas,
descripciones de los flujos de trabajo a ser desempeñados por el sistema y otros requerimientos
de negocio, cumplimiento, seguridad u otra índole.
Al igual que otros tipos de requerimientos de software, como por ejemplo los requerimientos
no funcionales, los requerimientos funcionales se pueden clasificar según su finalidad, como por
ejemplo requerimientos de negocio, requerimientos originados en aspectos regulatorios, de
seguridad, entre otros.
http://www.pmoinformatica.com/2015/05/requerimientos-no-funcionales-ejemplos.html
Presentamos la tercera parte de la serie sobre los requerimientos no funcionales, con algunos
ejemplos que puedan servir de guía en su definición.
Eficiencia
El sistema debe ser capaz de procesar N transacciones por segundo. Esto se medirá por medio
de la herramienta SoapUI aplicada al Software Testing de servicios web.
Toda funcionalidad del sistema y transacción de negocio debe responder al usuario en menos
de 5 segundos.
El sistema debe ser capaz de operar adecuadamente con hasta 100.000 usuarios con sesiones
concurrentes.
Los datos modificados en la base de datos deben ser actualizados para todos los usuarios que
acceden en menos de 2 segundos.
Los permisos de acceso al sistema podrán ser cambiados solamente por el administrador de
acceso a datos.
El nuevo sistema debe desarrollarse aplicando patrones y recomendaciones de programación
que incrementen la seguridad de datos.
Todos los sistemas deben respaldarse cada 24 horas. Los respaldos deben ser almacenados en
una localidad segura ubicada en un edificio distinto al que reside el sistema.
Todas las comunicaciones externas entre servidores de datos, aplicación y cliente del sistema
deben estar encriptadas utilizando el algoritmo RSA.
Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando
hasta ser desbloqueado por un administrador de seguridad.
Seguridad industrial
El sistema no continuará operando si la temperatura externa es menor a 4 grados Celsius.
El sistema no continuará operando en caso de fuego. (Ej. Un ascensor).
Usabilidad
El tiempo de aprendizaje del sistema por un usuario deberá ser menor a 4 horas.
La tasa de errores cometidos por el usuario deberá ser menor del 1% de las transacciones
totales ejecutadas en el sistema.
El sistema debe contar con manuales de usuario estructurados adecuadamente.
El sistema debe proporcionar mensajes de error que sean informativos y orientados a usuario
final.
El sistema debe contar con un módulo de ayuda en línea.
La aplicación web debe poseer un diseño “Responsive” a fin de garantizar la adecuada
visualización en múltiples computadores personales, dispositivos tableta y teléfonos
inteligentes.
El sistema debe poseer interfaces gráficas bien formadas.
Dependibilidad
El sistema debe tener una disponibilidad del 99,99% de las veces en que un usuario intente
accederlo.
El tiempo para iniciar o reiniciar el sistema no podrá ser mayor a 5 minutos.
La tasa de tiempos de falla del sistema no podrá ser mayor al 0,5% del tiempo de operación
total.
El promedio de duración de fallas no podrá ser mayor a 15 minutos.
La probabilidad de falla del Sistema no podrá ser mayor a 0,05.
Los requerimientos no funcionales suelen expresarse de una manera general y sin hacer
referencia a algún modulo, transacción o característica del sistema, pues sino pasarían a ser
requerimientos funcionales.
Por ejemplo:
El sistema debe asegurar que los datos estén protegidos del acceso no autorizado
Luego del registro del pedido, se procede a registrar un despacho de mercancía y la factura.
Al igual que otros tipos de requerimientos de software, como por ejemplo los requerimientos
no funcionales, los requerimientos funcionales se pueden clasificar según su finalidad, como por
ejemplo requerimientos de negocio, requerimientos originados en aspectos regulatorios, de
seguridad, entre otros.
El proceso de ventas en el sistema abarcará los siguientes pasos: Ingreso de pedido de venta,
emisión de orden de entrega (despacho), facturación y cobranza.
El sistema enviará un correo electrónico cuando se registre alguna de las siguientes
transacciones: pedido de venta de cliente, despacho de mercancía al cliente, emisión de factura
a cliente y registro de pago de cliente.
Maestro de clientes
El sistema manejará un registro maestro de clientes. Sólo los usuarios autorizados podrán
ingresar nuevos clientes, modificar los datos o eliminarlos.
Para crear un registro maestro de cliente, se solicitará como mínimo el nombre del cliente y su
número de identificación fiscal.
Se permitirán asociar varias direcciones al registro de cliente y se le podrá asignar a cada
dirección un propósito, por ejemplo dirección fiscal, dirección de despacho, entre otros. Al crear
el registro maestro, el sistema asignará un código de cliente.
Se permitirá ingresar clientes sin número de identificación fiscal o dirección, sin embargo, no se
podrán procesar pedidos a dichos clientes hasta que cuenten con esa información.
El registro maestro de clientes tendrá asociado un límite de crédito.
Pedidos de venta
Al ingresar un pedido de venta se deberá asignar un cliente. El cliente deberá estar creado en el
maestro de clientes, se permitirá realizar búsquedas por nombre de cliente o número fiscal.
Al ingresar el pedido de venta, se podrán ingresar una o más líneas al pedido. El usuario podrá
seleccionar el item a agregar de una lista que proviene de un registro maestro de materiales y
lista de precios.
Al seleccionar un item, se mostrará su descripción y su precio. Se podrán realizar búsquedas por
nombre o familia de material. Para finalizar el registro de la línea, es obligatorio especificar la
cantidad.
Al seleccionar un item de pedido, el precio será determinado a partir de las listas de precio
autorizado. Si existe un convenio vigente para el item con el cliente seleccionado, se tomará el
precio del convenio, si no existe un convenio se tomará el precio de la lista general de precios.
El precio no podrá ser modificado.
La dirección de facturación y despacho del pedido se obtendrá del maestro de cliente
seleccionado. El usuario no podrá modificar las direcciones.
El límite de crédito se verificará al momento de ingresar un pedido, en caso de existir pedidos
abiertos para el cliente por montos superiores al límite de crédito, se mostrará un mensaje de
alerta y no se permitirá registrar el pedido en definitivo, pero si lo podrá registrar como
borrador.
En todo momento, el pedido se podrá registrar en borrador, pudiendo ser modificado y
registrado en definitivo posteriormente.
El sistema llevará un control de las cantidades que se están pidiendo, en relación con las
cantidades existentes en inventario. Al registrar un pedido, en caso que exista inventario
suficiente el sistema dará de alta al pedido y registrará una reserva de ese material o producto
reservada para ese pedido.
Al ingresar el pedido en definitivo, el sistema verificará línea por línea las cantidades pedidas vs.
Cantidades de materiales existentes en inventario. Si la cantidad pedida excede las cantidades
existentes en inventario más las cantidades que ya están reservadas para otros pedidos, la línea
de pedido afectada será colocada en una cola de pedidos pendientes.
Mientras existan líneas de pedido en una cola, las líneas de pedidos subsecuentes del mismo
material serán colocadas también en la cola.
Un proceso automatizado revisará periódicamente las líneas de pedido que se encuentran en
cola, si ya existe material o productos para poder pasar la línea a definitiva el sistema lo
realizará automáticamente. El sistema dará de alta al pedido y registrará una reserva de ese
material o producto reservada para ese pedido.
A cada orden se le asignará un identificador único, que será utilizado para reconocerla en todos
los procesos subsecuentes que se realicen sobre esta.
Una vez registrado el encabezado, se procederá a registrar las líneas de la orden de entrega.
Toda línea de orden de entrega deberá estar asociada a una línea de pedido a la cual ya se le dio
de alta en el sistema. Esto es, que ya ha superado el proceso de verificación (descrito en los
requerimientos funcionales de pedido), que garantiza que exista cantidad en inventario
reservada para el mismo.
Las cantidades de entrega se tomarán del pedido de venta asociado, no se podrán asignar
materiales o ítems diferentes a los del pedido.
El sistema permitirá órdenes de entrega parciales.
Se permitirán líneas de orden de entrega asociadas a distintos pedidos, siempre y cuando estos
sean del mismo cliente.
Al registrar la orden de entrega, se realizará la rebaja de los inventarios de materiales o
productos.
La facturación de pedidos de venta se realizara en lotes, por medio de una pantalla de pedidos
pendientes de facturación, la cual mostrará los pedidos no facturados. Una vez facturados los
pedidos no se mostrarán en esta lista.
Para factura asociada a pedido, sus líneas serán determinadas exclusivamente a partir del
pedido, con las cantidades y precios definidos previamente. No se podrán modificar ni
cantidades ni precios.
Se permitirá incluir varios pedidos de venta en una misma factura. La línea de la factura
mostrará el número de pedido al que esté asociado.
El sistema también permitirá el registro de facturas manuales no asociadas a pedidos, sin
embargo, estas requerirán autorización por parte del grupo de Gerentes antes de ser
contabilizadas.
El libro de venta será emitido en el formato establecido por las autoridades tributarias de dicha
materia.
La contabilización de transacciones de facturas de venta podrá configurarse para realizarse de
forma automatizada a su registro, o manualmente en lotes (Proceso Batch).
Los requerimientos no funcionales surgen de la necesidad del usuario, debido a las restricciones
en el presupuesto, a las políticas de la organización, a la necesidad de interoperabilidad con
otros sistemas de software o hardware o a factores externos como los reglamentos de
seguridad, las políticas de privacidad, entre otros.
Siempre se debe comenzar con lo básico. Cuando se hacen preguntas y se reciben respuestas,
se proporcionan antecedentes sobre detalles fundamentales relacionados con el sistema y que
sirven para describirlo.
Identificación de elementos
Durante esta, se debe identificar muy claramente los siguientes elementos:
• Procesos
• Bases de datos
Preguntas generales:
• ¿Cuántos empleados laboran para la organización en el área(s) que se pretende desarrollar el
sistema; o sea, cuántos tienen relación directa con el proyecto
• ¿Cuáles son las personas claves en el sistema? ¿Por qué son importantes?
• ¿Existen obstáculos o influencias de tipo político que afectan la eficiencia del sistema?
file:///C:/Downloads/Anexo%201B.%20Requerimientos%20Detallados%20No
%20Funcionales.pdf