Requerimientos

Download Report

Transcript Requerimientos

Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
1
Una condición o necesidad de un
usuario para resolver un problema
o alcanzar un objetivo.
Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
2
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
Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
3
Una declaración abstracta de alto
nivel de un servicio que debe
proveer el sistema o una restricción
de éste.
Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
4
Una definición matemática
detallada y formal de una función
del sistema
Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
5
Es un aspecto del contenido o
comportamiento del producto,
requerido o deseado por el cliente
Ingeniería de Software
Ingeniería de Requerimientos
El Concepto de Requerimiento
6
Característica o restricción de un
sistema
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
1
No son obvios.
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
2
Provienen de diversas y variadas fuentes.
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
3
Existen muchos tipos de requerimientos y
diferentes niveles de detalle
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
4
La cantidad de requerimientos puede
hacer un proyecto inmanejable
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
5
Nunca son iguales. Algunos son más
difíciles, más riesgosos o más
importantes que otros
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
6
Los requerimientos están relacionados
unos con otros, y a su vez están sujetos a
un contexto
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
7
Un requerimiento puede cambiar a lo
largo del ciclo de desarrollo (son
inestables)
Ingeniería de Software
Ingeniería de Requerimientos
Inconvenientes para definir Requerimientos
8
Son difíciles de cuantificar, ya que cada
conjunto de requerimientos es particular
para cada proyecto.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
1. Necesario
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.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
2. Conciso
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.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
3. Consistente
Un requerimiento es consistente si no es
contradictorio con otro requerimiento.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
4. No Ambiguo
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.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
5. Verificable
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.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
6. Completo
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.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
7. Trazable
Un requerimiento es trazable cuando el
desarrollo para lograr su satisfacción admite
etapas que puedan ser verificadas.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
8. Representable
Un requerimiento es representable si puede
ser escrito en lenguaje natural o mediante
algún otro medio que permita comunicar su
sentido.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
9. Legible
Un requerimiento es legible cuando es fácil
de comprender.
Ingeniería de Software
Ingeniería de Requerimientos
Características Deseables de un Requerimiento
10. Realizable
Un requerimiento es realizable si con la
tecnología disponible y en el marco de un
proyecto se puede lograr su satisfacción.
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
1
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
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
2 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
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
3 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
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
4
Ingeniería de Requerimientos es el proceso
de descubrir, analizar, documentar y verificar
los servicios y restricciones del sistema
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
5
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
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
6
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
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
7
Proceso sistemático utilizado para derivar
una definición del sistema de software a ser
desarrollado
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
8
Proceso de descubrimiento, refinamiento,
modelado y especificación
Ingeniería de Software
Ingeniería de Requerimientos
Ingeniería de Requerimientos
8
Proceso de descubrimiento, refinamiento,
modelado y especificación
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
1. Entrevista
Pasos :
• Preparación
• Realización
• Documentación
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
1. Entrevista
¿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?
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
2. Cuestionarios o Cheklists
• Preguntas precisas
• Requiere dominio del problema
• Se recomienda organizar reuniones donde
se resuelvan en grupo
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
3. Glosarios
• Permite al equipo trabajar con un
lenguaje común.
• Más crítico en equipos disciplinarios
donde mismas palabras representan
conceptos diferentes.
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
4. Plantillas y Patrones
• Se escriben en lenguaje natural pero en
un formato estricto y debidamente
estructurado.
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
5. Lluvia de Ideas
• 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.
Ingeniería de Software
Ingeniería de Requerimientos
Técnicas Clásicas para obtener requerimientos
6. Etnografía
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.
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
1. Lenguaje Natural
• Narración del problema y la solución
requerida.
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
2. Mapas Conceptuales
• 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
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
2. Mapas Conceptuales
Infracción
Tiene única
Puede tener
Patente
Se obtiene en
Auto
Está registrada
Registro de Partes
Tiene
Municipalidad
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
3. Sketches y Storyboards
• 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)
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
4. Lenguaje Z
• 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
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
5. Ancora
•
•
•
•
Guiones y Diálogos.
Tablas y Glosarios.
Modelo de Datos Entidad - Relación.
Análisis de Puntos de Función.
Ingeniería de Software
5. Ancora
Ingeniería
de Requerimientos
Ingeniería de Software
5. Ancora
Ingeniería
de Requerimientos
Guión: Plan de Negocios
Pista : Gestión de Preincubación.
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.
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.
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
6. Prototipos
• Software no funcional que muestra
las interacciones del producto de
software a construir.
Ingeniería de Software
Ingeniería de Requerimientos
Representación de requerimientos
6. UML
• Lenguaje Unificado de Modelado
(Próxima Sesión...)