0% encontró este documento útil (0 votos)
85 vistas54 páginas

Requerimientos Funcionales y No Funcionales

El documento presenta una introducción a los requerimientos funcionales y no funcionales para el desarrollo de software. Explica que los requerimientos funcionales describen la interacción del sistema con su entorno de manera independiente a su implementación, mientras que los no funcionales se refieren a características adicionales como rendimiento, seguridad y usabilidad. Además, detalla los pasos para levantar requerimientos funcionales a través de la identificación de actores, escenarios y casos de uso.

Cargado por

Maicol Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
85 vistas54 páginas

Requerimientos Funcionales y No Funcionales

El documento presenta una introducción a los requerimientos funcionales y no funcionales para el desarrollo de software. Explica que los requerimientos funcionales describen la interacción del sistema con su entorno de manera independiente a su implementación, mientras que los no funcionales se refieren a características adicionales como rendimiento, seguridad y usabilidad. Además, detalla los pasos para levantar requerimientos funcionales a través de la identificación de actores, escenarios y casos de uso.

Cargado por

Maicol Ramirez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Referencia requerimientos no

funcionales
 Object Oriented Software Engineering. Bernd
Bruegge y Allen [Link]. Prentice Hall, 2000
 Capítulo 4, pág. 100–106, 118-119

 Software Requirements. Karl. [Link].


Microsoft Press, 1999.
 Capítulo 9, pág. 153-162
 Capítulo 11

3
Agenda
 Requerimientos funcionales
 Levantamiento de requerimientos
 Casos de Uso (Requerimientos Funcionales)

 Requerimientos no funcionales
 Diferencias requerimientos funcionales, no
funcionales y pseudo requerimientos
 Clasificación de los requerimientos no funcionales
y pseudo requerimientos

4
Requerimientos
 Un requerimiento es una característica que el
sistema DEBE tener o es una restricción que el
sistema DEBE satisfacer para ser aceptada por el
cliente

 Levantamiento de requerimientos es la
especificación del sistema en términos que el cliente
entienda, de forma que se constituya en el contrato
entre el cliente y los desarrolladores

5
Requerimientos funcionales

 Describen la interacción entre el sistema y su


ambiente independientemente de su implementación

 El ambiente incluye al usuario y cualquier otro


sistema externo que interactúa con el sistema

6
Levantamiento de Requerimientos
 Para el levantamiento es preciso tener claros los
siguientes conceptos:
 Escenarios
 Describen un ejemplo del uso del sistema en
términos de una serie de interacciones entre el
usuario y el sistema  Instancia del Caso de Uso

 Casos de uso
 Colección de escenarios con éxito y fallo
relacionados, que describe a los actores utilizando
un sistema para satisfacer un objetivo

 Ambos deben ser escritos en lenguaje natural para


que sean entendidos por el usuario 7
Actividades
 Identificación de actores
 Diferentes tipos de usuario (no personas en particular)

 Identificación de escenarios
 Observar al usuario y desarrollar un conjunto de
escenarios detallados para la funcionalidad típica que
debe proveer el sistema

 Identificación de casos de uso


 Son abstracciones que describen todos los casos
posibles descritos en los escenarios
8
Actividades
 Identificación de relaciones entre casos de
uso
 Eliminarredundancias entre los casos de uso
 Hacer que la especificación del sistema sea
consistente

9
1. Identificación de actores (1)

 Un actor representa un conjunto coherente de roles,


que son jugados por una persona, un dispositivo de
hardware o incluso otro sistema al interactuar con
nuestro sistema

 Se identifican son roles, es decir usuarios que


realizan un conjunto de actividades definidas respecto
a la funcionalidad del sistema

10
1. Identificación de actores (2)

 ¿Cuáles usuarios están soportados por el sistema


para desarrollar su trabajo?

 ¿Cuáles usuarios ejecutan las funciones principales


del sistema?

 ¿Cuáles usuarios desempeñan funciones


secundarias, como mantenimiento y administración?

 ¿El sistema interactúa con hardware externo o


software?

11
1. Identificación de actores (3)

Actor

Relación del
actor con el
sistema

