¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «Doxygen»

(Etiqueta: nuestro-nuestra)
m (Texto reemplazado: «<div align="justify">» por «»)
 
(No se muestran 18 ediciones intermedias de 6 usuarios)
Línea 26: Línea 26:
 
|web=
 
|web=
 
}}  
 
}}  
<div align="justify">'''Doxygen''' es una herramienta que facilita inculcar el hábito de especificar antes de implementar en los programadores novatos. Tiene la cualidad de que funciona para muchos lenguajes y plataformas. Es de uso fácil por lo que es la herramienta ideal para ser usada con principiantes. Es un generador de documentación para [[C++,|C++,]] C, [[Java|Java]], Objective-C, [[Python|Python]], IDL (versiones Corba y [[Microsoft|Microsoft]]) y en cierta medida para [[PHP|PHP]], C# y D. Dado que es fácilmente adaptable, funciona en la mayoría de sistemas Unix así como en [[Microsoft Windows|Windows y]] [[Mac OS X|Mac OS X]]. La mayor parte del código de Doxygen está escrita por Dimitri van Heesch.</div>  
+
'''Doxygen'''. Es de uso fácil por lo que es la herramienta ideal para ser usada con principiantes. Es un [[Generador de documentación|generador de documentación]] para [[C++|C++]],[[C|C]], [[Java|Java]], [[Objective-C|Objective-C]], [[Python|Python]], [[IDL|IDL]] (versiones Corba y Microsoft) y en cierta medida para [[PHP|PHP]], C# y D. Dado que es fácilmente adaptable, funciona en la mayoría de Sistemas [[Unix]] así como en [[Windows|Windows]] y [[Mac OS X|Mac OS X]]. La mayor parte del código de Doxygen está escrita por Dimitri van Heesch.</div>  
<br>
 
 
 
 
== El generador de documentación de código fuente Doxygen  ==
 
== El generador de documentación de código fuente Doxygen  ==
[[Image:Codigo2.jpeg|thumb|left]]
 
<div align="justify">Es una buena ocasión para presentar muy brevemente un utilitario que no puede faltar en ninguna «caja de herramientas» de un buen programador. Doxygen es un programa que permite documentar fácilmente el código a través de un sistema de «comentarios-tags». Así por ejemplo, los usuarios de Javadoc, por ejemplo, encontraran que disponen de un procedimiento de 170 tags por defecto, en un sistema que les permitirá agregar los propios a los efectos de responder a las necesidades de un proyecto.</div>
 
Aparte de ello, de la documentación de las fuentes (prototipo de funciones, de las clases) podemos obtener las siguientes informaciones:
 
 
<br>
 
  
 +
[[Image:Codigo2.jpeg|thumb|left|Codigo2.jpeg]]
 +
Es una buena ocasión para presentar muy brevemente un utilitario que no puede faltar en ninguna «caja de herramientas» de un buen programador. Doxygen es un programa que permite documentar fácilmente el código a través de un sistema de «comentarios-tags». Así por ejemplo, los usuarios de [[Javadoc|Javadoc]],&nbsp; encontraran que disponen de un procedimiento de 170 tags por defecto, en un sistema que les permitirá agregar los propios a los efectos de responder a las necesidades de un proyecto.</div> Aparte de ello, de la documentación de las fuentes (prototipo de funciones, de las clases) podemos obtener las siguientes informaciones:</div>
 
*Listado de archivos incluidos  
 
*Listado de archivos incluidos  
*&nbsp;Documentación de las estructuras de datos  
+
*Documentación de las estructuras de datos  
 
*Jerarquía de las clases  
 
*Jerarquía de las clases  
*&nbsp;Diferentes tipos de gráficos: diagrama de clases, de colaboraciones, de llamadas, de inclusión, etc.  
+
*Diferentes tipos de gráficos: diagrama de clases, de colaboraciones, de llamadas, de inclusión, etc.  
 
*Un index de todos los identificadores  
 
*Un index de todos los identificadores  
*&nbsp;Los archivos fuente anotados
+
*Los archivos fuente anotados
<div align="justify">Toda la documentación producida generalmente es en formato [[HTML|HTML]], a causa de su facilidad de utilización, sin embargo también es posible obtener archivos de formato LATEX, PostScript, [[PDF|PDF]], [[XML|XML]], man e incluso [[Word|Word]] y CHM. Una gran parte de Doxygen ha sido escrita por Dimitri van Heesch, quien en su época encontraba a la documentación generada por Qt como muy bonita y doc++ como demasiado limitada para un trabajo similar. Hoy, Doxygen soporta C/C++, Java (Corba y Microsoft) Java, Python, IDL, C#, Objetive-C y en parte D y [[PHP|PHP]]. Doxygen esta distribuido bajo licencia [[GNU|GNU ]][[GPL|GPL]], esta disponible un binario para [[Windows 95|Windows 95]] / XP y para Mac OS X, pero necesita la librería libqt.<br> </div>
+
Toda la documentación producida generalmente es en formato [[HTML|HTML]], a causa de su facilidad de utilización, sin embargo también es posible obtener archivos de formato LATEX, [[PostScript|PostScript]], [[PDF|PDF]], [[XML|XML]], man e incluso [[Word|Word]] y [[CHM|CHM]]. Una gran parte de Doxygen ha sido escrita por Dimitri van Heesch, quien en su época encontraba a la documentación generada por Qt como muy bonita y doc++ como demasiado limitada para un trabajo similar. Hoy, Doxygen soporta [[C/C++|C/C++]], [[Java|Java]] ([[Corba|Corba]] y [[Microsoft|Microsoft]]) [[Java|Java]], [[Python|Python]], [[IDL|IDL]], C#, Objetive-C y en parte D y&nbsp;&lt;span style="text-decoration: underline;" /&gt;PHP. Doxygen esta distribuido bajo licencia [[GNU|GNU ]][[GPL|GPL]], esta disponible un binario para [[Windows 95|Windows 95]] / XP y para [[Mac OS X|Mac OS X]], pero necesita la librería libqt.</div>  
 +
== Soporte comercial  ==
 +
 
 +
[[Image:Doxygen 1.jpeg|thumb|right]] Actualmente se investiga las posibilidades de prestar apoyo comercial para doxygen. Las formas de apoyo son:
  
== Soporte comercial  ==
+
*Implementación de las funciones  
[[Image:Doxygen 1.jpeg|thumb|right|Doxygen]]
+
*Corregir errores.<br>
<div align="justify">Actualmente se investiga las posibilidades de prestar apoyo comercial para doxygen. Las formas de apoyo son:
 
*&nbsp;Implementación de las funciones  
 
*&nbsp; Corregir errores.<br>
 
  
 
== Resumen  ==
 
== Resumen  ==
  
[[Image:Resumen.jpeg|thumb|left]]  
+
[[Image:Resumen.jpeg|thumb|left|Resumen.jpeg]]  
<div align="justify">Para la mayor parte de los programadores la codificación de algoritmos es la parte más interesante de la construcción de programas; los programadores trabajamos creando mundos virtuales, en donde todas las variables coexisten bajo nuestro perfecto control: esta es la parte más creativa del trabajo del programador. Para construir programas los programadores usamos muchos trucos, desde el uso de estructuras de datos y algoritmos avanzados, hasta la aplicación de convenciones como las descritas en [DiM-1988], que facilitan la labor de programación y mantenimiento del programa.</div>  
+
Para la mayor parte de los programadores la codificación de algoritmos es la parte más interesante de la construcción de programas; los mismos trabajan creando mundos virtuales, en donde todas las variables coexisten bajo un perfecto control: esta es la parte más creativa del trabajo del programador. Para construir programas se desde las&nbsp; estructuras de datos y algoritmos avanzados, hasta la aplicación de convenciones como las descritas en [[DiM-1988|DiM-1988]], que facilitan la labor y mantenimiento del programa.</div> El camino más sencillo es que al escribir su implementación, se debe&nbsp; cumplir siempre con estas 3 políticas de programación.</div></div></div>
El camino más sencillo es que al escribir su implementación, deben asegurarse de cumplirsiempre con estas 3 políticas de programación, que se&nbsp; considera las más importantes: <br>  
+
<br>  
  
<br>
+
#El programa debe estar correctamente identificado y&nbsp; las instrucciones&nbsp; debidamente espaciadas.
 +
#Todo el programa debe tener una buena documentación interna.
 +
#Uso de Doxygen para la especificación de todos los métodos, funciones y campos de la clase.
  
1. Es muy importante que el programa esté correctamente identificado y que las instrucciones estén debidamente espaciadas.<br>
+
Se debe saber cuál es la forma de calificar proyectos programados. Específicamente, se concentran en encontrar fallas que quiebren alguna de estas 5 reglas:  
2. Es muy importante que en todo el programa haya buena documentación interna.<br>
 
3. Uso de Doxygen para la especificación de todos los métodos, funciones y campos de la clase.<br>
 
Se debe&nbsp; saber cuál es la forma de calificar proyectos programados. Específicamente, se concentran en encontrar fallas que quiebren alguna de estas 5 reglas: <br>
 
  
1. La falta de cualquier especificación debe ser castigada fuertemente.<br>
+
#La falta de cualquier especificación debe ser castigada fuertemente.  
2. Correcta Identificación del código fuente.<br>
+
#Correcta Identificación del código fuente.<br>  
3. Correcto espaciado del código fuente.<br>
+
#Correcto espaciado del código fuente.<br>  
4. Código fuente escrito de manera que sea legible y claro.<br>
+
#Código fuente escrito de manera que sea legible y claro.<br>  
5. Uso de identificadores significativos.<br>  
+
#Uso de identificadores significativos.<br>
  
 
== Configuración Doxygen  ==
 
== Configuración Doxygen  ==
  
[[Image:Configuración.jpeg|thumb|right]]  
+
[[Image:Configuración.jpeg|thumb|right]] Doxygen es un sistema de documentación para [[C++|C++]], C, [[Java|Java]], Objective-C, Python, IDL (Corba y los sabores  
<div align="justify">Doxygen es un sistema de documentación para [[C++|C++]], C, [[Java|Java]], Objective-C, Python, IDL (Corba y los sabores [[Microsoft|Microsoft]]) y, hasta cierto punto, para [[PHP|PHP]], C# y D. La ventaja principal de usar Doxygen en los cursos universitarios es que le permite al estudiante obtener entrenamiento en el uso herramientas que ayudan a generar documentación con la ventaja adicional de que Doxygen es aplicable a un rango muy amplio de lenguajes, lo que no ocurre con herramientas de aplicación específica como Javadoc [KNDK-1997]. Cuando el estudiante termina sus estudios universitarios y pase a su carrera profesional, su entrenamiento Doxygen le permitirá usar con comodidad cualquier otra herramienta de documentación, inclusive Javadoc, cuyo formato es compatible con Doxygen.</div>  
+
[[Microsoft|Microsoft]]) y, hasta cierto punto, para [[PHP|PHP]], C# y D. La ventaja principal de usar Doxygen en los cursos universitarios es que le permite al estudiante obtener entrenamiento en el uso herramientas que ayudan a generar documentación con la ventaja adicional de que Doxygen es aplicable a un rango muy amplio de lenguajes, lo que no ocurre con herramientas de aplicación específica como [[Javadoc|Javadoc]] [[KNDK-1997|NDK-1997]]. Cuando el estudiante termina sus estudios universitarios y pase a su carrera profesional, su entrenamiento Doxygen le permitirá usar con comodidad cualquier otra herramienta de documentación, inclusive Javadoc, cuyo formato es compatible con Doxygen.</div>  
 
 
 
== Ejemplo 1  ==
 
== Ejemplo 1  ==
  
PROJECT_NAME = "Prueba de la clase rational:"<br>
+
PROJECT_NAME = "Prueba de la clase rational:"<br> OUTPUT_LANGUAGE = Spanish<br> OUTPUT_DIRECTORY = .<br> GENERATE_LATEX = NO<br> GENERATE_MAN = NO<br> GENERATE_RTF = NO<br> CASE_SENSE_NAMES = YES<br> INPUT_ENCODING = ISO-8859-1<br> INPUT = rational.h rational.cpp rat-calc.cpp \rat-tst.cpp ADH_port.h<br> RECURSIVE = NO<br> QUIET = YES<br> JAVADOC_AUTOBRIEF = YES<br> EXTRACT_ALL = YES<br> EXTRACT_PRIVATE = YES<br> EXTRACT_STATIC = YES<br> EXTRACT_LOCAL_CLASSES = YES<br> INLINE_INHERITED_MEMB = YES<br> SOURCE_BROWSER = YES<br> INLINE_SOURCES = NO<br> STRIP_CODE_COMMENTS = NO<br> REFERENCED_BY_RELATION= NO<br> REFERENCES_RELATION = NO<br> FULL_PATH_NAMES = NO<br> SORT_MEMBER_DOCS = NO<br> SORT_BRIEF_DOCS = NO<br> CLASS_DIAGRAMS = YES<br> ENABLE_PREPROCESSING = YES<br> MACRO_EXPANSION = YES<br> EXPAND_ONLY_PREDEF = YES<br> PREDEFINED = "DOXYGEN_COMMENT" \<br> &nbsp;"Spanish_dox" \<br> "__cplusplus" \<br> "_MSC_VER=1300" \<br> "OPEN_namespace(N)=namespace N {" \<br> "CLOSE_namespace(N)=}" \<br> "USIGN_namespace(N)=using namespace N"<br>  
OUTPUT_LANGUAGE = Spanish<br>
+
El ejemplo 1 muestra el archivo "rat-tst.dxg" que se puede usar de plantilla para obtener el archivo de configuración para que Doxygen genere la documentación de uno o más módulos. Para esto, basta modificar únicamente el renglón "INPUT" que contiene la lista de archivos de donde Doxygen extraerá la documentación. En este ejemplo, Doxygen generó documentación usando como entrada los siguientes archivos: "rational.h", "rational.cpp", "rat-calc.cpp", "rat-tst.cpp" y "ADH_port.</div>  
OUTPUT_DIRECTORY = .<br>
 
