Download Using Doxygen to generate Spanish and English - Di

Document related concepts
no text concepts found
Transcript
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Agenda de Trabajo
•
•
•
•
•
•
•
•
•
Contexto Docente
Doxygen
Especificación + Módulos + Reutilización
Bloques de documentación para cada idioma
Configuración Doxygen para cada lenguaje
Ejemplos de documentación Doxygen
Comparación de configuraciones
Receta
Conclusiones
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Contexto Docente:
- Curso de Programación II
- Especificación + Módulos + Reutilización
- Objetivo: [ C++ ]
Introducir los fundamentos teóricos de programación para
entrenar a cada estudiante en las técnicas básicas de
construcción de programas, en especial en la especificación e
implementación de módulos y artefactos de programación
reutilizables, con el fin que pueda usar herramientas de
programación y participar en cualquier equipo dedicado a construir
programas de mediana complejidad.
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Doxygen:
•
•
Dimitri van Heesch
http://www.doxygen.org
Es necesario inculcar en los programadores la
disciplina de especificar antes de programar, o
sea, de diseñar antes de construir, para
mejorar la calidad del producto final.
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Especificación
La Especificación puede verse como un contrato en el que
están definidos todos los servicios que la implementación del
módulo es capaz de dar.
Reutilización
Una pieza de programación es reutilizable si puede ser usada en
la construcción de un nuevo programa o programa producto.
Módulo
Sección de un programa bien construida, con un fin específico,
y que puede ser reutilizado.
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Especificación
La Especificación puede verse como un contrato en
el que están definidos todos los servicios que la
implementación del módulo es capaz de dar.
Cualidades de cada especificación
1) Completa: debe decirse todo lo que hay que decir
2) Correcta: debe omitirse lo que no hay que decir
3) No ambigua
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Bloque de documentación para 2 lenguajes
#ifdef English_dox
/// Defined by the C++ standard library.
#endif
#ifdef Spanish_dox
/// Definido por la biblioteca estándar C++.
#endif
namespace std { } // trick to include it into
// the Doxygen documentation
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Bloque de documentación para el inglés
// CSV.h
// ...
(C) 2008 [email protected]
#ifdef English_dox
/** Deletes \c ch when it's the trailing character in \c str.
- The deleted character always is \c ch.
\dontinclude
\skipline
\until
\see
test_CSV.cpp
test::chop()
}}
test_CSV::test_chop()
*/
#endif
void chop( std::string & str , char ch=0 );
// ...
// EOF: CSV.h
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Bloque de documentación en otro archivo
// CSV.es.h
(C) 2008 [email protected]
#ifdef Spanish_dox
/// Documentación en español.
#define Spanish_dox "Documentación en español"
/// \def Spanish_dox ///< Marca bloques de documentación en español.
#endif
// …
/** \fn
void chop( std::string & str , char ch=0 );
\brief Elimina \c ch si es el último caracter de \c str.
- El caracter eliminado siempre es \c ch.
\dontinclude
\skipline
\until
\see
*/
// ...
// EOF: CSV.es.h
test_CSV.cpp
test::chop()
}}
test_CSV::test_chop()
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Ejemplos de documentación Doxygen
1) Español
http://www.di-mare.com/adolfo/p/CSV/es/index.html
2) Inglés
http://www.di-mare.com/adolfo/p/CSV/en/index.html
PROJECT_NAME
OUTPUT_LANGUAGE
OUTPUT_DIRECTORY
GENERATE_LATEX
GENERATE_MAN
GENERATE_RTF
CASE_SENSE_NAMES
INPUT_ENCODING
INPUT
=
=
=
=
=
=
=
=
=
#
RECURSIVE
=
QUIET
=
JAVADOC_AUTOBRIEF
=
EXTRACT_ALL
=
EXTRACT_PRIVATE
=
EXTRACT_STATIC
=
EXTRACT_LOCAL_CLASSES =
INLINE_INHERITED_MEMB =
SOURCE_BROWSER
=
INLINE_SOURCES
=
STRIP_CODE_COMMENTS
=
REFERENCED_BY_RELATION=
REFERENCES_RELATION
=
FULL_PATH_NAMES
=
"CSV:"
Spanish
.
NO
NO
NO
YES
ISO-8859-1
CSV.cpp
CSV_line.cpp test_CSV.cpp \
CSV.h
CSV_line.h
\
Spanish.txt
copy CSV_line.es.h+CSV.es.h Spanish.txt
NO
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
NO
NO
SORT_MEMBER_DOCS
SORT_BRIEF_DOCS
CLASS_DIAGRAMS
= NO
= NO
= YES
ENABLE_PREPROCESSING
MACRO_EXPANSION
EXPAND_ONLY_PREDEF
PREDEFINED
=
=
=
=
EXAMPLE_PATH
YES
YES
YES
"DOXYGEN_COMMENT"
"Spanish_dox"
"__cplusplus"
"_MSC_VER=1300"
= .
\
\
\
# Manual ==> http://www.doxygen.org/manual.html
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Comparación de configuraciones
Comparing files test_CSV.dxg and Spanish.dxg
***** test_CSV.dxg
PROJECT_NAME
= "CSV:"
OUTPUT_LANGUAGE
= English
OUTPUT_DIRECTORY
= .
***** Spanish.dxg
PROJECT_NAME
= "CSV:"
OUTPUT_LANGUAGE
= Spanish
OUTPUT_DIRECTORY
= .
*****
***** test_CSV.dxg
INPUT
***** Spanish.dxg
INPUT
#
*****
***** test_CSV.dxg
PREDEFINED
***** Spanish.dxg
PREDEFINED
*****
= CSV.cpp
CSV.h
CSV_line.cpp test_CSV.cpp \
CSV_line.h
= CSV.cpp
CSV_line.cpp test_CSV.cpp \
CSV.h
CSV_line.h
\
Spanish.txt
copy CSV_line.es.h+CSV.es.h Spanish.txt
= "DOXYGEN_COMMENT"
"English_dox"
"__cplusplus"
\
\
\
= "DOXYGEN_COMMENT"
"Spanish_dox"
"__cplusplus"
\
\
\
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Receta:
1)
2)
3)
4)
5)
Marque el bloque de código con una macro para cada lenguaje,
como por ejemplo "English_dox" para el inglés y "Spanish_dox"
para el español.
En los archivo principales va la documentación en la lengua
materna, que generalemente es el inglés.
En otros archivos se pone la documentación para los otros
lenguajes (si son pocos lenguajes, se puede usar el mismo
archivo).
En muchos casos conviene documentar todos los campos,
métodos y funciones fuera de la clase, para evitar cargar
demasiado el código fuente.
Pese a que cada bloque de documentación debe estar rodeado
por la pareja #ifdef - #endif que corresponde al lenguaje, el código
resultante es legible.
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Conclusión
Doxygen es una herramienta ideal para documentar
pues se usa en proyectos diversos y valiosos.
Con un pequeño esfuerzo es posible mantener la
documentación para varios lenguajes sin ensuciar
demasiado el código fuente.
Especifique + Pruebe + Construya.
Using Doxygen to generate Spanish and English documentation
[email protected]
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Código Fuente
http://www.di-mare.com/adolfo/p/CSV/CSV.zip
http://www.di-mare.com/adolfo/p/CSV/es/index.html
http://www.di-mare.com/adolfo/p/CSV/en/index.html
http://www.di-mare.com/adolfo/p/DoxEsEn.htm
¡¡¡ Muchas Gracias !!!