Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REQUERIMIENTOS
Definición: Los requerimientos para un sistema de software determinan lo que hará el sistema y
definen las restricciones de su operación e implementación. La IEEE define los requerimientos de
la siguiente forma: (1) Una condición o necesidad de un usuario para resolver un problema o
alcanzar un objetivo. (2) Una condición o capacidad que debe estar presente en un sistema o
componentes de sistema para satisfacer un contrato, estándar, especificación u otro documento
formal. (3) Una representación documentada de una condición o capacidad como en (1) o (2).
Las descripciones de los servicios y restricciones son los requerimientos para el sistema y el
proceso para descubrir, analizar, documentar y verificar estos servicios y restricciones se llama
ingeniería de requerimientos. Los requerimientos deben ser redactados de tal forma que pueda
ser entendido por los desarrolladores quienes van a diseñar y plasmar esos requerimientos en
código.
Algunos de los problemas que surgen durante el proceso de ingeniería de requerimientos son
resultado de no hacer una clara separación entre los diferentes niveles de descripción.
Estudios realizados muestran que más del 53% de los proyectos de software fracasan por no
realizar un estudio previo de requisitos. Otros factores como falta de participación del usuario,
requerimientos incompletos y el cambio a los requerimientos, también ocupan sitiales altos en los
motivos de fracasos
Son declaraciones de los servicios que proveerá el sistema de la manera en que éste reaccionará a
entradas particulares y de cómo se comportará en situaciones particulares. En algunos casos los
requerimientos funcionales de los sistemas también declaran explícitamente lo que el sistema no
debe hacer. Los requerimientos funcionales de un sistema describen la funcionalidad o los
servicios que se espera que éste provee.
Ejemplos:
El usuario deberá tener la posibilidad de buscar en el conjunto inicial de la base de datos
o seleccionar un subconjunto de ella
El sistema deberá proveer visores adecuados para que el usuario lea documentos en el
almacén de documentos.
A cada pedido se le deberá asignar un identificador único (ID_pedido) que el usuario
podrá copiar al área de almacenamiento permanente de la cuenta.
El sistema deberá registrar el año, mes, día, minuto de ingreso del funcionario al campus
universitario.
El sistema deberá producir los diferentes gráficos de pastel y de gant sobre el
comportamiento de las ventas diarias, mensuales y anuales.
El sistema deberá contener una base de datos donde se definan los usuarios que van a
utilizar el sistema de acuerdo a su rol. Además, deberá contener un administrador
encargado de la manipulación de los usuarios: crear, modificar y eliminar usuarios.
El sistema deberá disponer para su acceso de usuarios con sus correspondientes claves de
acceso. Las claves solo podrán ser digitada a través de un teclado virtual.
El sistema deberá contener un módulo que permita la generación de e-mail para ser
enviado a los diferentes clientes de la Entidad.
El sistema debe permitir la lectura de código de barras para facturar los elementos
vendidos.
El sistema también deberá permitir la captura manual del código de los elementos
facturados en caso de no poder realizarlo a través del código de barras.
Cuando sea posible, el valor de los campos de los diferentes formularios de entrada,
deberá ser tomado de la lista de valores correspondiente al campo.
En campos donde se captura el valor de los diferentes ítems vendidos solo debe permitir
valores numéricos con dos decimales.
2. Requerimientos no funcionales
Son aquellos requerimientos que no se refieren directamente a las funciones específicas que
entrega el sistema, sino a las propiedades emergentes de éste como la fiabilidad, la respuesta en
el tiempo y la capacidad de almacenamiento. Muchos requerimientos no funcionales se refieren al
sistema como un todo más que a rasgos particulares del mismo. Los requerimientos no
funcionales surgen de las necesidades del usuario, debido a restricciones en el presupuesto, a las
políticas de la organización, a la necesidad de interoperabilidad con otros sistemas de hardware o
software o a factores externos como los reglamentos de seguridad, políticas de privatización, etc.
Un problema común con los requerimientos no funcionales es que algunas veces son difíciles de
verificar. Se redactan para reflejar las metas generales del usuario como la facilidad de uso, la
capacidad del sistema de recuperarse de las fallas o la respuesta rápida del usuario.
Ejemplos:
Tipos de requerimientos no funcionales
Requerimientos externos: Cubre todos los requerimientos que se derivan de los factores externos
al sistema y de su proceso de desarrollo. Ejemplos:
Requerimientos de interoperabilidad con otros sistemas de la organización.
Requerimientos legales que deben seguirse para para asegurar que el sistema actúa
dentro de la ley.
Disponer de las licencias de uso.
Confidencialidad de la información por parte del grupo desarrollador
Requerimientos éticos.
El sistema no deberá revelar a sus operadores alguna información personal de los clientes
excepto su nombre y número de referencia.
Estos se derivan del dominio del sistema más que de las necesidades específicas de los usuarios.
Pueden ser funcionales, restringir los existentes o establecer cómo se deben ejecutar cálculos
particulares. Son importantes porque reflejan los fundamentos del dominio de aplicación.
Ejemplos:
Deberá existir una interfaz del usuario estándar para todas las bases de datos, la cual tome
como referencia el estándar Z39.50.
Debido a las restricciones en los derechos de autor, algunos documentos deberán borrarse
inmediatamente después de su llegada. Dependiendo de los requerimientos del usuario,
estos documentos se imprimirán de forma local en el servidor del sistema para ser
distribuidos de forma manual al usuario o enviarse a la impresora de red.
El sistema deberá instalarse en el dominio de la red institucional.
El sistema solo tendrá acceso si se encuentra en la intranet de la entidad.
Estas son descripciones más detalladas de los requerimientos del usuario. Sirven como base para
definir el contrato de la especificación del sistema y por lo tanto debe ser una especificación
completa y consistente del sistema. Condiciones técnicas necesarias para que un sistema
(paquete) corra sin ningún problema. Son utilizados como el punto de partida para el diseño del
sistema. En principio los requerimientos del sistema deberán establecer lo que éste hará y no la
manera en que se implantarán. Ejemplos:
El sistema debe correr sin ningún problema en el sistema operativo Linux.
Entrada del
Proceso Comprensión dominio Documento
Priorización
requerimientos
Resolución conflictos
Recolección de
requerimientos
Clasificación
Compresión del dominio: El analista debe desarrollar su propia comprensión del dominio de la
aplicación. Es decir, cómo opera lo que se quiere sistematizar.
Recolección de requerimientos: Este es el proceso de interactuar con los stakeholders del sistema
para descubrir sus requerimientos. La comprensión del dominio se desarrollará más durante esta
actividad.
Clasificación: Esta actividad considera la recolección no estructurada de requerimientos y los
organiza en grupos coherentes.
Resolución de conflictos: De forma inevitable, cuando existen muchos stakeholders involucrados,
los requerimientos entrarán en conflicto. Esta actividad se refiere a encontrar y resolver estos
conflictos.
Priorización: En cualquier conjunto de requerimientos, alguno de ellos será más importante que
los otros. Esta etapa comprende la interacción con los stakeholders para descubrir los
requerimientos más importantes.
Verificación de requerimientos: Los requerimientos se verifican para descubrir si están completos.
Son consistentes y acordes con lo que realmente quieren los stakeholders del sistema.
Validación de requerimientos
El costo de hacer un cambio en el sistema, el cual proviene de un problema en los requerimientos
es mucho más grande que reparar los errores de diseño o los de codificación. La razón es que un
cambio en los requerimientos por lo regular significa que el diseño y la implementación del
sistema también debe cambiar y que éste debe cambiar y probarse nuevamente. Las verificaciones
incluyen:
Verificaciones de validez: Un usuario puede pensar que se necesita un sistema para llevar a cabo
ciertas funciones. Sin embargo, el razonamiento y el análisis identifican que se requieren funciones
adicionales y diferentes. Los sistemas tienen diversos usuarios con diferentes necesidades y
cualquier conjunto de requerimientos un compromiso en el entorno del usuario.
Verificaciones de consistencia: Los requerimientos en el documento no deben contradecirse. Esto
es, no debe haber restricciones contradictorias o descripciones diferentes de la misma función del
sistema.
Verificaciones de integridad: El documento de requerimientos debe incluir requerimientos que
definan todas las funciones y restricciones propuestas por el usuario del sistema.
Verificaciones de realismo: Utilizando el conocimiento de la tecnología existente, los
requerimientos deben verificarse para asegurar que se pueden implementar. Estas verificaciones
también deben tomar en cuenta el presupuesto y calendarización del desarrollo del sistema.
Verificabilidad: Para reducir las discusiones entre el cliente y el contratista, los requerimientos
siempre deben redactarse de tal forma que sean verificables. Esto significa que puede diseñarse
un conjunto de verificaciones para demostrar que el sistema a entregar cumple esos
requerimientos.
Como resultado, la validación de requerimiento cambios para corregir las omisiones y las malas
interpretaciones después de que el documento se ha aprobado.
Documentación de requerimientos
Existen gran variedad de estándares, pero uno de los más utilizados y conocido es el estándar
IEEE/ANSI 830-1993 (IEEE, 1993), donde se sugiere la siguiente estructura para los documentos de
requerimientos:
I. Introducción
1.1 Propósito del documento de requerimientos.
1.2 Alcance del producto
1.3 Definiciones acrónimos y abreviaturas
1.4 Referencias
1.5 Resumen del resto del documento
II. Descripción general
2.1 Perspectiva del producto
2.2 Funciones del producto
2.3 Características del usuario
2.4 Restricciones generales
2.5 Suposiciones y dependencias
III. Requerimientos específicos
IV. Apéndice
V. Índice
Estos son una técnica que se basa en escenarios para la obtención de requerimientos que se
introdujeron por primera vez en el método Objetory (Jacobson, 1993). Actualmente se ha
convertido en una característica fundamental de la notación UML. La descripción y todo lo
referente a casos de uso se describirán en el siguiente capítulo UML.
Se utiliza junto a los casos de uso los diagramas de secuencia que en estos casos se utiliza para
agregar información a un caso de uso. Estos diagramas muestran a los actores involucrados en la
interacción, los objetos del sistema con los que puede interactuar y las operaciones asociadas con
estos objetos.
Los diagramas de casos de uso son unos de los tipos de diagramas de UML que se utilizan
para el modelado de los aspectos dinámicos de un sistema. Nos muestran los casos de uso,
sus actores y sus relaciones.