[Php-avanzado] Bibliotech

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Ene 28 15:37:24 ART 2014


Hola Pehúen,

El vie, 24-01-2014 a las 19:54 -0300, Fernando Pehuén Borsani escribió:
> LT> Con esta redefinición de Registrar [...] este sistema es tan confiable
> como recordar de memoria lo que le pasa a los libros :-(
> 	
> Eso significa entonces dos cosas:
> 1) No hay escapatoria a usar estados si no quiero perder información.
> 2) Registrar estaba bien definido como AML.

	Más bien significa que, para no perder información, no hay que
borrarla... al menos enunciado de manera más general.

	Simpático tu uso de "estados red": no hay nada más claro que usar una
sigla que sea una palabra que signifique otra cosa!!!
	Después, cuando lo usás en los RF26, 27 y 28 se llaman "estados der",
que también es una cosa, pero otra.
	Ponete de acuerdo!

	De todas formas, me parece superfluo a nivel de funcionalidad, porque
podrías tener un estado más "anulado" en los actuales RF 20 y 22, a la
vez que le agregás estados a la Devolución, Extravío y Reposición.
	Lo que vos proponés funciona bien, pero pareciera un concepto traído de
los pelos al problema: un artificio. 
	Pensá un rato en lo que te propongo: si bien son 3 tipos de estados
más, quedan conceptualmente cada uno relacionado con la cosa a la que
provee el estado, con lo que si a una cosa le aparece un estado nuevo
(inventando, un extravío imposible porque el libro no está más a la
venta, con lo que se puede pedir otra cosa como reemplazo) no se afectan
las otras cosas; por otra parte, el código quedará mucho más homogéneo,
y por ende más fácil de depurar y de mantener.
	No es que esté sesgando la SRS pensando en el código, es al ravés: ya
sabemos que los artificios y los recursos más complicados de lo
necesario en la SRS producen software innecesariamente más complicado.
	Como argumento adicional, y ya que estamos con los DER, un Estado de
una Devolución debería ser una Entidad diferente a un Estado de un
Extravío, porque son estados de cosas diferentes.


	Lo demás, la SRS y el DER está acorde con la especificación...


	Seguimos!



