[Php-avanzado] Requerimientos funcionales: Bibliotech v6.2
Fernando Pehuén Borsani
fpborsani en yahoo.com.ar
Lun Nov 4 15:20:04 ART 2013
Hola Profe!
Le paso la nueva revisión de los requerimientos:
-----------------
Comentarios:
-----------------
PB> -- Los estados ya no se muestran porque son manejados automáticamente
por el sistema. Simplemente según las acciones del empleado el sistema
asignará los estados.
LT> Ok. Entonces si estoy viendo un ejemplar en un listado por ejemplo, no
se puede saber en qué estado estará en ese momento?
El sistema no muestra listados de unidades con su estado. Por curiosidad,
¿en qué casos podría resultar útil?
LT> Estás seguro de que todos los libros de esta biblioteca tienen ISBN ???
Es posible que la biblioteca tengan libros sin isbn (una edición antigua,
1960 digamos). Voy a expandir el concepto del código identificador en el
diccionario para cubrir este problema.
LT> La devolución hace referencia a un Préstamo en vez de a un Ejemplar y a
un Socio??? Qué complicado!!!
Bueno, yo lo cambio, aunque si para calcular la devolución a tiempo el
sistema va a revisar el préstamo para captar la fecha en que se efectuó, no
sería lo correcto referenciar al préstamo y no a la unidad?
Otra solución sería configurar de esta manera la unidad: en el atributo
"disponible para préstamo" ponemos la fecha en que se prestó. Si la fecha
existe, no está disponible, si la fecha está vacía, esta disponible. ¿Qué
opina?
LT> No estoy seguro de entender esto: si un asociado repone una unidad que
perdió, no debería tener un número nuevo de unidad?
Me gusta más la idea de un reemplazo completo. Es como cuando en Stargate el
mayor Kowolski-de-un-universo-paralelo recibió misiones reemplazando al
mayor Kowolski-de-nuestro-universo, total era un equivalente suficientemente
exacto. =)
-------------
Cambios:
-------------
-- Expandida la definición del número identificador para libros previos a
1970.
-- RF 21.2 reescrito para contemplar pagos por adelantado.
-- RF 22 y 23: referencia redirigida a la unidad en vez de al préstamo.
-----------------------------------------------------------------------
Software Requirements Specification[SRS] Bibliotech v6.2
-----------------------------------------------------------------------
Requerimientos Funcionales[RF]:
01) El sistema debe gestionar editoriales.
02) El sistema debe gestionar autores.
03) El sistema debe gestionar géneros.
04) El sistema debe gestionar libros con su editorial[01], su(s)
autor(es)[02] y su género[03].
05) El sistema debe gestionar unidades de libros[04].
06) El sistema debe mostrar los sexos.
07) El sistema debe mostrar rangos de edad.
08) El sistema debe gestionar visitantes con su sexo[06] y rango de
edad[07].
09) El sistema debe registrar los votos de los visitantes[08] a los
libros[04].
10) El sistema debe gestionar comentarios de los visitantes[08] a los
libros[04].
11) El sistema debe registrar los votos de los visitantes[08] a los
comentarios[10].
12) El sistema debe registrar la popularidad del libro[04].
13) El sistema debe reportar la popularidad[12] de los libros[04]
mensualmente.
14) El sistema debe buscar libros[04].
14.1) Por ISBN
14.2) Por Editorial[01].
14.3) Por Autor[02].
14.4) Por título.
14.5) Por género[03].
15) El sistema debe mostrar tipos de documentos.
16) El sistema debe gestionar asociados con su sexo[06], rango de edad[07] y
tipo de documento[15].
17) El sistema debe calcular la confiabilidad de los asociados[16].
18) El sistema debe mostrar los meses del año.
19) El sistema debe inscribir cuotas de asociados[16].
20) El sistema debe informar al asociado del vencimiento de la cuota[19].
21) El sistema debe registrar el préstamo de unidades[05] a asociados[16].
21.1) El sistema debe detener un nuevo préstamo si excede la
confiabilidad[17].
21.2) El sistema debe detener un nuevo préstamo si la cuota[19] es
anterior al mes en curso.
21.3) El sistema debe detener un nuevo préstamo si no hay unidades[05]
disponibles.
22) El sistema debe registrar devoluciones.
23) El sistema debe registrar extravíos.
23.1) El sistema debe registrar readquisiciones.
24) El sistema debe registrar el mantenimiento de unidades[05].
25) El sistema debe gestionar el stock de unidades[05].
25.1) El sistema debe comprobar si ya existe un libro[04] cuando se den
de alta unidades[05].
25.2) El sistema debe sumar uno a stock:cantidad y stock:disponibles al
efectuarse el alta de unidad[05].
25.3) El sistema debe restar uno a stock:disponibles al efectuarse un
préstamo[21].
25.4) El sistema debe sumar uno a stock:disponibles por
devoluciones[22].
25.5) El sistema debe restar uno a stock:cantidad por extravíos[23].
25.6) El sistema debe sumar uno a stock:cantidad y stock:disponibles por
readquisiciones[23.1].
25.7) El sistema debe restar uno a stock:disponible al enviarse la
unidad[05] a mantenimiento[24].
25.8) El sistema debe restar uno a stock:cantidad por destrucción de la
unidad[05] en mantenimiento[24].
25.9) El sistema debe sumar uno al stock:disponible al volver la
unidad[05] de mantenimiento[24].
26) El sistema debe informar al asociado[16] del vencimiento del
préstamo[21] un día antes del vencimiento.
27) El sistema debe mostrar los préstamos[21] vencidos hace más de una
semana.
Requerimientos No Funcionales[RNF]:
- Gestionar a los empleados.
-------------
Diccionario:
-------------
--Editorial: Casa editora.
Atributos: nombre.
--Autores: nombre(s) de la(s) persona(s) que escribe(n) el libro. Un libro
puede tener varios autores.
Atributos: nombre.
--Género: categorías en que clasificar de forma excluyente las obras
literarias atendiendo a su contenido. Algunos de ellos son: poesía, ciencia
ficción, cuento.
Atributos: nombre.
--Libro: Obra de extensión suficiente para formar un volumen, en soporte
físico.
Atributos: código identificador (isbn o equivalente previo a 1970),
editorial, autor, título, género, portada, resumen de la contracara.
--Unidad: copia de un libro que comparte todas los atributos con el
original, menos el código bibliotecario, propio de la unidad.
Atributos: código bibliotecario, referencia al libro(código
identificador), disponibilidad para préstamo.
--Sexo: femenino o masculino.
Atributo: nombre.
--Rango de edad: hasta 15 años, de 15 a 18 años, de 18 a 22 años, de 23 a 30
años, de 30 a 40 años, de 40 a 60 años, mayor de 60 años.
Atributo: rango.
--Visitante: persona externa a la empresa que ingresa al contenido web
generado por este software.
Atributos: Nombre, email, rango de edad, sexo.
--Votos: valoración positiva, valoración negativa.
Atributo: valor.
--Comentarios: opinión que el visitante deja escrita sobre un libro
específico.
Atributos: autor, contenido, libro.
--Popularidad: cantidad de personas que leen la información detallada de un
libro(portada y resumen de contracara).
Atributos: libro, cantidad.
--Reportar: crear un archivo con una lista decreciente de los libros y la
cantidad de visitas que recibieron.
Atributos: ranking, fecha.
--Búsqueda: Comprobación de existencia de un libro(por código identificador
o título), autor, editorial, y listado de los resultados.
Atributos: término de búsqueda, coincidencias.
--Comprobar si ya existe un libro: verificar si el código identificador de
un libro ya existe en el sistema.
Atributos: código identificador ingresado, resultado.
--Tipos de documentos: documento nacional de identidad(DNI), libreta de
enrolamiento(LE), libreta cívica(LC), cédula de identidad(CI).
Atributo: tipo.
--Confiabilidad: cantidad de préstamos activos simultáneos que puede tener
un asociado, cantidad de días hasta el vencimiento del préstamo.
Cálculo de puntos: devuelto antes del vencimiento, +1 punto. Devuelto tras
el vencimiento, -10 puntos por día vencido y cambio temporal a rango
suspendido. Extraviado: inhibe de por vida al asociado a no ser que reponga
el ejemplar extraviado, en cuyo caso lo restablece como rango 1 con 0
puntos.
Rangos: (1) hasta 100 puntos: 2 unidades, 2 semanas. (2) desde 101 hasta
300: 2 unidades, 3 semanas. (3) desde 301: 3 unidades, 3 semanas.
(Suspendido) 0 libros, los días suspendido se calculan así: Penalización = 5
* cantidad de días de atraso * cantidad de veces que el asociado devolvió
tarde un préstamo. Tras este período el asociado recupera su rango de
confiabilidad del 1 al 3 según sus puntos almacenados.
Atributos: asociado, puntaje, rango.
--Asociado: persona que paga un abono mensual y a cambio puede recibir
unidades en préstamo.
Atributos: Nombre, tipo de documento, número de documento, fecha de
registro, email, teléfono, celular, dirección, rango de edad, sexo,
confiabilidad.
--Cuota: suma de dinero que se abona mensualmente para poder recibir los
servicios de la institución.
Atributos: asociado, último mes(con su año correspondiente) pago.
--Informar: enviar un correo electrónico con información de interés.
Atributos: Asociado, tipo de informe, fecha.
--Préstamo: entrega de unidades de la biblioteca al asociado, para que los
lea en su hogar.
Atributos: Asociado, libro(código identificador), fecha de préstamo, fecha
de vencimiento, fecha de devolución, estado: activo o anulado.
--Devolución: cese del préstamo porque el asociado entregó de vuelta la
unidad a la biblioteca.
Atributos: Asociado, unidad, fecha en que se devolvió, estado: devuelto en
fecha o devuelto vencido.
--Extravío: pérdida de la unidad porque el asociado no la devolvió a la
biblioteca.
Atributos: Asociado, unidad, estado: extraviado.
--Readquisición: cuando el usuario que efectuó un extravío reemplaza la
unidad perdida por otra comprada por él.
Atributos: Asociado, extravío, estado: readquirido.
--Mantenimiento: mantenimiento recibe unidades dañadas e intenta repararlas.
En caso que sea imposible, la destruirá.
Atributos: unidad, estados: reparando, anulado, reparada, destruida.
--Stock: suma de las unidades que corresponden al mismo libro, y cuantos de
esas unidades no están prestadas, extraviadas, destruidas o en
mantenimiento.
Atributos: código identificador, cantidad, disponibles.
--Empleado: persona bajo sueldo que realiza tareas para el comprador de este
software.
Atributos: Nombre, puesto, permiso.
Gracias por la revisión profe.
Más información sobre la lista de distribución Php-avanzado