Ingenieurbüro Michael Schmidt
 

Versionsnummern und Versionsverwaltung für die kombinierte Hard- und Softwareentwicklung


Für die Entwickler von Software gibt es zahlreiche gute Lösungen zur Versionsverwaltung. Wir suchten dagegen nach einem entsprechenden Ansatz für kombinierte Hard- und Software-Projekte.

Es sollen verschiedene Versionen von Platinenlayouts, Schaltplänen, Stücklisten und der jeweils dazugehörigen Firmware eindeutig und nachvollziehbar dokumentiert werden.

Dies ist ganz besonders wichtig bei Projekten mit langer Laufzeit, die kontinuierlich verbessert werden. Ebenfalls dann, wenn während der Entwicklung der Kunde schon mal einen Prototypen zum Testen bekommt. Jeder Stand und jeder Fortschritt sollte genau dokumentiert sein.

Die Versionsnummern sollten einfach aufgebaut, logisch, behaltbar und einigermaßen zukunftssicher sein. Dazu gehört auch, daß sie möglichst kurz sind und dezimal gezählt werden. Wir verwenden dazu einen projektübergreifenden Änderungsindex, der im folgenden erläutert wird.

Versionsnummer

Die Versionsnummern sind in der Form LL.CC.SS (Layout . Components . Software) strukturiert.

LL, die 1. + 2. Ziffer, kennzeichnen das Platinenlayout

  • 01 bis 99 fortlaufend nummeriert.
  • Diese ersten zwei Ziffern sind eine eindeutige Bezeichnung für alle Layoutdaten.
  • Das Projektkürzel und die ersten beiden Ziffern werden als Text in der Kupferlage dargestellt.
  • Die zweistellige Angabe ist hinreichend für Bestellungen beim Platinenhersteller.

CC, die 3. + 4. Ziffer, bezeichnen den Schaltplan und die Bauteilwerte (Components) zu einem Layout

  • 00 bis 99 fortlaufend nummeriert.
  • Die Nummerierung bezieht sich auf ein bestimmtes Platinenlayout. Bei jeder Änderung am Layout fängt der Zähler wieder bei 00 an, weil zu jedem Layout eine initiale Bestückung gehört.
  • Schaltplan, Bestückungsplan als auch die Stückliste müssen die ersten vier Ziffern tragen.
  • Die vierstellige Angabe ist notwendig für Bestellungen beim Bestücker.

SS, die 5. + 6. Ziffer, referenzieren die Software

  • 01 bis 99 fortlaufend. Ggf. auch mit Lücken, wenn die Revisionsnummer von einem SVN generiert wurde.
  • 00 oder kein Eintrag entspräche keiner Software, also einer Hardware ohne Controller.
  • Die Zählung läuft unabhängig von der Hardware. Die Abwärtskompatibilität einer Softwareversion bzgl. der Hardware geschieht gesondert.
  • Die Zählweise kann natürlich beliebig um zusätzliche Stellen erweitert werden.

Die Reihenfolge der Ziffern LL.CC.SS ist dadurch bestimmt, was in welcher Reihenfolge variiert werden kann. Ein Platinenlayout bestimmt die Verbindungen zwischen den Bauelementen. Die Bauteilwerte können jedoch verändert werden, ohne das Layout zu bearbeiten. Genauso können auf jedem Layout mit einer bestimmten Bestückung wiederum verschiedene Softwareversionen laufen.

Die feste Stellenzahl mit Vornullen mag vielleicht etwas altmodisch wirken, ist aber besser sortierbar.

Grenzen und Einschränkungen

Ein Produkt besteht u.U. aus mehreren elektronischen Baugruppen. Der hier beschriebene Änderungsindex bezieht sich nur auf eine einzelne Baugruppe, nicht auf das ganze Gerät.

Ein Variantenmanagement ist mit dieser Methode nur schwer zu realisieren und hängt davon ab, auf welcher Ebene (Layout, Bestückung oder Software) variiert wird. Im einfachsten Fall bekommt das Kind einen neuen Namen, der die geänderte Funktion beschreibt.

Die Sicherung der Versionen obliegt dem Benutzer. Es ist kein Projektarchiv oder Repositorium implementiert. Dafür stehen zahlreiche ausgereifte Versionsverwaltungs-Systeme zur Verfügung, genannt seien Subversion oder Git. Eine sinnvolle Integration von CAD-Daten in diese Systeme ist jedoch nicht immer möglich. Wenn ein binäres Format verwendet wird, scheidet ein Dateivergleich oder ein Merge aus. Bei Layouts und Schaltplänen kann man dann nur auf eine alte Version zurückspringen. Diverse CAD-Programme bringen schon eigene Sicherungssyteme mit und so bleibt nichts, als die Versionsnummer hochzuzählen und das Ganze zu dokumentieren.

Anwendung

Es hat sich als hilfreich erwiesen, ein Formular mit folgenden Punkten abzuarbeiten:

  • Technische Daten und Besonderheiten dieser Version
  • Funktionale Veränderungen
  • Behobene Fehler
  • Neue Fehler (werden im nachhinein ergänzt, so sie auftreten.)
  • Änderungen am Layout
  • Änderungen der Bauelemente und der Bestückung
  • Änderungen an der Software

Um die Formulare zu verwalten, eignet sich z.B. CUEcards. Diese Software ist auch in einer kostenlosen Einzelplatz-Version erhältlich.

Und so sieht es aus:

Ein Beispiel zur Dokumentation

Letztendlich steht und fällt das Verfahren natürlich mit der konsequenten Umsetzung. Wer schreibt, der bleibt.

www.elektrik-trick.de/version.htm
© 19.08.2016 M. Schmidt