Trabajo fin de máster de computación. Melitón Pablo Mangué.

19
Integración de las herramientas de análisis MAST en un entorno de desarrollo dirigido por modelos y basado en Eclipse Trabajo fin de máster de computación. Melitón Pablo Mangué. Universidad de Cantabria. Octubre 2013

description

Integración de las herramientas de análisis MAST en un entorno de desarrollo dirigido por modelos y basado en Eclipse. Trabajo fin de máster de computación. Melitón Pablo Mangué. Universidad de Cantabria. Octubre 2013. MDE y Sistemas de tiempo real. - PowerPoint PPT Presentation

Transcript of Trabajo fin de máster de computación. Melitón Pablo Mangué.

Page 1: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Integración de las herramientas de análisis MAST en un entorno de desarrollo dirigido por modelos y basado en

Eclipse

Trabajo fin de máster de computación. Melitón Pablo Mangué.

Universidad de Cantabria. Octubre 2013

Page 2: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

MDE y Sistemas de tiempo real

• Este trabajo se enmarca en dos campos diferentes

• Aplicación de MDE al desarrollo de sistema de tiempo real

MDESistemas de tiempo

real

Page 3: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Versiones de los modelos

de datos

El entorno MAST

v2.0

Versiones de las

herramientasv1.4

Page 4: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Entorno RT-MDE• Un proceso de desarrollo requiere de un entorno.

RT-MDE que integra modelos, herramientas y mecanismos interacción con el operador.

• La plataforma (Eclipse) y el dominio (STR) y metodología (MAST) son ortogonales.

• Esta implementación se denomina RT-MDE

Entorno RT-MDE

Metodología MAST Plataforma Eclipse

Page 5: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

El entorno RT-MDE

Page 6: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Objetivos• Objetivo principal: Integrar MAST en el entorno

RT-MDEo Definir mecanismo de interacción entre el entorno RT-MDE y

herramientas externaso Validar el mecanismo definido para el caso de MASTo Procesar modelos Ecore desde Ada y aplicarlos a MAST 2.0

RT-MDE

MAST 1.4MAST 2.0(EMF-mdl)

MAST Result 2.0(EMF-mdl)

MAST 2.0 EMF mdl

MAST Model PARSER

MAST 2.0 ADA Object

Mast Result 2.0 Ada Object

MAST Resutl Serializer

Mast Resutl 2.0 EMF mdl

Ada Ecore Library

Page 7: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Ecore Models for Ada Aplications (EM4Ada)

Características principales

• Es una librería Ada 2012,• Interfaz para lectura, manipulación y generación

programática de modelos Ecore.• Independiente del metamodelo• Los modelos son manejados en forma de un único fichero

de texto, formulado de acuerdo a la implementación que ofrece EMF del estándar XMI.

Page 8: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Ecore Models for Ada Aplications (EM4Ada)

M_Object

Create_Object(in Class:String):M_Object

Get_Id():String

Get_Attribute(in Name:String):M_Data_Value

Get_Multiple_Attribute(in Name:String):Vector<Type->M_Data_Value>

Get_Referenced_Object(in Name:String, out Is_Containment:Boolean):M_Object

Get_Multiple_Referenced(in Name:String, out Is_Containment:Boolean):Vector<Type->M_Object>

Get_All_References():Vector<Type->M_Object>

Set_Attribute(in Name:String, in Value:M_Data_Value)

Set_Attribute(in Name:String, in Value:String)

Add_Attribute(in Name:String, in Value:M_Data_Value)

Add_Attribute(in Name:String, in Value:String)

Set_Multiple_Attribute(in Name:String, in Value:Vector<Type->M_Data_Value>)

Set_Reference(in Name:String, in Object:M_Object, in Is_Containment:Boolean)

Add_Reference(in Name:String, in Object:M_Object, in Is_Containment:Boolean)

Set_Multiple_Reference(in Name:String, in Object:Vector<Type->M_Data_Value>, in Is_Containment:Boolean)

Print()

...

Resource

Create_Resource():Resource

Load(in Path:String)Get_Root_Objects():Vector<Type->M_Object>

Add_Root_Object(in Object:M_Object, in Pref ix_NS:String, in Class:String)

Save(in Path:String)

Free()

Send(in Host:String, in Port:Natural)

M_Data_Value

Value:String

File_Not_Found_ExceptionParser_Error_Exception

Not_Valid_Data_Exception

