[Php-avanzado] Bibliotech

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Ene 28 19:08:13 ART 2014


Yo creo que sí... en cualquier caso, juntarlas en una sola tabla podrá
ser una decisión de implementación, pero a nivel de la especificación,
seguro de que vale la pena documentar que cada cosa tiene su estado...

Luego a nivel de implementación, juntarlas en este caso particular puede
ser viable, pero se estaría violando el DER, porque son entidades
distintas.


El mar, 28-01-2014 a las 18:29 -0300, Fernando Pehuén Borsani escribió:
> 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
> 
> _______________________________________________
> 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