¿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 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|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 == | ||
Línea 48: | Línea 48: | ||
[[Image:Resumen.jpeg|thumb|left|Resumen.jpeg]] | [[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 | + | <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"></div> |
#El programa debe estar correctamente identificado y las instrucciones debidamente espaciadas. | #El programa debe estar correctamente identificado y las instrucciones debidamente espaciadas. | ||
#Todo el programa debe tener una buena documentación interna. | #Todo el programa debe tener una buena documentación interna. | ||
Línea 55: | Línea 55: | ||
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: | 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: | ||
− | + | #La falta de cualquier especificación debe ser castigada fuertemente. | |
+ | #Correcta Identificación del código fuente.<br> | ||
+ | #Correcto espaciado del código fuente.<br> | ||
+ | #Código fuente escrito de manera que sea legible y claro.<br> | ||
+ | #Uso de identificadores significativos.<br> | ||
== 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]] 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|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> | + | <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|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 == | ||
Línea 98: | Línea 101: | ||
*Doxygen también permite usar listas, las que se obtienen anteponiendo un guión al principio de cada ítem de la lista. | *Doxygen también permite usar listas, las que se obtienen anteponiendo un guión al principio de cada ítem de la lista. | ||
</div> | </div> | ||
− | == | + | == Enlaces externos == |
*http://es.wikipedia.org/wiki/Doxygen | *http://es.wikipedia.org/wiki/Doxygen |
Revisión del 12:02 23 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:
- La falta de cualquier especificación debe ser castigada fuertemente.
- Correcta Identificación del código fuente.
- Correcto espaciado del código fuente.
- Código fuente escrito de manera que sea legible y claro.
- 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.