GENERATE_LATEX = NO<br>
 
GENERATE_MAN = NO<br>
 
GENERATE_RTF = NO<br>
 
CASE_SENSE_NAMES = YES<br>
 
INPUT_ENCODING = ISO-8859-1<br>
 
INPUT = rational.h rational.cpp rat-calc.cpp \&nbsp;rat-tst.cpp ADH_port.h<br>
 
RECURSIVE = NO<br>
 
QUIET = YES<br>
 
JAVADOC_AUTOBRIEF = YES<br>
 
EXTRACT_ALL = YES<br>
 
EXTRACT_PRIVATE = YES<br>  
 
EXTRACT_STATIC = YES<br>
 
EXTRACT_LOCAL_CLASSES = YES<br>
 
INLINE_INHERITED_MEMB = YES<br>
 
SOURCE_BROWSER = YES<br>
 
INLINE_SOURCES = NO<br>
 
STRIP_CODE_COMMENTS = NO<br>  
 
REFERENCED_BY_RELATION= NO<br>
 
REFERENCES_RELATION = NO<br>
 
FULL_PATH_NAMES = NO<br>
 
SORT_MEMBER_DOCS = NO<br>
 
SORT_BRIEF_DOCS = NO<br>
 
CLASS_DIAGRAMS = YES<br>
 
ENABLE_PREPROCESSING = YES<br>
 
MACRO_EXPANSION = YES<br>
 
EXPAND_ONLY_PREDEF = YES<br>
 
PREDEFINED = "DOXYGEN_COMMENT" \<br>
 
&nbsp;"Spanish_dox" \<br> "__cplusplus" \<br> "_MSC_VER=1300" \<br> "OPEN_namespace(N)=namespace N {" \<br> "CLOSE_namespace(N)=}" \<br> "USIGN_namespace(N)=using namespace N"<br>  
 
 
 
EXAMPLE_PATH = .
 
*************
 
*************
 
 
 
<div align="justify">El ejemplo 1 muestra el archivo "rat-tst.dxg" que se puede usar de plantilla para obtener el archivo de configuración para que Doxygen genere la documentación de uno o más módulos. Para esto, basta modificar únicamente el renglón "INPUT" que contiene la lista de archivos de donde Doxygen extraerá la documentación. En este ejemplo, Doxygen generó documentación usando como entrada los siguientes archivos: "rational.h", "rational.cpp", "rat-calc.cpp", "rat-tst.cpp" y "ADH_port.</div><div align="justify"></div>  
 
 
== Ejemplo 2  ==
 
== Ejemplo 2  ==
  
Línea 125: Línea 83:
 
&nbsp;&nbsp; \par Ejemplo:<br>&nbsp;&nbsp; \code<br>&nbsp;&nbsp; 2*3*5 == mcd( 2*2*2*2 * 3*3 * 5*5, 2*3*5 )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30 == mcd( -3600, -30 )<br>&nbsp;&nbsp; \endcode<br>  
 
&nbsp;&nbsp; \par Ejemplo:<br>&nbsp;&nbsp; \code<br>&nbsp;&nbsp; 2*3*5 == mcd( 2*2*2*2 * 3*3 * 5*5, 2*3*5 )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30 == mcd( -3600, -30 )<br>&nbsp;&nbsp; \endcode<br>  
  
