Escolar Documentos
Profissional Documentos
Cultura Documentos
GENERACIÓN AUTOMÁTICA DE
DOCUMENTACIÓN A TRAVÉS DE
UN ARCHIVO XML
Mikel Belausteguigoitia
Oihane Crucelaegui
Maialen Magalhaes
Imanol Vellón
Página 0
Generación Automática de Documentación
Índice
Índice
1 Introducción ....................................................................................................... 2
2 Objetivo ............................................................................................................. 4
6 Implementación ............................................................................................... 14
8 Conclusiones .................................................................................................... 19
Página 1
Generación Automática de Documentación
Grupo 2
1 Introducción
En el proceso de diseño de sistemas de control industrial no solo se deben tener en
cuenta las especificaciones funcionales, qué hace el sistema, sino también las no funcionales,
cómo lo hace y qué restricciones existen.
El modelo completo del sistema está compuesto por el modelo de cada dominio más
las relaciones entre los dominios.
1
Modelo: representación parcial o simplificada de la realidad que recoge aquellos aspectos de relevancia
para las intenciones del modelador, y de la que se pretende extraer conclusiones de tipo predictivo. Se
modela para comprender mejor o explicar mejor un proceso o unas observaciones. Un mismo objeto
puede ser modelado con distintas técnicas y distintas intenciones, de forma que cada modelo resalta sólo
ciertos aspectos del objeto.
2
Metamodelado: es el análisis, construcción y desarrollo de los marcos, las reglas, las limitaciones, los
modelos y teorías aplicables y útiles para el modelado de una clase predefinida de los problemas.
Página 2
Generación Automática de Documentación
Grupo 2
Página 3
Generación Automática de Documentación
Grupo 2
2 Objetivo
El objetivo del presente proyecto es generar de forma automática la documentación de
la Estación 1- Ubicación Base. Concretamente, se trata de generar la siguiente
documentación:
Para la consecución de dicho objetivo, vamos a partir del modelo de la Estación 1, que
se ha realizado con el lenguaje de modelado UML.
Página 4
Generación Automática de Documentación
Grupo 2
Hay que resaltar que UML es un "lenguaje de modelado" para especificar o para
describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en
el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está
descrito el modelo.
UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de
las entidades representadas. En nuestro caso, los más importantes son los siguientes.
Página 5
Generación Automática de Documentación
Grupo 2
Página 6
Generación Automática de Documentación
Grupo 2
4 Metodología de Trabajo
El proceso de trabajo que seguimos, consta de las siguientes etapas:
- Modelado de la Estación 1.
- Generación de código XML a partir del modelo creado.
- Construcción de un algoritmo iterativo que nos proporcione la información que
requerimos para generar la documentación.
- Por último, generación de un archivo para presentar la información filtrada.
Página 7
Generación Automática de Documentación
Grupo 2
5 Formato de la Documentación
A continuación se muestra el formato que queremos generar para documentar la
información. El objetivo es resumir toda la información disponible en una tabla que refleje y
resuma dicha información, para que en un solo vistazo nos hagamos una idea de la
composición Hardware de la Estación 1.
Esta lista refleja todos los dispositivos que contiene el modelo de la estación, los
cuales se resumen a continuación:
1 Procesador S1_P
- Un procesador
- Una fuente de alimentación
- Cuatro tarjetas de Entradas/Salidas
- Una tarjeta Ethernet
Página 8
Generación Automática de Documentación
Grupo 2
Fuente de
Power Supply S1_PowerSupply S1_PS 1
Alimentación
Communication
S1_ETHERNET S1_ETHERNET 7 Enlace Ethernet
Board
Página 9
Generación Automática de Documentación
Grupo 2
Página
10
Generación Automática de Documentación
Grupo 2
• Esclavo_Profibus_1
Fuente de
Power Supply S1_PowerSupply S1_PS 1
Alimentación
Communication
S1_ETHERNET S1_ETHERNET 7 Enlace Ethernet
Board
Página
11
Generación Automática de Documentación
Grupo 2
• Esclavo_Profibus_2
Fuente de
Power Supply S1_PowerSupply S1_PS 1
Alimentación
Communication
S1_ETHERNET S1_ETHERNET 7 Enlace Ethernet
Board
Es el elemento que realiza la conexión entre los nodos que hemos generado. Para
obtener información de este elemento y poder generar la documentación, partimos de las
asociaciones que hemos creado para unir dichos nodos (ver figura nº4).
Página
12
Generación Automática de Documentación
Grupo 2
Esclavo_Profibus_1 IO Node
Esclavo_Profibus_2 IO Node
Página
13
Generación Automática de Documentación
Grupo 2
6 Implementación
A continuación, se explica el algoritmo implementado para obtener la tabla de los
componentes Hardware. Para generar el resto de documentación se reutilizara la mayor parte
del código, indicando puntualmente las diferencias encontradas.
MiXml->Load("..\\docxmi\\Celula 1_v1.xmi");
XmlElement^ NodoRaiz = MiXml->DocumentElement
XmlNodeList^ MiLista = NodoRaiz->GetElementsByTagName("nestedNode");
Página
14
Generación Automática de Documentación
Grupo 2
Página
15
Generación Automática de Documentación
Grupo 2
if (myfile.is_open())
{
myfile<<"<table border=1>\n";
myfile<<"<tr><th>Unit</th>";
myfile<<"<th>Description</th>";
myfile<<"<th>Serial Number</th></tr>\n";
for(int fil = 0; fil<devices_max; fil++)
{
myfile<<"<tr><td align=center>";
myfile<<devDoc[fil].contador;
myfile<<"</td><td align=center>";
myfile<<devDoc[fil].Description;
myfile<<"</td><td align=center>";
myfile<<devDoc[fil].Serial_ID;
myfile<<"</td></tr>\n";
}
myfile<<"</table>";
myfile.close();
}
{if(((XmlElement^)((XmlElement^)AppliedStereotypeSlots[k])-
>ChildNodes[0])->GetAttribute("value")->Equals("Processing Node"))
{lista_nodos_procesador-
>Add(lista_nodos[i]);
}
if(((XmlElement^)((XmlElement^)AppliedStereotypeSlots[k])-
>ChildNodes[0])->GetAttribute("value")->Equals("IO Node"))
{lista_nodos_IO->Add(lista_nodos[i]);
}}}}}}
Página
16
Generación Automática de Documentación
Grupo 2
Con el propósito de identificar a que nodo corresponde cada dispositivo, se añaden los
dispositivos como elementos nuevos creados directamente a partir del nodo en cuestión (ver
figura nº 5).
Una vez conocido el tipo de dispositivo que es, se obtienen los valores de los atributos
que tiene definido. Y por último, al igual que el caso anterior, se muestra por pantalla la tabla
generada.
Página
17
Generación Automática de Documentación
Grupo 2
7 Resultados Obtenidos
Las siguientes imágenes, muestran el contenido de la documentación generada.
Página
18
Generación Automática de Documentación
Grupo 2
8 Conclusiones
El algoritmo que hemos generado nos permitiría obtener de forma automática la
documentación de cualquier estación que se modele, siempre y cuando se apliquen los
mismos perfiles que se han utilizado a la hora de modelar esta estación. Por lo tanto, la mayor
ventaja que nos proporciona este código es la posibilidad de reutilización que nos brinda.
Esto se debe gracias al lenguaje de esquema que utiliza XML, donde la estructura y las
restricciones de los contenidos de los documentos se describen de una forma muy precisa.
Página
19