[Php-avanzado] Requerimientos Bibliotech v3
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Sep 30 21:04:07 ART 2013
Hola Pehúen,
Te respondo intercalado:
El vie, 27-09-2013 a las 15:45 -0700, Fernando Pehuén Borsani escribió:
> Hola profe!
> Reescribí casi todos los REQUERIMIENTOS para mejorarlos según sus
> correciones, y acá van algunas aclaraciones sobre la versión 3:
> RF01 y RF02: ajusté el tema del código: ya no considera una numeración
> externa, era innecesario.
Ok.
> RF03: Los géneros los defino como excluyentes. De esta manera un
> cuento de ciencia ficción es catalogado como "ciencia ficción".
> Esto atiende a que en una biblioteca las áreas temáticas están bien
> diferenciadas.
> Además el género es gestionable: como hay una gran variedad de
> subgeneros, es muy posible que al entregar el software no se hayan
> cubierto todos.
Entiendo que los géneros son muchos y nadie debiera esperar que le
entreguen el software con los datos cargados.
Te referís acá a Subgéneros... es otra entidad o lo estás usando como
sinónimo de Género ???
No es lo mismo organizar:
Ciencia Ficción
Fantasía
Poesía
Anticipación
Épica
que:
Ciencia Ficción
-- Anticipación
Fantasía
Poesía
Épica
En dónde el género "Ciencia Ficción" tiene como subgénero
"Anticipación"...
> RF04: El libro tiene su propio código (ISBN) pero ahora también tiene
> un identificador, que es el número que le agregan las bibliotecas (no
> es el ID de una tabla).
> Agregué al libro su portada y el resumen que hay en la contracara.
> Cuando se accede a ESA información se produce un aumento de
> popularidad[12]. Actualicé el diccionario para reflejar esto.
Ok.
> RF13: Está bien expresar con subfuncionalidades las búsquedas?
Da lo mismo: hacelo a tu gusto.
> RF14: Aquí me preguntó "si tengo dos ejemplares de un mismo libro,
> para este sistema serán 2 libros o uno solo con 2 ejemplares?".
> El diccionario dice que Stock de libros es la cantidad de ejemplares
> de un libro que posee la biblioteca, y cuantos están disponibles para
> préstamo.
Trampa! La versión anterior todavía no tenía Stock ;-)
> Creo que no hay ambigüedad: es un mismo libro con muchos ejemplares
> (mientras comparta la editorial).
Sí, es ambiguo... lo que te falta es reflejar en la SRS el concepto de
"Ejemplar".
Se prestará un ejemplar de un libro, y según decís algunos ejemplares
no estarán disponibles para préstamo.
Son conceptos distintos y como uno falta era que me sonaba raro.
> Aquí también dijo "De qué manera se dará de alta o de baja un libro?"
> Si se refiere a como se calcula la disponibilidad de stock, es la
> resta entre la cantidad de veces que existe el libro y la cantidad de
> ejemplares que están prestados en ese momento.
> Para despejar dudas, lo incluyo en el diccionario en "stock
> disponible".
No me refería a cómo se calculaba, sino que preguntaba cuál era la
funcionalidad que tiene como resultado el ingreso de un nuevo ejemplar a
la biblioteca, y cuál es la funcionalidad que tiene como resultado el
egreso (temporal) de un libro a la biblioteca.
Te lo preguntaba porque existe el préstamo, pero no la devolución.
> Si se refiere a como se carga la compra de un nuevo libro, el sistema
> sería así: el empleado le agrega al libro el código que utilizan
> ellos, en el sistema escribe el ISBN y el nuevo código.
> Si el ISBN existe, simplemente termina ahí su tarea, y en la tabla de
> stock se suma a la existencia de ese libro.
> Si no existe ese ISBN, el empleado carga todos los otros datos del
> libro. Incluyo como subfuncionalidades estas etapas.
Queda claro. Está bien si no hace falta consultar a futuro qué libros
entraron entre determinadas fechas por ejemplo, o cuántos libros había a
principio del año.
> ---
> RF16: eliminé "El sistema debe mostrar la confiabilidad", ya que ahora
> es un cálculo automático, y el "mostrar" es parte de la gestión del
> asociado.
Ok... pero seguís sin poner en el diccionario cómo se calcula esta
confiabilidad. Decís que es función de... pero no cuál es la función!
> RF21: Realmente sería mejor solo usar inscribir (AML)? Que pasa si se
> equivoca el empleado y le carga a la persona equivocada el préstamo?
> Si entonces lo "arregla" poniendo que lo devolvió, no solo va a
> existir un dato falso: van a ser dos. Por eso utilizo gestionar (que
> incluye la baja de un préstamo).
Podrías solucionar esto poniéndole "estados" a un préstamos, y que uno
de esos estados sea "anulado".
Esto te permite equivocarte y no tener que mentirle al software...
porque borrar el préstamo mal hecho es un dato falso también, porque el
préstamo sí se hizo (pero mal)
> ---
> Al final pregunta "Habrá visitantes que voten y miren detalles de los
> libros que no sean "asociados"?"
> Me parece razonable pensar que sí, y creo que habría muchos más
> visitantes que asociados. (Un miembro de una familia puede estar
> asociado, y varios pueden opinar sobre los libros que trae a su casa).
> ¿Cree que sería más eficiente fusionar visitante y asociado? En ese
> caso los atributos de los visitantes tendrían que ser más exigentes, o
> los de los asociados más laxos.
No me parece buena idea esta fusión. La pregunta apuntaba a que, si
todos los visitantes fueran asociados, entonces el visitante no tendría
razón de existir.
> Muchas gracias por la guía profe, creo que está mejorando el aspecto
> del SRS.
Claro que sí! Cada versión es mejor que la anterior, y en el proceso
vas descubriendo cosas que no habías pensado al principio.
> -----------------------------------------------------------------------
> Software Requirements Specification[SRS]: Bibliotech v3
>
> -----------------------------------------------------------------------
>
> 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].
En el diccionario de Libro modificá para que refleje que tiene autores,
en vez de uno solo.
> 05) El sistema debe mostrar los sexos.
> 06) El sistema debe mostrar rangos de edad.
> 07) El sistema debe gestionar visitantes con su sexo[05] y rango de
> edad[06].
> 08) El sistema debe registrar los votos de los visitantes[07] a los
> libros[04].
> 09) El sistema debe gestionar comentarios de los visitantes[07] a los
> libros[04].
> 10) El sistema debe registrar los votos de los visitantes[07] a los
> comentarios[09].
> 11) El sistema debe registrar la popularidad del libro[04].
> 12) El sistema debe reportar la popularidad[11] de los libros[04]
> mensualmente.
> 13) El sistema debe buscar libros.
> 13.1) Por ISBN
> 13.2) Por Editorial[01].
> 13.3) Por Autor[02].
> 13.4) Por título.
> 13.5) Por género[03].
> 14) El sistema debe gestionar el stock de los libros[04].
> 14.1) El sistema debe comprobar si ya existe un libro[04] cuando se lo
> da de alta.
> 14.2) El sistema debe sumar la cantidad de ejemplares obtenidos de un
> libro a su stock correspondiente.
Como te decía arriba, capaz que hay que hacer aparecer el concepto de
Ejemplar, que será de un libro y tendrá, supongo, una identificación
única para reconocerlo.
Si este es el caso, entonces el stock será de ejemplares, no de libros.
> 15) El sistema debe mostrar tipos de documentos.
> 16) El sistema debe calcular la confibilidad.
> 17) El sistema debe gestionar asociados con su sexo[05], rango de
> edad[06], tipo de documento[15] y confiabilidad[16].
Si la confiabilidad es un cálculo (secreto por ahora), no es parte de
la estructura del Asociado.
Creo que queda más claro si está al revés:
16) El sistema debe gestionar asociados con su sexo[05], rango de
edad[06], tipo de documento[15].
17) El sistema debe calcular la confibilidad de los Asociados[16]
> 18) El sistema debe mostrar los meses del año.
> 19) El sistema debe inscribir cuotas de asociados[17].
> 20) El sistema debe informar al asociado del vencimiento de la
> cuota[19].
> 21) El sistema debe gestionar préstamos de libros[04] a asociados
> [17].
Está discutido arriba que los préstamos pueden "registrarse" en vez de
"gestionarse". Las dos formas son válidas en este contexto.
> 21.1) El sistema debe detener un nuevo préstamos[21] si excede la
> confiabilidad[16].
> 21.2) El sistema debe detener un nuevo préstamo[21] si no está paga la
> cuota[19].
> 21.3) El sistema debe detener un nuevo préstamo[21] si no hay
> stock[14] disponible.
> 22) El sistema debe informar al asociado[16] del vencimiento del
> préstamo[20] un día antes del vencimiento.
> 23) El sistema debe mostrar al empleado los préstamos[21] vencidos
> hace más de una semana.
La fecha de vencimiento la decide el bibliotecario al prestar un libro?
O todos los libros se prestan una cantidad de días fija? Esta cantidad
de días puede cambiar?
> Requerimientos No Funcionales[RNF]:
>
> - Gestionar a los visitantes y empleados.
Los Visitantes son una funcionalidad de este sistema, porque tienen
comportamiento propio. Dejá acá solo a los Empleados por ahora.
> Diccionario:
> Editorial: nombre.
> Autores: nombre(s) de la(s) persona(s) que escribe(n) el libro.
> 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.
> Libro: isbn, código bibliotecario, editorial, autor, título, género,
> portada, resumen de la contracara.
> Sexo: femenino o masculino.
> 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.
> Visitante: persona externa a la empresa que ingresa al contenido web
> generado por este software. Nombre, email, rango de edad, sexo.
> Votos: valoración positiva, valoración negativa.
> Comentarios: opinión que el visitante deja escrita sobre un libro
> específico.
> Popularidad: cantidad de personas que leen la información detallada de
> un libro(portada y resumen de contracara).
> Reportar: crear un archivo con una lista decreciente de los libros y
> la cantidad de visitas que recibieron.
> Busqueda: Comprobación de existencia de un libro(por isbn o título),
> autor(nombre o NI), editorial(nombre o NI), y listado de los
> resultados.
> Stock de libros: cantidad de ejemplares de un libro que posee la
> biblioteca, y cuantos están disponibles para préstamo. Libro(ISBN y
> título), cantidad en existencia, cantidad disponible.
> Comprobar si ya existe un libro: verificar si el isbn de un libro ya
> existe en el sistema.
> Tipos de documentos: documento nacional de identidad(DNI), libreta de
> enrolamiento(LE), libreta cívica(LC), cédula de identidad(CI).
> Confiabilidad: cantidad de libros en prestamo que puede tener el
> asociado en su poder, cantidad de días que puede retener el asociado
> los libro. Es función de la cantidad de libros devueltos en fecha.
> Asociado: persona que recibe libros en préstamo. 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. asociado, último mes pago.
> Informar: enviar un correo electrónico con información de interés.
> Préstamo: entrega de libros de la biblioteca al asociado para que los
> lea en su hogar. Asociado, libro(ISBN), fecha de préstamo, fecha de
> vencimiento, fecha de devolución.
> Alertar: enviar al empleado una lista con los asociados que no han
> devuelto los libros antes de la fecha de vencimiento.
> Stock Disponible: resta entre la cantidad de veces que existe el libro
> y la cantidad de ejemplares de ese libro que están prestados en ese
> momento.
> Empleado: persona bajo sueldo que realiza funciones administrativas
> para el comprador de este software. Nombre, puesto, zona, permiso.
Seguimos!
--
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