Software">
Captura Requisitos Cap2
Captura Requisitos Cap2
Captura Requisitos Cap2
Captura de requisitos
Fuentes de requisitos:
• Conocimiento del dominio de la aplicación
• Clientes / usuarios
• Entorno físico y organizativo
• Metas u objetivos
• Regulaciones, leyes, normas
Fuentes de requisitos
Técnicas de captura requisitos
•Entrevistas
•Observación
•Estudio de documentación
•Cuestionario
•Brainstorming
•Prototipado
Entrevista
•Se interroga de manera verbal al cliente/usuario acerca
de cómo quiere que funcione el sistema.
•Es la técnica mas usada y es inevitable durante las
primeras etapas de la captura de requisitos
•Las entrevistas forman parte de la documentación del
proyecto de desarrollo.
•Se pueden distinguir dos tipos fundamentales de
entrevistas, cada una de las cuales tiene su momento y
objetivo específico:
• Entrevista abierta
• Entrevista cerrada
Entrevista abierta
•Es aquella donde el conjunto de preguntas a realizar
está predeterminado, pero no es de obligatorio
cumplimiento.
•Se usan al principio, cuando se necesita obtener mucha
información
•Por ello, cuando durante la entrevista surja algo
interesante, se puede salir del guión y aprovechar el
filón de información.
•Se usan por lo general las preguntas abiertas donde el
entrevistado se siente libre de expresar sus opiniones.
Entrevista cerrada
•Es recomendable (obligatorio) no salirse del guión
pre-establecido.
•Acostumbran a usarse durante las últimas etapas
de la captura de requisitos, cuando gran parte de
los requisitos están identificados y se desea
confirmar, mas que averiguar, algún tipo de
información.
• Se usan preguntas cerradas (Ej: falso / verdadero)
para limitar las respuestas del entrevistado. Se
ahorra tiempo y se llega al punto.
Pasos para realizar entrevista
•Preparación
• Estudiar el dominio del problema
• Seleccionar a las personas a entrevistar
• Determinar el objetivo y contenido de las entrevistas
• Planificar la entrevista
•Realización, con toda la interacción social que supone.
•Análisis y consolidación
• Transcribir la entrevista completa a la brevedad posible
• Identificar requisitos
Observación in situ
•La observación de las personas en el trabajo ofrece una
experiencia de primera mano sobre la forma en que
funciona el sistema actual.
•Los datos se recogen en tiempo real y pueden tener un
elevado grado de validez
•Puede utilizarse la observación para verificar la
información de otras fuentes.
•Es una técnica cómoda y poco costosa de
complementar una entrevista abierta. Por ejemplo
dando un paseo por las instalaciones de la empresa.
Observación de tareas
•También denominada “análisis de tareas”
•Consiste en observar y documentar el modo en que
algún usuario realiza una tarea que el futuro sistema
tendrá que implementar.
•La secuencia de tareas, recursos usados, excepciones y
otros constituyen una valiosa fuente de información.
•Pero a la mayoría de las personas no les gusta ser
observadas y pueden comportarse de manera distinta a
la habitual.
Estudio de documentación
•Consiste en la lectura y asimilación de información
contenida en documentos, manuales de función,
estadísticas, etc.
•Los documentos son una valiosa fuente de
información.
•Es obligatorio estudiar la documentación antes de
las entrevistas, por ejemplo.
Cuestionarios
•Consiste en una serie de preguntas escritas.
•Es útil cuando es necesario obtener información de
muchos potenciales clientes/usuarios. También cuando
no es posible entrevistar a todos los clientes/usuarios
por restricciones espaciales o temporales.
•Si el cuestionario está bien diseñado, los resultados se
podrán analizar fácilmente.
•No es fácil crear un buen cuestionario.
•Las respuestas a los cuestionarios pueden ser lentos,
incompletos, falsos, etc.
Brainstorming
•Tiene como objetivo la generación de ideas.
•Se usa para inventar requisitos para productos
novedosos.
•Es una técnica grupal que requiere de una gran
seriedad para producir resultado adecuado.
Brainstorming (2)
Desarrollo de una sesión de brainstorming
◦ Preparación de la sesión (logística): quiénes, dónde,
cuánto tiempo, cómo registrar las ideas, etc.
◦ Generación de la “semilla” (tema)
◦ Generación libre de ideas
◦ Generar el mayor número de ideas
◦ Intentar completar las ideas de los demás (sobre todo las mas
avanzadas o interesantes)
◦ Nunca criticar o juzgar una idea
◦ Consolidación
◦ Revisar, descartar, priorizar
◦ Documentar
Prototipado
•Un prototipo es una versión inicial de un sistema
(demostración)
•Al ser una versión inicial de un sistema, el
prototipo debe construirse rápidamente, al mínimo
coste posible.
• Hay 2 alternativas:
• Maquetas: es habitual que se implementen en papel.
• Prototipos electrónicos implementados en
computadora a muy diversos niveles de completitud
(ventanas, funcionalidad, requisitos no funcionales).
Escritura de requisitos
La forma mas usual de especificar los requisitos es
utilizar una frase corta, que típicamente comienza por
“el sistema permitirᨅ” o alguna variante.
• El sistema permitirá registrar los datos identificados y
contables de los clientes.
• El sistema deberá generar un listado de facturas
impagadas por un periodo mayor de 15 días.
• La consulta de un artículo en stock debe proporcionar los
datos requeridos en un tiempo menor que 0.5 segundos.
• El sistema deberá funcionar en entornos Windows 7
• La tabla de mejores resultados no se borrará nunca al
apagar la computadora
Cómo escribir requisitos
Decir lo que el sistema no va a hacer: El sistema
determinará la cantidad de reposición óptima de los
productos en almacén. Sin embargo, el sistema no generará
de forma automática la orden de pedido a proveedores.
Indicar excepciones, restricciones: El sistema emitirá un
balance de cuentas los días laborables, esto es, de lunes a
sábado. El listado no se emitirá automáticamente, sino que
un operador dará la orden de impresión.
Proponer ejemplos: El sistema validará los datos de entrada.
Por ejemplo: si el código es incorrecto, el sistema emitirá un
mensaje de error inteligible y pedirá que se repita la
entrada.
Requisitos funcionales
•Describen qué debe hacer el sistema (la funcionalidad o
servicios del sistema.
• Deben tener 1 solo propósito
• Deben ser escritas de manera declarativa
• Deben ser especificadas cuantitativamente
• Deben tener el mismo nivel de abstracción
• Deben omitir detalles de implementación
• Las funciones clave deben ser identificadas
El sistema LIBSYS
Un sistema de biblioteca que proporciona una
única interfaz a una serie de bases de datos de
artículos en diferentes bibliotecas.
Los usuarios pueden buscar, descargar e imprimir
estos artículos para el estudio personal.
Algunos ejemplos de requisitos funcionales
•El usuario será capaz de buscar ya sea todo el conjunto
inicial de bases de datos o seleccionar un subconjunto de
ella.
•El sistema deberá ofrecer visualizadores adecuados para
que el usuario puede leer documentos del almacén de
documentos.
•A cada orden se asignará un identificador único (ORDER_ID)
que el usuario será capaz de copiar a una zona de
almacenamiento permanente de la cuenta.
Imprecisión en Requisitos
Los problemas surgen cuando los requisitos no son,
precisamente, establecidos.
Requisitos ambiguos puede ser interpretados de diferentes
maneras por los desarrolladores y usuarios.
Considere el término “visualizadores adecuados"
◦ La intención del usuario - Visor de propósito especial para
cada tipo de documento diferente;
◦ La interpretación del programador - Proporcionar un visor
de texto que muestra el contenido del documento.
Completitud y Consistencia de los
Requisitos
En principio, los requisitos deben ser completos y
consistentes.
Completos
◦ Deben incluir la descripción de todos los servicios
necesarios.
Consistentes
◦ No debe haber conflictos o contradicciones en las
descripciones de los servicios del sistema.
En la práctica, es imposible producir un documento de
requisitos completo y consistente.
Requisitos no funcionales
Definen las propiedades y restricciones del sistema, por
ejemplo, fiabilidad, tiempo de respuesta y requisitos de
almacenamiento.
También se pueden especificar los requisitos de proceso,
como un sistema CASE en particular, el método de
desarrollo o el lenguaje de programación.
Los requisitos no funcionales pueden ser más críticos que
los requisitos funcionales. Si éstos no se cumplen, el
sistema podría no usarse.
Tipos de requisitos no
funcionales
Requisitos del producto
◦ Requisitos que especifican que el producto entregado debe comportarse
de una manera particular, por ejemplo la velocidad de ejecución,
fiabilidad, etc.
Requisitos organizacionales
◦ Requisitos que son consecuencia de las políticas y procedimientos de
organización, por ejemplo, las normas de procesos utilizados, los
requisitos de implementación, etc.
Requisitos externos
◦ Requisitos que se derivan de factores que son externos al sistema y su
proceso de desarrollo, ejemplo, requisitos de interoperabilidad,
requisitos legislativos, etc.
Tipos de requisitos no
funcionales
Ejemplos de requisitos no funcionales
Requisitos del producto
La interfaz de usuario para LIBSYS se llevará a cabo como HTML
simple, sin marcos o applets de Java.
Requisitos organizacionales
El proceso de desarrollo de sistemas y documentos entregables se
ajustarán al proceso y entregables definidos en XYZCo-SP-STAN-95.
Requisitos externos
El sistema no revelará ninguna información personal sobre los
clientes, aparte de su nombre y número de referencia para los
operadores del sistema.
Ejemplos de requisitos no
funcionales (2)
Requisito de usabilidad
•Un usuario experimentado debe ser capaz de utilizar todas las
funciones del sistema tras un entrenamiento de 2 horas, tras el cual no
cometerá más de 3 errores diarios en media.
Requisito de rendimiento
•Cuando haya hasta 100 usuarios accediendo simultáneamente al
sistema, su tiempo de respuesta no será en ningún momento superior a
2 segundos.
Requisito de fiabilidad
•Ante un fallo en el software del sistema, no se tardará más de 5 minutos
en restaurar los datos del sistema (en un estado válido) y volver a poner
en marcha el sistema
Ejemplos de requisitos no
funcionales
Requisitos de implementación
•Hardware: El sistema se debe implementar sobre la infraestructura
existente en los laboratorios de computación de la empresa.
•Software: No existe posibilidad de adquirir licencias de software. La
aplicación deberá funcionar sobre Oracle.
• Requisitos funcionales
– Modelar con casos de uso
• Requisitos no-funcionales
– Son propiedades o restricciones del sistema
Artefactos a obtener en la captura
de requisitos
• casos de uso (modelo del negocio)
• actores
• prototipos de interfaces de usuario
• glosario
• diagrama de clases (modelo del dominio)
• descripción de la arquitectura
Artefacto: actor
• Es una idealización de una persona, sistema
software o hardware que interactúa con el
sistema ( o subsistema o clase).
• Los actores se encuentran fuera del sistema
y colaboran con él
• Los actores pueden heredar asociaciones de
otros actores (jerarquía de generalización)
Actor en UML
SÓLO SI ES EXTERNO AL
SISTEMA DE INFORMACIÓN
QUE SE ESTÁ MODELANDO
Artefacto: caso de uso
• El modelo de casos de uso captura el comportamiento de un
sistema, subsistema o clase, desde el punto de vista del usuario.
• El modelo de casos de uso particiona la funcionalidad del sistema
en transacciones significativas para los actores (usuarios
idealizados).
• Las piezas de funcionalidad se llaman casos de uso
• Un caso de uso describe una interacción con actores como una
secuencia de mensajes entre el sistema y uno o más actores.
Caso de Uso en UML
Realizar Matrícula
Estudiante
Realizar Matrícula
iniciador
Realizar Matrícula
iniciador
Estudiante Sistema
FLUJO DE EVENTOS:
• El estudiante introduce el DNI, …
• Se almacenan los datos de las matrículas en el sistema,…
iniciador
Realizar Matrícula
Estudiante
Escoger Asignaturas
Sistema
iniciador Bancario
Pagar Nóminas
Profesor
MCU Ejemplo 2
MCU Ejemplo 3
MCU Ejemplo 4
MCU Ejemplo 5
MCU Ejemplo 6
MCU Ejemplo 7
Relaciones entre actores en UML
iniciador
Solicitar Carnet
Deportivo
Estudiante Sistema
Bancario
¿ Y si los profesores
también pueden solicitar
carnet deportivo?
Errores típicos en CU
Estudiante Sistema
iniciador Bancario
Estudiante Sistema
Bancario
iniciador
Solicitar Carnet
Deportivo Prof.
iniciador
Solicitar Carnet
Deportivo
SOLUCIÓN 2:
(MEJOR)
generalización
entre actores
Profesor Estudiante
Relaciones entre CU: includes
<<includes>>
CASO DE CASO DE
USO A USO B
CASO DE CASO DE
USO A USO B
Realizar Matrícula
<<includes>>
Estudiante
Escoger Asignatura
<<includes>>
Identificarse
Profesor
Relaciones entre CU en UML
Reservar Libro
<<includes>>
Lector
Buscar Libro
por código
Realizar Matrícula
- No identificado
<<extends>>
Estudiante
Escoger Asignatura
- No identificado
<<extends>>
Identificarse
Profesor
Relaciones entre CU en UML
Ingresar Dinero
Cliente
Retirar Dinero
<<includes>>
Estudiante
Seleccionar
asignatura
<<includes>>
Empleado
Imprimir
informe
Cliente
Retirar Dinero
ESTUDIANTE: es una persona que está estudiando una carrera en la universidad UnivX.
Necesariamente debe estar matriculado en por lo menos una ASIGNATURA.
PROFESOR: es una persona que trabaja en UnivX y que imparte al menos una asignatura
de una determinada TITULACIÓN. Se encarga de evaluar a todos los estudiantes
matriculados en la asignatura y asignados a sus grupos. El profesor no puede ser
estudiante en la misma carrera en la que imparte clases, pero sí en otras.
ASIGNATURA: …
…
Ej. prototipo de interfaz de CU
Socio
Flujo de eventos normal:
El socio da su número de socio y la signatura del libro que desea
tomar en préstamo
El sistema comprueba si existe alguna copia no prestada de dicho
libro
Se comprueba que el socio no se pasa de su número máximo de
libros en préstamo
Se registra el nuevo préstamo con la fecha actual
Flujo de eventos alternativo:
Si no hay copias disponibles: EXTENDS RESERVAR LIBRO
Ejemplo prototipo de interfaz de CU
CASO DE USO: TOMAR COPIA LIBRO EN PRÉSTAMO
SIGNATURA LIBRO:
NÚMERO SOCIO: