You are on page 1of 29

Requerimientos

Qu es un requerimiento?
Definicin de Requerimiento

Segn la Real Academia Espaola, un requerimiento se define como la accin y efecto de requerir, donde requerir significa tener precisin o necesidad de alguien o algo. Hablando ya en trminos de Ingeniera de Software, segn la IEEE un requerimiento se define como: Condicin o capacidad que necesita el usuario para lograr un objetivo o solucionar un problema. Una condicin o capacidad que debe tener el sistema para satisfacer un contrato, estndar, especificacin de Software u otro documento formal. Segn Young [58], un requerimiento es un atributo necesario para el sistema a desarrollar, en el cual se puede describir una funcionalidad o caracterstica que tenga valor para los stakeholders dentro del mismo. La informacin para estas caractersticas se puede encontrar dentro de muchas personas o departamentos dentro de la organizacin que participan proporcionando informacin para el desarrollo del sistema (Grfica 1).

Marketing

Administracin

Soporte Tcnico

Aspectos legales

Equipo de Desarrollo de la solucin

Usuarios

Analistas del negocio

Hardware

Software

Fuentes de informacin

Marketing Especificacin de requerimientos de alto nivel, se revisa si es necesario hacer cambios a los requerimientos que actualmente maneja la empresa. Administracin Proporciona requerimientos del negocio y parmetros importantes dentro de la lgica del negocio que deben ser tenidos en cuenta para el desarrollo de la solucin. Aspectos legales Se encargan de revisar los requerimientos legales, que son las implicaciones legales que afectaran el desarrollo de la solucin, as como las licencias de las herramientas de desarrollo y componentes adicionales.

Analistas del negocio Dan a conocer las necesidades del negocio, las necesidades funcionales y de rendimiento. Tambin evalan si es necesario hacer cambios a los requerimientos que actualmente se plantearon en la empresa. Software Hacen nfasis en los requerimientos de Software. Tambin evalan si es necesario hacer cambios a los requerimientos actualmente proyectados en la empresa. Hardware Especifican requerimientos a nivel de infraestructura y recursos fsicos en los que se basar el desarrollo del sistema. Usuarios Describen requerimientos de usuarios y atributos a evaluar para los mismos. Soporte Tcnico Dan asistencia a los usuarios en la descripcin de los requerimientos del usuario. Buscan orientar lo que dice el usuario de una forma ms tcnica, facilitando as el entendimiento del equipo de desarrollo de la solucin.

Caractersticas de los requerimientos


No Ambiguo El requerimiento debe ser conciso, debe expresar hechos objetivos vitales para el desarrollo. Solo puede tener una posibilidad de interpretacin. Completo El requerimiento debe estar totalmente declarado, sin informacin faltante. Correcto El requerimiento debe cumplir con la necesidad expresada por el usuario para la solucin de desarrollo. Entendible Si se comprende fcilmente el significado de todos los requerimientos con una mnima de la explicacin. Verificable La implementacin del requerimiento debe poder ser seguida a travs del desarrollo del sistema. Deben existir las tcnicas finitas y rentables para verificar que cada requerimiento satisface el sistema segn lo construido.

Consistencia Interna Ningn subconjunto de requerimientos individuales estn en conflicto. Posible por medio de mapeo de entradas, salidas y estados. Consistencia Interna Ningn subconjunto de requerimientos individuales estn en conflicto. Se controla por medio de mapeo de entradas, salidas y estados. Consistencia Externa Ningn requerimiento est en conflicto con la documentacin interna de la organizacin. Realizable El requerimiento debe ser posible de implementar y no ser un hecho utpico dentro de la etapa de desarrollo. Conciso Ser tan cortos como sea posible sin afectar los dems requerimientos. Independiente del diseo Implementacin con diferentes mtodos para un mismo objetivo. Detectable El requerimiento debe estar escrito de manera que se facilite referenciarlo individualmente. Modificable Si la estructura y estilo del requerimiento se puede cambiar fcil, completa y constantemente.

Anotado por importancia relativa Si se pueden determinar fcilmente cuales requerimientos son los ms importantes para el cliente. Anotado por estabilidad relativa Si se puede determinar fcilmente cuales requerimientos tengan ms probabilidad de cambio. Anotado por versin Si se puede determinar fcilmente cual versin del producto satisface cual requerimiento. No redundante Si el requerimiento no est en varias partes del sistema. Preciso Si en el requerimiento se usan las cantidades numricas siempre que sean posibles. A su vez se asegura que estos niveles de precisin se utilizan apropiadamente para cada cantidad numrica.

