Logo

Software Development

Bij Embedded Softwareontwikkeling gebruiken wij vrijwel uitsluitend eclipse-gebaseerde tools. Lange tijd was het zo, dat er serieuze beperkingen rond het debuggen van toepassingen waren, maar dat is intussen geen argument meer, de superioriteit van Eclipse t.o.v. andere (commerciële) paketten niet uit te buiten. Bovendien ist het zo, dat Eclipse - dat in hoge mate door IBM vooruit geholpen werd - een standaard is, waarmee een grote verscheidenheid aan projekttypen kunnen worden beheerd. Te denken valt aan bijv. een goede realiseerbaarheid van embedded toepassingen inclusief PC-gebaseerde simulatie van dezelfde toepassing.

Verder is git een substantiëel stuk gereedschap (toDo) zur Versionskontrolle bei Software-Projekten, aber auch bei z.B. Dokumentation (Word-Diffs). Git ist ursprünglich aus Unzufriedenheit mit den damaligen Versionskontrollsystemen von Linux Torvalds für die Linux *Kernel*entwicklung entwickelt worden. Inzwischen hat git die Welt der Versionskontrollsysteme wie im Sturm erobert. Besonderes Merkmal ist, dass git verteilt aufgebaut ist. Es gibt nicht den einen Server, und sog. Clients, sondern jeder Teilnehmer in einem git-supported Projekt hat eine vollständige Kopie auf dem Rechner. Dadurch ist die Projekthistorie sofort zugreifbar, und vereinfacht das Aktivieren eines bestimmten Standes für z.B. Hotfix-Arbeiten. Eine sehr gute Beschreibung eines Workflow für git findet sich hier. Je nach Präferenzen setzen wir auch Mercurial ein, auch ein verteiltes System, das etwas einfacher in der Handhabung ist, traditionell etwas windows-freundlicher und unterstützt fortlaufende Commit-Nummerierung (für die, die Wert darauf legen).

Ein Wort zur Programmiersprache: Weil der Schwerpunkt Embedded Systeme ist, setzen wir überwiegend C ein. Häufig bildet gcc die Grundlage, wenn auch oft mit optimierten Laufzeitbibliotheken. Auch hier gilt: früher nicht ernst genommen, heute ernstzunehmen. Der Grund: dessen Verwendung in der Linux-Kernelentwicklung. Es sind Erweiterungen in der Sprache eingeführt worden, die die Lesbarkeit des Code verbessern, insbesondere bei sog. board files, die überwiegend aus sog. struct-Initialisierungen bestehen. Bemerkenswert ist, dass solche Erweiterungen inzwischen auch in der C-Normierung Eingang findet.

Ansonsten wird für Rapid Application Development von z.B. Simulationsumgebungen auf dem PC auf der Skriptsprache Tcl/Tk gesetzt. Aus heutiger Sicht nicht wirklich überzeugend, aber eine überzeugende Alternative einer Skriptsprache mit GUI-Toolkit fehlt bislang.