lunes, 22 de febrero de 2010

Diagrama de clases

Por fin de vuelta tras el parón examenil, una pequeña mudanza y un merecido descanso es hora de volver a continuar con el proyecto. A partir del análisis de requisitos y del díagrama de casos de uso ya se puede empezar a definir las diferentes clases que foromaran la aplicacion. Así, por ejemplo, a partir del diagrama de casos de uso se observa que se pueden definir tres clases de interfaz de usuario. Una de ellas y la principal de la aplicación sera (como en casí cualquier aplicación) la ventana principal y en la cual se realizará presentación de los intrumentos disponibles y se visualizará el hecho de que el usuario toca algún intrumento para lo cual se controlará los eventos de teclado y ratón (dsWinMain).

Por otro lado también se necesitarán interfaces que permitan al usuario tener la posibilidad de añadir un nuevo instrumento y la configuración de cada uno de los ya existentes para lo que serán necesarias otras dos clases adicioneles (dsWinAddIntrumento y dsWinConfigIntrumento). Por último también y por relacionar los posibles elementos de interfaz que puedan presentarse para ilustrar undeterminado instrumento será necesario definir un control (dsCrlIntrumento). Estas clases de interfaz heredarán todas de sus clases bases dentro de la librería FLTK por lo que las ventanas heredern de la clase Fl_Window y el control dsCrlIntrumento de la clase Fl_Control.
Por otro lado en cuanto a las clases que no pertenecen al interfaz es obvio que será necesario definir una clase que describa a cada intrumento y en la cual se guardarán los diferentes datos sobre este (fuente de sonido, intensidad, ...) y efectuar todas las operaciones que ya se han mencionado en la especificación de requisitos (cargar sonido, tocar sonido, subir y bajar la intensidad, ...) para lo que se define la clase dsIntrumento.

Además y como ya se ha dicho se pretende que los intumentos no se reproduzcan de forma idividual sino que lo hagan mezclandose entre ellos de forma que compongan una determinado ritmo (que será una clase futura para cuando interese guardad los sonidos), de modo que se define otra clase adicional (dsMixer) en la que se realizara dicha composición y que es la que se encargará finalmente de reporoducir los diferentes intrumentos que se vallan tocando. Con todo ello ya se puede definir el siguiente diagrama UML de clases en el que se detalla (más o menos) cada una de las clases descritas:

No hay comentarios:

Publicar un comentario