Mais conteúdo relacionado

Apresentações para você(20)

Requerimientos del software

  1. Nombre: Rosa Ortega
  2. INTRODUCCIÓN A través de los años se ha podido constatar que los requerimientos o requisitos son la pieza fundamental en un proyecto de desarrollo de software, ya que marcan el punto de partida para actividades como la planeación, básicamente en lo que se refiere a las estimaciones de tiempos y costos, así como la definición de recursos necesarios y la elaboración de cronogramas que será uno de los principales mecanismos de control con los que se contará durante la etapa de desarrollo. Además la especificación de requerimientos es la base que permite verificar si se alcanzaron o no los objetivos establecidos en el proyecto ya que estos son un reflejo detallado de las necesidades de los clientes o usuarios del sistema y es contra lo que se va a estar verificando si se están cumpliendo las metas trazadas.
  3. ¿Qué es un Requerimiento?  Puede variar desde unos estatutos abstractos en alto nivel de un servicio o unas restricciones del sistema hasta una especificación funcional matemática detallada.  Los Requerimientos pueden servir como una función dual  Puede ser la base para la declaración de un contrato, por lo tanto, deber estar abierto a interpretación.  Puede ser la base para el contrato en sí, por lo tanto, debe ser definido en detalle.  Ambas declaraciones serán llamadas Requerimientos. Los requerimientos pueden dividirse en requerimientos funcionales y requerimientos no funcionales.
  4.  Un requerimiento de software define las funciones, capacidades o atributos de cualquier sistema de software. También representan:  Factores de calidad del sistema que permitirán evaluar su utilidad a un cliente o usuario.  Los datos de entrada al proceso de desarrollo de software y representan lo que se requiere implementar.  Una descripción de cómo el sistema deberá comportarse, describe información del dominio de la aplicación, describe restricciones de la operación del sistema y especifica atributos ó propiedades del sistema.  Un problema por resolver.
  5. Los requerimientos de software pueden dividirse en 2 categorías: requerimientos funcionales y requerimientos no funcionales. Los requerimientos funcionales son los que definen las funciones que el sistema será capaz de realizar, describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Es importante que se describa el ¿Qué? y no el ¿Cómo? se deben hacer esas transformaciones. Estos requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lógica y gran parte del código del sistema. Por otra parte los requerimientos no funcionales tienen que ver con características que de una u otra forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo y espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de equipo), mantenimiento, seguridad, portabilidad, estándares, etc. Tipos De Requerimientos de Sistema †Software
  6. Tipos De Requerimientos de Sistema †Software † Software Requerimientos Funcionales: Define que hace el sistema, es decir, las funciones del sistema. † Describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Requerimientos No Funcionales: Definen los atributos que le indican al sistema como realizar su trabajo (eficiencia, hardware, software, interfaces, usabilidad, etc.). Es el como, cuando y cuanto del que. † Hardware †† Restricciones: tipo de maquina, Desempeño, tiempo, carga, etc.
  7. Dificultades para definir los requerimientos Durante la etapa de especificación de requerimientos se pueden presentar muchos inconvenientes los cuales son importantes de identificar y prevenir, a continuación se presenta un listado con los problemas más comunes en este proceso:  Los requerimientos no son obvios y vienen de muchas fuentes.  Son difíciles de expresar en palabras (el lenguaje es ambiguo). La cantidad de requerimientos en un proyecto puede ser difícil de manejar. Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.  El usuario no puede explicar lo que hace Tiende a recordar lo excepcional y olvidar lo rutinario  Hablan de lo que no funciona Los usuarios tienen distinto vocabulario que los desarrolladores
  8. Importancia de la ingeniería de requerimientos Según la autora Lizka Johany Herrera en su documento de la ingeniería de requerimientos, los principales beneficios que se obtienen de la Ingeniería de Requerimientos son Permite gestionar las necesidades del proyecto en forma estructurada: Cada actividad de la IR consiste de una serie de pasos organizados y bien definidos. Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La IR proporciona un punto de partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios.  Disminuye los costos y retrasos del proyecto: es sabido que reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro; especialmente aquellas decisiones tomadas durante la IR, ya que es una de las etapas de mayor importancia en el ciclo de desarrollo de software y de las primeras en llevarse a cabo.  Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos (funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).
  9. CLASIFICACIÓN DE LOS REQUISITOS NO FUNCIONALES
  10. Caracteristicas de los Requerimientos En principio los requerimientos deben ser precisos, completos y consistentes. Precisos  Deben extraer con precision lo que se desea del sistema Completos  Deben incluir todas las descripciones y componentes requeridos Consistente  No debe haber conflictos o contradicciones en las descripciones de los requerimientos En la practica es dificil producir un documento con estas caracteristicas.
  11. Requerimientos Definición/Especificación  Definición de Requerimientos  Una declaración en un Lenguaje Natural incluye los diagramas de los servicios del sistema y sus límites operacionales. Escrito para clientes.  Especificación de Requerimientos  Un documento estructurado con descripción o detalle de los servicios del sistema. Escrito como un contrato entre el cliente y el contratista.  Especificación de Software  Descripción detallada de software, la cual, puede servir como una base para diseño o implementación. Escrito para desarrolladores.
  12. Definiciones y Especificaciones Definición de Requerimientos . El Software proporciona significado de representación y acceso a archivos externos creados por otras herramientas. Especificación de Requerimientos  El usuario debe proporcionar facilidades para definir el tipo de archivos externos.  Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será aplicada para el archivo.  Cada tipo de archivo externo será representado como un icono específico mostrado al usuario.  Las facilidades proporcionadas para la representación del icono en un tipo de archivo externo será definido por el usuario.  Cuando un usuario selecciona una representación de icono de un archivo externo, el efecto de la selección es aplicar las herramientas asociadas con el tipo de archivo externo al archivo representado por la selección del icono.
  13. Lectores de Requerimientos
  14. El Proceso de Ingeniería de Requerimientos
  15. Clases de Requerimientos Requerimientos Perdurables. Requerimientos estables derivados de las actividades de la organización del cliente. Por ejemplo, un hospital siempre tendrá doctores, enfermeras, etc. Puede ser derivado de modelos de dominio. Requerimientos Volátiles. Los requerimientos cambian durante el desarrollo o cuando el sistema está en uso. En un hospital, los requerimientos se derivan de las políticas salud-cuidados.
  16. Clasificación de Requerimientos  Requerimientos Cambiantes.  Los requerimientos que cambian por el ambiente del sistema.  Requerimientos Emergentes.  Requerimientos que surgen como una comprensión del desarrollo del sistema.  Requerimientos de Consecuencias.  Requerimientos que resultan de la introducción del sistema computacional.  Requerimientos de Compatibilidad.  Requerimientos que dependen de otros sistemas o de otros procesos de la organización.
  17. REQUERIMIENTOS FUNCIONALES: Son declaraciones de los servicios que debe proporcionar el sistema, de la manera en que éste debe reaccionar a entradas particulares y de cómo se debe comportar en situaciones particulares. En algunos casos, los requerimientos funcionales de los sistemas también pueden declarar explícitamente lo que el sistema no debe hacer. 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á proporcionar visores adecuados para que el usuario lea documentos en el almacén de datos A cada periodo se le deberá asignar un identificador único, que el usuario podrá copiar al área de almacenamiento permanente de la cuenta
  18. REQUERIMIENTOS NO FUNCIONALES: Son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. Los requerimientos no funcionales a menudo se aplican al sistema en su totalidad. Normalmente apenas se aplican a características o servicios individuales del sistema. EJEMPLOS La interfaz de usuario se implementara como HTML simple sin marcos o applets java. El proceso de desarrollo del sistema y los documentos a entregar deberán ajustarse al proceso y a los productos a entregar. El sistema no deberá revelar al personal de la biblioteca que lo utilice ninguna información personal de los usuarios del sistema aparte de su nombre y número de referencia de la biblioteca.
  19. La evolución de los estudios encarados por la Ingeniería de Requerimientos se fue dando paulatinamente. Sin embargo, a partir de los 90, los esfuerzos se concentraron en la búsqueda de técnicas, métodos y herramientas que pudieran ser aplicados durante el proceso de definición de requerimientos para arribar a una etapa de diseño exitosa, dejando de lado la obtención de una metodología capaz de adaptarse a cualquier tipo de sistema y paradigma, brindando un marco de trabajo referencial, independiente del método a aplicar. Es muy importante mencionar que el poder formular una especificación de requerimientos completa y consistente, es un paso muy importante para evitar cometer errores en la definición de los requerimientos, ya que los mismos pueden resultar muy caros de corregir una vez desarrollado el sistema. De ahí, la vital importancia que tiene la ingeniería de requerimientos en generar una adecuada especificación que contemple claramente y sin ambigüedades los requerimientos del sistema a desarrollar, con el fin primordial de evitar que los proyectos fracasen debido a una mala elaboración de la definición y especificación de requerimientos. CONCLUSIÓN