Robert Bosch GmbH

Von projektspezifischer Entwicklung von Einzelsystemen zur Wiederverwendung generischer Komponenten#

Erfahrungen mit Software-Produktlinien bei der Robert Bosch GmbH

Bei den von der Robert Bosch GmbH entwickelten Steuergeräten für den Automobilbau handelt es sich um sog. eingebettete Systeme, bestehend aus Hard- und Software. Wie die gesamte Software entwickelnde Industrie kann auch die Robert Bosch GmbH ihre Wettbewerbsfähigkeit langfristig nur erhalten, wenn es gelingt, Kosten und Aufwände der Software-Entwicklung, sowie die Zeit zur Marktreife weiter zu reduzieren. Dabei werden die Geräte stetig komplexer, denn sie müssen in modernen Automobilen immer umfangreichere Aufgaben erfüllen – bei unverändert hohen Qualitätsansprüchen. Hinzu kommt die steigende Nachfrage nach maßgeschneiderten Produkten: Für unterschiedliche Steuergeräte müssen immer mehr Varianten der eingebetteten Systeme produziert werden. Um diesen Herausforderungen begegnen zu können, hat sich die Robert Bosch GmbH für einen Produktlinienansatz entschieden.

Der Umstieg von projektspezifischer Entwicklung von Einzelsystemen hin zur Produktlinienentwicklung lässt sich in der Regel nicht in einem Schritt realisieren. Daher wurde auch bei Bosch eine schrittweise Migrationsstrategie verfolgt. Nachdem zusammen mit Experten aus den verschiedenen Projektteams eine Referenzarchitektur für Steuergeräte entwickelt wurde, erfolgte die Migration zu einer produktlinienorientierten Software-Entwicklung. Dies umfasste drei Schritte: die Auswahl geeigneter Komponenten, die Festlegung des Produktlinienumfangs (»Scoping«) sowie die Modellierung und Implementierung der ausgewählten Komponenten nach der vom Fraunhofer IESE entwickelten Produktlinienmethode PuLSE®. Dabei wurden die ausgewählten Komponenten nacheinander betrachtet und nach Bedarf Anpassungen der PuLSE®-Methode an die spezifische Entwicklungssituation bei Bosch vorgenommen.

Um die Anwendbarkeit des Ansatzes bei Bosch nachzuweisen, wurde dieser zunächst auf zwei Software-Komponenten angewandt, die für alle Gerätetypen und Hardware-Plattformen gleichermaßen benötigt werden. Variabilitäten waren demzufolge durch technische als auch durch anwendungsspezifische Aspekte motiviert. Die ausgewählten Komponenten hatten auch den Vorteil, dass sie aus relativ wenig Code bestanden und gut verstanden waren.

Im Rahmen des Scoping wurde festgelegt, welche »Mitglieder« die Produktlinie umfasst und welche Eigenschaften die einzelnen Varianten haben. Hierzu wurde für die beiden Komponenten jeweils die Menge der in den bestehenden Produkten bereits existierenden Varianten analysiert. Auf der Grundlage dieser Analyse wurden die Komponenten der geplanten Produktlinie gemäß der vom Fraunhofer IESE entwickelten Produktlinienmethode PuLSE® modelliert und implementiert. Dabei wurden die Komponenten generisch angelegt, d.h. sie enthielten explizite Variationspunkte gemäß der zuvor identifizierten variablen Eigenschaften. Die resultierenden Software-Varianten umfassten nicht nur Code, sondern auch eine variantenspezifische Spezifikation und ein dazu passendes Software-Design.

Die Konzentration auf besonders gängige und überschaubare Komponenten erlaubte es, den Einsatz von Produktlinientechnologie in allen Facetten realistisch zu demonstrieren, das Potenzial des Produktlinienansatzes in der Organisation zu untersuchen und möglichst viele Mitarbeiter mit Produktlinientechnologie in Kontakt zu bringen.

Die anhand der zwei Komponenten exemplarisch durchgeführte Planung und Implementierung einer Produktlinie stellte den ersten Schritt auf dem Weg zur produktlinienorientierten Entwicklung dar. Mit Erfolg: Es zeigte sich, dass alle vom Projektpartner geforderten Varianten erzeugt werden konnten.

Zusätzlich zur Demonstration der technischen Machbarkeit wurde auch die erfolgte Anpassung der PuLSE®-Methode an die spezifischen Anforderungen der Organisation validiert. Hierbei wurde folgendermaßen vorgegangen: Parallel zu den Implementierungsarbeiten am Fraunhofer IESE wurden auch bei der Robert Bosch GmbH auf der Basis der vom Fraunhofer IESE erzeugten generischen Spezifikationen Software-Varianten realisiert und die entstandenen Artefakte und Implementierungen miteinander verglichen. In beiden Fällen waren die spezifizierten Produktlinienkomponenten korrekt realisiert worden. Allerdings waren die realisierten Lösungen implementierungstechnisch von unterschiedlicher Qualität. Es erschien daher im Rahmen der weiteren Migration zur produktlinienorientierten Software- Entwicklung sinnvoll, die technischen Produktlinienfertigkeiten in der Kundenorganisation zu verbessern.

Getrieben von den positiven Erfahrungen der Machbarkeitsstudie, wurde der Weg hin zu einer komponentenbasierten Produktlinie, die nahezu alle Varianten und Komponenten der Referenzarchitektur abdeckt, konsequent weitergegangen. Als Nächstes wurde eine Komponente ausgewählt, die im Vergleich zu den ersten beiden Komponenten einen erheblich größeren Anteil an Funktionalität erbringt und für die Systeme von zentraler Bedeutung ist.

Bedingt durch die stringenten Ressourcenbeschränkungen in den zu entwickelnden Steuergeräten wies diese Komponente eine sehr hohe Anzahl von Variabilitäten auf. Dies ließ die Entwicklung dieser Komponente zur Bewährungsprobe für die Variabilitätskonzepte in der PuLSE®-Methode werden, die mit kleineren Anpassungen gut bestanden wurde. So konnten nach der Fertigstellung der Komponente innerhalb kurzer Zeit mehrere Komponenteninstanzen für verschiedene Steuergeräte erfolgreich abgeleitet werden.

Der nächste Schritt sieht nun die großflächige Verfolgung des Ansatzes bei der Robert Bosch GmbH vor. So sollen in den kommenden Jahren in diesem Unternehmen zwanzig wieder verwendbare Komponenten entwickelt werden.