[Php-avanzado] Requerimientos funcionales: Bibliotech v6.2

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Lun Nov 4 20:43:40 ART 2013


Hola Pehuén,

El lun, 04-11-2013 a las 15:20 -0300, Fernando Pehuén Borsani escribió:
> 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?

	Para poder ver de un vistazo ejemplares, independientemente de su
estado... que en la SRS no muestra esto queda claro, lo que no queda
claro es por qué especificás las cosas omitiendo entidades, con lo que
limitás para toda la vida útil del software que se puedan emitir este
tipo de información, además de tener una SRS incompleta, porque el
software sí va a usar y tener estos Estados.

> 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.

	Ok.

> 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?

	Opino que todas estas son consideraciones de implementación, y que por
tanto no deben afectar a la forma en que se especifica el software.
	Qué es la devolución: un socio que vuelve con un ejemplar? o un
préstamo que se materializa y viene a la biblioteca?

> 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. =)

	Es una buena idea para la ciencia ficción, pero una pésima idea para un
software, porque implica que perdés la historia de lo que le pasó a cada
ejemplar.
	Un buen software debe reflejar la realidad... y en la realidad no
existe ni el mayor Kowolski-de-nuestro-universo. Resistirse es fútil ;-)

> -------------
> 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.


	Además de las cuestiones que te planteo arriba, al RF22 y RF23  te
falta que tengan la referencia al asociado y al ejemplar.

22) El sistema debe registrar devoluciones de un ejemplar por parte de
un asociado.

	También se estila para el diccionario, repetir los atributos que están
usados en otras entidades en lugar de poner "todos los de
otra-que-ya-definí más este que te escribo acá". Copiar y pegar es muy
barato :-)

	Seguimos!!!



> -----------------------------------------------------------------------
> 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.
> 
> 
> _______________________________________________
> Lista de correo: Php-avanzado
> Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar
> Administración Web: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> Desubscripción: php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe
> 

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado