Download - Sesion 02 los_requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo.
1
El Concepto de Requerimiento
Estandares de Programacion Unida I, Prof. Contreras, UTEC 2015
Ingeniería de Software Ingeniería de Requerimientos
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
2
El Concepto de Requerimiento
Ingeniería de Software Ingeniería de Requerimientos
Una declaración abstracta de alto nivel de un servicio que debe proveer el sistema o una restricción de éste.
3
El Concepto de Requerimiento
Ingeniería de Software Ingeniería de Requerimientos
Una definición matemática detallada y formal de una función del sistema
4
El Concepto de Requerimiento
Ingeniería de Software Ingeniería de Requerimientos
Es un aspecto del contenido o comportamiento del producto, requerido o deseado por el cliente
5
El Concepto de Requerimiento
Ingeniería de Software Ingeniería de Requerimientos
El Concepto de Requerimiento
Característica o restricción de un sistema
6
Ingeniería de Software Ingeniería de Requerimientos
No son obvios.
1
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Provienen de diversas y variadas fuentes.
2
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Existen muchos tipos de requerimientos y diferentes niveles de detalle
3
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
La cantidad de requerimientos puede hacer un proyecto inmanejable
4
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Nunca son iguales. Algunos son más difíciles, más riesgosos o más importantes que otros
5
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Los requerimientos están relacionados unos con otros, y a su vez están sujetos a un contexto
6
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento puede cambiar a lo largo del ciclo de desarrollo (son inestables)
7
Inconvenientes para definir Requerimientos
Ingeniería de Software Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
Son difíciles de cuantificar, ya que cada conjunto de requerimientos es particular para cada proyecto.
8
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es necesario si su omisión provoca una deficiencia en el sistema a construir, y además su capacidad, características físicas o factor de calidad no pueden ser reemplazados por otras capacidades del producto o del proceso.
Características Deseables de un Requerimiento
1. Necesario
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es conciso si es fácil de leer y entender. Su redacción debe ser simple y clara para aquellos que vayan aconsultarlo en un futuro.
Características Deseables de un Requerimiento
2. Conciso
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es consistente si no es contradictorio con otro requerimiento.
Características Deseables de un Requerimiento
3. Consistente
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento no es ambiguo cuando tiene una sola interpretación. El lenguaje, técnica o representación usado en su definición, no debe causar confusiones al lector.
Características Deseables de un Requerimiento
4. No Ambiguo
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es verificable cuando puede ser cuantificado de manera que permita hacer uso de métodos de verificación como inspección, análisis, demostración o pruebas.
Características Deseables de un Requerimiento
5. Verificable
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento está completo si no necesita ampliar detalles en su redacción, es decir, si se proporciona la información suficiente para su comprensión.
Características Deseables de un Requerimiento
6. Completo
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es trazable cuando el desarrollo para lograr su satisfacción admite etapas que puedan ser verificadas.
Características Deseables de un Requerimiento
7. Trazable
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es representable si puede ser escrito en lenguaje natural o mediante algún otro medio que permita comunicar su sentido.
Características Deseables de un Requerimiento
8. Representable
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es legible cuando es fácil de comprender.
Características Deseables de un Requerimiento
9. Legible
Ingeniería de Software Ingeniería de Requerimientos
Un requerimiento es realizable si con la tecnología disponible y en el marco de un proyecto se puede lograr su satisfacción.
Características Deseables de un Requerimiento
10. Realizable
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Disciplina para desarrollar una especificación completa, consistente y no ambigua, la cual servirá como base para acuerdos comunes entre todas las partes involucradas y en dónde se describen las funciones que realizará el sistema
1
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso por el cual se transforman los requerimientos declarados por los clientes , ya sean hablados o escritos, a especificaciones precisas, no ambiguas, consistentes y completas del comportamiento del sistema, incluyendo funciones, interfaces, rendimiento y limitaciones
2
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Es el proceso mediante el cual se intercambian diferentes puntos de vista para recopilar y modelar lo que el sistema va a realizar. Este proceso utiliza una combinación de métodos, herramientas y actores, cuyo producto es un modelo del cual se genera un documento de requerimientos
3
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Ingeniería de Requerimientos es el proceso de descubrir, analizar, documentar y verificar los servicios y restricciones del sistema
4
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso para desarrollar una especificación del software. Implica desarrollar una especificación entendible por los usuarios del sistema y una más detallada para los desarrolladores del sistema
5
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Enfoque sistémico para recolectar, organizar y documentar los requerimientos del sistema; es también el proceso que establece y mantiene acuerdos sobre los cambios de requerimientos, entre los clientes y el equipo del proyecto
6
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso sistemático utilizado para derivar una definición del sistema de software a ser desarrollado
7
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso de descubrimiento, refinamiento, modelado y especificación
8
Ingeniería de Software Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso de descubrimiento, refinamiento, modelado y especificación
8
Ingeniería de Software Ingeniería de Requerimientos
Pasos :• Preparación• Realización• Documentación
Técnicas Clásicas para obtener requerimientos
1. Entrevista
Ingeniería de Software Ingeniería de Requerimientos
¿Quién es el usuario?¿Quién es el cliente?¿Porqué se desea resolver el problema?¿Cuál es el valor de la solución exitosa?¿Cómo se resuelve hoy?
Técnicas Clásicas para obtener requerimientos
1. Entrevista
Ingeniería de Software Ingeniería de Requerimientos
• Preguntas precisas• Requiere dominio del problema• Se recomienda organizar reuniones
donde se resuelvan en grupo
Técnicas Clásicas para obtener requerimientos
2. Cuestionarios o Cheklists
Ingeniería de Software Ingeniería de Requerimientos
• Permite al equipo trabajar con un lenguaje común.
• Más crítico en equipos disciplinarios donde mismas palabras representan conceptos diferentes.
Técnicas Clásicas para obtener requerimientos
3. Glosarios
Ingeniería de Software Ingeniería de Requerimientos
• Se escriben en lenguaje natural pero en un formato estricto y debidamente estructurado.
Técnicas Clásicas para obtener requerimientos
4. Plantillas y Patrones
Ingeniería de Software Ingeniería de Requerimientos
• Recomendado cuando solo existe el problema pero no una solución.
• Reunión dondo todos opinan ideas sin restricciones en ambiente distendido. Luego se seleccionan y evaluan las factibles.
• Generación de efecto sinérgico.
Técnicas Clásicas para obtener requerimientos
5. Lluvia de Ideas
Ingeniería de Software Ingeniería de Requerimientos
Un analista se sumerge por sí solo en el entorno laboral donde el sistema se utilizará. El trabajo diario se observa y se hacen notas de las tareas reales en las que los participantes están involucrados.
Técnicas Clásicas para obtener requerimientos
6. Etnografía
Ingeniería de Software Ingeniería de Requerimientos
• Narración del problema y la solución requerida.
Representación de requerimientos
1. Lenguaje Natural
Ingeniería de Software Ingeniería de Requerimientos
• Son grafos en los que los vértices representan conceptos y las aristas representan posibles relaciones entre dichos conceptos. Estos grafos de relaciones se desarrollan con el usuario y sirven para aclarar los conceptos relacionados con el sistema a desarrollar
Representación de requerimientos
2. Mapas Conceptuales
Ingeniería de Software Ingeniería de Requerimientos
Representación de requerimientos
2. Mapas Conceptuales
Auto
PatenteTiene única
Municipalidad
Se obtiene en
Registro de PartesTiene
Infracción
Puede tener
Está registrada
Ingeniería de Software Ingeniería de Requerimientos
• Consiste en representar sobre papel en forma muy esquemática las diferentes interfaces al usuario (sketches). Estos sketches pueden ser agrupados y unidos por enlaces dando idea de la estructura de navegación (storyboard)
Representación de requerimientos
3. Sketches y Storyboards
Ingeniería de Software Ingeniería de Requerimientos
• La notación Z está basada en la teoría de conjuntos y la lógica matemática; incluye operadores estándar de conjuntos, comprensión de conjuntos, productos cartesianos y conjuntos potencia. La lógica matemática es el cálculo de predicados de primer orden
Representación de requerimientos
4. Lenguaje Z
Ingeniería de Software Ingeniería de Requerimientos
• Guiones y Diálogos.• Tablas y Glosarios.• Modelo de Datos Entidad -
Relación.• Análisis de Puntos de Función.
Representación de requerimientos
5. Ancora
Ingeniería de Software Ingeniería de Requerimientos5. Ancora
Ingeniería de Software Ingeniería de Requerimientos5. Ancora
Guión: Plan de NegociosPista : Gestión de Preincubación.
Escena 1:P ingresa a través de FPN los datos correspondientes.Escena 2:AD y T controlan que los datos ingresados estén completos y sean los correctos.Escena 3:Si los datos ingresados son incorrectos, se ingresan observaciones al FPN, por el AD y el T.Escena 4:P actualiza los datos que AD y T estiman que son incorrectos.Escena 5:Si los datos son correctos AD o T aprueban el FPN.
Papeles:P = PreincubadoT = TutorAD = Administrador
Utensilios:FPN = Formulario Plan de Negocios
Condiciones de Entrada:Ingreso Datos al FPN.
Condiciones de Salida:P y AD controla ingreso de información del FPN.
Ingeniería de Software Ingeniería de Requerimientos
• Software no funcional que muestra las interacciones del producto de software a construir.
Representación de requerimientos
6. Prototipos
Ingeniería de Software Ingeniería de Requerimientos
• Lenguaje Unificado de Modelado
Representación de requerimientos
6. UML