Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
22 Elektronik automot ive Softwareentwicklung ein kommerzielles Interesse an der Vermarktung oder Verwertung des Produkts zu haben Qualität und Prozess bei einer Code-First-Arbeitsweise Wie bereits erwähnt steht bei Code-First die Förderung der Zusammenarbeit im Vordergrund und weniger die Effizienz steigerung durch externe Beiträge Insofern erfordert der Code-First-Ansatz einen möglichst schlanken Prozess um den Entwicklungspartnern einen nieder schwelligen Einstieg zu ermöglichen Dennoch ist es ein wichtiges Ziel dass der beigesteuerte Quellcode weitgehend übernommen werden kann Nur so kann vermieden werden dass sich im nachgelagerten Härtungsschritt herausstellt dass die Implementierung für den Einsatz in Seriensoftware völlig ungeeignet ist Um dies zu gewährleisten sollte der Maintainer gewisse Leitplanken hinsichtlich der Form des eingebrachten Quellcodes setzen ➔ ➔ Abstimmung über die Umsetzung Zu Beginn ist eine Abstimmung zwischen den beitragenden Entwicklungspartnern und dem für den nachgelagerten Härtungsschritt der Software verantwortlichen Maintainer sinnvoll Ziel dieser Abstimmung ist die Klärung der Frage wie das geplante Feature optimal in den bestehenden Quellcode integriert werden kann beispielsweise durch die Implementierung einer weiteren Unit Handelt es sich um eine neue Komponente sollte ein Produktarchitekt in den Prozess eingebunden werden Dabei sollte die konsequente Anwendung der zentralen Designkonzepte des zugrunde liegenden Produkts im Vordergrund stehen und nicht die Einführung neuer Ansätze Dies gilt insbesondere für etablierte Patterns wie die Fehlerbehandlung oder die Behandlung von Nebenläufigkeit ➔ ➔ Verwendung von statischer Code-Analyse Die Vermeidung von Programmierpraktiken mit hohem Refactoring-Risiko wird durch den Einsatz statischer Code-Analyse unterstützt Der Schwerpunkt liegt hierbei nicht auf einer umfassenden Analyse oder einer vollständigen Rechtfertigung aller Warnungen gemäß Standards wie MISRA Stattdessen sollten nur kritische Meldungen unmittelbar behoben werden ➔ ➔ Testabdeckung Da die für eine vollständige Testabdeckung erforderlichen Spezifikationsartefakte zum Zeitpunkt der Code-First-Entwicklung noch nicht verfügbar sind sollten die Testfälle für die neue Funktionalität auf Grundlage der Erfahrung der Entwickler erstellt werden Die Coverage-Messung lässt sich dabei als unterstützendes Werkzeug nutzen Vor der Übernahme des Codes durch einen Entwicklungspartner sollte eine Überprüfung und eine Freigabe durch den Maintainer erfolgen Dabei werden sowohl technische Schulden wie beispielsweise erforderliche Optimierungen in der Implementierung als auch Prozessschulden wie etwa fehlende oder unvollständige Prozessartefakte dokumentiert Die Behebung der im Review identifizierten technischen Schulden sowie der Unvollständigkeiten bezüglich der Prozessartefakte erfolgt dann im nachgelagerten Härtungsschritt Bild 1 so dass am Ende dieses Härtungsschritts ein voll qualifizierter Release mit allen Artefakten und Nachweisen vorliegt Diese Vorgehensweise ist mit Aspice [5] und ISO 26262 [6] vereinbar da beide Standards iterative Entwicklungsansätze unterstützen Insbesondere die ISO 26262 erlaubt ausdrücklich eine schrittweise Verfeinerung solange Sicherheitsaspekte von Anfang an berücksichtigt werden Mögliche Realisierung einer Code-First-Infrastruktur Die Infrastruktur wird in einer Cloud-Umgebung betrieben um den Entwicklungspartnern einen einfachen und schnellen Zugang zu ermöglichen Dies Bild 2 CI-Pipeline-Struktur für die Code-First-Kollaboration und den nachgelagerten Härtungsschritt Bild Vector Informatik Tabelle 2 Regelungen der Verwertungsrechte für einen Code-First-Ansatz Quelle Vector Informatik Organisatorischer Rahmen Verwertungsrechte Open-Source-Projekt Open-Source-Lizenz Source-Available-Projekt Von OSD abweichende Source-Available-Lizenz mit eingeschränkten Verwertungsrechten zum Beispiel Einschränkung der Verwertung auf nichtkommerzielle Zwecke Community-Entwicklung Regeln der Community definieren die Verwertungsrechte Partner-Entwicklung Inhaber des Code-Repositories behält die vollen Verwertungsrechte