Trazabilidad Si el origen del requerimiento es limpio y cuenta con constante referencia a travs del proceso.

Tipos de requerimientos
Requerimientos de Negocio

Requerimientos de Usuario

Requerimientos de Sistema

Requerimientos No Funcionales

Requerimientos Funcionales

Requerimientos del Producto

Requerimientos Organizacionales

Requerimientos Externos

Requerimientos de negocio

Estos requerimientos describen como sera mejorar el mundo para ciertas comunidades si el producto estuviera disponible . Son aquellos requerimientos que representan los objetivos establecidos por la organizacin. Son la base principal para el desarrollo del proyecto porque describen las necesidades que el Software cubrir sin descuidar las reglas de negocio de la organizacin. A menudo estos requerimientos reflejan las prcticas de negocio actual de la organizacin o las nuevas prcticas que desean adoptar con el proyecto, ya que ellos deben asegurarse que el producto se ajuste a sus necesidades. Algunas veces estos requerimientos coinciden con las expectativas que tienen los usuarios, pero estos son ms visto a nivel tcnico. La Grafica siguiente explica el proceso de transformar las reglas de negocio en requerimientos, en donde intervienen desde los expertos del negocio, que son los que tienen la informacin, hasta los analistas de Sistemas que son los que la interpretan, pasando por un comit ejecutivo de la organizacin quien es la que avala la informacin que se va a proporcionar al analista.

Tcnicas para facilitar la toma de requerimientos del negocio

Descomposicin funcional o mapeo de procesos. Este tipo de vista es la representacin desglosada de los procesos macro de la organizacin (mientras estos se puedan descomponer). La ventaja de este tipo de descomposicin es que permite un mejor entendimiento por parte de los analistas y por ende una mayor claridad y especificacin en la definicin del requerimiento. El siguiente ejemplo muestra como de un Sistema de Gestin crediticia y contable se extraen procesos los procesos internos que lo componen, que es la fuente para la identificacin de procesos de negocio. En la grfica inicial tenemos como proceso global el Sistema de Gestin Crediticia y Contable. En la segunda grfica se hace el anlisis de descomposicin de procesos, con el fin de observar ms en detalle la funcin del proceso global del sistema, como entradas, salida y manejo de la informacin al interior de ellos.

Cadena de responsabilidades. Es un patrn de diseo que establece una relacin directa entre los responsables de los requerimientos del negocio y los actores externos que interactan con los mismos. Involucra las interacciones producto de los requerimientos. Ac se distinguen dos tipos de usuario.

La cadena permite relacionar a los trabajadores del negocio, que son los que poseen la informacin interna que se necesita para definir el requerimiento, de cada una de las unidades organizacionales que tiene la organizacin con el actor del negocio.

BPMN. Presenta vistas alternativas a las actividades que realizan los stakeholders para la atencin de un requerimiento. A su vez puede servir como complemento del diseo de una cadena de responsabilidad BPMN (Business ProcessModelingNotation)

Requerimientos de usuario

Los usuarios son los individuos o grupos de ellos a quien va dirigido el sistema. Por tal motivo estos requerimientos son aquellas funcionales especficas que los usuarios esperan ver en la solucin. Los usuarios se identifican por medio de los requerimientos de negocio, como ya se explic en la seccin anterior y a su vez es el resultado del proceso de levantamiento de Requerimientos. Los requerimientos de usuario deben ser descritos de tal forma que sean fcil de entender por parte de los usuarios, teniendo en cuenta que ellos no manejan el lenguaje tcnico que es de gran dominio por el equipo desarrollador. Aparte de estar explicados en lenguaje natural para un mejor entendimiento tambin se pueden presentar diagramas con bajo nivel de detalle. Otra cosa importante es que solo se manejar el documento de requerimientos para estos, ya que solo se debe describir el comportamiento del sistema, mas no aun el detalle que tendra un diseo o prototipo.

Requerimientos del sistema

