Está en la página 1de 32

Diseo de bases de datos

berzal@acm.org

Especificacin de requerimientos

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
ilities en
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
testabilidad,
, mantenibilidad,
mantenibilidad, extensibilidad o
escalabilidad,, determinadas por la estructura esttica
escalabilidad
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: La rejilla facilita la creacin de diagramas
Justificacin:
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

Profesor

Rol

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

Profesor

Rol

Consultar estadsticas





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.

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

Consulta de estadsticas

Descripcin
Dependencias

Se permite a los profesores consultar las


estadsticas correspondientes a sus asignaturas
Autentificacin de usuarios

Actores

Profesor (principal e iniciador)

Precondiciones

Postcondiciones

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

Observaciones
Requisitos
no funcionales

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

berzal@acm.org

Apartados del documento


de especificacin del sistema
1.
2.

Definicin del problema.


Descripcin funcional
(lista de requerimientos funcionales)

3.

Restricciones
(requerimientos no funcionales)

4.
5.

Diagramas de flujo de datos


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

6.
7.
8.

Diccionario de datos
Casos de uso
Documentos adicionales
(p.ej. modelos de informes y formularios)

31

También podría gustarte