miércoles, 16 de diciembre de 2009

Análisis de requisitos

Ahora que ya están definidos los requisitos, es un buen momento para empezar a definir de forma más formal que es lo que hará o mejor dicho que es lo que queremos que haga la aplicación a partir de esos requisitos informales de modo que lo siguiente que hay que hacer es tomar cada uno de los requisitos y explicarlos de un modo más técnico y teniendo en cuenta con que arquitectura se va ha contar.

En este primer punto ya sabemos que se necesita un PC que cuente por lo menos con un ratón (con rueda como ya se verá después) y un teclado (aunque esto parezca una obviedad es importante comentarlo). Pero ahora bien, como debe ser ese equipo, ya que otro de los requisitos ya descritos es que se hará una reproducción de varios sonidos en tiempo real por lo que sin duda esos sonidos tendrán que estar cargados en memoria y además habrá que contar con un procesador que sea capaz de mezclar estos sonidos casi a la vez que se reproducen. Sin duda es algo difícil de calcular ya que en este caso dependerá del SO, de las librerías que usemos, del interfaz que se cree, etc. por lo que en un primer lugar lo mejor sería ver que requisitos tienen algunas aplicaciones similares y establecer este como el requisito para un equipo en el que funcionará la aplicación. En este caso se utilizará como modelo la aplicación Linux MultiMedia Studio cuyos requisitos son un procesador a 1GHz y al menos 512 MB de RAM siendo estos valores los que límiten los recursos de los que se dispone para hacer funcionar la aplicación.

A continuación hay que centrarse en los requisitos más funcionales de la aplicación si bien ya se explican casi por ellos mismos a partirde la especificación de requisitos hay que redefinirlos de forma más precisa de cada uno de los puntos:
    • El principal objetivo que se quiere desarrollar es la reproducción y mezcla de varios sonidos (intrumentos) así como la aplicaciṕon de efectos sobre estos (en principio solo el cambio de intensidad) al detectarse la pulsación del teclado (de aquí ya se podrían sacar esquemas pero me estoy conteniendo :P).

    • El control de la intensidad debe realizarse en tiempo real al combinar controles de ratón y teclado. Es decir, al girar la rueda del ratón hacia un lado mientras se mantiene pulsada una tecla se bajará la intensidad del sonido asociado y si se gira al lado contrario pues al contrario.

    • La relación entre cada tecla y su sonido debe ser configurable por el usuario.

    • Además el usuario puede añadir nuevas fuentes de sonido y asociarlo a una determinado caracter de teclado para su reproducción así como eliminar los que ya han sido cargados previamente o editarlos cambiando su fuente de sonido por ejemplo.

    • Los instrumentos que debe ser capaz de reporducir la aplicación por defecto (es decir propios de la aplicación) son los de bombo, caja (redoble, claqueta, caja), toms, tom suelo, platillos, hit hat y ride. Este requisito por suerte ya está cubierto.

    • Y, aunque esto ya se debería haber comentado con anterioridad, el interfaz de la aplicación debe ser capaz de ejecutarse en Windows, y en los diferentes entornos de escritorio de Linux, por lo que tendrá que ser compatible con X11.



En resumen, para que la aplicación sea válida a los objetivos iniciales que se han propuesto anteriormente, el desarrollo debe cumplir tanto los aspectos funcionales mencionados como ser capaz de cumplir estos aspectos en la arquitectura indicada por lo que se deberá realizar el resto de las decisiones teniendo todos estos puntos en cuenta.

No hay comentarios:

Publicar un comentario