Benutzer:Happe

Aus SDQ-Wiki

2009-10-14 Vorstellung Klocwork

Teilnehmer

TRUMPF: Maike Rehusch, Thilo Schönfelder, Georg Hochholzer EMENDA: Herr Halder FZI: Henning Groenda, Jens Happe

Agenda

  1. Feature präsentation
  2. Produktdemo
    1. Emenda Code
    2. TRUMPF Code

Informationen

  • Kontrollfluss
    • Flow Chart generation aus AST
    • return value / dead code detection
  • Data Flow
  • Struktur / Architektur
    • Entities (siehe online Hilfe 'Supported Entity Types'; Bsp: DIRECTORY, FILE, ARCHITECTURE_BLOCK(virtuell)), Relationships
    • Prüfung auf Ebene von Verzeichnissen ist machbar
    • Bei weiteren Wünschen eher andere Programme (Bsp: Lattix)
    • Keinerlei Modifikation bei what-if. Lediglich 'Todo-Liste'.
  • Metriken
    • eindimensional
    • lassen sich beliebig mit mathematischen Funktionen verketten
  • Export
    • XML, HTML, XML --XSLT--> PDF
  • Unterstützte Sprachen
    • C
    • C++
    • Java
    • C# (nur IDE/client, Details WIRD ABGEKLÄRT)
  • Technische Basis
    • AST, genannt KAST. Werkzeug darauf heißt Checker
    • Path Checker. Wohl eher symbolische Ausführung (Wertebereiche, erweiterte Funktionen für Semaphoren, Ressourcen). DSL.
  • Benutzer-/Rollenverwaltung
    • Ist integriert. Anbindung an existierende Lösungen (LDAP, NIS) machbar
    • User, Gruppen, Rollen beliebig konfigurierbar
    • Zuordnung von Usern auf Codebereiche: nur 1-1 (Textdatei mit Format (Zeile:) user;Datei)
  • Overhead
    • Analyse ('Compile') ist um einen Faktor langsamer als 'normale' compilierung
    • Hängt von Anzahl Checker ab
    • Path-Analysen wohl nochmals aufwändiger
  • Knowledge-Base
    • Einschränkung von Wertebereichen, Definition von Verhalten von nicht analysierten Funktionen
    • Feedback bei fehlerhaftem Eintrag (WIRD ABGEKLÄRT)
  • Verwendete Server
    • Flex für Lizenzverwaltung
    • MySQL als Backend-Datenbank
    • Klocwork Project Server
    • Tomcat Webserver für grafische Darstellung/Reports
  • Ausschluss von Elementen
    • Verzeichnissen/Dateien: Nicht analysieren
    • Fehlern: (Analysieren) Filtern. Filter nach Verzeichnis, Datei, Issue Typ, User, State, Status.
    • Konkreten checks nicht pro Datei einstellbar. Muss in eigenes 'Project' ausgelagert werden.
  • Aufgedeckte Fehler
    • Zyklische Abhängigkeiten nur manuell in Architekturansicht
    • Checker können mit Hilfe/Details verknüpft werden. VORSCHLAG: Bei Umsetzung der TRUMPF Guidelines sollte geometric dies mit machen. Web-Zugriff oder HTML-Format für diesen Guideline-Teil wäre also von Vorteil.
    • Severity nicht frei konfigurierbar. Es gibt ~8 vordefinierte Kategorien, die verwendet werden müssen.
  • Online Dokumentation
    • Customizing enthät Tutorials und weitere Hinweise
  • Lizenzen
    • Floating: 5-10 min lease time
    • per User: 2 week lease time
    • reset auf server nicht machbar
    • Kostenfaktor floating:per User ist 1:5
    • Klocwork-Lizenz gilt höchstwahrscheinlich nur für einen core. Parallelisierung ist damit fraglich.
  • Workflow
    • Verwaltbarer Zustand 'State'. Workflow muss definiert werden, welche Rolle welche Änderung wie machen darf.
    • 'status' ist eine feste Einteilung auf serverseite der Bugs (analysiert, wiederaufgetreten, ...)
  • Reporting
    • Für jede Ansicht muss ein eigenen Report generiert werden. VORSCHLAG: Grobentwurf FZI in Verbindung mit TRUMPF, Umsetzung geometric.

TODO

  • Email mit Exception-Beispiel wg Mächtigkeit der 'Checker': Lässt sich Einhaltung der Sicherheitsfassade prüfen? Kann die deklaration von Exceptions überprüft werden?
  • 'checker exchange' anschauen
  • Evaluation des 'Speed-Factor' von Klocwork. Vergleich 'normale' compilierung und Klockwork 'compilierung'. Zusätzlich grobe Abschätzung für checker interessant.
  • Check Roadmap (WIRD ABGEKLÄRT)
  • Check price list (WIRD ABGEKLÄRT)
  • Metriken auf Architekturelementen statt auf File-basierter Ansicht (WIRD ABGEKLÄRT)
  • Guidelines: Festlegen, wie builds, ... heißen sollen, damit später Auswertungen auf Untermengen davon gefahren werden können (Reporting bspw: Alle Milestones plus letztes build)