[Php-avanzado] Bibliotech
Fernando Pehuén Borsani
fpborsani en yahoo.com.ar
Mar Ene 28 18:29:21 ART 2014
Hola Profe!
¿Entonces lo correcto sería hacer una tabla de estados para cada
funcionalidad (devoluciones, extravíos y reposiciones)?
-----Mensaje original-----
De: php-avanzado-bounces en pato2.fi.mdp.edu.ar
[mailto:php-avanzado-bounces en pato2.fi.mdp.edu.ar] En nombre de Leonardo
Tadei - Pegasus Tech Supply
Enviado el: martes, 28 de enero de 2014 03:37 p.m.
Para: Lista del curso de PHP Avanzado
Asunto: Re: [Php-avanzado] Bibliotech
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
> LT> 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
_______________________________________________
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
Más información sobre la lista de distribución Php-avanzado