Sourcecode-Analyse mit Frama-C

Seit einigen Tagen interessiere ich mich für die Analyse von Sourcecode mittels Frama-C. Das ganze ist aus der Projektarbeit geboren, bei der ich mit Mathworks Polyspace zu tun habe und mich mit den Meldungen aus der Analyse herumschlagen darf. Leider wieder viel zu spät im inkrementell-iterativen Entwicklungszyklus und daher mit sehr viel Aufwand verbunden. Allerdings scheint es auch keine kostengünstige Alternative zu Polyspace zu geben.

Bis ich schliesslich über Frama-C stolperte. Damit kann der Quelltext analysiert werden, um Hinweise auf mögliche Probleme zu bekommen. Es gibt z.B. die Value Analysis mit deren Hilfe mögliche Werte und Wertebereiche für Variable bestimmt werden. Ich habe das ganze auf das folgende kleine Programm losgelassen:

MISSING CODE

Auf dieses kleine Programm habe ich dann Frama-C mit dem folgenden Aufruf losgelassen:

frama-c -val hello.c

Damit wird Frama-C angewiesen, das Value Analysis Plugin auf die Datei hello.c anzuwenden. Heraus kommt die folgende Ausgabe:

MISSING CODE

Sehr interessantes Ergebnis. Damit wird eine Prüfung der berechneten Werte möglich. Es wird quasi eine Äquivalenzklassenbildung automatisiert und mögliche Wertebereiche zurückgegeben. Frama-C kann noch sehr viel mehr, aber ich befinde mich gerade erst am Anfang der Reise. Ich denke, ich werde mich mit dem Tool noch weiter beschäftigen und prüfen, wie man das ganze in die bestehenden Prozesse integrieren kann. Und an welcher Stelle und für welche Projekte das überhaupt Sinn macht.

PS: Falls mir jemand sagen kann, wie man sinnvoll Quelltexte in Blogger einpacken kann, wäre ich sehr dankbar. Anscheinend zerschiessen pre-Tags das ganze Layout und werden von Blogger auch nicht wirklich gut abgespeichert. Nach jedem Speichern verschwinden Zeilen, werden Umbrüche zerstört… ☹

Haltet eure Hilfsmittel aktuell

Das ist ein guter Rat und er sollte befolgt werden. Es gibt wirklich nichts schlimmeres, als mit den Einschränkungen veralteter Hilfsmittel zu arbeiten. Seien es jetzt Checklisten, Dokumente, Tools oder Hardware. Wenn ihr die Möglichkeit habt, aktualisiert eure Hilfsmittel regelmässig. Z.B. haben frühe Versionen von Entwicklungsumgebungen oder Plugins immer einige halbfertige Funktionen oder sie sind mit schlechter Usability geliefert.

Wenn ihr erst einmal einen ganzen Vormittag damit verbracht habt, ein Problem zu korrigieren, dass nur durch die ungenaue Darstellung von Informationen in der IDE der Wahl entstanden ist, dann steigt der Drang zu einem Update von ganz allein… ☹

Das gleiche gilt für Checklisten. Wer schon einmal eine Anleitung (z.B. zur Erstellung einer Lieferung) befolgt hat, in der mehrere Schritte fehlten oder veraltet waren, der weiß, wovon ich rede. Wenn man solche Hilfsmittel nicht aktuell halten kann, sollte man sie gar nicht erst anlegen. Oder wegwerfen.

Ich bin ein Fan von Automatisierung und in der Zeit, in der ich eine Checkliste geschrieben habe, habe ich meistens auch ein Ant- oder Bash-Skript geschrieben. Und gerade für wiederkehrende Aufgaben (und warum sollte es sonst Bedarf für eine Checkliste geben?) ist eine Automatisierung der einzige Weg, Fehler zu vermeiden. Aber auch hier gilt: Wenn das Skript danach nie wieder angepasst wird und langsam veraltet, dann sollte man es lieber wegwerfen. Der nächste Projektmitarbeiter wird sonst nur unnötig verwirrt.

Xchat: Script für Growl Notifications unter Windows

Hier kommt noch ein wenig Technik-Inhalt. Ich habe mir ein kleines Script geschrieben, dass mir unter Windows aus X-Chat heraus Growl Notifications bei privaten Nachrichten schickt. Das Skript benötigt ein Javascript-Plugin für X-Chat.

Zu finden unter http://gist.github.com/615453.

Nennt mich ISTQB Certified Tester, Foundation Level…

…NICHT.<p /><div>Ok, das Zertifikat hab ich jetzt auch. Aber ich lege keinen Wert auf solche Zuneigungsbekenntnisse. Also spart euch die Anrede und nennt mich wie ihr wollt. ;-)</div><p /><div>Schön ist es allerdings trotzdem, den Schein in der Schublade zu haben. Falls nämlich im nächsten Projekteinsatz wieder der Verdacht aufkommen sollte, ich wäre zu unerfahren für den Einsatz. Geurteilt nach der Ansicht meines Fotos im Firmenadressbuch… gnah Was kann ich für mein blendendes Aussehen? ;-)</div>

Zertifizierung V-Modell XT

Die eMail mit dem Ergebnis der Zertifizierung kam doch früher als erwartet. Ich darf mich ab jetzt “Zertifzierter V-Modell XT Projektleiter bzw. QS-Verantwortlicher” nennen. Aber ob ich das jemals tun werde?<p />Ich glaub, da muss mir schon jemand sehr, sehr dumm kommen, bevor ich so ein Zertifikat (oder sonst eine Beurteilung/Leistungsbezeugung) an die Bürowand hänge.