1 / 231

IDR - Unidad 1: Introducción y proceso de Ingeniería de requerimientos

Objetivo: Caracterizar las actividades involucradas en el descubrimiento, documentaciu00f3n y mantenimiento de los requerimientos de un producto determinado conociendo de forma precisa el problema que van a resolver para que la soluciu00f3n que se construya sea correcta y u00fatil.<br>

28843
Télécharger la présentation

IDR - Unidad 1: Introducción y proceso de Ingeniería de requerimientos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingeniería de requerimientos Carrera de Software Unidad 1 Introducción y proceso de Ingeniería de requerimientos Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Ingeniería de Requerimientos 1 17/06/2021 Ph.D. Franklin Parrales

  2. Ingeniería de requerimientos Carrera de Software Objetivo general de la Unidad 1 Caracterizar las actividades involucradas en el descubrimiento, documentación y mantenimiento de los requerimientos de un producto determinado conociendo de forma precisa el problema que van a resolver para que la solución que se construya sea correcta y útil. 2 17/06/2021 Ph.D. Franklin Parrales

  3. Ingeniería de requerimientos Carrera de Software Unidad 1 Lección 1 La Ingeniería de requerimientos - IDR Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Ingeniería de Requerimientos 3 17/06/2021 Ph.D. Franklin Parrales

  4. Ingeniería de requerimientos Carrera de Software Contenido • La Ingeniería de requerimientos – IDR – Definición de la IDR – Importancia de la IDR – Actividades de la IDR 4 17/06/2021 Ph.D. Franklin Parrales

  5. Ingeniería de requerimientos Carrera de Software Visión global Primera fase del ciclo de vida del software en la que se produce una especificación a partir de ideas informales Deben obtenerse y documentarse Los requisitos de información Los requisitos funcionales Los requisitos no funcionales Los criterios para medir el grado de su consecución El proceso de desarrollo de dicha especificación de requisitos es lo que se conoce como ingeniería de requisitos Importancia creciente de El correcto entendimiento (obtención), documentación (especificación) y validación de las necesidades de los usuarios y clientes La medida de la calidad de los sistemas en función del grado de satisfacción de los usuarios n Ingeniería de Requisitos n Resto del ciclo de vida n n n n n n n n 5 17/06/2021 Ph.D. Franklin Parrales

  6. Ingeniería de requerimientos Carrera de Software Definición (i) Todas documentación de las necesidades de clientes y usuarios; (b) creación de un documento que describe la conducta externa y las restricciones asociadas [de un sistema] que satisfará dichas necesidades; (c) análisis y validación del documento de requisitos para asegurar consistencia, compleción y viabilidad; (d) evolución de las necesidades [Hsia et al., 1993] … el uso sistemático de procedimientos herramientas para obtener con documentación, evolución continua de las necesidades del usuario y la especificación del comportamiento externo de un sistema que satisfaga las necesidades del usuario. Téngase en cuenta que todas las disciplinas de la ingeniería son semejantes, la ingeniería de requisitos no se guía por conductas esporádicas, aleatorias o por modas pasajeras, si no que se debe basar en el uso sistemático de aproximaciones contrastadas [Reifer, 1994] las actividades relacionadas con: (a) identificación y n técnicas, reducido lenguajes el y n un coste análisis, 6 17/06/2021 Ph.D. Franklin Parrales

  7. Ingeniería de requerimientos Carrera de Software Definición (ii) Aplicación disciplinada de principios científicos y técnicas para desarrollar, comunicar y gestionar requisitos [Christel y Kang 1992] El proceso sistemático de desarrollar requisitos mediante un proceso iterativo y cooperativo de analizar el problema, documentar las observaciones resultantes en varios formatos de representación y comprobar la precisión del conocimiento obtenido [Christel y Kang 1992] Un proceso sistemático de desarrollo de requisitos mediante un proceso cooperativo consistente en analizar el problema, documentar las observaciones resultantes en una representación, y comprobar la exactitud de la comprensión conseguida [Loucopoulus y Karakostas, 1995] Un proceso de descubrimiento y comunicación de las necesidades de clientes y usuarios y la gestión de los cambios en dichas necesidades [Durán, 2000] n n n variedad de formatos de n 7 17/06/2021 Ph.D. Franklin Parrales

  8. Ingeniería de requerimientos Carrera de Software Ingeniería de Requerimientos El proceso de establecer los servicios que el cliente requiere de un sistema y los limites bajo los cuales opera y se desarrolla [Sommerville] 8 17/06/2021 Ph.D. Franklin Parrales

  9. Ingeniería de requerimientos Carrera de Software Contenido • La Ingeniería de requerimientos – IDR – Definición de la IDR – Importancia de la IDR – Actividades de la IDR 9 17/06/2021 Ph.D. Franklin Parrales

  10. Ingeniería de requerimientos Carrera de Software Importancia • Uno de los principales problemas al que nos enfrentamos como ingenieros de software en el desarrollo de sistemas es la ingeniería de requisitos. • De esta fase depende el éxito del producto de software. – Si hay algún error en esta fase el resto de fases del ciclo de vida también se verán afectados, y por ende… – El resultado es un producto de software que no cumple con las stakeholders. necesidades de los 10 17/06/2021 Ph.D. Franklin Parrales

  11. Ingeniería de requerimientos Carrera de Software Stakeholders Los stakeholders son aquellas personas o entidades que tienen algún impacto o interés en este sistema. • Es el público de interés para una empresa que completo funcionamiento. • Como público, se refiere a todas las personas u organizaciones que se relacionan actividades y decisiones de una empresa como: – empleados, proveedores, clientes, gobierno, entre otros. permite su con las 11 17/06/2021 Ph.D. Franklin Parrales

  12. Ingeniería de requerimientos Carrera de Software Stakeholders 12 17/06/2021 Ph.D. Franklin Parrales

  13. Ingeniería de requerimientos Carrera de Software Importancia • Para entregar un producto de software con éxito, Ud. necesita desarrollar, documentar y validar los requisitos de software. • Los requisitos bien entendidos son la base para determinar el implementado, lo cual permite satisfacer las necesidades de los usuarios. – Dichas necesidades son las que se definen en los requisitos. éxito del software 13 17/06/2021 Ph.D. Franklin Parrales

  14. Ingeniería de requerimientos Carrera de Software Importancia • El no definir los requisitos correctamente tiene un precio bastante alto ya que se ocasionan requisitos mal definidos (incompletos, incorrectos o requisitos contradictorios) • Estos errores pueden causar: – Sobrecosto – Reproceso costoso – Mala calidad – Retraso en la entrega – Clientes descontentos – Miembros de equipo agotados y desmoralizados 14 17/06/2021 Ph.D. Franklin Parrales

  15. Ingeniería de requerimientos Carrera de Software Motivación 15 17/06/2021 Ph.D. Franklin Parrales

  16. Ingeniería de requerimientos Carrera de Software Importancia • Entender la naturaleza de un problema por lo general es algo difícil → es difícil establecer que debe hacer un sistema software • La descripción de los servicios y restricciones son los requisitos del sistema • La ingeniería de requisitos es el proceso que permite identificar dichos requisitos • Como otras actividades de Ing. de Sw, ésta debe adaptarse a proceso, proyecto, producto y gente que hace el software. las necesidades del 16 17/06/2021 Ph.D. Franklin Parrales

  17. Ingeniería de requerimientos Carrera de Software Importancia * • La mecanismo apropiado para: – entender que quiere el consumidor, – analizar sus necesidades, – valorar la factibilidad de construcción, – negociar una solución razonable, – especificar de manera no ambigua una solución, – validar la especificación y – administrar los requerimientos transforman. Ing. de Requerimientos provee de un conforme se *Referencia: capítulo 7 libro de texto (Pressman 2005) 17 17/06/2021 Ph.D. Franklin Parrales

  18. Ingeniería de requerimientos Carrera de Software Motivación • Se especificación deficiente de los requisitos del software puede conducir a proyectos fallidos, de allí que esta disciplina cada vez adquiera mayor importancia. • El curso de Ingeniería de requisitos esta diseñado para enseñarte a identificar y analizar requisitos de manera integral, con el cual garantizaras especificaciones funcionales de calidad. ha hecho muy evidente que una la elaboración de 18 17/06/2021 Ph.D. Franklin Parrales

  19. Ingeniería de requerimientos Carrera de Software Contenido • La Ingeniería de requerimientos – IDR – Definición de la IDR – Importancia de la IDR – Actividades de la IDR 19 17/06/2021 Ph.D. Franklin Parrales

  20. Ingeniería de requerimientos Carrera de Software Actividades de la Ing. de Requerimientos 20 17/06/2021 Ph.D. Franklin Parrales

  21. Ingeniería de requerimientos Carrera de Software Ingeniería de Requerimientos Proceso de los Requerimientos Administración de los Requisitos Requerimientos Línea Base de Línea base corregida Planifica- ción Especifica- ción Obtención Análisis Verificación Validación Trazabilidad Administración del Cambio Planificación Línea base actual Cambios en requerimientos Cambios en el proyecto 21 17/06/2021 Ph.D. Franklin Parrales

  22. Ingeniería de requerimientos Carrera de Software Actividades de la Ing. de Requerimientos – Iniciación (Inception) – Obtención (Elicitation) – Elaboración – Negociación – Especificación – Validación (Validation) – Administración • Algunas de estas funciones pueden ocurrir en paralelo y ajustarse a las necesidades del proyecto 22 17/06/2021 Ph.D. Franklin Parrales

  23. Ingeniería de requerimientos Carrera de Software Iniciación • Como se empieza un proyecto? Algunas veces inicia por conversaciones informales, otras de manera mas formal; normalmente como resultado importante de una necesidad • En esta parte, los ingenieros de software realizan preguntas “libres de contexto” establecer un entendimiento determinar las personas que quieren una solución, la naturaleza de la solución, y la efectividad de las colaboraciones y comunicaciones preeliminares que se generan entre el consumidor y el desarrollador (generales), básico para del problema, 23 17/06/2021 Ph.D. Franklin Parrales

  24. Ingeniería de requerimientos Carrera de Software Obtención de Requerimientos • Se refiere a definir formalmente los requerimientos de la solución. Es difícil porque como ya se ha visto: – Hay problemas de definición de alcances – Hay problemas de entendimiento entre los involucrados – Hay problemas de volatilidad (los requerimientos cambian con el tiempo) 24 17/06/2021 Ph.D. Franklin Parrales

  25. Ingeniería de requerimientos Carrera de Software Elaboración • Esta actividad expande y refina la información obtenida en la tarea de iniciación • Se enfoca en realizar modelos técnicos refinados de las funciones del software, características y limitantes. • Es básicamente una función de modelado. Se conduce a través de la definición de escenarios del usuario que describen la interacción del usuario final con el sistema • Se define el dominio del problema desde varios puntos de vista: información, funciones y comportamiento 25 17/06/2021 Ph.D. Franklin Parrales

  26. Ingeniería de requerimientos Carrera de Software Negociación • Los usuarios y consumidores normalmente piden mas de lo que se puede hacer con los recursos con que se cuenta. • Casi siempre diferentes involucrados (stakeholders) piden cosas diferentes, por lo que hay que conciliar intereses a través de negociaciones. • Hay varias maneras para negociar, y depende de la cultura de la organización y tamaño del proyecto 26 17/06/2021 Ph.D. Franklin Parrales

  27. Ingeniería de requerimientos Carrera de Software Especificación • Especificación significa diferentes cosas para diferentes personas en el área de Ing. de software. • Este es el producto de trabajo final de la ingeniería de requerimientos. • Sirve como base para actividades subsecuentes. • Describe la función y desempeño de un sistema y las restricción que tiene. • Hay muchas técnicas para escribir especificaciones: diagramas, narraciones en prosa, modelos matemáticos, dibujos, etc. 27 17/06/2021 Ph.D. Franklin Parrales

  28. Ingeniería de requerimientos Carrera de Software Validación • El producto generado por la ingeniería de requerimientos debe ser evaluado en términos de congruencia y calidad. Se debe asegurar que la especificación concuerda usuario y que no es ambigua. Deben detectarse y corregirse errores, omisiones e inconsistencias con respecto establecidos en el proyecto. • El mecanismo común de validación es la revisión técnica formal. con las expectativas del • a los estándares 28 17/06/2021 Ph.D. Franklin Parrales

  29. Ingeniería de requerimientos Carrera de Software Administración de requerimientos Actividades que ayudan al equipo de trabajo a identificar, controlar y seguir los requerimientos y cambios que ocurren en ellos a través de todo el proceso de desarrollo. La administración empieza con requerimiento. Posteriormente se generan tablas que permitirán darles seguimiento. Algunas de éstas son: – Tablas de características – Tablas de fuentes – Tablas de dependencias – Tablas de subsistemas – Tablas de interfaces • la identificación de cada • 29 17/06/2021 Ph.D. Franklin Parrales

  30. Ingeniería de requerimientos Carrera de Software Unidad 1 Lección 2 Requerimientos Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Ingeniería de Requerimientos 30 17/06/2021 Ph.D. Franklin Parrales

  31. Ingeniería de requerimientos Carrera de Software Contenido • Requerimientos – Definición – Tipos – Importancia – División – Características – Dificultades para definir requerimientos – Formas de documentar los requerimientos – Lenguajes y modelos para representar los requerimientos 31 17/06/2021 Ph.D. Franklin Parrales

  32. Ingeniería de requerimientos Carrera de Software Requerimiento ( = requisito) • Atributo sistema • Un enunciado que identifica una capacidad, característica, un factor de calidad del lograr la utilidad esperados por el usuario o cliente. necesario de un una sistema para valor y 32 17/06/2021 Ph.D. Franklin Parrales

  33. Ingeniería de requerimientos Carrera de Software ¿Qué es un Requerimiento? • Es un rango de instrucciones abstractas de alto nivel de un servicio o de un sistema, limitado a detallar una especificación funcional matemática. • Así es inevitable como los Requerimientos pueden servir en una función dual – Puede ser la base para una declaración de un contrato, por lo tanto, interpretación. – Puede ser la base para el contrato en sí, por lo tanto, debe ser definido en detalle. – Ambas declaraciones Requerimientos. deber estar abierto a serán llamadas 33 17/06/2021 Ph.D. Franklin Parrales

  34. Ingeniería de requerimientos Carrera de Software Requisitos vs. Diseño • Requisitos definen el Qué (el problema) del sistema • El Diseño define el Cómo (la solución) 34 17/06/2021 Ph.D. Franklin Parrales

  35. Ingeniería de requerimientos Carrera de Software Requisitos y diseño • En principio, los requisitos deben indicar lo qué el sistema debe hacer y el diseño debe describir cómo lo debe hacer • En la práctica, es prácticamente imposible excluir toda la información de diseño al especificar en un nivel adecuado los requisitos de software. – La arquitectura del sistema puede ser diseñada para estructurar los requisitos. – El sistema puede interactuar con otros sistemas que generan requisitos de diseño. – El uso de una arquitectura especifica para satisfacer los requisitos no funcionales puede ser un requisito. 35 17/06/2021 Ph.D. Franklin Parrales

  36. Ingeniería de requerimientos Carrera de Software Contenido • Requerimientos – Definición – Tipos – Importancia – División – Características – Dificultades para definir requerimientos – Formas de documentar los requerimientos – Lenguajes y modelos para representar los requerimientos 36 17/06/2021 Ph.D. Franklin Parrales

  37. Ingeniería de requerimientos Carrera de Software Importancia • El establecer requerimientos está relacionado con las actividades del cliente para el Software. • Los errores en los usualmente muy caros de corregir una vez desarrollado el sistema. • La revisión de requerimientos debe involucrar al cliente y al staff de contratistas para validar los requerimientos del sistema. requerimientos son 37 17/06/2021 Ph.D. Franklin Parrales

  38. Ingeniería de requerimientos Carrera de Software Costos de errores en los requisitos • Costo de corregir un error en los requisitos (Boehm-Papaccio,1988) 38 17/06/2021 Ph.D. Franklin Parrales

  39. Ingeniería de requerimientos Carrera de Software Importancia • La importancia de tener requisitos de calidad radica en: – Involucran del 10 al 15% del coste total del proyecto. – Un error en los requisitos puede ser de 10 hasta 100 veces más costoso que un error en el código. – Una equivocación en la etapa de requisitos se arrastra en las demás fases. 39 17/06/2021 Ph.D. Franklin Parrales

  40. Ingeniería de requerimientos Carrera de Software Importancia • Por estas razones los requerimientos deben tener las siguientes características: – Ser una combinación requisitos (necesidades) personas (stakeholders) que pertenecen a diferentes niveles de una organización y entorno en donde se operará el software. – Deben ser verificables. – Deben ser lo más claros que se pueda y cuantificables en medida de lo posible. compleja de de los diferentes 40 17/06/2021 Ph.D. Franklin Parrales

  41. Ingeniería de requerimientos Carrera de Software Contenido • Requerimientos – Definición – Tipos – Importancia – División – Características – Dificultades para definir requerimientos – Formas de documentar los requerimientos – Lenguajes y modelos para representar los requerimientos 41 17/06/2021 Ph.D. Franklin Parrales

  42. Ingeniería de requerimientos Carrera de Software Requisitos - Abstracción • La forma de un requisito puede variar desde una oración con un alto nivel de abstracción hasta funcional matemática. • Posibles contextos de un requisito: – Puede ser la base de una oferta para un contrato— por lo tanto debe estar abierto a la interpretación. – Puede ser la base para un contrato— por lo tanto debe ser definido detalladamente. una especificación 42 17/06/2021 Ph.D. Franklin Parrales

  43. Ingeniería de requerimientos Carrera de Software Tipos de requisitos - Abstracción • Requisitos de usuario – Son declaraciones en lenguaje natural, además de diagramas de los servicios que proporciona el sistema y sus limitaciones operativas. Escritos para los clientes. • Requisitos del sistema – Un documento estructurado descripciones detalladas servicios y restricciones sistema. Define lo que se debe implementar, podría ser parte de un contrato entre el cliente y el empresario. que las establece funciones, de operacionales del 43 17/06/2021 Ph.D. Franklin Parrales

  44. Ingeniería de requerimientos Carrera de Software Tipos de requisitos - Abstracción • Es necesario escribir los requisitos utilizando diferentes niveles de abstracción porque diferentes lectores los usan de diferente forma. Gerentes del cliente Usuarios finales del sistema Ingenieros del cliente Gerentes de los contratistas Arquitectos del sistema Requerimientos del usuario Requerimientos del sistema Usuarios finales del sistema Ingenieros del cliente Arquitectos del sistema Desarrolladores de software 44 17/06/2021 Ph.D. Franklin Parrales

  45. Ingeniería de requerimientos Carrera de Software Otros tipos de información de requisitos • Requisitos del dominio – Se derivan del dominio de aplicación del sistema y no de las necesidades específicas de los usuarios. • Requisitos del negocio – Un objetivo de alto nivel de una organización que desarrolla un producto o de un cliente que lo compra. • Regla de negocio – Una política, guía, estándar o regulación que define o restringe algún aspecto del negocio. • Requisito de interfaz externa – Una descripción de una conexión entre un sistema de software y un usuario, otro sistema de software o un dispositivo de hardware. 45 17/06/2021 Ph.D. Franklin Parrales

  46. Ingeniería de requerimientos Carrera de Software Otros tipos de información de requisitos • Característica (feature) – Una o más capacidades relacionadas de forma lógicas que proveen valor al usuario y son descriptas como un conjunto de requisitos funcionales. Ejemplo: los favoritos del navegador. • Requisito funcional – Una descripción de lo que el sistema debe hacer bajo condiciones específicas. • Requisitos no funcionales – Una descripción de una propiedad o característica que un sistema debe poseer o una restricción que debe respetar. • Atributo de calidad – Un tipo de requisito no funcional que describe una característica de servicio o desempeño de un producto. 46 17/06/2021 Ph.D. Franklin Parrales

  47. Ingeniería de requerimientos Carrera de Software Contenido • Requerimientos – Definición – Tipos – Importancia – División – Características – Dificultades para definir requerimientos – Formas de documentar los requerimientos – Lenguajes y modelos para representar los requerimientos 47 17/06/2021 Ph.D. Franklin Parrales

  48. Ingeniería de requerimientos Carrera de Software División • Podemos identificar dos divisiones de requisitos: - Requisitos de usuario. - Requisitos de sistema. 48 17/06/2021 Ph.D. Franklin Parrales

  49. Ingeniería de requerimientos Carrera de Software Requisitos de Usuario • Los requisitos de usuario son frases en lenguajes natural junto a diagramas de los servicios que el sistema debe proporcionar, así como las restricciones bajo las que debe operar • Según Sommeville, son declaraciones, en lenguaje natural y en diagramas, de: – los servicios que se espera que el sistema provea, y – de las restricciones bajos las cuales se debe operar 49 17/06/2021 Ph.D. Franklin Parrales

  50. Ingeniería de requerimientos Carrera de Software Requisitos de sistema • Los requisitos de sistema determinan los servicios del sistema y las restricciones en detalle. Sirven como contrato. • Según Sommeville: – Establecen con detalle restricciones del sistema. – El documento de requerimientos del sistema, algunas veces denominado especificación funcional, debe ser preciso los servicios y 50 17/06/2021 Ph.D. Franklin Parrales

More Related