/  
+
/ long mcd(long x, long y) {  
 
 
long mcd(long x, long y) {  
 
  
 
&nbsp; long g = (x &lt; 0&nbsp;? -x&nbsp;: x); // trabaja con valores positivos<br>&nbsp;&nbsp; long r = (y &lt; 0&nbsp;? -y&nbsp;: y); // "r" es el resto<br>&nbsp;&nbsp; long temp;<br>  
 
&nbsp; long g = (x &lt; 0&nbsp;? -x&nbsp;: x); // trabaja con valores positivos<br>&nbsp;&nbsp; long r = (y &lt; 0&nbsp;? -y&nbsp;: y); // "r" es el resto<br>&nbsp;&nbsp; long temp;<br>  
Línea 136: Línea 92:
  
 
} // mcd()  
 
} // mcd()  
 +
El estilo Doxygen de documentación es bastante simple e intuitivo, como se muestra en el ejemplo 2. Para usar&nbsp; la&nbsp; herramienta se tendra en cuenta lo siguiente:<br>
 +
*La documentación Doxygen comienza con el marcador de principio de comentario "/**" y termina en "*/". Esto permite mezclar la documentación con el código fuente lo que ayuda mucho a que la documentación quede actualizada cuando se le da mantenimiento a un módulo.
  
El estilo Doxygen de documentación es bastante simple e intuitivo, como se muestra en el ejemplo 2. En resumen, lo más relevante que hay que saber para usar esta herramienta es lo siguiente:
+
*El primer renglón de la documentación permite definir para qué sirve el artefacto de programación. Este renglón finaliza con un punto "." que no hay que olvidar y es el que sale el la documentación general del módulo. Por ejemplo, se puede consultar en Internet la página descriptiva para las clases "[[Matrix|Matrix]]" descrita en [[[DiM-2004|DiM-2004]]] y "rational", que es la clase usada como ejemplo en este documento:<br>
 
 
• La documentación Doxygen comienza con el marcador de principio de comentario "/**" y termina en "*/". Esto permite mezclar la documentación con el código fuente lo que ayuda mucho a que la documentación quede actualizada cuando se le da mantenimiento a un módulo.
 
 
 
El primer renglón de la documentación permite definir para qué sirve el artefacto de programación. Este renglón finaliza con un punto "." que no hay que olvidar y es el que sale el la documentación general del módulo. Por ejemplo, se puede consultar en Internet la página descriptiva para las clases "Matrix" descrita en [DiM-2004] y "rational", que es la clase usada como ejemplo en este documento:<br> • Los comandos especiales Doxygen "\pre", "\remarks" y "\par" permiten agregar secciones de precondición, comentarios y ejemplos a la documentación.
 
 
 
• También es posible incluir ejemplos de uso con los marcadores [[HTML|HTML]] "<code>" y "</code>" o con sus equivalentes, los comandos especiales "\code" y "\endcode", que sirven para incluir texto usando una fuente no proporcional, similar a la fuente "Courier" generalmente usada para el código de programas.
 
  
Doxygen también permite usar listas, las que se obtienen anteponiendo un guión al principio de cada ítem de la lista.  
+
*Los comandos especiales Doxygen "\pre", "\remarks" y "\par" permiten agregar secciones de precondición, comentarios y ejemplos a la documentación.
  
 +
*También es posible incluir ejemplos de uso con los marcadores [[HTML|HTML]] "<code>" y "</code>" o con sus equivalentes, los comandos especiales "\code" y "\endcode", que sirven para incluir texto usando una fuente no proporcional, similar a la fuente "Courier" generalmente usada para el código de programas.
  
== Fuentes ==
+
*Doxygen también permite usar listas, las que se obtienen anteponiendo un guión al principio de cada ítem de la lista.
 +
</div>
 +
== Enlaces externos ==
  
* http://es.wikipedia.org/wiki/Doxygen  
+
*http://es.wikipedia.org/wiki/Doxygen  
* http://www.di-mare.com/adolfo/p/Doxygen.htm  
+
*http://www.di-mare.com/adolfo/p/Doxygen.htm  
* http://www.doxygen.org/manual.html  
+
*http://www.doxygen.org/manual.html  
* http://www.di-mare.com/adolfo/p/Matrix/classMx_1_1Matrix.html  
+
*http://www.di-mare.com/adolfo/p/Matrix/classMx_1_1Matrix.html  
* http://www.di-mare.com/adolfo/p/rational/classADH_1_1rational.html  
+
*http://www.di-mare.com/adolfo/p/rational/classADH_1_1rational.html  
* http://www.doxygen.org/manual.html
+
*http://www.doxygen.org/manual.html
  
