[Php-avanzado] Requerimiento Juan Manuel V7 Corregida

Juan Manuel P. tucu_21 en hotmail.com
Lun Dic 3 19:37:00 ART 2012


RF4: el el diccionario falta el atributo "Especie". Ya te había
  observado esto en versiones anteriores.
  - Corregido

 No está corregido: sigue sin aparecer la "especie" en la entrada al
 diccionario de "raza".
- Agregada, se cambio donde decia Tipo por Especie.


  RF8: no se gestionan, solo se muestran: si por ejemplo borrás un
  Estado
  de Publicación, hay cosas que dejarían de funcionar en un software
  especificado así.
  - Corregido, pero de todas formas si es ese el criterio entonces
  tambien deberia solo mostrar especies, razas, etc.
  Segun te habia entendido a vos en clase en el DER definiamos como
  ibamos a manejar esto, respecto de si se borraba de forma logica o
  fisica.
  En este y para todos los casos (razas, especies, etc), si se quisiera
  eliminar uno se podria siempre y cuando no exista una mascota definida
  para ese estado o raza o especie o cualquier otro, en ese caso no se
  permitiria borrar o modificar.

 No, no deberías solo mostrar especies, ni razas, ni etc: no estás
 comprendiendo la cuestión.
 Primero que todo, hablar acá de un DER o de una normalización no tiene
 sentido, porque la SRS debe describir el problema, y no mencionar para
 nada la solución. Un DER, una normalización o una mera tabla _es_ parte
 de la solución, y no del problema.
 Por otra parte, en referencia a esta funcionalidad, te digo que para un
 sistema así especificado, se deben solo mostrar, porque vos estás
 asociando funcionalidades a los Estados de Publicación, y en ningún
 momento estás especificando un mecanismo para que vía una interfaz del
 sistema se definan estas funcionalidades.
 Dicho en otras palabras, a los Estados de Publicación se asocian
 algoritmos, porque hay cosas que pasan o no dependiendo del estado, por
 lo que borrar uno significaría que parte de la aplicación quede
 desligada de ese algoritmo, y agregar uno significaría que no está
 asociado a ninguna acción.
 Por otra parte, lo que haga este sistema si se borra una especie o una
 raza, mientras mantenga la integridad de los datos, es indistinto, pero
 sobre todo no es el mismo tipo de problema que plantean los Estados de
 Publicación, porque nunca una funcionalidad depende de la existencia de
 uno de ellos.

 Comprendés la diferencia?
 Queda claro por qué acá no se habla de DER ni de nada de eso?

OK


  RF11: No me puedo dar cuenta qué es esto y que rol cumple en este
  sistema. Me lo explicás por favor?
  - Eliminado, debo decir que me sorprendio que no entendieras, dado que
  Genero en el contexto de esta SRS es bastante claro, el Genero de una
  Mascota, EJ Hembra o Macho.

 Dos cosas: una es que no veo justificación para sacarlo.
 Otra es que tu sorpresa es injustificada (o no entendés todavía lo
 suficiente en qué consiste una SRS), porque por una parte tener
 "géneros" siendo estos solo "macho" y "hembra" es medio como un
 desperdicio gestionarlos, pudiendo darlos precargados al sistema y solo
 mostrarlos. Pero sobre todo y lo más importante, si "género" es, como se
 podía suponer el sexo de la Mascota, entonces es un atributo que le irá
 a cada Mascota cuando se ingrese un pedido de alta, y nunca un atributo
 para la Especie, que es lo que vos especificaste.

 Definirlo para cada Especie es un sinsentido, porque de querer hacer
 esa distinción a ese nivel, no te hace falta género, sino cargar como
 Especie "perro", "perra" y "caballo", "yegua".

OK, agregado requerimiento, en DD.

  RF12: no tenés que mencionar el "nombre" acá, porque no es algo que
  aparezca en un RF; va solo en el diccionario, al igual que la fecha de
  alta.
  - Corregido

 Lo sacaste del RF, pero en el diccionario tiene que estar, y ahí no
 aparece.
