El documento habla sobre la especificación de requisitos en ingeniería de software. Explica diferentes técnicas para especificar requisitos como notaciones textuales y gráficas como UML. También describe los tipos de requisitos como funcionales, no funcionales y de dominio, así como estándares para documentar requisitos.
2. Especificación de requisitos Los requisitos del software son susceptibles de cambios, no sólo después de la entrega del producto sino que también durante el proceso de desarrollo iterativo. La gestión de requisitos es el proceso que administra los cambios en los requisitosdelsoftware. La gestión de requisitos puede ser un proceso muy costoso, con lo cual, debe planificarse el nivel de detalle que se desea, dependiendo del proyecto. Es primordial que la recolección de información de trazabilidad y su uso sea acorde con las necesidades específicas del proyecto para así conseguir un resultado positivo respecto del costo-beneficio de esta tarea.
3. 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.
4. Documento de requisitos El documento de requisitos es un escrito oficial de los requisitos del sistema para los clientes, usuarios finales y desarrolladores de software. Nombres: Especificación funcional, Definición de requisitos, Especificación de los requisitos de software
20. 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). Otra notación que se puede usar es la notación de requerimientos de usuario (URN),
21. 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.
22. UML es Como un lenguaje, 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.
23. 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.
24. UML no es Un lenguaje de programación visual, sino un lenguaje de modelamiento visual Una herramienta o deposito de especificación, sino un lenguaje para modelamiento de especificación. Un proceso, sino que habilita procesos.
25. 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.
26. Funcionales Son los requerimientos del usuario se ocupan para asignar los requerimientos de más alto nivel. Los requerimientos del sistema se usan para designar la descripción detallada. Los requerimientos del usuario son declaraciones en lenguaje natural y en diagramas de los servicios que se espera que el sistema provea y de las restricciones que este debe tener. Los requerimientos del sistema establecen detalladamente los servicios y restricciones del sistema.
27. Funcionales 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 detallado. Agrega el detalle a la especificación de requerimientos.
28. 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.
29. 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
30. Requisitos funcionales Vs. Requisitos no funcionales Funcionales: Me identifica, que eventos reconocer, que datos mantener y que transformaciones hacer. No funcionales: Me identifica las restricciones del productos, De la organización y externos.
31. 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 especificas 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.
32. Resumen de contenido Textual, notación gráfica y lenguajes de representación (Lenguaje Unificado de Modelado UML). Técnicas para escribir requerimientos de alta calidad. Estándares de Documentación. Tipos de requerimientos: funcionales, no-funcionales, del dominio.