
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.
