JACAL


 

JACAL es un lenguaje gráfico multipropósito para la descripción de arquitecturas de software (ADL). Reúne ventajas de otros lenguajes existentes y tiene la virtud de permitir la ejecución (animación) de las arquitecturas descritas. Mediante este procedimiento se puede comprobar o refutar propiedades deseables de los diseños y recopilar métricas dinámicas. Se basa en una semántica denotacional que traduce arquitecturas a redes de Petri, que a su vez poseen una semántica operacional. Creé este lenguaje como parte de mi tesis de licenciatura; sigue siendo utilizado en proyectos de investigación y trabajos de tesis.

 

También hay un ambiente de diseño y ejecución de sistemas descriptos en JACAL. La versión original fue implementada en forma unipersonal en el marco de mi tesis de licenciatura. Durante los trabajos de investigación posteriores se extendió su funcionalidad. En su versión actual (debida al Lic. Germán Parente), permite el almacenamiento de trazas de ejecución, la exportación de los diseños para integrarse con otras herramientas CASE, y la evaluación automática de métricas estáticas y dinámicas sobre las trazas creadas.

 

Acá hay un paper con los fundamentos de JACAL, y acá está la aplicación desarrollada en C++ para plataformas Win32, acompañada de algunos ejemplos.

 

Actualmente, nuestro grupo de investigación está trabajando en la versión 2 de JACAL, reformulando el lenguaje para adecuarlo a las tendencias en arquitecturas de software, agregándole la capacidad de describir sistemas de tiempo real y desarrollando un nuevo entorno de trabajo.

 


 

JACAL is a multipurpose graphical Software Architectures description language (ADL). It leverages features of existing languages and has the virtue of allowing the execution (animation) of described architectures. Through this process, certain desirable properties of a design can be proven and dynamic metrics can be obtained. It is based on a denotational semantics that translates  SA to Petri nets which then yield an operational semantics. I created the language as part of my MS thesis; it is still being used in research projects and theses.

 

There is also an environment for the design and execution of systems described in JACAL. I implemented the original version on my own during my thesis. Further research work extended its functionality. Some of the features included in the current version (due to Lic. Germán Parente) are: storing execution traces, exporting designs for integration with other CASE tools and evaluating both dynamic and static metrics over generated  traces.

 

Here is a paper introducing JACAL fundamentals, and the application developed in C++ for Win32 platforms is here, together with some examples.

 

Our research group is currently working on version 2, redesigning the language according to the state of the art in Software Architectures, extending its capacity to describe real-time systems and developing a new environment.