[Php-avanzado] Bibliotech

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Vie Ene 24 12:33:47 ART 2014


Hola Pehúen

El vie, 17-01-2014 a las 19:24 -0300, Fernando Pehuén Borsani escribió:
> Hola profe! Le comento algunas cosas y le paso las versiones actualizadas.
> 
> LT> no está reflejado [registrar qué empleado presta un libro y qué empleado
> lo recibe] en el almacenamiento...
> Si estaba profe! Registraba el id, el nombre y el apellido de los empleados
> para los préstamos, devoluciones, extravíos y mantenimientos desde la
> versión 1.3.1.
> De hecho esa es la razón por la que cambié la ubicación de las tablas en tal
> versión: para que pueda conectar con líneas las entidades mencionadas.

	Ya lo veo! Me lo perdí cuando lo ví en la respuesta enterior... no sé
por qué me quedé pensando que "Nombre" y "Apellido" eran del Asociado.
	No se aclara, pero me tendría que haber dado cuenta por el contexto.

> LT>el borrado, en caso de querer hacer esto, es condicional, ya que no se
> debe poder borrar un Préstamo de una unidad que fue devuelta o que fue a
> adquisiciones o que fue a mantenimiento.
> LT>Estas condiciones es importante que estén en la SRS.
> Menos mal que lo mencionó antes de que envíe la siguiente versión, porque
> pensaba que al ser una cuestión técnica no tenía que agregarla.

	Es que no es una cuestión técnica: no hay ningún motivo técnico para
borrar un Préstamo. Resulta que el que define este problema prefiera
perder información (en este caso se pierden cuántos errores hay al
realizar préstamos) y descartar además el tiempo usado en cargarlo mal.
	Además en esta versión de la SRS, el RF24 dice "registrar". Al
principio cambiás la convención que estábamos usando el especificar
"Registrar: ABL (alta, baja, listar) de datos.", con lo que ahora, según
esta redefinición se pueden borrar Matenimientos, Devoluciones, etc, así
que salvo lo que está para "mostrar" y para "informar", todo lo demás
pasa a ser borrable.
	Ergo, las cosas que por algún motivo no se puedan borrar (ejemplo un
Préstamo activo o devuelto) tenés que aclarar las condiciones en dónde
se evitará el borrado.
	Antes alcanzaba solo con poner "registrar", ya que implicaba el no
borrado, ahora lo convertiste con condicional y hace falta saber la
condición.

> LT> Qué hace este sistema si alguien registra una
> devolución/extravío/reposición mal?
> El empleado puede efectuar un rollback.

	Ya está explicado arriba, pero si se pueden hacer rollbacks, hay que
especificar a qué y en qué condición. Además un rollback es muy distinto
de un borrado: en un borrado un ID autoincremental no se vuelve a usar,
pero en un rollback vuelve a estar disponible.

> Disculpe si le molestó que lo llame por el apellido. Me pareció una forma
> respetuosa de referirme a usted.
> Supongo que nos quedamos con "profe" entonces ("Leo" me resulta muy
> confianzudo).

	Eh! Nunca dije que me molestara! Solo te conté a qué me hacía recordar.
Tal vez te parezca razonable "Leonardo", pero hacé como te plazca, y en
el fortuito caso de que me moleste o incomode, te aviso.
	

> Cambios en la SRS:
> --Diferenciados los estados en los RF 20 y 21.
> --Reescritos los RF 24 a 28.
> 
> Cambios en el DER:
> --Agregada la entidad "ESTADOSP".
> --Cambiado el nombre de la entidad "ESTADOS" a "ESTADOSM"

	Genial. Me parece que encontramos una entidad que estaba perdida.

> Con tantos cambios creo que los términos Gestionar y Registrar necesitaron
> un retoque, así que los incluyo:
> Gestionar: ABML (alta, baja, modificación, listar) de datos.
> Registrar: ABL (alta, baja, listar) de datos.

	Con esta redefinición de Registrar, la especificación genera varias
inconsistencias: por ejemplo, entra en conflicto todo el control de
stock, porque pueden darse baja Préstamos, Devoluciones, Mantenimientos,
Extravíos y Reposiciones; entra en conflicto con las condiciones para un
Préstamo por la baja de Cuotas; entra en conflicto con la Popularidad y
los Votos...

	Con esta redefinición de Registrar, tenés que resolver en la SRS estas
inconsistencias, porque así, este sistema es tan confiable como recordar
de memoria lo que le pasa a los libros :-(

	Seguimos!!!



> -------------------------------------------------------------------------
> Software Requirements Specification[SRS] Bibliotech v6.5.1
> -------------------------------------------------------------------------
> 
> 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 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 de mantenimiento.
> 22) El sistema debe gestionar puestos
> 23) El sistema debe gestionar a los empleados con su puesto[23].
> 24) El sistema debe registrar el préstamo de unidades[05] a asociados[15]
> con su estado del préstamo[20] y empleado[23] que entrega la unidad.
>     24.1) El sistema debe dar de baja préstamos solo si no se efectuaron
> cambios de estado.
> 25) El sistema debe registrar devoluciones de unidades[05] por parte de los
> asociados[15] con el empleado[23] que recibe la unidad.
> 26) El sistema debe registrar extravíos de unidades[05] por parte de los
> asociados[15] con el empleado[23] que da de baja la unidad.
> 27) El sistema debe registrar reposiciones de unidades[05] por parte de los
> asociados[15] con el empleado[23] que recibe la unidad.
>     27.1)El sistema debe dar de baja extravíos solo si no se lo vinculó con
> una reposición.
> 28) El sistema debe registrar el mantenimiento de unidades[05] con su estado
> de mantenimiento[21], empleado[23] que entrega la unidad y empleado[23] que
> recibe la unidad.
> 28) El sistema debe gestionar el stock de unidades[05].
>     28.1) El sistema debe comprobar si ya existe un libro[04] cuando se den
> de alta unidades[05].
>     28.2) El sistema debe sumar uno a stock:cantidad y stock:disponibles al
> efectuarse el alta de unidad[05].
>     28.3) El sistema debe restar uno a stock:disponibles al efectuarse un
> préstamo[24].
>     28.4) El sistema debe sumar uno a stock:disponibles por
> devoluciones[25].
>     28.5) El sistema debe restar uno a stock:cantidad por extravíos[26].
>     28.6) El sistema debe sumar uno a stock:cantidad y stock:disponibles por
> reposiciones[27].
>     28.7) El sistema debe restar uno a stock:disponible al enviarse la
> unidad[05] a mantenimiento[28].
>     28.8) El sistema debe restar uno a stock:cantidad por destrucción de la
> unidad[05] en mantenimiento[28].
>     28.9) El sistema debe sumar uno al stock:disponible al volver la
> unidad[05] de mantenimiento[28].
> 29) El sistema debe informar al asociado[15] del vencimiento del
> préstamo[24] un día antes del vencimiento.
> 30) 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, 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.
>   Atributo: nombre.
> --Estados de mantenimiento: reflejan en que parte del proceso de
> mantenimiento se encuentra la unidad: activo, reparando, destruido.
>   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.
> --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.
> _______________________________________________
> 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