Unsere Leistungen im Bereich Variantenmanagement

Fraunhofer-Institut für Experimentelles Software Engineering IESE

Unser Leistungsportfolio!

Unterschiedliche Kunden haben unterschiedliche Ziele und Charakteristiken, und Projekte für die Entwicklung variantenreicher Systeme sind nicht alle gleich. Aus den folgenden Kernleistungen stellen wir den für Sie optimalen Ansatz zusammen und passen ihn so an, dass er bestmöglich zu den jeweiligen Herausforderungen und Möglichkeiten passt.

Werkzeuggestützte Analysen von Artefakten

Wir analysieren den Quellcode, um zuverlässig diejenigen Codeteile zu entdecken, die ohne großen Aufwand in generische, wiederverwendbare Artefakte verwandelt werden können. Die Analysen bieten eine reiche Informationsbasis, mit deren Hilfe sich optimale Entscheidungen über den für den jeweiligen Fall geeigneten Variantenmanagementansatz treffen lassen.

Musterbasierte Dokumentenanalyse

Wir unterstützen die Identifizierung potenzieller Produktfeatures basierend auf vorhandener Dokumentation, wodurch sich die Belastung der Domänenexperten reduziert, die an der Definition von Produktfeatures beteiligt sind. Die gesammelten Informationen liefern wertvollen Input für die Modellierung und Kontrolle von Variationen sowohl zwischen Ihren bestehenden als auch zwischen Ihren geplanten Produkten.

Bewertung von Variantenmanagementpraktiken

Wir identifizieren die Vor- und Nachteile aktuell verwendeter Variantenmanagementpraktiken. Wir analysieren alle variationsrelevanten Artefakte, wie z.B. Makefiles, Präprozessor-Ausdrücke und Versionskontrollarchive, und geben Empfehlungen zu notwendigen Verbesserungen.

Scoping-Workshop

Wir helfen Ihnen, zu entscheiden, welche Produktvarianten Sie auf den Markt bringen oder bestimmten Firmen anbieten sollten. Wir sind Ihnen auch dabei behilflich, sich Gedanken darüber zu machen, welche Features diese Varianten aufweisen sollten, unter Berücksichtigung der Auswirkungen auf Kundenzufriedenheit, technische Risiken und Entwicklungskosten.

Domänenbewertung

Wir helfen Ihnen zu entscheiden, welche Teile der Produktvarianten in einer gemeinsamen Produktlinieninfrastruktur implementiert werden sollten. Dafür gruppieren wir Features in Funktionalitätsbereiche und bewerten diese u.a. bezüglich ihres Marktpotenzials, ihres Reifegrades und der Verfügbarkeit existierender Artefakte.

Innovations- und Evolutionsplan

Wir unterstützen die Vorhersage und Planung der Weiterentwicklung von Produktvarianten und -features sowie die Identifizierung weiterer Innovationsmöglichkeiten. Unser Ansatz gewährleistet, dass alle relevanten Beteiligten berücksichtigt werden, die eine Rolle im Geschäftsumfeld spielen.

Anforderungsengineering für variantenreiche Softwaresysteme

Wir verwenden einen geschäftsgetriebenen und benutzerzentrischen Ansatz, der sich ideal für die komplexen Softwaresysteme eignet, die heutzutage in der Industrie eingesetzt werden, und unterstützen damit die frühzeitige  Erfassung und Modellierung von Gemeinsamkeiten und Variabilitäten.

Architekturentwicklung für variantenreiche Softwaresysteme

Wir unterstützen Software-Ingenieure dabei, die wichtigsten Architekturtreiber und Einsatzszenarien zu identifizieren, um die iterative Konstruktion einer ganzheitlichen Architektur zu ermöglichen. Dadurch lässt sich entweder die Erstellung von Systemen mit hoher Variationsbreite oder die Migration zu effektiver Unterstützung von Variationen in bestehenden Systemen planen.

Implementierung von variantenreichen Softwaresystemen

Da sich eine nachhaltige Weiterentwicklung nur realisieren lässt, wenn geeignete Variationsmechanismen gewählt werden, helfen wir Ihnen dabei, die richtigen Mechanismen für die Implementierung von Variationen und für das Sammeln von Metriken zur Kontrolle der Weiterentwicklung Ihrer Software zu finden.

Werkzeugauswahl und Unterstützung bei der Werkzeugeinführung

Wir helfen Ihnen bei der Auswahl und Einführung desjenigen Variantenmanagementwerkzeugs, das am besten zu Ihren individuellen Bedürfnissen, zu Ihrem Budget und zu Ihren vorhandenen Werkzeugen passt. Werkzeugunterstützung sollte die Nachverfolgbarkeit von Endbenutzerfeatures zu konkreten Implementierungselementen ermöglichen und den Prozess zur Erstellung neuer Produktvarianten erleichtern.

Reduzierung der Komplexität

Wir helfen Ihnen, unnötige variationsbedingte Komplexitäten zu entdecken und zu refaktorisieren, die ansonsten negative Auswirkungen auf die Effizienz, Wiederverwendbarkeit oder Anpassbarkeit der entsprechenden Artefakte hätten. Durch das Entfernen unnötiger Komplexitäten und die Einführung wiederholbarer Qualitätssicherungsmaßnahmen wird die Qualität Ihrer Software-Artefakte signifikant verbessert, während sich der Aufwand für deren Weiterentwicklung reduziert.

Kontinuierliche Integration

Wir bieten Qualitätssicherungsdienste an, damit Sie Ihren Code kontinuierlich integrieren können – von Build-Automatisierung und Selbsttest bis zu automatisierter Verteilung und Installation. Dies erleichtert die schnelle, günstige und schrittweise Entwicklung, ohne das ständige Risiko, dass versehentlich neue Fehler eingefügt werden.

Konfigurationsmanagement

Wir bieten Ihnen eine speziell auf Ihre individuellen Bedürfnisse zugeschnittene Konfigurationsmanagementunterstützung, die den Entwicklungslebenszyklus der gemeinsamen Infrastruktur und der einzelnen Produktvarianten effektiv koordiniert. Dadurch können Sie Ihre Artefakte nachverfolgbar und konsistenter speichern und weiterentwickeln.