[[Category:Ciencias_Aplicadas_y_Tecnologías]] [[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]]
+
[[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]] [[Category:Software]]

última versión al 14:48 20 jun 2019

Doxygen
Información sobre la plantilla
Doxygen.gif
Es una herramienta que facilita inculcar el hábito de especificar antes de implementar en los programadores novatos.
CreadorJCSC 2
Fecha de Creación2011

Doxygen. Es de uso fácil por lo que es la herramienta ideal para ser usada con principiantes. Es un generador de documentación para C++,C, Java, Objective-C, Python, IDL (versiones Corba y Microsoft) y en cierta medida para PHP, C# y D. Dado que es fácilmente adaptable, funciona en la mayoría de Sistemas Unix así como en Windows y Mac OS X. La mayor parte del código de Doxygen está escrita por Dimitri van Heesch.

El generador de documentación de código fuente Doxygen

Codigo2.jpeg

Es una buena ocasión para presentar muy brevemente un utilitario que no puede faltar en ninguna «caja de herramientas» de un buen programador. Doxygen es un programa que permite documentar fácilmente el código a través de un sistema de «comentarios-tags». Así por ejemplo, los usuarios de Javadoc,  encontraran que disponen de un procedimiento de 170 tags por defecto, en un sistema que les permitirá agregar los propios a los efectos de responder a las necesidades de un proyecto. Aparte de ello, de la documentación de las fuentes (prototipo de funciones, de las clases) podemos obtener las siguientes informaciones:

  • Listado de archivos incluidos
  • Documentación de las estructuras de datos
  • Jerarquía de las clases
  • Diferentes tipos de gráficos: diagrama de clases, de colaboraciones, de llamadas, de inclusión, etc.
  • Un index de todos los identificadores
  • Los archivos fuente anotados

Toda la documentación producida generalmente es en formato HTML, a causa de su facilidad de utilización, sin embargo también es posible obtener archivos de formato LATEX, PostScript, PDF, XML, man e incluso Word y CHM. Una gran parte de Doxygen ha sido escrita por Dimitri van Heesch, quien en su época encontraba a la documentación generada por Qt como muy bonita y doc++ como demasiado limitada para un trabajo similar. Hoy, Doxygen soporta C/C++, Java (Corba y Microsoft) Java, Python, IDL, C#, Objetive-C y en parte D y <span style="text-decoration: underline;" />PHP. Doxygen esta distribuido bajo licencia GNU GPL, esta disponible un binario para Windows 95 / XP y para Mac OS X, pero necesita la librería libqt.

Soporte comercial

Doxygen 1.jpeg

Actualmente se investiga las posibilidades de prestar apoyo comercial para doxygen. Las formas de apoyo son:

  • Implementación de las funciones
  • Corregir errores.

Resumen

Resumen.jpeg

Para la mayor parte de los programadores la codificación de algoritmos es la parte más interesante de la construcción de programas; los mismos trabajan creando mundos virtuales, en donde todas las variables coexisten bajo un perfecto control: esta es la parte más creativa del trabajo del programador. Para construir programas se desde las  estructuras de datos y algoritmos avanzados, hasta la aplicación de convenciones como las descritas en DiM-1988, que facilitan la labor y mantenimiento del programa. El camino más sencillo es que al escribir su implementación, se debe  cumplir siempre con estas 3 políticas de programación.


  1. El programa debe estar correctamente identificado y  las instrucciones  debidamente espaciadas.
  2. Todo el programa debe tener una buena documentación interna.
  3. Uso de Doxygen para la especificación de todos los métodos, funciones y campos de la clase.

Se debe saber cuál es la forma de calificar proyectos programados. Específicamente, se concentran en encontrar fallas que quiebren alguna de estas 5 reglas:

  1. La falta de cualquier especificación debe ser castigada fuertemente.
  2. Correcta Identificación del código fuente.
  3. Correcto espaciado del código fuente.
  4. Código fuente escrito de manera que sea legible y claro.
  5. Uso de identificadores significativos.

Configuración Doxygen

Configuración.jpeg

