Especificaciones de Requerimiento

v Textual
Textual Tradicionalmente la especificación de requisitos se ha realizado usando sobre todo especificaciones textuales en lenguaje natural. Las herramientas de apoyo a la gestión de requisitos se han enfocado a la manipulación de trozos de texto. Estos requisitos expresados textualmente se enlazan formando un grafo de trazabilidad el cual se usa para gestionar los requisitos y su trazabilidad. En este enfoque, las especificaciones generadas en las otras actividades del desarrollo de software pueden también ser añadidas al grafo de trazabilidad representándolas como texto.
v Notación Grafica y Lenguajes de Representación (Lenguaje Unificado de Modelado UML, Notación de Requerimiento de Usuario URN).
Notación gráfica, Incluye todas las notaciones que pueden demostrar el flujo de información entre requisitos, apoyándose en diversas imágenes. Estas notaciones permiten al usuario del sistema tener mayor comprensión del software lo que hace y como lo hace. La más utilizada actualmente es el Lenguaje Unificado de modelado (UML).
v UML: Es un lenguaje para la especificación, visualización, construcción y documentación de los artefactos de un proceso de sistema intensivo. UML, emergió en los '90 luego de la búsqueda de un lenguaje de modelamiento que unificara a la industria. A pesar de que UML evolucionó de varios métodos orientados al objeto de segunda generación (en nivel de notación), su alcance extiende su uso más allá de sus predecesores. Es usado para la comunicación. Es decir, un medio para capturar el conocimiento (semánticas) respecto a un tema y expresar el conocimiento (sintaxis) resguardando el tema propósito de la comunicación. Como un lenguaje para modelamiento, se enfoca en la comprensión de un tema a través de la formulación de un modelo del tema (y su contexto respectivo). Cuidando la unificación, integra las mejores prácticas de la ingeniería de la industria tecnológica y sistemas de información pasando por todos Los tipos de sistemas (software y no - software), dominios (negocios versus software) y los procesos de ciclo de vida.
UML, es en cuanto a cómo se aplica para especificar sistemas, puede ser usado para comunicar "qué" se requiere de un sistema y "cómo" un sistema puede ser realizado. En cuanto a cómo se aplica para visualizar sistemas, puede ser usado para describir visualmente un sistema antes de ser realizado. En cuanto a cómo se aplica para construir sistemas, puede ser usado para guiar la realización de un sistema similar a los "planos”. En cuanto a cómo se aplica para documentar sistemas, puede ser usado para capturar conocimiento respecto a un sistema a lo largo de todo el proceso de su ciclo de vida.
UML, no es Un lenguaje de programación visual, sino un lenguaje de modelamiento visual Una herramienta o depósito de especificación, sino un lenguaje para modelamiento de especificación. Un proceso, sino que habilita procesos.
Otra notación que se puede usar es la notación de requerimientos de usuario (URN).

v Técnicas para Escribir Requerimientos de Alta Calidad y Estandares de Documentación:
Los Requerimientos deben ser:
ü Completos. Todo lo que el software tiene que hacer está recogido en el conjunto de Requerimientos, es decir, deben describir toda la funcionalidad que el sistema deberá Implementar.
ü No ambiguos. Cada requerimiento debe tener una sola interpretación.
ü Debiendo poder Expresarse de una manera sencilla, clara y sin ambigüedades usando:
· Lenguaje natural (español).
· Lenguajes gráficos (UML)
· Lenguajes formales (Notación Z).

Tipos de requerimientos El proceso de requerimientos maneja diferentes tipos de requerimientos, estos se pueden clasificar en:
ü Requerimientos de hardware: Requerimientos de rendimiento. Requerimientos de interfaz. Requerimientos especiales de la ingeniería. Requerimientos de ambiente.
ü Requerimientos de software: Requerimientos funcionales. Requerimientos no funcionales. Requerimientos del Dominio. Requerimientos de atributos de calidad.
v Requerimientos Funcionales: Son los requerimientos del usuario, se ocupan para asignar los requerimientos de más alto nivel.
El documento con estos requerimientos se llama Especificación Funcional, el que debe ser preciso. Es lo más parecido al contrato entre cliente y desarrollador. Corresponde a una descripción abstracta del diseño de software. Es la base para un diseño e implementación detallada. Agrega el detalle a la especificación de requerimientos.
v Requerimientos No-Funcionales: No funcionales Son prescindibles, condicionan lo que se tiene que hacer pero no son indispensables, indican mediante restricciones globales, de dominio y tecnología como debe construirse o funcionar. Su fuente principal es tanto el usuario como el cliente. También se especifican en las SRS. Definido como característica requerida del sistema, del proceso de desarrollo, del servicio prestado o de cualquier otro aspecto del desarrollo, que señala una restricción del mismo.
ü Tipos de requerimientos no funcionales: Requerimientos no funcionales Requerimientos del producto Requerimientos organizacionales Requerimientos externos Requerimientos de interoperabilidad Requerimientos éticos Requerimientos de eficiencia Requerimientos de fiabilidad Requerimientos de portabilidad Requerimientos legislativos Requerimientos de usabilidad Requerimientos de entrega Requerimientos de implementación Requerimientos de estándares Requerimientos de desempeño Requerimientos de seguridad Requerimientos de privacidad Requerimientos de espacio.
v Requisitos funcionales Vs. Requisitos no funcionales: Me identifica, que eventos reconocer, que datos mantener y que transformaciones hacer. No funcionales: Me identifica las restricciones de los productos, De la organización y externos.
v Requerimientos Del dominio: Son requerimientos que provienen del dominio de aplicación del sistema y que reflejan las características de ese dominio. Éstos pueden ser funcionales o no funcionales. Se derivan del dominio del sistema más que de las necesidades específicas de los usuarios. Pueden ser requerimientos funcionales nuevos, restringir los existentes o establecer cómo se deben ejecutar cálculos particulares. Los requerimientos del dominio son importantes debido a que a menudo reflejan los fundamentos del dominio de aplicación. Si estos requerimientos no se satisfacen, es imposible hacer que el sistema trabaje de forma satisfactoria.
ü Atributos de Calidad: Atributos de Calidad expresan las limitaciones que se le imponen al desarrollo del sistema y escriben aspectos tales como:
· Expresan las propiedades de calidad que el sistema debe satisfacer.
· El rendimiento que la aplicación debe tener.
· La confiabilidad que debe poseer.
· La seguridad que debe proveer.
· La utilidad que debe garantizar.