1. Ingeniería de Software
Ingeniería de Requerimientos
Una condición o necesidad de un
usuario para resolver un
problema o alcanzar un objetivo.
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
2. 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
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
3. 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.
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
4. Ingeniería de Software
Ingeniería de Requerimientos
Una definición matemática
detallada y formal de una función
del sistema
Una definición matemática
detallada y formal de una función
del sistema
4
El Concepto de Requerimiento
5. Ingeniería de Software
Ingeniería de Requerimientos
Es un aspecto del contenido o
comportamiento del producto,
requerido o deseado por el cliente
Es un aspecto del contenido o
comportamiento del producto,
requerido o deseado por el cliente
5
El Concepto de Requerimiento
6. Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
Característica o restricción de un
sistema
Característica o restricción de un
sistema
6
8. Ingeniería de Software
Ingeniería de Requerimientos
Provienen de diversas y variadas
fuentes.
Provienen de diversas y variadas
fuentes.
2
Inconvenientes para definir Requerimientos
9. Ingeniería de Software
Ingeniería de Requerimientos
Existen muchos tipos de requerimientos
y diferentes niveles de detalle
Existen muchos tipos de requerimientos
y diferentes niveles de detalle
3
Inconvenientes para definir Requerimientos
10. Ingeniería de Software
Ingeniería de Requerimientos
La cantidad de requerimientos puede
hacer un proyecto inmanejable
La cantidad de requerimientos puede
hacer un proyecto inmanejable
4
Inconvenientes para definir Requerimientos
11. 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
Nunca son iguales. Algunos son más
difíciles, más riesgosos o más
importantes que otros
5
Inconvenientes para definir Requerimientos
12. 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
Los requerimientos están relacionados
unos con otros, y a su vez están sujetos
a un contexto
6
Inconvenientes para definir Requerimientos
13. Ingeniería de Software
Ingeniería de Requerimientos
Un requerimiento puede cambiar a lo
largo del ciclo de desarrollo (son
inestables)
Un requerimiento puede cambiar a lo
largo del ciclo de desarrollo (son
inestables)
7
Inconvenientes para definir Requerimientos
14. 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.
Son difíciles de cuantificar, ya que cada
conjunto de requerimientos es particular
para cada proyecto.
8
15. 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.
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. Necesario1. Necesario
16. 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 a
consultarlo en un futuro.
Un requerimiento es conciso si es fácil de leer
y entender. Su redacción debe ser simple y
clara para aquellos que vayan a
consultarlo en un futuro.
Características Deseables de un Requerimiento
2. Conciso2. Conciso
17. Ingeniería de Software
Ingeniería de Requerimientos
Un requerimiento es consistente si no es
contradictorio con otro requerimiento.
Un requerimiento es consistente si no es
contradictorio con otro requerimiento.
Características Deseables de un Requerimiento
3. Consistente3. Consistente
18. 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.
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 Ambiguo4. No Ambiguo
19. 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.
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. Verificable5. Verificable
20. 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.
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. Completo6. Completo
21. 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.
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. Trazable7. Trazable
22. 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.
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. Representable8. Representable
23. Ingeniería de Software
Ingeniería de Requerimientos
Un requerimiento es legible cuando es fácil
de comprender.
Un requerimiento es legible cuando es fácil
de comprender.
Características Deseables de un Requerimiento
9. Legible9. Legible
24. 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.
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. Realizable10. Realizable
25. 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
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
26. 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
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
27. 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
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
28. 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
Ingeniería de Requerimientos es el proceso
de descubrir, analizar, documentar y
verificar los servicios y restricciones del
sistema
4
29. 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
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
30. 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
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
31. 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
Proceso sistemático utilizado para derivar
una definición del sistema de software a ser
desarrollado
7
32. Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso de descubrimiento, refinamiento,
modelado y especificación
Proceso de descubrimiento, refinamiento,
modelado y especificación
8
33. Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
Proceso de descubrimiento, refinamiento,
modelado y especificación
Proceso de descubrimiento, refinamiento,
modelado y especificación
8
35. 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?
¿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. Entrevista1. Entrevista
36. Ingeniería de Software
Ingeniería de Requerimientos
• Preguntas precisas
• Requiere dominio del problema
• Se recomienda organizar reuniones
donde se resuelvan en grupo
• 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
2. Cuestionarios o
Cheklists
37. 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.
• 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. Glosarios3. Glosarios
38. Ingeniería de Software
Ingeniería de Requerimientos
• Se escriben en lenguaje natural pero en
un formato estricto y debidamente
estructurado.
• Se escriben en lenguaje natural pero en
un formato estricto y debidamente
estructurado.
Técnicas Clásicas para obtener requerimientos
4. Plantillas y Patrones4. Plantillas y Patrones
39. 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.
• 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 Ideas5. Lluvia de Ideas
40. 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.
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ía6. Etnografía
41. Ingeniería de Software
Ingeniería de Requerimientos
• Narración del problema y la solución
requerida.
• Narración del problema y la solución
requerida.
Representación de requerimientos
1. Lenguaje Natural1. Lenguaje Natural
42. 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
• 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 Conceptuales2. Mapas Conceptuales
43. Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
2. Mapas Conceptuales2. Mapas Conceptuales
Auto
PatenteTiene única
Municipalidad
Se obtiene en
Registro de Partes
Tiene
Infracción
Puede tener
Está registrada
44. 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)
• 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 Storyboards3. Sketches y Storyboards
45. 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
• 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 Z4. Lenguaje Z
46. 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.
• 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. Ancora5. Ancora
48. Ingeniería de Software
Ingeniería de Requerimientos5. Ancora5. Ancora
Guión: Plan de Negocios
Pista : 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 = Preincubado
T = Tutor
AD = 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.
49. Ingeniería de Software
Ingeniería de Requerimientos
• Software no funcional que muestra
las interacciones del producto de
software a construir.
• Software no funcional que muestra
las interacciones del producto de
software a construir.
Representación de requerimientos
6. Prototipos6. Prototipos
50. Ingeniería de Software
Ingeniería de Requerimientos
• Lenguaje Unificado de Modelado• Lenguaje Unificado de Modelado
Representación de requerimientos
6. UML6. UML