[Php-avanzado] Fwd: SRS tienda virtual

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Nov 20 12:29:52 ART 2013


Hola Maximiliano,

El lun, 18-11-2013 a las 21:02 -0200, Maximiliano Lizondo escribió:
> Leo, hice las correcciones que hablamos en su momento. Decime por
> favor si están correctas.

	Te respondo intercalado.

> Ahora que lo veo, no me cierra mucho lo de "Listas de precios de
> productos". Es decir, ¿no sería más sencillo agregar los atributos de
> "Listas...." a "Productos"? 

	Tal vez es ligeramente más sencillo, pero estarías omitiendo
especificar las listas de precios, que son algo que sí tenés en este
problema: una lista de precios para los clientes de tipo particular y
otra para los clientes revendedores.
	Esto sin contar con que si luego querés una tercer lista de precios, es
inviable de implementar sin modificar el código (de lo que resulta que
faltaba algo en la especificación)

> y entonces, los productos tendrían dos precios: uno para los clientes
> de tipo particular y otro para los clientes de tipo revendedor. Luego,
> cuando el cliente arme su pedido el sistema le mostraría los precios
> de productos correspondientes a su tipo de cliente.

	Esta parte es una discusión sobre cómo escribir el software, pero
recordá que acá estás especificando qué software escribir, y no cómo
escribirlo.


> RESUMEN:
> 
> La aplicación consiste en una tienda virtual.
> 
> Dicha aplicación podrá dar de alta, baja, modificar y presentar en
> pantalla a proveedores, productos  y clientes con sus respectivos
> atributos.
> 
> El cliente podrá registrarse y obtener una cuenta personal. Además,
> podrá seleccionar productos y agregarlos a su lista de compras.
> 
> Es importante señalar que la aplicación utilizará una de dos posibles
> listas de precios de productos, dependiendo del tipo de cliente
> (cliente tipo particular o cliente tipo revendedor). Dicha información
> es solicitada por la aplicación al momento de registrarse el cliente.
> 
> Cuando el cliente finalice la selección de productos y método de
> envío, la aplicación presentará en pantalla el precio total del
> pedido. Teniendo en cuenta los datos personales del cliente, la
> aplicación podrá calcular el precio de envío al lugar de residencia
> del cliente. 
> 
> A continuación, la aplicación enviará la información detallada del
> pedido a una casilla de correo electrónico.
> 
>  
> 
> REQUERIMIENTOS FUNCIONALES:
> 
> 1- El sistema debe gestionar países.
> 
> 2- El sistema debe gestionar provincias con su país[1].
> 
> 3- El sistema debe gestionar localidades con su provincia[2].

	Omití pedirte que al RF3 le agregues también la Provincia.
	Acá es como que la asumís por transitividad, pero en el RF4 y RF9 la
explicitás, y entonces queda confuso.
	Igual, lo correcto es especificar todo.

> 4- El sistema debe gestionar proveedores con su país[1], provincia[2]
> y localidad[3].
> 
> 5- El sistema debe gestionar formatos de productos.
> 
> 6- El sistema debe gestionar productos con sus proveedores[4] y
> formatos de productos[5].
> 
> 7- El sistema debe gestionar tipos de documento.
> 
> 8- El sistema debe gestionar tipos de clientes.
> 
> 9- El sistema debe gestionar clientes con su país[1], provincia[2],
> localidad[3], tipo de documento[7] y tipo de cliente[8].
> 
> 10- El sistema debe gestionar tipos de moneda.

	En el diccionario de Moneda aparece que tiene un país: agregale un "con
su País[1]" acá así queda la referencia funcional.

> 11- El sistema debe gestionar listas de precios de productos con sus
> productos[6], tipos de moneda[10] y tipo de cliente[8].

	El RF11 está bien, pero significa que un cliente va a poder tener una
lista de precios que depende de su tipo únicamente, y no se podrá por
ejemplo definir una lista de precios X para asignársela a un grupo de
clientes porque se negoció un precio diferente o lo que fuera.
	Te insisto que está bien, pero es muy limitante. Si querés podemos ver
mañana como generalizar un poco esto agregando dos pavadas.

> 12- El sistema debe gestionar tipos de envío con su país[1],
> provincia[2], localidad[3].
> 
> 13- El sistema debe gestionar estados de pedidos.
> 
> 14- El sistema debe registrar pedidos con sus clientes[9],
> productos[6], tipo de envío[12] y estados de pedidos[13].

	Un Pedido puede ser enviado a más de un Cliente???
	Un Pedido se puede cambiar de estado sin restricción alguna? Es decir,
se pueden cancelar pedidos aceptados y reaceptar pedidos cancelados
siempre?
	No hace falta algún estado más en la definición de Estados de Pedidos,
como "entregado", "en proceso", "verificado", etc ? 

> 15- El sistema debe enviar los pedidos[14] a una casilla de correo
> electrónico.
> 
>  
> 
> DICCIONARIO:
> 
> Países: nombre de país
> 
> Provincias: nombre de provincia, país
> 
> Localidades: nombre de localidad, país, provincia, código postal
> 
> Proveedores: razón Social, país, provincia, localidad, dirección,
> email, página web, teléfono
> 
> (Se considera proveedores a sellos discográficos y comerciantes, que
> son gestionados por el sistema UNICAMENTE a través de un usuario
> administrador)
> 
> Tipos de documento: país, DNI/CI/LE/LC
> 
> Tipos de envío: país, provincia, localidad, correo argentino/correo
> privado/encomienda por ómnibus, precio de envío
> 
> Clientes: nombre de cliente, tipo de cliente, tipo de documento,
> número de documento, país, provincia, localidad, dirección, email.
> 
> (Se considera cliente a cualquier individuo que accede al sistema para
> registrarse en el mismo)
> 
> Tipos de clientes: particular/revendedor
> 
> Tipos de moneda: nombre de moneda, país
> 
> Productos: nombre de producto, código de identificación, proveedor,
> formato de producto
> 
> Listas de precios de productos: productos, tipos de moneda, precio de
> producto, tipo de cliente
> 
> Formatos de productos: nombre de formato, CD/TAPE/VINYL
> 
> Estados de pedidos: aceptado/cancelado
> 
> Pedidos: fecha de emisión, clientes, productos, tipo de envío, precio
> total del pedido, estado de pedido


	Bueno Maximiliano, como ves son más que nada dudas que tengo por no
conocer mucho del proyecto y cómo es la operatoria.
	Si querés el Jueves en clase le pegamos una revisión a la nueva
versión, la ajustamos si hace falta y ya la vamos dejando terminada.

	Saludos!


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