Doxygen es un sistema de documentación para C++, C, Java, Objective-C, Python, IDL (Corba y los sabores Microsoft) y, hasta cierto punto, para PHP, C# y D. La ventaja principal de usar Doxygen en los cursos universitarios es que le permite al estudiante obtener entrenamiento en el uso herramientas que ayudan a generar documentación con la ventaja adicional de que Doxygen es aplicable a un rango muy amplio de lenguajes, lo que no ocurre con herramientas de aplicación específica como Javadoc NDK-1997. Cuando el estudiante termina sus estudios universitarios y pase a su carrera profesional, su entrenamiento Doxygen le permitirá usar con comodidad cualquier otra herramienta de documentación, inclusive Javadoc, cuyo formato es compatible con Doxygen.

Ejemplo 1

PROJECT_NAME = "Prueba de la clase rational:"
OUTPUT_LANGUAGE = Spanish
OUTPUT_DIRECTORY = .
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
CASE_SENSE_NAMES = YES
INPUT_ENCODING = ISO-8859-1
INPUT = rational.h rational.cpp rat-calc.cpp \rat-tst.cpp ADH_port.h
RECURSIVE = NO
QUIET = YES
JAVADOC_AUTOBRIEF = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
INLINE_INHERITED_MEMB = YES
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = NO
REFERENCED_BY_RELATION= NO
REFERENCES_RELATION = NO
FULL_PATH_NAMES = NO
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
CLASS_DIAGRAMS = YES
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = "DOXYGEN_COMMENT" \
 "Spanish_dox" \
"__cplusplus" \
"_MSC_VER=1300" \
"OPEN_namespace(N)=namespace N {" \
"CLOSE_namespace(N)=}" \
"USIGN_namespace(N)=using namespace N"

El ejemplo 1 muestra el archivo "rat-tst.dxg" que se puede usar de plantilla para obtener el archivo de configuración para que Doxygen genere la documentación de uno o más módulos. Para esto, basta modificar únicamente el renglón "INPUT" que contiene la lista de archivos de donde Doxygen extraerá la documentación. En este ejemplo, Doxygen generó documentación usando como entrada los siguientes archivos: "rational.h", "rational.cpp", "rat-calc.cpp", "rat-tst.cpp" y "ADH_port.

Ejemplo 2

/** Calcula el Máximo Común Divisor de los números \c "x" y \c "y".

  - mcd(x,y) >= 1 siempre.
   - MCD <==> GCD: Greatest Common Divisor .

   \pre
   (y != 0)

   \remark
   Se usa el algoritmo de Euclides para hacer el cálculo.

   \par Ejemplo:
   \code
   2*3*5 == mcd( 2*2*2*2 * 3*3 * 5*5, 2*3*5 )
      30 == mcd( -3600, -30 )
   \endcode

/ long mcd(long x, long y) {

  long g = (x < 0 ? -x : x); // trabaja con valores positivos
   long r = (y < 0 ? -y : y); // "r" es el resto
   long temp;

   do {
       temp = r;
       r    = g % r;
       g    = temp;
   } while (0 != r);

   return g;

} // mcd() El estilo Doxygen de documentación es bastante simple e intuitivo, como se muestra en el ejemplo 2. Para usar  la  herramienta se tendra en cuenta lo siguiente:

  • La documentación Doxygen comienza con el marcador de principio de comentario "/**" y termina en "*/". Esto permite mezclar la documentación con el código fuente lo que ayuda mucho a que la documentación quede actualizada cuando se le da mantenimiento a un módulo.
  • El primer renglón de la documentación permite definir para qué sirve el artefacto de programación. Este renglón finaliza con un punto "." que no hay que olvidar y es el que sale el la documentación general del módulo. Por ejemplo, se puede consultar en Internet la página descriptiva para las clases "Matrix" descrita en [[[DiM-2004|DiM-2004]]] y "rational", que es la clase usada como ejemplo en este documento:
  • Los comandos especiales Doxygen "\pre", "\remarks" y "\par" permiten agregar secciones de precondición, comentarios y ejemplos a la documentación.
  • También es posible incluir ejemplos de uso con los marcadores HTML "" y "" o con sus equivalentes, los comandos especiales "\code" y "\endcode", que sirven para incluir texto usando una fuente no proporcional, similar a la fuente "Courier" generalmente usada para el código de programas.
  • Doxygen también permite usar listas, las que se obtienen anteponiendo un guión al principio de cada ítem de la lista.

Enlaces externos