cancel
Showing results for 
Search instead for 
Did you mean: 

Statische Codeanalyse

TobiasArnold
Level 6

Hallo zusammen,

ich starte diesen Thread zunächst einmal in der deutschsprachigen Community, da ich denke, dass hier viele Anwender das gleiche Problem haben.

Gerade für die Kollegen unter uns die im Finanzsektor arbeiten, greifen besondere regulatorische Anforderungen.

In diesem Rahmen setzen wir das „4-Augen-Prinzip" ein um Programme/Objekte produktiv zu setzten. D.h. eine zweite Person prüft die Artefakte und gibt diese frei.

Genau an dieser Stelle wäre es ja möglich eine statische Codeanalyse einzusetzen um dem Prüfer Hinweise zu geben, an welchen Stellen gegen Best-Practises in der Programmierung verstoßen wurde.

Setzt ihr so etwas ein? Macht ihr so etwas überhaupt?

Ich habe mich einmal hingesetzt und ein kleines Tool gebaut das jetzt schon etwas mehr als 30 Regel prüfen kann. Die Idee dahinter war so etwas wie das gute alte FxCop von Microsoft für BluePrism nachzubauen.

Anforderungen:

  • Begründbarkeit: Regeln müssen auf einer (Modul-)Globalen, Page oder Stage – Ebene deaktivierbar sein (mit Begründung)
  • Konfigurierbarkeit: Regelparameter müssen an die jeweiligen Anforderungen angepasst werden können.
  • Gruppierbarkeit: Regeln sollte bestimmten Gruppen zugeordnet werden können (z.B. Sicherheit, Design, Programmierung)
  • Regelsätze: Regeln müssen zu Sätzen gruppierbar sein, um z.B. Qualitätslevel (Gold, Silber, Bronze) definieren zu können.
  • Erweiterbarkeit: Es sollten einfach eigenen Regeln hinzugefügt werden können, die über den Standard-Regelsatz hinausgehen und z.B. nur für ein Unternehmen gelten, z.B. Namenskonventionen.
  • Flexible Anwendung
    • Die Prüfung sollte gegen die BluePrism Datenbank (gegen einzelne Artefakte als auch gegen den gesamten Inhalt) ausgeführt werden können
    • Die Prüfung sollte auch gegen einzelne exportierte Artefakte, bzw. gegen ein Release-Package ausgeführt werden können
    • Für die Prüfung sollte ein spezielles VBO existieren um sie ggf. einfach in weitere Prozesse integrieren zu können.

Eine Übersicht der Regeln ist im Anhang als Excel zu finden.

Fallen euch noch mehr (allgemeine) Regeln ein, bzw. besteht das Interesse das Projekt als OpenSource Community-Projekt fortzusetzen? OpenSource wäre hier möglich, da ich das Tool private entwickelt habe, hier also mein Unternehmen nichts mit zu tun hat.



------------------------------
Tobias Arnold
RPA Developer
ITERGO GmbH
Europe/Duesseldorf
------------------------------
4 REPLIES 4

John__Carter
Staff
Staff
Hi Tobias - if you haven't already done so, please take ideas from these:

https://portal.blueprism.com/system/files/2017-09/Design%20Control%20Checklist%20%28DCC%29%20-%20TEMPLATE.zip
https://portal.blueprism.com/system/files/documents/Build%20Quality%20Checklist.xlsx
https://portal.blueprism.com/system/files/documents/Peer%20Review%20Checklist%20V2.1.zip

And here is a an example of a commercial product with the same concept:
https://revealgroup.com/products/roboreview/

------------------------------
John Carter
Professional Services
Blue Prism
------------------------------

ewilson
Staff
Staff
NOTE: Translated using Google Translate.

Hallo @Tobias Arnold,

Vielleicht möchten Sie sich dieses Projekt auf GitHub ansehen:

https://github.com/marinoscar/rpa-navigator

Es verarbeitet keine Code-Stufen, unterstützt jedoch einige standardmäßige Best-Practice-Analysen anderer Blue Prism-Stufen. ​

Cheers,

------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------

Hi Eric,

sieht interessant aus. Zumindest wurden hier alle Stage-Typen in C#-Objekte gewrapped. Diese Arbeit wollte ich mir sparen und haben (fast) alle Regeln in XPath formuliert.
Schade das das Projekt nicht weiterentwickelt wurde, aber ggf. kann ich ja hier etwas wiederverwenden, Zumindest sind dort noch einige gute Regeln abgebildet.

------------------------------
Tobias Arnold
RPA Developer
ITERGO GmbH
Europe/Duesseldorf
------------------------------

Hi John,

thanks for the hints. I think it is possible to extract some static rules from these lists.

------------------------------
Tobias Arnold
RPA Developer
ITERGO GmbH
Europe/Duesseldorf
------------------------------