Antonio Membrides Espinosa1*, Angel Rilder Salazar Calderín1
Total Page:16
File Type:pdf, Size:1020Kb
SLAM-C++ en la construcción de aplicaciones multimedia SLAM-C + + to build multimedia applications Antonio Membrides Espinosa, Angel Rilder Salazar Calderín, Abel Ernesto Lorente Rodríguez Universidad de las Ciencias Informáticas [email protected] Resumen Los software educativos se caracterizan por el procesamiento de grandes volúmenes de información en varios formatos de presentación, así como la concepción de lineamientos pedagógicos, también en algunos casos se hace necesario el seguimiento a los estudiantes con trazas mediante las cuales se puede seguir el avance cognitivo de estos. Brindan además la posibilidad a los profesores de interactuar y personalizar el software adicionando documentos, creado sus propios ejercicios lo que contribuye a un mejoramiento y actualización del software. Teniendo en cuenta que todos estos elementos aumentan considerablemente la complejidad de este tipo de software, además de la necesidad de herramientas totalmente libres y robustas para la construcción de multimedia, se decide confeccionar un framework multiplataforma para el desarrollo de multimedia educativa, el cual fue denominado SLAM-C++. En el presente trabajo se exponen los resultados de todo el proceso investigativo, así como las razones por las cuales es de vital importancia desarrollar herramientas propias para la construcción de productos multimedia. Con el fin de lograr este objetivo se desarrolló un análisis comparativo acerca de las tendencias y tecnologías libres existentes utilizadas en la construcción de estas aplicaciones. Posteriormente se procede a conceptualizar el sistema propuesto. Palabras Claves: Framework, Multimedia, Sistemas de Autor, Software Libre Abstract The educational software is characterized by the processing of large volumes of information in several formats. These systems are also defined by the design of educational tracks or the development traces of use, progress and cognitive user involvement to use databases and the ability of teacher to add multimedia elements to the system to enrich the software. All these factors increase the complexity of this type of software, besides the need for free and robust tools for building multimedia, it was decided to establish a framework for cross-platform development, which was called SLAM-C + +. In the present work is outcome of the entire investigative process, as well as the reasons why it is vital to develop its own tools for building multimedia products. We developed a comparative analysis on trends and technologies available free used in the construction of such applications. Subsequently proceeded to conceptualize the proposed system and the modeling of reach. Key words: Author's Systems, Framework, Free Software, Multimedia Introducción La utilización de software propietario para el desarrollo de aplicaciones multimedia establecido en la industria del software nacional, garantiza gastos insostenibles y una creciente dependencia tecnológica hacia las transnacionales, siendo esta una de las razones por la que países como Cuba donde el desarrollo de las industrias tecnológicas es aún incipiente, presentando serias dificultades, no seria económicamente factible el uso de los mismos. Frente a esta realidad, esta clara la necesidad de alternativas para la construcción de multimedia con tecnologías libres y sin embargo es también la principal problemática. En la actualidad no se cuenta con sistemas de autor que se ejecuten sobre GNU/Linux para el desarrollo de aplicaciones multimedia y las herramientas que existen no cumplen en su totalidad con los requerimientos que implican estos productos. Muchos han sido los esfuerzos por desarrollar herramientas libres análogas a Adobe Flash, sus mayores logros están dirigidos al entorno gráfico, sin embargo estas carecen de la capacidad para crear vectorizaciones complejas o interpolación de movimientos, con interfaces poco intuitivas, no adoptan en su plenitud una metáfora de trabajo específica para el desarrollo de este tipo de aplicaciones y ni siquiera soportan código script. Por otra parte se han desarrollado un conjunto de aplicaciones dirigidas al desarrollo desde el punto de vista del programador, como son compiladores y algunas herramientas que resuelven problemas específicos como elementos en las biblioteca, inyección de código, conversión de formatos, etc. El problema no se fundamenta en la inexistencia de herramientas, sino todo lo contrario, en la actualidad la comunidad de software libre cuenta con una suma considerable de software que de una forma u otra permiten la creación de aplicaciones multimedia, sin embargo ninguno por separado puede ser considerado como una alternativa de desarrollo y su integración podría llegar a ser extremadamente compleja. Partiendo de esta problemática en el año 2008 dos estudiantes de la Universidad de las Ciencias Informáticas bajo la tutoría de uno de los profesionales que pertenecía a la dirección de software educativo del centro, se plantearon la necesidad de elaborar una solución lo suficientemente sólida y robusta que permitiera desarrollar aplicaciones multimedia con tecnologías no propietarias, de forma tal que las mismas pudiesen ejecutarse sobre plataformas de software libre como GNU/Linux. Desarrollo Metodología Computacional A lo largo de esta investigación se utilizarán un conjunto de métodos científicos que servirán de guía y facilitarán un mejor entendimiento de lo que está sucediendo, como es el caso de los métodos empíricos y los teóricos. A continuación se explica en detalles el por que de su selección. Métodos Empíricos: 1. Encuestas y Entrevistas: Se entrevistarán a varios líderes de proyecto de software educativo en la UCI, diseñadores experimentados, así como a directivos de producción en la Universidad y del MINED, para recopilar toda la información que en estas puedan suministrar y de esta forma conocer cómo se desarrolla el proceso de desarrollo de software educativo de forma general en la Universidad y el país. Métodos Teóricos: 1. Histórico-Lógico: Se llevará a cabo un análisis de la trayectoria hasta la actualidad del proceso de desarrollo de software educativo en nuestro país y fundamentalmente en la UCI, teniendo en cuenta las herramientas para el desarrollo de aplicaciones multimedia que se han utilizado, para conocer con mayor profundidad, los antecedentes y las tendencias actuales. Esto dará un preámbulo de que es lo que está pasando y un punto de partida para proponer posibles soluciones. 2. Modelación: Se desarrollará un conjunto de diagramas que propiciaran un mejor entendimiento de la arquitectura y de lo que se desea implementar. 3. Analítico–sintético: Se llevará a cabo un análisis de las teorías, documentos, etc, permitiendo la extracción de los elementos más importantes que se relacionan con el objeto de estudio. Soluciones existentes para el desarrollo de multimedia En la actualidad el desarrollo de herramientas libres para la construcción de aplicaciones multimedia no es lo suficientemente sólido como para saciar las necesidades que estos productos implican, la comunidad de software libre ha empleado todo su empeño en desarrollar dichas herramientas, aunque todavía no se cuenta con sistemas a la altura de Macromedia, existen varios proyectos muy prometedores y ya se han empezado a ver los resultados. En el desarrollo de herramientas para la construcción de multimedia que corran sobre plataformas libres podemos identificar 2 vertientes: 1. Línea de desarrollo basada en formato SWF. 2. Línea de desarrollo basada en lenguajes de propósito general. Dentro de cada una de estas líneas se identifican al menos 2 alternativas para desarrollar aplicaciones multimedia con tecnologías libres, véase la figura 1. Fig. 1. Alternativas para el desarrollo de multimedia con tecnologías libres. ¿Por qué utilizar SLAM-C++? Como bien queda representado en la figura anterior, una de las alternativas consiste en hacer uso de un conjunto de herramientas que faciliten el trabajo con el formato SWF, como por ejemplo SWFMILL, SWFTools, SWFExtract, etc, conjuntamente con el Adobe Flash Player 9 en su versión para GNU/Linux o el GNash para aplicaciones de escritorio. Contrario a esto podríamos reproducir los binarios SWF directamente para la Web, siendo la opción menos recomendada debido a la carga de información de todo tipo característica de aplicaciones multimedia, pues la eficiencia y rapidez de los productos finales no sería la óptima, incluso requeriría mucho más hardware de las PC de los futuros clientes tentando en su contra. De una forma u otra las dos alternativas se basan en el formato SWF, si bien es cierto que el ActionScrip provee de muchos mecanismos para el tratamiento de la animación con gráficos vectoriales, no soporta funcionalidades para acceso a disco duro, bases de datos, escritura en ficheros y XML, ni mecanismos para la programación multihilo, siendo esto elementos importantísimos para la construcción de productos multimedia de forma eficiente y con la calidad requerida. También es importante tener en cuenta que a pesar e la reciente libración de formato SWF, no ha dejado de ser privativo y al utilizar el software de Adobe Systems Incorporated o cualquiera de sus filiales, se deben aceptar los términos y condiciones de usos que establecen sus licencias, o de lo contrario no se podría trabajar con sus productos. Un elemento importante en el uso de Neko y Haxe para desarrollar multimedia, es su extensibilidad, permitiendo cargar librerías compartidas hechas en C, de forma tal que aquello que no se pueda hacer con el lenguaje Neko, se