En el diccionario de datos si aparecen en los 2 lugares, perdidas, encontradas.


 Veo que en el diccionario agregaste "sexo", y pareciera que el sexo es
 algo a mostrar en otro RF y a usar acá... si no supongo mal, es el
 "Género" que sacaste como funcionalidad.
 Si lo vas a poner, expresalo funcionalmente y hacé referencia a él. Si
 no lo vas a poner, sacalo del diccionario también.

  Tenés que usar el mismo nombre con que especificás una cosa en todas
  partes. Acá aparece "Estado [8]", pero el RF8 está especificado como
  "Estado de Publicación".
  - Corregido

 No del todo. Hay entradas del diccionario que siguen haciendo solo
 referencia al "estado" a secas y también los RF 21 y 22 (que ahora no
 tienen por qué estar expresados como subrequerimientos, porque es una
 sola cosa.

Corregido donde decia estados por Estados de Publicacion, con lo otro no entiendo a que queres referirte, si a los RF21 o RF22 o donde termina el parentesis, si lo que sigue forma parte del parentesis o no?.

  Decís que un Alta de Mascota Perdida puede tener más de un "Estado" y
  si no entiendo mal lo que querés hacer, solo tiene uno. Cuantos
  "Estados" a la vez puede tener?
  - Corregido, tambien habia puesto sin querer una S de mas.....

 Te quedó todavía el plural en los RF 11.1, 12.1, 18, 19...

Corregidos

  El diccionario tiene una inconsistencia: especificás "Alta de
  Mascota
  Perdida" pero la entrada es solo "Mascota Perdida". Decidí un nombre y
  usá siempre el mismo!
  Al diccionario le falta la Especie.
  - Corregido, el Alta es la accion que debe de hacer el sistema, la
  entrada es Mascota Perdida o Encontrada.

 En tus versiones anteriores ponías "Alta" con mayúsculas, dando la idea
 de que era parte del nombre de la cosa a manejar... ahora que se la
 sacaste queda más claro.


  En el diccionario figura el "contacto" y como es algo que se
  gestiona,
  debés hacer la referencia en la funcionalidad.
  - Corregido, no se gestiona mas. Ahora hay dos tipos de contacto, los
  cuales estan detallados en el diccionario.

 En el diccionario se hace referencia a "Contacto de Mascota" y a
 "Contacto Externo", pero te falta su especificación a nivel funcional.
 En otras palabras, estas dos cosas tienen que estar especificadas con su
 respectivo RF.
 Para colmo hacés varias veces referencia al "Contacto de Mascota" y al
 "Contacto Externo" en unos cuantos RF... y siempre hay que hacer
 referencia a cosas que se especificaron previamente.

Agregados los RF para ambos casos.


  Hacés uso de la Mascota Reunida en este RF, pero lo especificás
  como
  RF26. Para usar la Mascota Reunida tenés que especificarla antes...
  tenés la referencia al revés en el RF26.
  - El RF26 es para mostrarlos, en este RF16.4 se lo daba de alta en el
  momento que se confirma un Aviso de Reunion de Mascota Perdida (idem
  para Encontrada).

Agregado el RF que hace referencia a la Mascota Reunida y la especificacion en el DD.

 Pero como es requisito de la redacción de una SRS que no debés hacer
 referencia a nada que no haya sido especificado previamente, tenés que
 mover la especificación de "Mascota Reunida" antes del actual RF12,
 porque se está usando en el actual RF 12.4, pero la estás especificando
 en el actual RF17.
 Si la especificación es para "mostrar", "gestionar" u otra cosa, no
 significa que debas alterar el orden en que se nombran las cosas.

 De hecho, a nivel funcional, las Mascotas Reunidas se muestran y se dan
 de alta, algunas veces directamente y otras indirectamente a través de
 otra funcionalidad.


  RF38: acá se manifiesta la ambigüedad en el nombre del RF16 y sus
  semejantes: ponés un solo nombre de cosa y hacés referencia a 3 RF...
  - Los 3 RF que se mencionan dan como resultado una Mascota Reunida
  luego de que el Aviso de Reunion es confirmado. En este caso ahora
  solo quedan 2 dado que en Adopcion fue eliminado.

 ... y seguís sin resolver la falla en la especificación.
 Fijate como ahora en el RF 17, decís que la Mascota Reunida está
 especificada en dos funcionalidades distintas... eso no tiene sentido!
 Lo que te está pasando, te repito, es que los actuales RF 11.4 y 12.4,
 estás haciendo referencia a algo que no está especificado.
 Especificá primero la Mascota Reunida, y después hacé a esa
 funcionalidad todas las referencias que quieras.


 Bueno Juan Manuel, hagamos lo mismo para el próximo envío: poné un
 breve comentario a cada cuestión que te planteo más arriba, además de
 corregir la SRS y ponerla como ahora como parte del cuerpo del mail.

 A mi me permite seguir más fácilmente los cambios y ver qué hiciste, y
 a vos te sirve para encontrar la causa de por qué esto se está
 extendiendo tanto: te hago una corrección, y vos la hacés parcialmente
 en vez de completamente, entonces tenemos que volver sobre el mismo
 tema.

 SRS

REQUERIMIENTOS FUNCIONALES

Objetivo: 
El sistema servirá como medio de difusión para que los se publiquen Mascotas Perdidas y Encontradas permitiendo a los visitantes reportar si se tiene alguna información o interés en la mascota. 
En el caso de que se logre reunir a los dueños con la mascota se publicaran en Reunidas

 1  El sistema debe mostrar Tipos de Administradores.

 2  El sistema debe gestionar Administradores del sistema con su Tipo de Administrador[1].

 3  El sistema debe gestionar Especies.

 4  El sistema debe gestionar Razas para cada Especie[3].

 5  El sistema debe gestionar Tamaños.

 6  El sistema debe mostrar Estados de Publicación.

 7  El sistema debe gestionar Provincias.

 8  El sistema debe gestionar Ciudades para cada Provincia[7].

 9 El sistema debe dar de alta Contactos de Mascotas.

 10 El sistema debe dar de alta Contactos Externos.

 11 El sistema debe mostrar Sexos.

 12 El sistema debe dar de alta Mascotas Reunidas con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9], Estado de Publicación[6] y Ciudad[8] con su Provincia[7]. 

 13  El sistema debe dar de alta Mascotas Perdidas con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9], Estado de Publicación[6] y Ciudad[8] con su Provincia[7].
     13.1  El sistema debe validar la Mascota Perdida[13], que los datos obligatorios ( Raza[4], Especie[3], Tamaño[5], Sexo[11], Contacto de Mascota[9], Ciudad[8] y Provincia[7]) estén todos completos.
     13.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Perdida[13], que expira en 3 días, guardar la Mascota Perdida[13] con un Estado de Publicación[6] inicial Pendiente de Confirmación
     13.3  El sistema debe confirmar la Mascota Perdida[13]cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail, actualizando el Estado de Publicación[6] a Pendiente de Publicación.
     13.4  El sistema debe enviar un mail al administrador del sistema[2], avisando del alta, para que sea revisado y confirmada el alta de Mascota Perdida[13].

 14 El sistema actualiza el Estado de Publicacion[6] de una Mascota Perdida[13] a Activo, cuando el Administrador del sistema[2] la confirma

 15  El sistema debe dar de alta Mascotas Encontrados con su  Raza[4] con su Especie[3], Sexo[11], Tamaño[5], Contacto de Mascota[9],  Estado de Publicación[6] y Ciudad[8] con su Provincia[7].
     15.1  El sistema debe validar la Mascota Encontrada[15], que los datos obligatorios (Especie[3], Tamaño[5], Sexo[11], Contacto de Mascota[9], Ciudad[8] y Provincia[7]) estén todos completos.
     15.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Encontrada[15], que expira en 3 días, guardar la Mascota Encontrada[15] con un Estado de Publicación[6] inicial Pendiente de Confirmación
     15.3  El sistema debe confirmar la Mascota Encontrada[15]cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail, actualizando el Estado de Publicación[6] a Pendiente de Publicación.
     15.4  El sistema debe enviar un mail al administrador del sistema[2], avisando del alta, para que sea revisado y confirmada el alta de  Mascota Encontrada[15].

 16 El sistema actualiza el Estado de Publicacion[6] de una Mascota Encontrada[15] a Activo, cuando el Administrador del sistema[2] la confirma.


 17  El Sistema debe dar de alta Aviso de Reunión de Mascota Perdida con su  de Mascota Perdida[13]
     17.1  El sistema debe validar que la Mascota Perdida[13] ingresada este registrada en el sistema y su Estado de Publicación[6] sea Activo.
     17.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Perdida[13].
     17.3  El sistema debe confirmar el Aviso de Reunión de Mascota Perdida[17] cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail.
     17.4  El sistema debe borrar la Mascota Perdida[13] y da de alta con los mismos datos una Mascota Reunida[12].

 18  El Sistema debe dar de alta Aviso de Reunión de Mascota Encontrada con su Mascota Encontrada[15]
     18.1  El sistema debe validar que la Mascota Encontrada[15] ingresada este registrada en el sistema y su Estado de Publicación[6] sea Activo.
     18.2  El sistema debe enviar un mail con un link de confirmación al mail del Contacto de Mascota[9] de la Mascota Encontrada[15].
     18.3  El sistema debe confirmar el Aviso de Reunión de Mascota Encontrada[18] cuando el link enviado es visitado, dentro de los 3 días posteriores al envío del mail.
     18.4  El sistema debe borrar la Mascota  Encontrada[15] y da de alta con los mismos datos una Mascota Reunida[12].

 19  El sistema debe gestionar Avisos de Observación de Mascotas Perdidas con su Mascota Perdidas[13], Ciudad[8] con su Provincia[7] y su Contacto Externo[10]
     19.1  El sistema debe validar el Aviso de Observación de Mascotas Perdida[13] que los datos obligatorios (Ciudad, Provincia, Contacto Externo[10]) esten completos.
     19.2  El sistema debe enviar un mail con un link de confirmación al Contacto Externo[10] ingresado en el Aviso de Observación de Mascotas Perdidas[19].
     19.3  El sistema debe confirmar el Aviso de Observación de Mascota Perdida[19] cuando el link es visitado por primera vez, dentro de los 3 días posteriores al envío y envía un mail al Contacto de Mascota[9] de la Mascota Perdida[13] con los datos ingresados en el Aviso de Observación de Mascotas Perdida[19].

 20  El sistema debe gestionar Avisos de Observación de Mascotas Encontrada con su Mascota Encontrada[15], Ciudad[8] con su Provincia[7] y su Contacto Externo[10]
     20.1  El sistema debe validar el Aviso de Observación de Mascotas Encontrada[15] que los datos obligatorios (Ciudad, Provincia, Contacto Externo[10]) esten completos.
     20.2  El sistema debe enviar un mail con un link de confirmación al Contacto Externo[10] ingresado en el Aviso de Observación de Mascotas Encontradas[20].
     20.3  El sistema debe confirmar el Aviso de Observación de Mascota Encontrada[20] cuando el link es visitado por primera vez, dentro de los 3 días posteriores al envío y envía un mail al Contacto de Mascota[9] de la Mascota Encontrada[15] con los datos ingresados en el Aviso de Observación de Mascotas Encontrada[20].
    
 21  El sistema debe mostrar Mascotas Perdidas[13] cuyo Estado de Publicación[6] sea Activo filtrando por Raza[4] o Especie[3]  o Ciudad[8], las combinaciones de estas o sin filtrar.

 22  El sistema debe mostrar Mascotas Encontradas[15] cuyo Estado de Publicación[6] sea Activofiltrando por Raza[4] o Especie[3] o Ciudad[8], las combinaciones de estas o sin filtrar.

 23  El sistema debe mostrar Mascotas Reunidas[12] cuyo Estado de Publicación[6] sea Activo filtrando por Raza[4] o Especie[3] o Ciudad[8], las combinaciones de estas o sin filtrar.

 24  El sistema debe mostrar al azar 4 (cuatro) Mascotas Perdida[13], cuyo Estado de Publicación[6] sea Activo.

 25  El sistema debe mostrar al azar 4 (cuatro) Mascotas Encontrada[15], cuyo Estado de Publicación[6] sea Activo.

 26  El sistema debe mostrar al azar 4 (cuatro) Mascotas Reunida[12], cuyo Estado de Publicación[6] sea Activo.

 27  El sistema debe eliminar automáticamente una vez por día todos los links que no han sido confirmados.
     27.1  El sistema debe eliminar automáticamente Mascotas Perdida[13] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).
     27.2   El sistema debe eliminar automáticamente Mascotas Encontrada[15] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).
     27.3   El sistema debe eliminar automáticamente Avisos de Reunión de Mascotas Perdida[17] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).
     27.4   El sistema debe eliminar automáticamente Avisos de Reunión de Mascotas Encontrada[18] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).
     27.5   El sistema debe eliminar automáticamente los Avisos de Observación de Mascotas Perdida[19] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).
     27.6   El sistema debe eliminar automáticamente los Avisos de Observación de Mascotas Encontrada[20] que han caducado (pasaron 3 días del envío del mail sin confirmación del mismo).

 28  El sistema debe confirmar la publicación de Mascota Perdida[13].
     28.1  El sistema cambia el Estado de Publicación[6] de la Mascota Perdida[13] de Pendiente de Publicación a Activo.
    
 29  El sistema debe confirmar la publicación de Mascota  Encontrada[15].
     29.1  El sistema cambia el Estado de Publicación[6] de la Mascota Encontrada[15] de Pendiente de Publicación a Activo.

 30  El sistema debe enviar Sugerencias.