> --------------------------------------------------------------------------
> Software Requirements Specification[SRS] Bibliotech
> --------------------------------------------------------------------------
> Cambios:
> -------------
> * Revisada la definición de inscripción, registro y gestión de datos.
> * Agregados los estados a devoluciones, extravíos y reposiciones para
> permitir el estado anulado (RF21, RF25-27).
> * Agregado el estado anulado en préstamos y mantenimientos.
> * Agregados los atributos apodo y clave a visitantes (RF08) y empleados
> (RF24).
> 
> --------------------------------------------
> Definición de términos recurrentes:
> --------------------------------------------
> Gestionar: ABML (alta, baja, modificación y listado) de datos.
> Registrar: AML (alta, modificación y listado) de datos.
> Inscribir: AL (alta y listado) de datos.
> 
> ------------------------------------------
> 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 inscribir 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 inscribir la popularidad del libro[04].
> 12) El sistema debe reportar la popularidad[12] de los libros[04]
> mensualmente.
> 13) El sistema debe buscar libros[04].
>     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 mostrar tipos de documentos.
> 15) El sistema debe gestionar asociados con su sexo[06], rango de edad[07] y
> tipo de documento[15].
>     15.1) El sistema debe impedir la baja de asociados que tengan
> unidades[05] en su poder.
> 16) El sistema debe calcular la confiabilidad de los asociados[15].
> 17) El sistema debe mostrar los meses del año.
> 18) El sistema debe registrar cuotas de asociados[15] con su mes[17].
> 19) El sistema debe informar al asociado del vencimiento de la cuota[18].
> 20) El sistema debe mostrar los estados del préstamo.
> 21) El sistema debe mostrar los estados red.
> 22) El sistema debe mostrar los estados de mantenimiento.
> 23) El sistema debe gestionar puestos
> 24) El sistema debe gestionar a los empleados con su puesto[23].
> 25) El sistema debe registrar el préstamo de unidades[05] a asociados[15]
> con su estado del préstamo[20] y empleado[24] que entrega la unidad[05].
> 26) El sistema debe registrar devoluciones de unidades[05] por asociados[15]
> con su estado der[21] y empleado[24] que recibe la unidad[05].
> 27) El sistema debe registrar extravíos de unidades[05] por asociados[15]
> con su estado der[21] y empleado[24] que da de baja la unidad[05].
> 28) El sistema debe registrar reposiciones de unidades[05] por asociados[15]
> con su estado der[21] y empleado[24] que recibe la unidad[05].
> 29) El sistema debe registrar el mantenimiento de unidades[05] con su estado
> de mantenimiento[22], empleado[24] que entrega la unidad[05] y empleado[24]
> que recibe la unidad[05].
> 30) El sistema debe gestionar el stock de unidades[05].
>     30.1) El sistema debe comprobar si ya existe un libro[04] cuando se den
> de alta unidades[05].
>     30.2) El sistema debe sumar uno a stock:cantidad y stock:disponibles al
> efectuarse el alta de unidad[05].
>     30.3) El sistema debe restar uno a stock:disponibles al efectuarse un
> préstamo[25].
>     30.4) El sistema debe sumar uno a stock:disponibles por
> devoluciones[26].
>     30.5) El sistema debe restar uno a stock:cantidad por extravíos[27].
>     30.6) El sistema debe sumar uno a stock:cantidad y stock:disponibles por
> reposiciones[28].
>     30.7) El sistema debe restar uno a stock:disponible al enviarse la
> unidad[05] a mantenimiento[29].
>     30.8) El sistema debe restar uno a stock:cantidad por destrucción de la
> unidad[05] en mantenimiento[29].
>     30.9) El sistema debe sumar uno al stock:disponible al volver la
> unidad[05] de mantenimiento[29].
> 31) El sistema debe informar al asociado[15] del vencimiento del
> préstamo[25] un día antes del vencimiento.
> 32) El sistema debe mostrar los préstamos[24] vencidos hace más de una
> semana.
> 
> Requerimientos No Funcionales[RNF]:
> -- El sistema debe gestionar permisos.
> 
>  
> ---------------
> 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, autores, 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.
> --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 22 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, Apellido, Apodo, contraseña, email, rango de edad,
> sexo.
> --Votos: valoración positiva o negativa sobre el libro.
>   Atributo: valor.
> --Comentarios: opinión que el visitante deja escrita sobre un libro
> específico.
>   Atributos: autor, contenido, libro, fecha.
> --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.
> --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 efectúe
> una reposición, 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, Apellido, 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. Hay dos
> tipos: de vencimiento de cuota y de vencimiento de préstamo.
>   Atributos: Asociado, tipo de informe, fecha, informe.
> --Estados del préstamo: reflejan en que parte del proceso de préstamo se
> encuentra la unidad: activo, devuelto en fecha, devuelto vencido, finalizado
> por extravío, anulado.
>   Atributo: nombre.
> --Estados red: indica el estado de la reposición/extraivío/devolución:
> activo o anulado.
>   Atributo: nombre.
> --Estados de mantenimiento: reflejan en que parte del proceso de
> mantenimiento se encuentra la unidad: activo, reparando, destruido, anulado.
>   Atributo: nombre.
> --Préstamo: entrega de unidades de la biblioteca al asociado, para que los
> lea en su hogar.
>   Atributos: Asociado, unidad, fecha de préstamo, fecha de vencimiento,
> estado del préstamo.
> --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ó.
> --Extravío: pérdida de la unidad porque el asociado no la devolvió a la
> biblioteca.
>   Atributos: Asociado, unidad.
> --Reposición: cuando el usuario que efectuó un extravío entrega a la
> biblioteca una unidad comprada por él.
>   Atributos: Asociado, unidad nueva.
> --Puesto: departamento en el que trabaja el empleado. Ej: infantil,
> escolares, histórico.
> --Permiso: nivel de acceso. El cero representa acceso nulo. A mayor número,
> mayor cantidad de funcionalidades disponibles.
> --Empleado: persona bajo sueldo que realiza tareas para el comprador de este
> software.
>   Atributos: nombre, apellido, puesto, permiso, apodo, clave.
> --Mantenimiento: mantenimiento recibe unidades dañadas e intenta repararlas.
> En caso que sea imposible, la destruirá.
>   Atributos: unidad, empleado que entrega, empleado que recibe, estado de
> mantenimiento.
> --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.
> 
> ----------------------------------
> Diagrama Entidad Relación
> ----------------------------------
> Cambios:
> ------------
> * Agregada la tabla "estadosRED".
> * Agregados los atributos apodo y clave en "visitantes" y "empleados".
> 
> Profe: por favor no se olvide de decirme hasta cual RF tengo que programar
> para poder entregar el trabajo, porque cada vez lo veo más grande, y tengo
> que empezar a escribir o no llego (y no estuve escribiendo porque pensaba
> hacerlo antes de terminar la SRS/DER).
> 
> Gracias por la asistencia.
> _______________________________________________
> 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