Programming

Sotfware Design

For this project, we are usign all the software libaries left by the last semester group. The Jam-O Drum library consist of a set of libraries or layers that support the hardware, input and output of the Jam-O Drum. The low-level libraries that have the interfaces with the hardware are made in C++. Above this layer, there is the Jam-O Drum Control Panel layer, who encapsulates all that any experience can use and need. This library is finally a Java interface that we have to implement in order to create a new Jam-O Drum experience.


sw_archgen.gif sw_arch.gif
General Jam-O Drum Architecture Jam-O Drum Architecture
sw_javalib.gif sw_jaliceint.gif sw_classes.gif
Jam-O Drum Java Library Interaction with JAlice Musica UML Static Class Diagram

The real purpose of this kind of design is to encapsulate all the Jam-O Drum knowledge in a set of components or packages. In this way, for example, the C++ library is the only one that has to be aware of the hardware because it talks with it directly. The Java packages in top of this assume that the hardware things are working and they don’t have to know how do they work. The Java JOD library is made to be reused for every JOD experience.

For our experience, we added two components above the Jam-O Drum library. One is a set of Java classes (UML Class Diagram) The other one is a Jalice World to be played with Jalice