Spexygen can be viewed as a pre-processor for Doxygen↑ with the workflow similar to that of Doxygen. The diagram below shows the documentation generation steps, the relation between Spexygen and Doxygen, and the flow of information between them. The numbered sections following the diagram explain the labeled elements:
[1] Developers prepare documents (e.g., srs.dox) according to the conventions established by Doxygen. The individual "work artifacts" are created with a set of custom commands provided by Spexygen (file Spexyfile). For example, command @uid{} starts a definition of a new "work artifact" such as a requirement.
[2] Developers also apply the special custom commands provided by Spexygen to annotate the source code (e.g., header.h). For example, command @code_uid{} starts a definition of a new "code artifact".
[3] Developers prepare a Spexygen configuration file (e.g., spex.json in the diagram), which describes the documents to be traced and generated by Spexygen.
[4] The spexygen.py Python script processes the files and generates forward-traceabilty in requested locations in the provided files.
[5] The spexygen.py Python script creates a specified directory (spex in the diagram, see also "gen-dir": tag in spexy.json) to save the generated files.
[6-7] The spexygen.py Python script generates the augmented files into a specified directory. The generated files contain all the original information plus the tracing information generated by Spexygen (shown in red in the diagram)
[8] The spexygen.py Python script also generates the Spexyinc file that contains the information about all generated files.
[9] Developers can prepare other documentation, not processed by Spexygen, but also included in the final Doxygen-generated documentation.
[10] The Doxygen configuration file (Doxyfile) includes the Spexyfile (with the Spexygen custom commands) and the generated Spexyinc file (with files generated by Spexygen and to be processed by Doxygen)
[11] Doxygen processes the files generarted by Spexygen (see [6-7]) and other files (see [9]) according to the Doxyfile (see [10])
[12] If Doxygen is configured to produce HTML output, it applies the modern style introduced in Doxygen 1.14.0 and adapted in Spexygen.
[13] If Doxygen is configured to produce PDF output, it applies the modern LaTeX template provided by Spexygen