Frage

Ich versuche, herauszufinden, ob es ein Weg gibt einen benutzerdefinierten Tag mit Doxygen zu erstellen. Ich habe die ALIAS Konfigurationsdatei Option finden, aber das nicht genau das tun, was ich brauche. Im Grunde genommen in meinem Code möchte ich in der Lage sein, etwas zu schreiben, wie

/// \req Requirement #322 - blah blah

Und dann haben Doxygen eine Liste erstellen, wie es \bug und \todo Befehle für Linien tut für die diesen benutzerdefinierten Tag haben. Ist dies möglich mit Doxygen?

War es hilfreich?

Lösung

Die Verallgemeinerung von \bug und \todo ist \xrefitem.

Die Lösung, die ich vorschlagen, ist:

  • in Doxyfile:

    ALIASES += "req=\xrefitem req \"Requirement\" \"Requirements\" "
    
  • in dokumentiert Code:

    /// \req #42 - The system shall work in any situation
    

Andere Tipps

Danke mouviciel! Ich habe Ihre Lösung übernommen und erweitert es für meine Zwecke.

Der Text geht in meine Doxyfile:

ALIASES += req{1}="\ref SRTX_\1 \"SRTX-\1\" "
ALIASES += satisfy{1}="\xrefitem satisfy \"Satisfies requirement\" \"Requirement Implementation\" \1"
ALIASES += verify{1}="\xrefitem verify \"Verifies requirement\" \"Requirement Verification\" \1"

Wo SRTX der Name meines Projekts und wird als Präfix für Anforderungen verwendet wird.

Dann erstelle ich eine Datei Requirements.dox genannt, die eine Verbindung zwischen der Anforderung ID und eine URL für die Anforderung stellt in meinem Anforderungsmanagement-Werkzeug (ein issue tracker in meinem Fall).

/**
@page Requirements

@section Build1

@anchor SRTX_1113
<a href="https://foo.bar.com/mantis/view.php?id=1113">SRTX-1113</a>

@anchor SRTX_1114
<a href="https://foo.bar.com/mantis/view.php?id=1114">SRTX-1114</a>

*/

Man kann auch den Text der Anforderung in dem Anker-Tag legen könnte, wenn Sie nicht mit einer externen Quelle verbinden haben müssen.

In meinem Code habe ich:

/**
 * This is the basic executive that schedules processes.
 * @satisfy{@req{1114}}
 */
class Scheduler: public Process
{
    ...
}

Und in meinen Tests, die ich gesagt:

/**
 * Provide a number of tests for process scheduling.
 * @verify{@req{1114}}
 */
class Scheduler_ut : public CppUnit::TestFixture
{
    ...
}

Das gibt mir verwandte Seiten für Anforderungen, Anforderungen Implementierung und Requirements Verification. Es bietet auch Befriedigt Anforderung und überprüft Anforderungen Abschnitte in der Klassenbeschreibung (oder Funktion - wo immer Sie setzen den Tag).

Die Kombination der beiden Antworten über , können Sie eine einzige saubere Anforderung-Tag haben, die eine Querverweistabelle bauen, und auch eine direkte Verbindung zu der Anforderung zur Verfügung stellen Repo in Ihren Dokumenten:

Doxygen CONFIG-Datei:

ALIASES = "requirement{1}=@xrefitem requirement \"Requirements\" \"Requirements Traceability\" <a href=\"http://your.requirementtool.com/browse/\1\">\1</a>"

Der Quellcode:

@requirement{REQ-123} Kurztext Zusammenfassung dieser Bedarfsposition

Dies wird in der Dokumentation machen, wie:

Anforderungen:

  • REQ-123 Kurztextzusammenfassung dieses Bedarfsposition
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top