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?
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