Browser für Requirements

Nach Langem endlich mal wieder ein Projekt in Qt das richtig Spaß macht 🙂 Spaß macht es vor allem durch die vielen Ideen, Verbesserungswünsche und Bugreports von Kollegen, die das Tool verwenden. An dieser Stelle noch mal vielen Dank dafür. Ich hoffe es gibt noch viel zu tun …

Die Idee für das Programm entstand kurz vor Weihnachten, als wir zum ersten mal versuchten Anforderungen für unseren neu geschriebenen Code zu erfassen. Damals durch händisches Editieren von XML-Dateien. Schnell war klar, dass dies eine ziemlich lästige und ermüdende Aufgabe ist. Besonders die Struktur und Abhängigkeiten der Requirements untereinander machten uns Probleme, denn es war schwer diese zu visualisieren. Ausschlaggebend war ein Gespräch mit einem Kollegen bei einer Zigarette – „Wie wärs, wenn wir unsere Requirements wie in einem Dateibaum strukturieren“. Dann kam der Weihnachtsurlaub und ich konnte eine erste Version des Tools implementieren. Das Feedback zur ersten Version war sehr gut und ich hatte Lust weiter zu machen. Am Anfang konnte man noch viel bei der Verwendung verkehrt machen – mittlerweile hat das Tool die Version 0.7 und ist schon sehr komfortabel in der Verwendung. Wie gesagt hoffe ich auf noch viele Verbesserungswünsche.

Hier die Funktionalität so weit:

Requirements werden in einer baumartigen Struktur organisiert, die an einen Dateibrowser erinnert. Der Änderungsstatus eines Requirements wird dabei ähnlich wie bei TortoiseSvn angezeigt:

Req_Common

 

Ein Wizard-Dialog hilft bei der Erstellung eines neuen Requirements:

Req_Wizard

 

Requirements können Abhängigkeiten untereinander haben, die in einem Baum nicht dargestellt werden können. Dafür gibt es die Refinements Ansicht:

Req_Refines

 

Verlinkungen der Requirements im Sourcecode oder der Dokumentation können überprüft werden. Ein Klick auf den Link öffnet die Datei im voreingestellten Editor.

Req_Coverage

 

Im PO-Mode werden noch nicht genehmigte Requirements farblich gekennzeichnet. Um diese im Baum schneller finden zu können werden auch übergeordnete Requirements farblich hinterlegt.

Req_POMode

 

Zu guter letzt gibt es noch ein Stylesheet, das aber per default deaktiviert ist. Schöne Spielerei 🙂

Req_Style

 

Es gibt noch einige weitere Funktionalität, die nur über einen Expertenmodus zugänglich ist. In diesem ist die Veränderung von IDs, nachträgliches Ändern der Datei in der sich ein Requirement befindet und eine Reparaturfunktion für kaputte Refinements versteckt.

Ich bin immer wieder beeindruckt, mit wie wenigen Codezeilen sowas in QT möglich ist

Update: ReqM2Browser kann jetzt auch einen Report über alle abgedeckten Requirements erstellen

ReqReport