¿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»
Línea 26: | Línea 26: | ||
|web= | |web= | ||
}} | }} | ||
− | <div align="justify">'''Doxygen'''. Es de uso fácil por lo que es la herramienta ideal para ser usada con principiantes. Es un [[ | + | <div align="justify">'''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|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> |
== 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]] | + | [[Image:Codigo2.jpeg|thumb|left|Codigo2.jpeg]] |
<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|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.</div> <div align="justify">Aparte de ello, de la documentación de las fuentes (prototipo de funciones, de las clases) podemos obtener las siguientes informaciones:</div> | <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|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.</div> <div align="justify">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 | ||
Línea 37: | Línea 37: | ||
*Un index de todos los identificadores | *Un index de todos los identificadores | ||
*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|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 | + | <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|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 <span style="text-decoration: underline;" />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 == | == Soporte comercial == | ||
− | [[Image:Doxygen 1.jpeg|thumb|right | + | [[Image:Doxygen 1.jpeg|thumb|right]] Actualmente se investiga las posibilidades de prestar apoyo comercial para doxygen. Las formas de apoyo son: |
*Implementación de las funciones | *Implementación de las funciones | ||
Línea 47: | Línea 47: | ||
== 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 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|DiM-1988]]], que facilitan la labor y mantenimiento del programa.</div> <div align="justify">El camino más sencillo es que al escribir su implementación, se debe cumplir siempre con estas 3 políticas de programación.</div> | <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 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|DiM-1988]]], que facilitan la labor y mantenimiento del programa.</div> <div align="justify">El camino más sencillo es que al escribir su implementación, se debe cumplir siempre con estas 3 políticas de programación.</div> | ||
#El programa debe estar correctamente identificado y las instrucciones debidamente espaciadas. | #El programa debe estar correctamente identificado y las instrucciones debidamente espaciadas. | ||
Línea 59: | Línea 59: | ||
== Configuración Doxygen == | == Configuración Doxygen == | ||
− | [[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 | + | [[Image:Configuración.jpeg|thumb|right|Configuración.jpeg]] Doxygen es un sistema de documentación para [[C++|C++]], C, [[Java|Java]], Objective-C, Python, IDL (Corba y los sabores |
<div align="justify">[[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|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> | <div align="justify">[[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|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> | ||
== Ejemplo 1 == | == Ejemplo 1 == |
Revisión del 14:37 16 mar 2011
|
Sumario
[ocultar]El generador de documentación de código fuente Doxygen
- 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
Soporte comercial
Actualmente se investiga las posibilidades de prestar apoyo comercial para doxygen. Las formas de apoyo son:
- Implementación de las funciones
- Corregir errores.
Resumen
- El programa debe estar correctamente identificado y las instrucciones 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.
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
Doxygen es un sistema de documentación para C++, C, Java, Objective-C, Python, IDL (Corba y los sabores
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"
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()
- 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.