[Php-avanzado] Requerimiento Juan Manuel V7 Corregida

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Lun Dic 3 17:21:26 ART 2012


Hola Juan Manuel,

	Dejo para responderte solo las cuestiones que tienen alguna observación
o alguna consulta:

El sáb, 01-12-2012 a las 16:52 -0300, Juan Manuel P. escribió:
> 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".

> 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?

	
> 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".

> 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.
	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.

>      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...

>      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.


>     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).

	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.

	Yo creo que si seguís así, tan prolijo como este último envío, en 2 o 3
iteraciones más la tendríamos que poder dar por terminada.

	Si tenés dudas puntuales, consultá por acá para que la próxima versión
sea mejor. 
	Si tenés dudas conceptuales, por favor anotales y lo charlamos en
clase.

	Saludos!



> Requerimientos No Funcionales: los tipos de administrador y su relación
> con los accesos no se especifica así. Te dije en clase que la forma de
> especificarlo es hacer referencia a qué RF (total o parcial) accede cada
> uno de los tipos de administrador.
> -se eliminaron los requerimientos no funcionales.
> 
> 
> 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 Mascotas Perdidas con su  Raza [4] con
> su Especie [3], Tamaño [5], Contacto de Mascota, Estado de
> Publicación[6] y Ciudad [8] con su Provincia[7].
>      9.1  El sistema debe validar la Mascota Perdida[9], que los datos
> obligatorios ( Raza, Especie, Tamaño, Contacto de Mascota, Ciudad y
> Provincia) estén todos completos.
>      9.2  El sistema debe enviar un mail con un link de confirmación
> al mail del Contacto de Mascota de la Mascota Perdida[9], que expira
> en 3 días, guardar la Mascota Perdida[9] con un Estado de
> Publicación[6] inicial Pendiente de Confirmación
>      9.3  El sistema debe confirmar la Mascota Perdida [9]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.
>      9.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[9].
> 
>  10  El sistema debe dar de alta Mascotas Encontrados con su  Raza [4]
> con su Especie [3], Tamaño [5], Contacto de Mascota,  Estado de
> Publicación[6] y Ciudad [8] con su Provincia[7].
>      10.1  El sistema debe validar la Mascota Encontrada[10], que los
> datos obligatorios  (Especie, Tamaño, Contacto de Mascota, Ciudad y
> Provincia) estén todos completos.
>      10.2  El sistema debe enviar un mail con un link de confirmación
> al mail del Contacto de Mascota de la Mascota Encontrada[10], que
> expira en 3 días, guardar la Mascota Encontrada [10] con un Estado de
> Publicación[6] inicial Pendiente de Confirmación
>      10.3  El sistema debe confirmar la Mascota Encontrada [10]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.
>      10.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 [10].
> 
>  11  El Sistema debe dar de alta Aviso de Reunión de Mascota Perdida
> con su  de Mascota Perdida[9]
>      11.1  El sistema debe validar que la Mascota Perdida [9]
> ingresada este registrada en el sistema y su Estados de Publicación[6]
> sea Activo.
>      11.2  El sistema debe enviar un mail con un link de confirmación
> al mail del Contacto de Mascota de la Mascota Perdida[9].
>      11.3  El sistema debe confirmar el Aviso de Reunión de Mascota
> Perdida[11] cuando el link enviado es visitado, dentro de los 3 días
> posteriores al envío del mail.
>      11.4  El sistema debe borrar la Mascota Perdida[9] y da de alta
> con los mismos datos una Mascota Reunida.
> 
>  12  El Sistema debe dar de alta Aviso de Reunión de Mascota
> Encontrada con su Mascota Encontrada[10]
>      12.1  El sistema debe validar que la Mascota Encontrada [10]
> ingresada este registrada en el sistema y su Estados de Publicación[6]
> sea Activo.
>      12.2  El sistema debe enviar un mail con un link de confirmación
> al mail del Contacto de Mascota de la Mascota Encontrada[10].
>      12.3  El sistema debe confirmar el Aviso de Reunión de Mascota
> Encontrada[12] cuando el link enviado es visitado, dentro de los 3
> días posteriores al envío del mail.
>      12.4  El sistema debe borrar la Mascota  Encontrada[10] y da de
> alta con los mismos datos una Mascota Reunida.
> 
>  13  El sistema debe gestionar Avisos de Observación de Mascotas
> Perdidas con su Mascota Perdidas[9], Ciudad [8] con su Provincia[7] y
> su Contacto Externo
>      13.1  El sistema debe validar el Aviso de Observación de Mascotas
> Perdida[9] que los datos obligatorios (Ciudad, Provincia, Contacto
> Externo) esten completos.
>      13.2  El sistema debe enviar un mail con un link de confirmación
> al Contacto Externo ingresado en el Aviso de Observación de Mascotas
> Perdidas[13].
>      13.3  El sistema debe confirmar el Aviso de Observación de
> Mascota Perdida[13] 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 de la Mascota Perdida[9] con los datos ingresados en el Aviso
> de Observación de Mascotas Perdida[13].
>     
>  14  El sistema debe gestionar Avisos de Observación de Mascotas
> Encontrada con su Mascota Encontrada[10], Ciudad [8] con su
> Provincia[7] y su Contacto Externo
>      14.1  El sistema debe validar el Aviso de Observación de Mascotas
> Encontrada[10] que los datos obligatorios (Ciudad, Provincia, Contacto
> Externo) esten completos.
>      14.2  El sistema debe enviar un mail con un link de confirmación
> al Contacto Externo ingresado en el Aviso de Observación de Mascotas
> Encontradas[14].
>      14.3  El sistema debe confirmar el Aviso de Observación de
> Mascota Encontrada[14] 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 de la Mascota Encontrada[10] con los datos ingresados en el
> Aviso de Observación de Mascotas Encontrada[14].
>     
>  15  El sistema debe mostrar Mascotas Perdidas[9] filtrando por Raza
> [4] o Especie [3]  o Ciudad [8], las combinaciones de estas o sin
> filtrar.
> 
>  16  El sistema debe mostrar Mascotas Encontradas[10] filtrando por
> Raza [4] o Especie [3] o Ciudad [8], las combinaciones de estas o sin
> filtrar.
> 
>  17  El sistema debe mostrar Mascotas Reunidas[11.4],[12.4] filtrando
> por Raza [4] o Especie [3] o Ciudad [8], las combinaciones de estas o
> sin filtrar.
> 
>  18  El sistema debe mostrar al azar 5 (cinco) Mascotas Perdida[9],
> cuyo Estados de Publicación[6] sea Activo.
> 
>  19  El sistema debe mostrar al azar 5 (cinco) Mascotas
> Encontrada[10], cuyo Estados de Publicación[6] sea Activo.
> 
>  20  El sistema debe eliminar automáticamente una vez por día todos
> los links que no han sido confirmados.
>      20.1  El sistema debe eliminar automáticamente Mascotas
> Perdida[9] que han caducado (pasaron 3 días del envío del mail sin
> confirmación del mismo).
>      20.2   El sistema debe eliminar automáticamente Mascotas
> Encontrada[10] que han caducado (pasaron 3 días del envío del mail sin
> confirmación del mismo).
>      20.3   El sistema debe eliminar automáticamente Avisos de Reunión
> de Mascotas Perdida[11] que han caducado (pasaron 3 días del envío del
> mail sin confirmación del mismo).
>      20.4   El sistema debe eliminar automáticamente Avisos de Reunión
> de Mascotas Encontrada[12] que han caducado (pasaron 3 días del envío
> del mail sin confirmación del mismo).
>      20.5   El sistema debe eliminar automáticamente los Avisos de
> Observación de Mascotas Perdida[13] que han caducado (pasaron 3 días
> del envío del mail sin confirmación del mismo).
>      20.6   El sistema debe eliminar automáticamente los Avisos de
> Observación de Mascotas Encontrada[14] que han caducado (pasaron 3
> días del envío del mail sin confirmación del mismo).
> 
>  21  El sistema debe confirmar la publicación de Mascota Perdida[9].
>      21.1  El sistema cambia el estado de la Mascota Perdida[9] de
> Pendiente de Publicación a Activo.
>     
>  22  El sistema debe confirmar la publicación de Mascota
> Encontrada[10].
>      22.1  El sistema cambia el estado de la Mascota Encontrada[10] de
> Pendiente de Publicación a Activo.
> 
>  23  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: Descripción, Tipo. Es la raza de cada tipo, un perro Caniche
> toy, un Gato Siames, etc
> 
> Tamaño: Descripción. 
> 
> Contacto de Mascota: Nombre, E-mail. Es la persona que reporta una
> mascota perdida o encontrada
> 
> Contacto Externo: Nombre, E-mail. Es la persona que reporta que vio a
> la mascota perdida o conoce a la mascota encontrada.
> 
> Estados de Publicación: Descripción. Es el estado en que se encuentra
> la publicación de la mascota, si aun no fue confirmada por el Contacto
> de Mascota, si todavía no fue publicada. [Activo | Pendiente de
> Confirmación | Pendiente de Publicación]
> 
> Provincia: Descripción.
> 
> Ciudad: Descripción, Provincia
> 
> 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.
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado

-- 
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