Está en la página 1de 32

Especificacin de requerimientos

Diseo de bases de datos

berzal@acm.org

Documento de especificacin del sistema


1. 2. 3. 4. 5. 6. 7. 8.

Definicin del problema Descripcin funcional Restricciones Diagramas de flujo de datos Modelo de datos Diccionario de datos Casos de uso Documentos adicionales
1

berzal@acm.org

Especificacin de requerimientos
Requerimientos Definicin Requerimientos funcionales y no funcionales Especificacin de requisitos en lenguaje natural Casos de uso Documento de especificacin del sistema
2

berzal@acm.org

Requerimientos
Los requerimientos/requisitos de un sistema describen los servicios que ha de ofrecer el sistema y las restricciones asociadas a su funcionamiento.

Requerimientos: Propiedades o restricciones determinadas de forma precisa que deben satisfacerse.

berzal@acm.org

Requerimientos funcionales y no funcionales


Requerimientos funcionales: Expresan la naturaleza del funcionamiento del sistema (cmo interacciona el sistema con su entorno y cules van a ser su estado y funcionamiento).

NOTA: A veces, tambin es conveniente indicar lo que no har el sistema.


4

berzal@acm.org

Requerimientos funcionales y no funcionales


Requerimientos no funcionales: Restricciones sobre el espacio de posibles soluciones. Rendimiento del sistema: Fiabilidad, tiempo de respuesta, disponibilidad Interfaces: Dispositivos de E/S, usabilidad, interoperabilidad Proceso de desarrollo: Estndares, herramientas, plazo de entrega
5

berzal@acm.org

Requerimientos funcionales y no funcionales


Los requisitos funcionales definen qu debe hacer un sistema.

Los requisitos no funcionales definen cmo debe ser el sistema.

berzal@acm.org

Requerimientos funcionales y no funcionales