12
2. Identificación de escenarios (1)

 Un escenario es una descripción narrativa de cómo


las personas hacen las cosas y muestran como
tratarían de hacer uso del sistema

 El escenario es una descripción concreta, enfocada e


informalmente descrita de una única característica
del sistema desde el punto de vista de un único actor

13
2. Identificación de escenarios (2)
Nombre del Consultar listado de cursos
escenario

Instancias de los Pepito: Profesor


usuarios
participantes
Flujo de eventos 1. Pepito ingresa al sistema indicando sus datos.
2. El sistema indica un menú dando cada una de las
posibilidades del sistema.
3. Pepito indica que quiere sacar un listado de un curso.
4. El sistema solicita ingresar la información del código,
sección y semetre de la materia.
5. Pepito ingresa 21251, 02, 2001-1.
6. El sitema devuelve la información correspondiente al
curso indican el nombre, carnet, carrera y correo
electrónico de cada uno de los alumnos.

14
2. Identificación de escenarios (3)
 ¿Cuáles son las tareas que los actores requieren
desempeñar con el sistema?

 ¿Qué información requiere el actor? Quién crea esa


información? Puede ser modificada o eliminada? Por
quién?

 ¿Qué cambios externos necesita el actor que el


sistema debe informar? Qué tan seguido? Cuándo?

 ¿De cuáles eventos necesita el actor ser informado?


Con qué periodicidad?

15
3. Identificación de casos de uso (1)

 Capturar el comportamiento deseado del sistema en


desarrollo, sin tener que especificar cómo se
implementa este comportamiento
 Los casos de uso proporcionan un medio para que los
desarrolladores, los usuarios finales del sistema y los
expertos del dominio lleguen a una comprensión común
del sistema
 Un escenario es la instancia de un caso de uso
 Los casos uso no deben ser excesivamente genéricos
ni demasiado específicos
 Requerimiento funcional del sistema
16
3. Identificación de casos de uso (2)

 Es una descripción de un conjunto de secuencias de


acciones, incluyendo variantes, que ejecuta un sistema
para producir un resultado observable de valor para un
actor

 Se utilizan verbos por lo general en infinitivo que


representan las acciones del usuario con el sistema,
por lo que siempre debe existir un tipo de
usuario(actor) que lo utilice

17
3. Identificación de casos de uso (3)

Actor

El usuario 
interactúa  Caso de uso
directamente

18
3. Identificación de casos de uso (4)

 Relaciones entre actores y casos de uso representan


el flujo de la información durante el caso de uso

 Representa que funcionalidad puede ser realizada


por un actor en particular

 También es un proceso cíclico donde cada vez se


busca refinar cada vez más los casos de uso que
finalmente responderá a los requerimientos
funcionales

19
3. Identificación de casos de uso (5)

 El comportamiento de un caso de uso se puede


especificar describiendo un flujo de eventos en forma
textual
 Además de incluir cómo y cuándo empieza y acaba el
caso de uso
 Se incluye cuándo interactúa con los actores
 Indicar qué información se intercambian
 Se describe el flujo básico
 Se describe los flujos alternativos

20
3. Identificación de casos de uso (6)

 Flujo de eventos principal

1. El sistema pide al cliente un número de


identificación personal
2. El cliente introduce su id.
3. El sistema comprueba entonces la id. Para ver
si es válido
4. Si la identificación es válida el sistema acepta la
entrada

21
3. Identificación de casos de uso (7)

 Flujo de eventos excepcional


 El cliente puede cancelar una transacción en
cualquier momento, reiniciando el caso de uso
 No se efectúa ningún cambio en la cuenta del
cliente

 Flujo de eventos excepcional


 Paso 2: El cliente puede borrar su id en cualquier
momento antes de introducirlo

22
3. Identificación de casos de uso (8)

 Flujo de eventos excepcional


 Paso 4: Si el cliente introduce un id inválido, el
caso de uso vuelve a empezar
 Paso 4: Si el cliente introduce tres veces seguidas
un id inválido, el sistema cancela la transacción
completa, impidiendo que el Cliente utilice el
cajero durante 24 horas