Este tipo de requerimientos son el resultado de acoplar los requerimientos de usuario al modelo de la solucin. Estos ya tienen cierto nivel de detalle avanzado y son la base para empezar la fase de diseo del sistema. Estos requerimientos hacen referencia hacia los requerimientos funcionales y no funcionales, los cuales se describen a continuacin.

Requerimientos funcionales

Los requerimientos funcionales describen lo que el sistema o software debe hacer. Estos siempre se refieren a funciones especficas que debe hacer la solucin, todo en base a las indagaciones hechas en el proceso de levantamiento de y su respectivo anlisis en las definiciones de Requerimientos de y Requerimientos del Sistema. Se definen tambin estos requerimientos como operacionales, ya que especifica las entradas y salidas del sistema junto con todas las relaciones entre ellas.

Requerimientos no funcionales

Los requerimientos no funcionales especifican propiedades del sistema, como pueden ser la seguridad y la fiabilidad del sistema. Las caractersticas principales de los requerimientos no funcionales son las siguientes: Los requerimientos funcionales describen funciones especficas de la solucin, mientras los requerimientos no funcionales estn relacionadas con funcin en conjunto del sistema. Los requerimientos no funcionales son propiedades que las funciones del sistema deben tener. Por ende no pueden existir requerimientos no funcionales sin que hayan requerimientos funcionales. El analista debe asegurarse que haya un equilibrio entre estos requerimientos, ya que es posible que ocurran contradicciones entre varios de estos. Son requerimientos que pueden definirse con un valor especificado por el analista de Sistema, es decir, se pueden aplicar criterios para revisarlos segn la solucin que se est elaborando. Sin embargo, estos requerimientos no solo hacen referencia al sistema que se va a desarrollar, tambin consideran algunas restricciones, es decir, se encargan de definir aspectos como por ejemplo, que estndares de calidad se deben seguir en el desarrollo del sistema . A continuacin se describen ms a fondo los tipos de requerimientos no funcionales: Fiabilidad: Probabilidad de buen funcionamiento de algo. (Real Academia Espaola)

Requerimientos de producto

Funcionalidad La capacidad del sistema para proveer las funciones que cumplan las necesidades de los usuarios, es decir, que cumplan con los requerimientos del negocio y de usuarios. Las funciones que se manejan ac deben ser las que necesita el sistema y ser capaces de permitir interoperabilidad entre varios sistemas. Fiabilidad La capacidad del sistema para mantener su nivel de rendimiento en determinados periodos de tiempo establecidos por la organizacin. En esta parte debe cumplir con las expectativas a tolerancia de fallos, as como la de recuperacin y restablecimiento del sistema. Usabilidad La capacidad del sistema para ser fcilmente entendido, aprendido y de uso sencillo para el usuario final. Eficiencia La capacidad del sistema para lograr el rendimiento deseado, teniendo en cuenta recursos fsicos utilizados y condiciones especficas de uso. Tambin tiene en cuenta los tiempos de respuesta de la solucin.

Mantenibilidad La capacidad que tiene el sistema para ser actualizado, modificado o corregido segn sea el caso. Se deben tener en cuenta el control de cambios, la forma y la capacidad del sistema de implementar un cambio, estabilidad y verificacin de pruebas. Portabilidad La capacidad que tiene el sistema para ser desplazado entre diferentes entornos, lo que representa adaptabilidad al medio en donde sea colocado y su forma de interactuar con los dems sistemas.

Requerimientos organizacionales
Requerimientos de Implementacin Se rigen bajo estndares y herramientas que se usaran para la implementacin del sistema. Requerimientos de Entrega Son los requerimientos que se rigen a cronograma, con tiempos para cada una de las fases del desarrollo y la entrega final con su documentacin.

Requerimientos externos

Requerimientos de Compatibilidad Capacidad del sistema para relaciones con otros entornos externos. Requerimientos ticos Son requerimientos que se deben especificar, para asegurar que los usuarios aceptaran el sistema Requerimientos Legislativo Se asegura que el sistema funciones bajo la legislacin actual y no se cometa algn acto indebido durante su desarrollo.

Ingeniera de requerimientos
Ingeniera de Requerimientos

Desarrollo de Requerimientos

Administracin de Requerimientos

Levantamiento de Requerimientos

Anlisis de Requerimientos

Especificacin de Requerimientos

Verificacin de Requerimientos

Trazabilidad

Priorizacin