pkg EE4Ada

M_ObjectDescribe un objeto del modelo, que representa una instancia de una de las clases definidas en el metamodelo

ResourceRepresenta el recurso físico – fichero XMI – en el que se almacena un modelo de formapersistente

M_Data_ValueDescribe cualquier valor escalar que puede ser asignado como valor a un atributo de cualquier objeto

Page 9: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Detalles técnicos• Lectura eficiente

o Creación de objetos vacíos para luego rellenar los atributos

o Se evita el doble recorrido

• Modelos Ecore-XMIo Objetos: atributos y referencias

(asociación y composición)o Clase de un objetoo El problema de los identificadores

• SAX. Simple API for XMLo Basado en eventos en lugar de

árbol (Start_Document, End_Document, Start_Element, End_Element, Charactet, etc.).

o Rapidez y bajo consumo de memoria.

o Difícil manipulación de los objetos.

N0

N1 N5 N6

N2

N3

N4 N7

Composición: Referencia contenida

Asociación: Referencia no

contenida

Page 10: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Proceso de invocación desde RT-MDE

<<Process>>Integrated

External Gadget

<<task>>... previous steps

<<task>>external gadget

execution

<<task>> proccess results

<task>>next steps ...

• Se entiende por artefacto externo, cualquier elemento software que se ejecuta fuera de la máquina virtual Java del entorno.

• Sólo la segunda etapa se ejecuta fuera del entorno RT-MDE

Page 11: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

TCP – Socket Communication

Service

RT-MDEJVM

External Gadget Adapter

XMI Models

RT-MDE Tool

TCP – Socket Communication

Service

Wrapper(deamon)

Gadget*

RT-MDE Node

External Gadget Node

Integración de un artefacto externo a RT-MDE

Page 12: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

External Gadget Adapter

Wrapper(deamon)

Gadget

Discovery_model [39100]

[Console Port] Text_Line_Model

[connection OK]

Discovery_MModelConnection_MModel

Config_MModel

Input_MModel

Text_Line_MModel

Problem_MModel

Result_MModel

Status_MModelMetamodelos

Genéricos

Específicos de herramienta

Invocación desde RT-MDE

Config_Model [config_port]

Input_Model [Model_port]

Text_Line_Model [EG_Iput_port]

[39000] Connection_Model

[Status_Port] Status_Model

[Result_Port] Result_Model

[Problem_Port] Problem_Model

Page 13: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Estructura del Wrapper

• Config_Port, • Input_Port, • Result_Port, • Console_Port, • EG_Input_Port, • Problem_Port, • Status_Port,

Wrapper

Discovery_MModel

Identif ier:Identifier

Version:Natural

IP:String

Connection_Port:Port_Entry[*]

...

«enumeration»

Mode_Type

DISCOVERY

EXECUTION

Connetion_MModel

Status:Boolean

Discovery_AgentGadget#Gadgets1..* #Discovery_Agent1 #Connection_Model #Discovery_Model

#Mode

Page 14: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Estructura del GadgetGadget

«enumeration»

Finalization_Status

ABORTED

EXIT_WITH_ERROR

SUCCESSFUL

EXIT_WITH_WARNING

EXIT_WITH_ADVOCACY

Problem_MModel

Description:String

Severity:Severity_Level

Location:String

Resource:String

Type:String

«enumeration»

Severity_Level

ERROR

WARNING

ADVOCACY

Keyboard

Get_Line():String

Config_Agent

Input_Model_Agent

Console_Logger

Keyboard_AgentStatus_MModel

...

Text_Line_MModel

Input_MModel

Result_MModel

Config_MModel #Conf ig_Model

#Error_Model

#Status_Model

#Keyboard_Agent

#Keyboard_Agent #Text_Line_MModel

#Input_Model_Agent

#Text_Line_MModel

#Input_Model

#Keyboard

#Config_Agent

#Exit_Status

#Result_Model

#Console_Logger

#Severity

Page 15: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Adaptación a MAST

MastAnalyzerAda

Mast_Wrapper

Keyboard

Get_Line():String

Console_Logger

Log()

Text_Line_MModel

Discovery_MModel

Input_Model_Agent

Discovery_Agent

Keyboard_AgentReal_Time_Situation_Results

Config_Agent

Mast_Analysis_Config

Connetion_MModel

Status_MModel

Mast_Model

Problem_MModel

