1 / 14

Agenda de Trabajo Contexto Docente Doxygen Especificación + Módulos + Reutilización

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. Contexto Docente:

osanna
Télécharger la présentation

Agenda de Trabajo Contexto Docente Doxygen Especificación + Módulos + Reutilización

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.

  3. 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.

  4. 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.

  5. 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 Completa: debe decirse todo lo que hay que decir Correcta: debe omitirse lo que no hay que decir No ambigua

  6. 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

  7. Bloque de documentación para el inglés // CSV.h (C) 2008 adolfo@di-mare.com // ... #ifdef English_dox /** Deletes \c ch when it's the trailing character in \c str. - The deleted character always is \c ch. \dontinclude test_CSV.cpp \skipline test::chop() \until }} \see test_CSV::test_chop() */ #endif void chop( std::string & str , char ch=0 ); // ... // EOF: CSV.h

  8. Bloque de documentación en otro archivo // CSV.es.h (C) 2008 adolfo@di-mare.com #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 test_CSV.cpp \skipline test::chop() \until }} \see test_CSV::test_chop() */ // ... // EOF: CSV.es.h

  9. 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

  10. PROJECT_NAME = "CSV:" OUTPUT_LANGUAGE = Spanish OUTPUT_DIRECTORY = . GENERATE_LATEX = NO GENERATE_MAN = NO GENERATE_RTF = NO CASE_SENSE_NAMES = YES INPUT_ENCODING = ISO-8859-1 INPUT = 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 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" EXAMPLE_PATH = . # Manual ==> http://www.doxygen.org/manual.html

  11. 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 = CSV.cpp CSV_line.cpp test_CSV.cpp \ CSV.h CSV_line.h ***** Spanish.dxg INPUT = 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 ***** ***** test_CSV.dxg PREDEFINED = "DOXYGEN_COMMENT" \ "English_dox" \ "__cplusplus" \ ***** Spanish.dxg PREDEFINED = "DOXYGEN_COMMENT" \ "Spanish_dox" \ "__cplusplus" \ *****

  12. Receta: 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.

  13. 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.

  14. 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 !!!

More Related