2010-10-17 28 views
7

¿Hay alguna herramienta para ayudar a diagramar una gran biblioteca de C? Estoy trabajando en un proyecto para portar una biblioteca de C existente a C++. La biblioteca C no está documentada en gran medida sin diagramas. Me gustaría usar una herramienta CASE para ayudarme a entender cómo interactúan los diversos archivos. Hay variables externas en la mayoría de los archivos.C: Diagramación de una gran biblioteca

De ser posible, preferiría un diagrama visual para comprender mejor el flujo del código. No estoy familiarizado con una herramienta de diagramación para lanagues procesales (o si existe). Recuerdo que en la universidad usamos para usar diagramas de jerarquía y flujo de datos para lenguajes de procedimiento.

Sé que existen muchas herramientas para diagramar OO idiomas, pero me gustaría una para C. Cualquier ayuda sería apreciada.

Sugerencias:


doxygen

Se le puede ayudar de tres maneras:

Puede generar un navegador documentación en línea (en HTML) y/o un manual de referencia fuera de línea (en) de un conjunto de archivos fuente documentados. También hay soporte para la generación de salida en RTF (MS-Word), PostScript, PDF hipervinculado, HTML comprimido y páginas man Unix. La documentación es extraída directamente de las fuentes, , lo que hace que sea mucho más fácil mantener la documentación consistente con el código fuente . Puede configurar doxygen para extraer la estructura de código de archivos de origen no documentados. Esto es muy útil para encontrar rápidamente su camino en grandes distribuciones de fuentes. Puede también visualizar las relaciones entre los diversos elementos mediante incluir gráficos de dependencia, diagramas de herencia y diagramas de colaboración, que se generan todos automáticamente. Incluso puede 'abusar' de doxygen para creando la documentación normal.


cppdepend

  • opensource/licencia académica y comercial (MSVS plug-in)

mejorar su calidad código base. CppDepend es una herramienta que simplifica administrando una base de código complejo C \ C++ (nativo, mixto y COM). Los arquitectos y los desarrolladores de pueden analizar la estructura del código, especificar reglas de diseño, hacer revisiones efectivas del código y la evolución del maestro por comparando diferentes versiones del código . Estos Casos de Estudio muestra que la utilidad de CppDepend tiene una visión profunda de de su arquitectura, diseño y implementación de . Refactorice y mejore su diseño y arquitectura. CppDepend proporciona gráficos útiles para analizar su diseño y arquitectura. El lenguaje CQL le ofrece una flexibilidad de para crear sus consultas personalizadas y tener una vista profunda de su base de código. aquí está una muestra del uso de CppDepend para ayudar a su refactorización. Asista a su migración . Comprender la migración existente . CppDepend lo ayuda en su proceso de migración , aquí puede encontrar las ventajas de usar CppDepend en su proceso de migración.


ctag

  • (nedit, vim, emacs) VIM TUTORIAL
    • nombres de clase
    • definiciones de macro
    • nombres de enumeración
    • enumeradores
    • definiciones de funciones
    • función prototipos/declaraciones
    • clase, interfaz, estructura, y los miembros de datos de la Unión
    • nombres de estructura
    • typedefs
    • nombres de la Unión
    • variables (definiciones y externos declaraciones)

csope

  • (línea de cmd, vim) VIM TUTORIAL
    • permite la búsqueda de código para:
    • todas las referencias a un símbolo
    • definiciones globales
    • funciones llamado por una función
    • funciones llamar a una función
    • cadena de texto
    • patrón de expresión regular
    • un archivo
    • archivos incluyendo un archivo

Respuesta

7

Doxygen puede generar diversos tipos de diagramas de interacción - archivos, llamadas a funciones, etc. Con la variable de configuración EXTRACT_ALL configurada, generará diagramas y documentaciones cruzadas incluso para código sin comentarios de documentación.

2

Doxygen como lo menciona Nick Meyer es probablemente una buena apuesta. También puede probar las herramientas clásicas de referencias cruzadas ctags y cscope, que puede usar como herramientas independientes o integradas con su editor de texto.

+0

cscope se ve muy bien pero estoy trabajando en un entorno Windows. Parece una mejor versión del archivo intelliense MSBS NCB (http://msdn.microsoft.com/en-us/library/ms379615(VS.80).aspx). Sin embargo, cscope le da la posibilidad de consultar su base de datos. –

3

CppDepend, si trabaja en Windows, amplía Doxygen con un lenguaje de consulta y capacidad para moverse en el gráfico de dependencia.

Cuestiones relacionadas