23
4. Identificar relaciones entre
casos de uso (1)
 Inclusión  <<include>>
 Indica que en el flujo de eventos del caso de uso
base se incluye el comportamiento del otro caso
de uso
 Factorizar comportamiento común (NO hacer
descomposición funcional)
 SOLAMENTE se hace cuando la parte común es
utilizada por otro caso de uso o cuando es
utilizada por otro actor

24
4. Identificar relaciones entre
casos de uso (2)
Ejemplo  <<include>>:

25
4. Identificar relaciones entre
casos de uso (3)
Ejemplo  <<include>>:

<<include>>
Reintegro Cuenta Corriente

Cliente Verificar Operación

<<include>>

Reintegro Cuenta de Crédito

26
4. Identificar relaciones entre
casos de uso (4)
 Extensión  <<extends>>
 Un caso de uso extiende otro caso de uso, si el
caso de uso extendido incluye el comportamiento
del otro bajo ciertas condiciones
 Se utiliza para modelar la parte de un caso de uso
que el usuario puede ver como comportamiento
opcional del sistema
 Se separa el comportamiento opcional del
obligatorio

27
4. Identificar relaciones entre
casos de uso (5)

Ejemplo  <<extends>>:

28
4. Identificar relaciones entre
casos de uso (6)
Ejemplo  <<include>> y <<extends>>:

Identificación
<<include>>

Transferencia
Cliente

<<extend>>

Transferencia en Internet
29
4. Identificar relaciones entre
casos de uso (7)
 Generalización
 Cuando algunos casos de uso tienen algo en
común y puede ser abstraído a otro, mucho más
general
 El caso de uso hijo hereda el comportamiento y el
significado del caso de uso padre
 El hijo puede añadir o redefinir el comportamiento
del padre
 El hijo puede ser colocado en cualquier lugar
donde aparezca el padre
30
4. Identificar relaciones entre
casos de uso (8)
Ejemplo  Generalización:

31
4. Identificar relaciones entre
casos de uso (9)

 Comúnmente se utiliza la generalización para actores


y no para casos de uso

 Los superactores y subactores interactúan con el


caso de uso
 Existe una descripción considerable común entre
los subactores que de otra manera se duplicaría

32
Ejemplo Diagrama de Casos de Uso

33
Documentación de un Caso de Uso (1)
Identificador: Indispensable/Deseable Prioridad

Nombre Caso de Uso:


Autor:
Fecha
Categoría (Visible/No visible): Actores involucrados:
Resumen:
Curso Básico Eventos:
Caminos Alternativos:
Caminos de Excepción:
Puntos de Extensión:
Pre - Condiciones:
Post- Condiciones:
Criterios de Aceptación
Borrador de Interfaz Gráfica

34
Documentación de un Caso de Uso (2)

 Identificación del caso de uso: Única


 Indispensable/Desable: Necesidad del requerimiento
 Prioridad: Alta/Media/Baja definida por el usuario
 Nombre de caso de uso: Iniciar con un verbo en
infinitivo

35
Documentación de un Caso de Uso (3)

 Autores: Persona(s) que elabora(ron) el formato


 Fecha: Fecha de elaboración del documento
 Descripción: Describe la interacción que ocurre en el
caso de uso (contexto)
 Curso básico de eventos: Describe los pasos que los
actores y el sistema deben seguir para completar la
meta del caso de uso (No ocurre ningún error)

36
Documentación de un Caso de Uso (4)

 Caminos alternativos: Camino correcto que ocurre


como parte integral del caso de uso
 Caminos de excepción: Muestran procesamiento no
común, en especial cuando ocurren errores
 Puntos de extensión: Cuando se utiliza la relación de
extends. Indica en que punto exacto se extiende la
funcionalidad bajo ciertas condiciones

37
Documentación de un Caso de Uso (5)

 Precondiciones: Cosas que han debido ocurrir antes


de iniciar la interacción. Parte del contrato entre el
caso de uso y el mundo de afuera.
 Postcondición: Cuando el caso de uso termina
exitosamente se debe satisfacer.
 Criterios de aceptación: Condiciones para que el
cliente acepte el requerimiento como válido.
 Borrador de interfaz: Prototipo que muestre como se