DICCIONARIO

Tipo de Administradores: (clasificación de atribuciones que tendrá cada administrador del sistema) Descripción, Permisos.[Administrador de Publicaciones | Administrador General]

Administrador del Sistema: Usuario, contraseña, Tipo de Administrador, email. 

Especie:  Descripción. (Es la clase de Mascota, Perro, Gato, etc)

Raza: (Es la raza de cada tipo, un perro Caniche toy, un Gato Siames, etc) Descripción, Especie.

Tamaño: Descripción. 

Sexo: Descripcion.[Hembra | Macho]

Contacto de Mascota[9]: (Es la persona que reporta una mascota perdida o encontrada) Nombre, E-mail. 

Contacto Externo[10]: (Es la persona que reporta que vio a la mascota perdida o conoce a la mascota encontrada). Nombre, E-mail. 

Estados de Publicación: (Es el estado en que se encuentra la publicación de la mascota, si aun no fue confirmada por el Contacto de Mascota[9], si todavía no fue publicada.[Activo | Pendiente de Confirmación | Pendiente de Publicación]). Descripción. 

Provincia: Descripción.

Ciudad: Descripción, Provincia

Mascota Reunida: (Se utiliza para ingresar al sistema una Mascota Reunida que se logro juntar con su Familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.

Mascota Perdida: (Se utiliza para ingresar al sistema una Mascota Perdida que se perdió de su Familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.

Mascota Encontrada: (Se utiliza para ingresar al sistema una Mascota Encontrada que es hallada en la calle y acogida hasta que se encuentre a su familia)Nombre, Edad, Especie, Raza, Tamaño, Contacto de Mascota, Sexo, Estado, Ciudad, Provincia, Observación, Foto1, Foto2, Foto3, Fecha de Alta.

Aviso de Reunión de Mascota Perdida: (Se utiliza para ingresar al sistema que una Mascota Perdida esta reunida con su familia y dar de alta una Mascota Reunida con sus datos) Mascota, Contacto de Mascota

Aviso de Reunión de Mascota Encontrada: (Se utiliza para ingresar al sistema que una Mascota Encontrada esta reunida con su familia y dar de alta una Mascota Reunida con sus datos) Mascota, Contacto de Mascota

Avisos de Observación de Mascota Perdida (Se utilizan para ingresar al sistema que una Mascota Perdida fue vista en una Ubicación.) Mascota Perdida, Contacto Externo, Calles, Ciudad, Provincia

Avisos de Observación de Mascota Encontrada (Se utilizan para ingresar al sistema que se posee información de la Mascota Encontrada): Mascota Encontrada, Contacto Externo, Calles, Ciudad, Provincia

Sugerencias: nombre, email, texto de sugerencia.

 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20121203/d40c0207/attachment-0001.html>


Más información sobre la lista de distribución Php-avanzado