#MastAnalyzerAda

#Status_Model

#Discovery_Agent

#Text_Line_MModel

#Discovery_Model

#Keyboard

#Text_Line_MModel

#Connection_MModel

#Console_Logger

#Text_Line_MModel

#Input_Model

#Input_Model_Agent

#Config_Agent

#Result_Model

#Problem_MModel

#Keyboard_Agent

#Config_Model

Page 16: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Modelos Específicos de MAST

Mast_Model

Name:Identif ier

Date:Date_Time

System_PiP_Behavior:Overhead_Type=Strict

Event_Queueing_Policy:Queueing_Policy_Type=FIFO

Element_List:Model_Element[1..*]

Results:Real_Time_Situation_Results

Mast_Analysis_Config

Calculate_Ceilings:Boolean

Is_Verbose:Boolean

Is_Local_EDF:Boolean

Stop_Factor:Float

Calculate_Slack:Boolean

Operations_To_Calculate_Slack:Identif ier

...

Real_Time_Situation_Results

Model_Name:Identif ier

Model_Date:Date_Time

Model_File:Pathname

Generator_Tool:Text

Generator_Profile:Text

Generation_Date:Date_Time

Slack:Extended_Percentage

Element_List:Result_Element

«enumeration»

Tool

OFFSET_BASED

OFFSET_BASED_OPTIMIZED

HOLISTIC

CLASSIC_RM

EDF_WITHIN_PRIORITIES

EDF_MONOPROCESSOR

VARYING_PRIORITIES

PARSE

«enumeration»

Technique_Assigment_Params

NONE

MONOPROCESSOR

HOSPA

PD

NPD

ANNEALING

MastAnalyzerAda

#Results

#Input_Model #Result_Model

#Config_Model

#Params_Assignment

#Analysis_Tool

Page 17: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Secuencia de lanzamiento<task> MastAnalyzerAdaExecution

:MastAnalyzerAda

:Mast_Wrapper

:Input_Model_Agent

:Config_Agent

:Mast_Model

:Discovery_Agent

Discovery_MModel

Create

Create

Create

Configuration_Model

Input_Model

Result_MModel

Discovery_Model

Create Mast_Analysis_Config

Status_MModel

Input_Model

Configuration_Model

Mast_Analysis()

Connection_Model

get_Results

Initialize

Real_Time_Situation_Results

Page 18: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Análisis de un modelo MAST 2.0

Convert to Mast 1.4 Model

Convert to Resutl 2.0

Load Mast 2.0 Model

Get Mast 1.4 resutls

System Analysis

Mast_Model

Create_Mast_Model():Mast_Model

Initialize()

Parse(in Filename:Pathname)

To_Mast_1_4():mast-1-4::mast_analysis::System

Mast_Analysis(inout Config:Mast_Analysis_Config)

Mast_Analysis(in Model_Path:Pathname, in Config_Path:Pathname)

Model

Inicialize()Parse(in Filename:Pathname)

Transmits(in Host:String, in Port:Port_Entry)

Save(in Filename:Pathname)

Print()

Real_Time_Situation_Results

Initialize()

Save(in Filename:Pathname)

#Results

El método Mast_Analysis(InOut Config: Mast_Analysis_Config) de la clase Mast_Model permite llevar a cabo el análisis de un MAST 2.0. Los resultados del análisis se guardan en el campo Results.

Page 19: Trabajo fin de máster de computación.  Melitón Pablo Mangué.

Conclusiones y trabajo futuroConclusiones:La principal aportación de este trabajo es la integración de las herramientas MAST en su versión 1.4 en el entorno RT-MDE, es decir, en un entorno integrado de desarrollo plenamente dirigido por modelos y basado en Eclipse.• Se ha diseñado un mecanismo para la interacción entre el entorno RT-MDE y

cualquier herramienta externa,• Se ha diseñado una librería Ada que permite procesar modelos XMI conformes

a metamodelos Ecore.

Trabajo futuro:• Desarrollo de un módulo Ada que permita procesar modelos XMI conformes a

metamodelos Ecore sin requerir del usuario un conocimiento previo del metamodelo asociado.

• Extender la funcionalidad de la librería EM4Ada, haciéndola configurable, de maneraque se pueda trabajar con identificadores explícitos

• Desarrollar una tecnología para la configuración e instanciación automática de aplicaciones Ada orientadas a objeto en base a modelos EMF/Ecore