observará el requerimiento

38
Ejemplo: La Tienda de Discos

39
40
Requerimientos no funcionales

 Describen aspectos del sistema que son visibles por


el usuario que no incluyen una relación directa con el
comportamiento funcional del sistema

 Los requerimientos no funcionales incluyen


restricciones como el tiempo de
respuesta(desempeño), la precisión, recursos
consumidos, seguridad, etc.

41
Pseudo Requerimientos

 Son requerimientos impuestos por el cliente que


restringen la implementación del sistema.
 Ejemplos:
 Lenguaje de implementación
 Plataforma en que el sistema debe ser
implementado
 Requerimientos del proceso y documentación
(utilización de un lenguaje formal)

42
Requerimientos no funcionales
 Requerimientos de Interfaz externa
 Interfaz de usuario
 Estándar de GUI

 Distribución de la pantalla

 Restricciones de resolución

 Estándares de botones, funciones o enlaces de


navegación que aparecen en cada ventana
 Teclas “shortcut”

 Estándares de mensajes de error

43
Requerimientos no funcionales
 Requerimientos de Interfaz externa
 Interfaces de hardware
 Interfaces entre componentes de hardware y
software del sistema
 Ejemplos

 Periféricos soportados

 Naturaleza de la información

 Protocolos de comunicación a utilizar

44
Requerimientos no funcionales
 Requerimientos de Interfaz externa
 Interfaces de Software
 Conexiones entre el producto y software
externo ( identificado por nombre y versión)
 Ejemplo

 Bases de datos

 Sistemas operativos

 Legacy

 Identificar la información que comparten los


componentes
45
Requerimientos no funcionales
 Requerimientos de desempeño
 Describir el desempeño para los escenarios
 Describir el volumen o tiempo de utilización para
saber que tan importante es.
 Especificar el número de usuarios concurrentes
 Especificar el número de operaciones
concurrentes
 Tiempos de respuesta
 Restricciones de tiempo para sistemas de tiempo
real

46
Requerimientos no funcionales

 Requerimientos de tolerancia a fallas (safety)


 Posibles pérdidas de información
 Daño de información
 Indicar acciones potencialmente peligrosas que
deben ser prevenidas
 Identificar políticas de mantenimiento de
información
 Identificar regulaciones

47
Requerimientos no funcionales

 Requerimientos de seguridad
 Protección de la información
 Utilización del producto
 Definir la autenticación o autorización del ingreso
los usuarios

48
Requerimientos no funcionales
 Requerimientos de calidad del software (usuario)
 Disponibilidad
 Eficiencia en el manejo de recursos
 Flexibilidad para adicionar requerimientos al
producto
 Integridad
 Protegerse ante el daño de información

 Protección ante virus

 Proteger información importante

49
Requerimientos no funcionales
 Requerimientos de calidad del software(usuario)
 Interoperabilidad
 Confiabilidad
 Robustez
 Usabilidad
 “Amigable al usuario”

 Instalación

50
Requerimientos no funcionales
 Requerimientos de calidad del software
(desarrollador)
 Mantenibilidad
 Estándares de documentación

 Indentación

 Metodología de diseño

 Estructura de directorios

 Documentos de diseño

51
Requerimientos no funcionales
 Requerimientos de calidad del software
(desarrollador)
 Portabilidad
 Reusabilidad
 Facilitar pruebas

52
Requerimientos no funcionales
 Requerimientos operación
 No aumentan la capacidad funcional
 Permiten un mejor uso
 Deshacer, rehacer, copiar, pegar

 Configuración

 Barras de herramientas, configurar menús,


cambiar font
 Sistema de ayuda

53
Requerimientos no funcionales
 Restricciones de diseño relación con pseudo
requerimientos
 Estilo de arquitectura
 Plataforma de operación
 Herramientas
 Restricciones de implementación relacionados con
pseudo requerimientos
 Lenguaje
 Librerías
 Plataforma de implementación

54
Glosario términos de negocio

55
Documentación del
Requerimiento no Funcional

Nombre

Tipo: Necesario / no necesario Crítico: Si/No

Descripción

Criterios de Aceptación

56

También podría gustarte