lunes, 5 de marzo de 2012

AADL: un lenguaje de modelado para Arquitectos de Software

Hoy voy a hablar del AADL, un lenguaje para nada nuevo, y que sin embargo es bastante poco conocido. Vamos a revisar algunas de sus características generales:
  • Existe como estándar internacional desde 2004.
  • Nació como lenguaje orientado a entornos de aviónica, pero actualmente su alcance es mucho más amplio.
  • Está promovido por el SEI
  • Pretende estandarizar en un lenguaje de modelado, el diseño de arquitecturas (hardware y software).
  • Nació para sistemas embebidos, por lo que admite hardware y software.
  • Es un lenguaje textual y gráfico.
  • Incluye un formato de intercambio XML/XMI que permite interoperabilidad con herramientas del mercado
  • Dispone de una extensión para el modelado de sistemas resistentes/tolerantes a fallos.
Puede utilizarse para modelar:
  • Sistemas empotrados, como arquitectura de sistema basada en componentes.
  • Las interacciones de los componentes mediante flujos, llamadas de servicio y de acceso compartido.
  • Ejecución de tareas, sincronización exacta de comunicaciones.
  • Plataformas de ejecución, application binding, modelos operativos y configuraciones tolerantes a fallos.
Hay muchos otros lenguajes de modelado, pero éste me ha parecido curioso y me apetecía echarle un vistazo y compartirlo.

Ejemplo.
A continuación, un ejemplo sacado de la página de AXLOG:


system system1
end system1;

system implementation system1.impl
    subcomponents
        p1: process process1.impl;
        p2: process process2.impl;
    connections
        cn: data port p1.outport -> p2.inport;
end system1.impl;

process process1
    features
        outport: out data port;
end process1;

process implementation process1.impl
    subcomponents
        t1: thread thread1.impl;
    connections
        cn: data port t1.outport -> outport;
end process1.impl;

process process2
    features
        inport: in data port;
end process2; process implementation process2.impl
    subcomponents
        t2: thread thread2.impl;
    connections
        cn: data port inport -> t2.inport;
end process2.impl;

thread thread1
    features
        outport: out data port;
end thread1;

thread implementation thread1.impl
end thread1.impl;

thread thread2
    features
        inport: in data port;
end thread2;

thread implementation thread2.impl
end thread2.impl;


Os dejo con unos enlaces en los que podréis ampliar información:
http://en.wikipedia.org/wiki/Architecture_Analysis_%26_Design_Language (Nota: para ser Wikipedia, la verdad es que la información que da es bastante pobre a fecha 5 de Marzo de 2012)
http://www.sei.cmu.edu/dependability/tools/aadl/
http://www.axlog.fr/aadl/presentation_en.html (este enlace sí que tiene bastante información, ya que AXLOG es una firma miembro del comité de estandarización de AADL).

No hay comentarios:

Publicar un comentario