[Php-avanzado] SRS V0.1 beta 1 (?)

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Jul 9 01:03:35 ART 2009


Hola Javier,

El mar, 07-07-2009 a las 22:03 -0300, NeiKeR escribió:
> Hola! Mas que beta esto es un alfa.. pero por algo se empieza...

	Si no se empieza nunca, no se puede llegar ni a beta!

	Te voy a pedir un esfuerzo más o menos grande, respecto a la redacción
de los requerimientos: sacarles la palabra "permitir" a todos.
	Es obvio que si es un requerimiento hay que permitir hacer las cosas.
Por otra parte, da la sensación de que habría cosas que hay que
prohibir, o al menos permitir a veces, lo cual no tiene sentido al
escribir requerimientos: no importa si una funcionalidad se va usar una
vez y cada 5 minutos, si hace falta, hay que implementarla.

> SOY-METALERO.com.ar
> 
> Es un sitio principalmente enfocado a las bandas de Mar del Plata
> (debe permitir la posterior ampliación), el sitio permite el registro
> de usuarios, quienes pueden agregar bandas, discos, eventos o
> artículos. 
> 
> Los usuarios se dividen en 3 grupos: Principiantes, Avanzados y
> Administradores.
> 
> 
> Requerimientos Funcionales
> 1 - El sistema debe permitir el registro de usuarios 

	Mmmm... en tanto que los "usuarios" son los que hacen login en el
sistema, no son un requerimiento funcional.
	Siendo sistemas web, es natural que todo sea multiusuario, pero lo más
importante es que las cosas que el sistema debe hacer no cambian por
tener un usuario o mil, o porque uno sea administrador y otro
principiante.
	Este concepto no es fácil de ver al principio... lo sé.

> 2 - El sistema debe permitir que se agreguen nuevas bandas a la DB .

	Esto habíamos convenido que se escribía "El sistema debe gestionar
bandas", en donde usábamos la palabra gestión para indicar las
Altas/Bajas/Modificaciones de las cosas.

	Por otra parte, y no menos importante, no hay que indicar que se van a
guardar en una DB, esto es una decisión de diseño o de implementación,
pero no es nada funcional. Si querés aclarar que todo tiene que
guardarse en una DB MySQL, esto es un "requerimiento no funcional",
porque nada de la funcionalidad del sistema cambia por cómo se guardan
las cosas.

> 3 - El sistema debe permitir que se agreguen nuevos eventos a la DB
> asociados, si es posible, a las bandas en la DB.
> 
> 4 - El sistema debe permitir que se agreguen nuevos discos a la DB
> asociados con una o varias bandas ya guardadas en la DB.
> 
> 5 - El sistema debe permitir el ingreso de noticias, reviews y
> articulos en general.
> 
> 6 - El sistema debe tener un sistema de mensajes para cada evento,
> banda, articulo y disco.

	Qué esto de los mensajes? Poder dejarle un mensaje a una banda en el
sitio?

> 7 - El sistema debe contar con un calendario con eventos. Una versión
> en miniatura y una versión completa.

	y cambia la funcionalidad del calendario por ser miniatura o completo?

> 8 - El sistema debe dar a los usuarios la posibilidad de publicar
> "clasificados" (compra/venta/cambio de discos, instrumentos, etc)

	Los usuarios sobran acá.

> 9 - El sistema debe contar con una sección para que los músicos
> busquen bandas y viceversa.
> 
> 
> Requerimientos No-Funcionales
> - El sistema debe enviar un mail con info sobre los eventos cada 1
> semana si el usuario así quisiera. 

	Esto es una funcionalidad del sistema. Fijate que el sistema debe hacer
algo concreto, que es enviar un mail!

> - El sistema debe redimensionar todas las imágenes que sean subidas,
> siempre que sea necesario.

	Esto también es funcional... pero qué cosas tienen imágenes???

> - La activación de la cuenta se realiza mediante un código enviado al
> mail del usuario.

	Esto es un caso de uso, pero por ser tan cortito podrías dejarlo acá...

> - El sistema debe contar con un sistema de puntuación para los
> usuarios.

> Cuando un usuario se registra tiene el rango “principiante” y no puede
> agregar nada a la web sin la aprobación de un administrador, cada vez
> que un administrador aprueba un aporte el usuario recibe un punto,
> además cualquier usuario avanzado o administrador puede dar 1 punto a
> cualquier otro usuario. Cuando se alcanza cierto puntaje se llega a
> usuario “avanzado” que pueden agregar info a la web sin previa
> aprobación de un administrador y dar puntaje a otros usuarios.

	Lo de cómo se maneja la puntuación también es funcional... el sistema
debe funcionar de esta manera!

> ======================================================
> Esto es un esbozo de la DB, sin normalizar.. 

	Mmmm.... pero sin el contexto de la SRS no es posible validar un
almacenamiento... sin embargo sirve como Glosario de los datos que
contiene cada entidad en el requerimiento... pero bien podría ser un
glosario que quedar más lindo ;-)

> Informacion sobre usuarios:
> 
> - User Name
> 
> - Mail
> 
> - Contraseña 
> 
> (Encriptada)
> 
> - Permisos
> 
> - Puntaje
> 
> (Y algunos datos mas, no obligatorios)
> 
>  
> 
> Información sobre bandas:
> 
> - Nombre
> 
> - Genero

	Y no hace falta una gestión de Géneros?

> - Logo 
> 
> - Imagen
> 
> - Año de formación y separación (si corresponde)
> 
> - Miembros actuales
> 
> - Miembros pasados

	Y los miembros son descriptivos? Qué pasa si una persona perteneció o
pertenece a varias bandas? Vas a repetir los datos? No vas a ofrecer la
funcionalidad de buscarlos?

> - Información general/notas. (Por ejemplo una biografia)
> 
> - Web oficial
> 
>  
> 
> Información sobre discos:
> 
> - Nombre
> 
> - Banda (En el caso de que sea un compilado, se podrá asociar mas de 1
> banda)
> 
> - Fecha de lanzamiento
> 
> - Tipo (EP, Demo, Live, Album, Compilado, etc)
> 
> - Tracklist
> 
> - Imagen de tapa 
> 
> - Informacion general/Notas
> 
>  
> 
> Información sobre eventos
> 
> - Lugar (Los lugares serán agregados a la base de datos por un
> administrador)
> 
> - Fecha y Hora
> 
> - Bandas que participan (Pueden no estar en la base de datos)
> 
> - Informacion general/Notas
> 
>  
> 
> Información sobre lugares:
> 
> - Nombre
> 
> - Direccion
> 
> - Ciudad
> 
> 
> - Informacion general/Notas
> 
> - URL de GoogleMaps


	Es una muy buena Alfa... a pasarla a Beta ahora!
	Seguimos....

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.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