URL dieses Beitrags:

Lesezeichen bei Google setzen Link auf Facebook teilen
Fachartikel vom 08/11/2015

Software-Variantenmanagement

Die Software-Fabrik

Individuelle Lösungen statt Standardprodukt: Die Wiederverwendung von Bauteilen oder Software-Komponenten ist eine Antwort auf diese Herausforderungen. Das Software-Produktlinien-Engineering ist einer der bekanntesten Ansätze für ihre Umsetzung.

Bild: Method Park
  (Bild: Method Park)

Von Dr. Sebastian Oster, Lisa Brodbeck und Maria Eckey

In der Mechatronik ist die Variantenvielfalt von gestiegen. Begründet liegt dies in den verschiedenen Umgebungs- und Kundenanforderungen der Zielmärkte – verschärft durch die Globalisierung – sowie in der stetig steigenden Funktionsaffinität und den Individualisierungswünschen der Zielkunden.

In der Mechanik existieren Methoden wie Baukastensysteme und Modulstrategien, um durch Wiederverwendung von Bauteilen individuelle Kundenwünsche kosteneffizient zu erfüllen. Da in der Mechatronik der Software-/IT-Anteil als Individualisierungskomponente kontinuierlich steigt (im Automobilbereich werden über 80 Prozent der Funktionen durch Software implementiert), stellt sich die Frage nach systematischen Wiederverwendungsmechanismen oder Baukastensystemen für die Software-Anteile.


Vorteile durch Modularisierung


Variantenmanagement in der Mechanik wird meist durch Modularisierung realisiert. Dabei wird ein Gesamtsystem in einzelne Bauteile zerlegt, die in möglichst vielen Produkten kostengünstig wiederverwendet werden. Schnittstellen und Form werden dabei standardisiert und auf das Gesamtsystem abgestimmt. Vorteile der Modularisierung sind eine leichtere Entwicklung durch Austauschbarkeit der Komponenten, Kostenreduktionen und Qualitätssicherung durch hohe Wiederverwendung. Dieses Vorgehen ist in der Automobilindustrie seit vielen Jahren Standard.

Ein ähnlicher Ansatz kann für den Software-Anteil eines mechatronischen Systems genutzt werden. Das sogenannte Software-Produktlinien-Engineering hat die Wiederverwendungstechniken aus der Mechanik übernommen und an seine Bedürfnisse angepasst. Durch die systematische Wiederverwendung von Software-Artefakten im gesamten Entwicklungszyklus sollen bei der Entwicklung einer Familie von Software-Produkten die Kosten und die Entwicklungszeit für Einzelsysteme reduziert und gleichzeitig die Qualität durch wiederholtes Anwenden und Testen gesteigert werden. Auf diese Weise wird der Bedarf nach immer kürzeren Time-to-Markets adressiert.


Software-Produktlinien


Software-Produktlinien implementieren das sogenannte Mass Customization für Software: eine Kombination von Massenproduktion und kundenindividueller Systementwicklung. In ersterer werden meist einige wenige Standardprodukte in hoher Stückzahl für einen breiten Markt entwickelt. Letztere spezialisiert sich dagegen auf die individuelle Entwicklung von Einzelsystemen für Kundenanforderungen, die von Standardprodukten nicht erfüllt werden können. Das Mass Customization erlaubt durch systematische Wiederverwendung und Variabilitätsmechanismen eine effiziente Entwicklung kundenspezifischer Software-Produkte.


Das Software-Produktlinien-Engineering unterteilt die Entwicklung in zwei Stränge: die Entwicklung für Wiederverwendung (Domain Engineering) und die Entwicklung durch Wiederverwendung (Application Engineering). Im ersten Strang werden die Teile des Gesamtsystems erstellt, die wiederverwendet werden sollen. Zunächst werden in der Domänen-Anforderungsanalyse alle Anforderungen erfasst, die über die Einzelprodukte der Produktlinie wiederverwendet werden sollen. Von einer toolgestützen Anforderungsanalyse ausgehend, empfiehlt sich hier die Zuordnung von Anforderungen zu sogenannten Merkmalen anstatt zu Produkten. Diese Merkmale beschreiben charakteristische Eigenschaften des Systems.


Systematische Wiederverwendung


Anschließend werden im Domänen-Design die Anteile der Produktlinie erstellt, die wiederverwendet werden können. Dies können etwa Funktionsbeschreibungen in Form von Zustandsdiagrammen sein. Hier werden die einzelnen Modell-Artefakte den Merkmalen zugeordnet. Eine Menge von Zuständen und Transitionen, die bestimmte Anforderungen erfüllen, sollten den gleichen Merkmalen zugeordnet werden wie die Anforderungen oder Spezifikation. Analog dazu wird bei der Realisierung/Implementierung und in der Testphase vorgegangen. Im Domain Engineering steht nicht die Entwicklung eines einzelnen Produktes im Vordergrund, sondern die Entwicklung von wiederverwendbaren Artefakten für die gesamte Produktlinie.

Diese Artefakte werden im Application Engineering wiederverwendet. In der Regel betrifft dies jedoch nicht alle Artefakte, sondern solche, die für das gewünschte Produkt notwendig sind (im Unterschied zur Plattform-Strategie). Das Application Engineering entspricht im Allgemeinen einem normalen Software-Entwicklungsprozess, bei dem ein funktionierendes Software-Produkt oder System erstellt wird. Der Unterschied liegt darin, dass Artefakte aus dem Domain Engineering systematisch wiederverwendet werden. Diese werden etwa in einer bestimmten Kombination über die Merkmale ausgewählt und um systemspezifische Merkmale erweitert. Auch hier werden alle Eigenschaften durch Merkmale abstrahiert und über die gesamte Entwicklung, von den Anforderungen bis hin zum Test, dokumentiert. So können bei der Weiterentwicklung von Produktlinien diejenigen Merkmale, die sich für den wiederholten Einsatz eignen, via Rückkopplung in das Domain Engineering übernommen werden.

Um die Wiederverwendung beziehungsweise Steuerung der Variabilität über Merkmale zu ermöglichen, haben sich im Software-Produktlinien-Engineering sogenannte Merkmalsmodelle (Feature-Modelle) durchgesetzt. Hierbei werden die Merkmale samt ihrer Beziehungen in einem hierarchischen Graphen abgebildet. Ein Knoten im Graph repräsentiert ein Merkmal, das weitere Anforderungen oder Design-Artefakte in den beiden Entwicklungssträngen repräsentiert.

Das Software-Produktlinien-Engineering ermöglicht systematische Wiederverwendung und damit Kostenersparnis, verkürzte Entwicklungszeiten und höhere Qualität als die individuelle Einzelentwicklung von ähnlichen Software-Produkten oder Copy-and-Paste-Ansätze. Über die Merkmale können Gemeinsamkeiten und Variabilität der Software-Familie modelliert und gezielt eingesetzt werden. Für die Mechatronik ist dieser Ansatz besonders interessant, da Software auch in Zukunft mehr zu der Individualität eines mechatronischen Systems beitragen wird als die Mechanik. Zudem können auch Entwicklungsartefakte aus der Mechanik an die Merkmale gekoppelt werden, um die maximale Wiederverwendung und Nachverfolgbarkeit (Traceability) zwischen den einzelnen Entwicklungsartefakten zu erreichen. (sc)

www.methodpark.de