A los requisitos no funcionales se les suele llamar coloquialmente cualidades del sistema [-ilities en [-ilities ingls] y pueden dividirse en dos categoras: categoras: Cualidades de ejecucin, ejecucin, como la seguridad o la usabilidad, usabilidad, observables en tiempo de ejecucin. ejecucin. Cualidades de evolucin, evolucin, como la testabilidad, mantenibilidad, extensibilidad o testabilidad, mantenibilidad, escalabilidad, escalabilidad, determinadas por la estructura esttica del software.
7

berzal@acm.org

Requerimientos funcionales y no funcionales


La distincin entre requerimientos funcionales y no funcionales no siempre resulta evidente.
Ejemplo: La seguridad puede interpretarse inicialmente como un requerimiento no funcional al principio. No obstante, su elaboracin puede conducir a nuevos requerimientos funcionales, como la necesidad de autentificar a los usuarios del sistema.

Ms all de si decidimos incluir este tipo de requisitos en una seccin u otra, lo importante es identificarlos correctamente.
8

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


Los requerimientos se suelen especificar en lenguaje natural, se expresan de forma individual (p.ej. esquemticamente), se organizan de forma jerrquica (a distintos niveles de detalle), a menudo, se numeran (para facilitar su gestin),
9

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


Los requerimientos han de ser claros y concretos (evitando imprecisiones y ambigedades) p.ej. Uso de puntos suspensivos, etctera concisos (sin rodeos ni figuras retricas), completos y consistentes, consistentes,
10

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


Los requerimientos han de indicar lo que se espera que haga el sistema (qu?), su justificacin (por qu ha de ser as? quin lo propuso?) y, en su caso, los criterios de aceptacin que sean aplicables (cmo se verifica su cumplimiento?).
11

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


Los requerimientos funcionales funcionales deben estar redactados de tal forma que sean comprensibles para usuarios sin conocimientos tcnicos avanzados (de Informtica, se entiende), deben especificar el comportamiento externo del sistema y evitar, en la medida de lo posible, establecer caractersticas de su diseo, deben priorizarse (al menos, se ha de distinguir entre requisitos obligatorios y requisitos deseables).
12

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


Los requerimientos no funcionales funcionales han de especificarse cuantitativamente, siempre que sea posible (para que se pueda verificar su cumplimiento).

13

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


MAL Para facilitar el uso del editor grfico, se podr activar y desactivar una rejilla que permitir alinear las figuras del diagrama. Cuando se ajuste la figura al tamao de la pantalla, se reducir el nmero de lneas de la rejilla para que no se dificulte la visualizacin del diagrama. Por qu? Amalgama de varios requisitos.
14

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


BIEN El editor permitir el uso de una rejilla de lneas horizontales y verticales que aparecern dibujadas tras el diagrama.
Justificacin: Justificacin: La rejilla facilita la creacin de diagramas cuidados en los que las figuras se puedan alinear con facilidad (Manual Prctico de Usabilidad, seccin 15.3).

Por qu? Preciso, conciso y justificado correctamente.

15

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


MAL El sistema ser lo ms fcil de utilizar posible. El sistema proporcionar una respuesta rpida al usuario. El sistema se recuperar automticamente tras producirse un fallo. Por qu? Objetivos generales, vagos y abiertos a distintas interpretaciones.

16

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


BIEN Un usuario experimentado debe ser capaz de utilizar todas las funciones del sistema tras un entrenamiento de 2 horas, tras el cual no cometer ms de 3 errores diarios en media. Cuando haya hasta 100 usuarios accediendo simultneamente al sistema, su tiempo de respuesta no ser en ningn momento superior a 2 segundos.
17

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


BIEN Ante un fallo en el software del sistema, no se tardar ms de 5 minutos en restaurar los datos del sistema (en un estado vlido) y volver a poner en marcha el sistema. Por qu? Requisitos verificables.

18

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


PROBLEMAS HABITUALES: La existencia de un requerimiento ha de estar debidamente justificada (debemos saber por qu es un requisito del sistema). Un requerimiento es, a veces, difcil de verificar (especialmente, si es un requisito no funcional). Adems, si somos incapaces de especificarlo, cmo sabemos que realmente es un requisito?
19

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


EJEMPLO: REQUERIMIENTOS
FUNCIONALES
Matriculacin La matrcula ser realizada de forma interactiva. Se le preguntar al alumno cul es el plan de estudios en que desea matricularse (pueden ser varios). Se podr generar una copia impresa de la matrcula (sin valor oficial) en el ordenador desde donde se realice el proceso de matriculacin. Se podr generar el impreso de pago debidamente cumplimentado. Para la matriculacin se consultarn los datos del expediente y se realizarn las validaciones necesarias, descritas a continuacin Pago de matrcula: La aplicacin generar un impreso para que el alumno realice el pago correspondiente a la matrcula en 1 2 plazos (segn las fechas establecidas). Si el alumno tiene matrculas de honor de cursos anteriores o disfruta de algn tipo de beca, la aplicacin deber calcular automticamente los descuentos correspondientes

Organizados jerrquicamente y desglosados en requisitos individuales

20

berzal@acm.org

Especificacin de requerimientos en lenguaje natural


EJEMPLO: REQUERIMIENTOS
NO FUNCIONALES

Interfaces Hardware: El sistema se debe implementar sobre la infraestructura existente en las aulas de prcticas de la E.T.S. Ingeniera Informtica. Software: No existe posibilidad de adquirir licencias de software. La aplicacin deber funcionar sobre Oracle.

21

berzal@acm.org

Casos de uso
Los casos de uso Describen el modo en que un actor interacta con el sistema (descripcin de un rol en lenguaje natural). Narran el comportamiento dinmico del sistema desde un punto de vista concreto (el del actor). Pueden expresar tanto requerimientos funcionales como no funcionales.
22

berzal@acm.org

Casos de uso
Los casos de uso Son muy tiles para explicar el funcionamiento del sistema, priorizar requerimientos cuando el sistema se desarrolla de forma incremental, elaborar manuales de usuario y especificar pruebas de aceptacin. Mejoran la trazabilidad de los requerimientos durante el proceso de desarrollo de software. Se pueden desarrollar en paralelo con los requerimientos del sistema de forma iterativa.

23

berzal@acm.org

Casos de uso
Dependiendo de la situacin, los casos de uso se pueden especificar con distinto grado de detalle: Especificacin textual de un caso de uso
(enumeracin de pasos del caso de uso).

Especificacin esencial de un caso de uso


(eliminando todos los detalles no estrictamente necesarios).

Especificacin detallada de un caso de uso


(utilizando una plantilla para no olvidarnos de nada).
24

berzal@acm.org

Casos de uso
Especificacin textual de un caso de uso (1/2)
Actor Rol Profesor Consultar estadsticas

El profesor ejecuta el programa de consulta de estadsticas. Se le pide su identificativo (login) y palabra clave de acceso (password). El sistema verifica la identificacin del usuario. Si la identificacin es positiva, se presenta una lista con las estadsticas disponibles: N de alumnos y porcentaje de repetidores de sus asignaturas. Clasificacin de alumnos por nota en cada asignatura.
25

berzal@acm.org

Casos de uso
Especificacin textual de un caso de uso (2/2)
Actor Rol Una vez que el profesor ha seleccionado una de las estadsticas, el programa presenta los datos correspondientes a la misma, agrupando la informacin por asignaturas y, al final, para todas sus asignaturas en conjunto. Al profesor se le da la opcin de imprimir la estadstica. Cuando el profesor termina de ver la estadstica, se presenta de nuevo la lista de estadsticas disponibles. Si no desea ver otra estadstica, termina la ejecucin de la aplicacin. Profesor Consultar estadsticas

26

berzal@acm.org

Casos de uso
Especificacin esencial de un caso de uso Consulta de estadsticas
Profesor El profesor se identifica. Sistema El sistema autentifica al profesor y le ofrece una lista de estadsticas disponibles. El profesor selecciona una de las opciones disponibles. El sistema presenta un informe con los datos solicitados. Si as lo desea, el profesor imprime el informe.

27

berzal@acm.org

Casos de uso
Especificacin detallada de un caso de uso (1/3)
Nombre Descripcin Dependencias Actores Precondiciones Postcondiciones Consulta de estadsticas Se permite a los profesores consultar las estadsticas correspondientes a sus asignaturas Autentificacin de usuarios Profesor (principal e iniciador) -

28

berzal@acm.org

Casos de uso
Especificacin detallada de un caso de uso (2/3)
Escenario principal Profesor 1. El profesor se identifica. Sistema

2. El sistema autentifica al profesor y le ofrece una lista de estadsticas disponibles. 3. El profesor selecciona una de las opciones. 4. El sistema presenta un informe con los datos solicitados. 5. Si as lo desea, el profesor imprime el informe.
29

berzal@acm.org

Casos de uso
Especificacin detallada de un caso de uso (3/3)
Alternativas 2. Si, tras un tercer intento, la autentificacin no se realiza con xito, se guarda la incidicencia en un registro y se impide volver a acceder a la aplicacin desde la misma IP durante 15 minutos. El sistema debe estar preparado para aceptar 100 sesiones simultneas de profesores consultando sus estadsticas sin degradar su rendimiento ms de un 50% con respecto a un usuario nico.
30

Observaciones Requisitos no funcionales

berzal@acm.org

Apartados del documento de especificacin del sistema


1. 2. 3. 4. 5. 6. 7. 8.

Definicin del problema. Descripcin funcional


(lista de requerimientos funcionales)

Restricciones
(requerimientos no funcionales)

Diagramas de flujo de datos Modelo de datos


(diagrama E/R, CASE*Method o diagrama de clases UML) CASE*Method

Diccionario de datos Casos de uso Documentos adicionales


(p.ej. modelos de informes y formularios)
31

berzal@acm.org