Agenda de Trabajo Contexto Docente Doxygen

Slides:



Advertisements
Presentaciones similares
TIBERIUS Predictive Modelling Software
Advertisements

Python CI-2200 Programación Avanzada en Sistemas UNIX.
Cetis No. 119 Profa. Graciela Prado Becerra
Ejemplo de Programa C++
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Arquitectura CLARO-TECNOTREE
Introducción al lenguaje de especificación JML
Gestión de Información para Proyectos
ING. ERIKA ASCENCIO JORDÁN DOCENTE UNIVERSIDAD ECOTEC Sonnia Mendoza Carlos Morocho PAGINAS WEB.
Informática II Prof. Dr. Gustavo Patiño MJ
Programación 1 Presentación de c++
Control de versiones usando PowerBuilder y Subversion
Fundamentos de Javascript Desarrollo de Aplicaciones para Internet.
Automatización de procesos 2
MODELANDO EL DOMINIO Capítulo 2 del libro guía Gloria Lucía Giraldo G. UNIVERSIDAD NACIONAL DE COLOMIBIA DISEÑO Y CONSTRUCCIÓN DE PRODUCTOS DE SOFTWARE.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Introducción al desarrollo de proyectos RIA.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
Prominente S.A. Coordinación de Outsourcing. Agenda  Introducción  Objetivos  Diagnostico  Diseño de solución  Conclusión Universidad Kennedy Calidad.
I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de.
Archivos y Búsqueda Secuencial
Modelado Arquitectónico
Recursos en español en la Biblioteca de la Universidad Kean Recursos en español en la Biblioteca de la Universidad Kean Kean University Library Spanish-Language.
El lenguaje de programación Java
Numeric Types, Expressions, and Output
Usar Bases de Datos de Texto Completo en Historia
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software
Web Services (consumir servicios)
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Ingenieria de software
INSTITUTO DE ESTUDIOS SUPERIORES DE CHIHUAHUA COMPUTACION Ciclo: segundo cuatrimestre Lic. Roberto Servando Roque Corona.
Karina Borgna Julián Dondero Adrián Tamburri On the criteria to be used in decomposing systems into modules David Parnas, Carnegie-Mellon University, 1972.
Test-Driven Development Juan Carlos Olivares Rojas MSN:
Capítulo 3 “Entrada/Salida y Principios de Orientación a Objeto”
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Análisis y diseño de sistemas Diagrama de componentes
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
Horarios. After writing down the agenda in your notebook, look at the sample schedule below and answer the questions about it. 1. What does Juan have.
El rol de SQA en PIS.
Desarrollo de Software II Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto - Diciembre 2008 Ing. Oswaldo Solarte Pabón.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INGENIERIA DE SOFTWARE
INTRODUCCION A LA PROGRAMACION
Algoritmos y Programación III
Actividades en el Proceso de desarrollo de Software
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
TIPOS DE DATOS ABSTRACTOS
Puntos de Función.
INGENIERIA DE SOFTWARE
Acceso a Datos Erick López Ovando Licenciado en Informática.
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Elementos de un documento de plan informático Hasta el momento no existe un modelo único como para representar un plan informático; no obstante presentamos.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Presentación del cursoInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería Informática I.
Introducción al Lenguaje C y al Visual C++. Lenguaje C El lenguaje C se conoce como un lenguaje compilado. Es un lenguaje estructurado, ya que permite.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
[C] Describing Locations: Estar
Transcripción de la presentación:

Agenda de Trabajo Contexto Docente Doxygen Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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

- Curso de Programación II - Especificación + Módulos + Reutilización Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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.

Doxygen: Dimitri van Heesch http://www.doxygen.org Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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.

Especificación Reutilización Módulo Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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.

Cualidades de cada especificación Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 Completa: debe decirse todo lo que hay que decir Correcta: debe omitirse lo que no hay que decir No ambigua

Bloque de documentación para 2 lenguajes Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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++. namespace std { } // trick to include it into // the Doxygen documentation

Bloque de documentación para el inglés Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 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

Bloque de documentación en otro archivo Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 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

Ejemplos de documentación Doxygen Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 = "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

Comparación de configuraciones Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 OUTPUT_LANGUAGE = Spanish ***** INPUT = CSV.cpp CSV_line.cpp test_CSV.cpp \ CSV.h CSV_line.h CSV.h CSV_line.h \ Spanish.txt # copy CSV_line.es.h+CSV.es.h Spanish.txt PREDEFINED = "DOXYGEN_COMMENT" \ "English_dox" \ "__cplusplus" \ "Spanish_dox" \

Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática 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.

Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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.

Código Fuente ¡¡¡ Muchas Gracias !!! Using Doxygen to generate Spanish and English documentation adolfo.dimare@ecci.ucr.ac.cr 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 !!!