Use GraphViz (and a few other free tools) to create a high-level interactive map of software projects. ''Context'': A high level map of a large software project is needed. Any number of facets including executables, plugins, file formats, databases, dependencies, and clusters of packages may be displayed. ''Problem'': Using a traditional diagram editor to create such a map manually is time-consuming and tedious. Also, changes may require extensive re-layout of the map. Although GraphViz can be easily adapted to a script, adding Wiki, HTML, or DoxyGen greatly amplifies the system. ''Solution'': Apply the following recipe: ''Steps:'' * Create a GraphViz dot file with the required linking information, maybe with a script. * Run GraphViz once to generate an image of the graph. * Run GraphViz again to generate an html image-map of the graph. * Create an index.html (or wiki page) with an IMG tag of the graph, followed by the image-map's html. * Direct the image-map urls to a Wiki page with each node's name - generate the Wiki pages automatically if needed. ** Optionally, link directly to the class hierarchy image generated by DoxyGen. * Have the Wiki page link to any additional documentation, including DoxyGen docs, images, etc. ''Result:'' * The page will display a high-level graph of "everything". The graph can be descended to project/module/etc-specific information. * Potentially, the entire map can be visual and hot-linked to other maps, including the overview map. ''Additional benefit:'' * The warm feeling of peering down on complexity from your lofty perch. * Impresses visitors and marketing types by being the neato overview that hollywood movies have - and it works. * Acts as a knowledgebase and organizer for the system. ---- Comments? Anyone else done this? -- LayneThomas Sure. This a great application of GraphViz and related tools. In the past I have generated method calling data from Ruby code, then plotted it using GraphViz. You might be interested in MiniRubyWiki, which lets you imbed GraphViz code on wiki pages. -- ---- CategoryDevelopmentDiagrams