Agile Embedded Software Development: Das Beste zweier Welten
Für den Aufbau dieses Embedded Systems empfiehlt sich der Einsatz agiler Entwicklung
Als einzigartige Hardware-Plattformen, die Rechenleistung in einer Vielzahl von Anwendungen bereitstellen, vereinen Embedded Systems das Beste zweier Welten: Hardware-Design und Software-Entwicklung – davon träumt jeder Techniker. Designprozesse für einfachere Embedded Systems sind in der Regel linear. Die Hardware und die Embedded Software werden mitunter simultan von unterschiedlichen Designteams entwickelt. Mit immer komplexeren Systemen und steigenden Kundenanforderungen müssen Konstruktionsteams ihre konventionellen Methoden überdenken.
Agile Entwicklungsmethoden werden normalerweise mit Softwareprojekten assoziiert. Diese Entwurfs- und Entwicklungstechniken können jedoch auch für die Hardwareentwicklung – darunter die Entwicklung von Embedded Systems – eingesetzt werden. Da Embedded Software viele der Prozesse und Ideen der traditionellen Software-Entwicklung beinhaltet, ist sie auch für das agile embedded Software Development geeignet. Die Vereinheitlichung der Entwicklung von Embedded Software und Leiterplatten zu einem kohärenten Workflow erfordert ein Überdenken beider Prozesse hin zu einem iterativen, kontinuierlichen Prozess.
Werden diese Methoden korrekt implementiert, können sie dazu beitragen, unnötige Re-Designs zu vermeiden und sicherzustellen, dass die Produktfunktionalität den Kundenanforderungen besser entspricht. Um dies zu erreichen, bedarf es der richtigen Design- und Kollaborationswerkzeuge, die sich an jede Design-Methodik einschließlich der agilen Entwicklung anpassen lassen.
Agile Entwicklung an das Hardware-Design anpassen
Noch nie habe ich an einem Softwareprojekt mitgearbeitet, das termingerecht und innerhalb des Budgets abgeschlossen wurde. Das ist nunmal die betriebliche Realität. Hardware-Entwicklungsprojekte scheinen zumindest tendenziell planmäßig abgeschlossen zu werden, weshalb viele Projektmanager es vorziehen dürften, Hardware-Projekte zu leiten. Unabhängig davon, wie sorgfältig die Projektleiter die Entwicklung einer neuen Software-Plattform planen, kommt es fast immer zu unvorhergesehenen Inkompatibilitäten oder Änderungen der Kundenanforderungen.
Einer der zentralen Leitgedanken des agile embedded Software Development ist, dass Veränderungen während eines Designprozesses unvermeidlich sind. Darum muss ein Designteam flexibel auf Änderungen von Kundenanforderungen im Hinblick auf die elektrische Funktionalität, die Herstellbarkeit, das mechanische Design für ein Gehäuse oder die Verpackung reagieren können. Beim Entwurf von Embedded Systems sieht sich ein Entwicklungsteam dagegen mit Veränderungen aus zwei Richtungen konfrontiert: Störungen in der Lieferkette der PCB-Bauteile und Embedded Software.
Die Implementierung des iterativen Prozesses als Kernstück einer agilen Entwicklung hilft dem Designteam, sich rasch auf Änderungen im Verlauf des Entwicklungsprozesses einzustellen, sobald sie auftreten, statt sie erst nach Abschluss einer Chargenprüfung am Entwicklungsende zu berücksichtigen. Dies verlangt eine konsistente und klare Kommunikation zwischen den Teammitgliedern und den Kunden. Damit die Embedded Software- und Hardware-Komponenten eines Projekts simultan bearbeitet werden können, müssen beide Projektteams kooperieren
Wie verändert sich der traditionelle Arbeitsablauf beim agilen embedded Software Development?
Zu Beginn sollten die Anforderungen an Gestaltung und Funktion klar definiert werden – sowohl in Bezug auf die Hardware als auch auf die eingebettete Software. An dieser Stelle ist die Kommunikation mit dem Kunden entscheidend, da sie sicherstellt, dass der Kunde die Funktionsweise und Realisierbarkeit seines neuen Produkts vollständig versteht.
Im Rahmen der Anforderungsermittlung sollten die Meilensteine während des gesamten Projekts klar definiert, zugleich aber auch an Veränderungen angepasst werden können. Die Arbeit an Meilensteinen bei gleichzeitiger Berücksichtigung von Änderungen am Hardware- und Software-Design erfolgt in einem iterativen Prozess. Dieser iterative Prozess ist das Herzstück agiler Entwicklungsmethoden.
Ein häufiges Problem bei linearen Entwurfsprozessen ist das Fehlen von periodischen Reviews. Die Qualitätssicherung neigt dazu, zu spät in den Prozess einbezogen zu werden, was ein Re-Design aufwendig und teuer macht. PCB-Design und Software-Tests sollten entlang des gesamten Designprozesses durchgeführt werden. Beim Hardwareteil des Projekts sind Design-Rule-Checks und elektrische Simulationen der beste Weg, die Funktionalität vor der Prototypenfertigung zu untersuchen. Dadurch können Sie nötige Designmodifikationen viel früher im Entwicklungsprozess vornehmen.
Es gibt zahlreiche Varianten agiler Prozesse, und die damit verbundenen Verfahren und Ideen sind zu umfangreich, um hier darauf einzugehen. Im Mittelpunkt einer erfolgreichen agile embedded Software Development steht jedoch der Einsatz einer Konstruktionssoftware mit den richtigen Funktionen für Entwicklung, Datenverwaltung und Kollaboration.
Verwendung von Tools für die Zusammenarbeit und das Versionsmanagement
Die Software-Industrie macht seit Jahren ausgiebig Gebrauch von Werkzeugen zur Versionskontrolle, und Hardware-Design-Plattformen holen endlich auf. Das Problem mit typischen PCB-Design-Plattformen besteht darin, dass die Embedded Software- und Hardware-Komponenten eines Projekts traditionell auf mindestens zwei verschiedene Computerprogramme konzentriert waren. Dies erfordert ein weiteres Werkzeug, um die Zusammenarbeit und Versionskontrolle während eines Projekts zu ermöglichen.
Eine Design-Plattform, die alle gängigen und fortschrittlichen Werkzeuge für das PCB-Design bereitstellt, wie sie für das Hardware- und Embedded Software-Design benötigt werden, erleichtert die Zusammenarbeit der Teammitglieder in einem Projekt erheblich. Wenn neben diesen Werkzeugen auch eine Versionskontrolle integriert ist, kann Ihr Team jederzeit schnell auf alte Designversionen zurückgreifen und somit die in der Software-Entwicklung gerne praktizierten Trial-and-Error-Methode nachahmen.
Da die Bauteilbeschaffung und -herstellung für jedes Hardware-Projekt eine Schlüsselrolle spielen, sollten sich die periodischen agilen Teammeetings während der Design-Iterationen darauf konzentrieren, alle notwendigen Änderungen zu bestimmen, um Störungen in der Lieferkette zu vermeiden. Diese können die Konzeption der Embedded Software während des Projektes beeinflussen.
Wenn Ihr Team über Echtzeit-Beschaffungs- und Obsoleszenz-Informationen innerhalb Ihrer Design-Plattform verfügt, können Sie betreffende Produktkomponenten schnell auswechseln und sogar den Zeitaufwand für Designänderungen reduzieren. Der Zugriff auf diese Beschaffungsinformationen früh im Designprozess hilft Ihrem Team, spätere Designmodifikationen zu vermeiden, da Sie Beschaffungsprobleme vorhersehen und Ihre Hardware-Plattform ggf. anpassen können.
Die Funktionen für Schaltplan-, PCB-Layout- und Embedded-System-Design in Altium Designer® können jetzt mit den Datenverwaltungsfunktionen in Altium Concord Pro® integriert werden. So steht Designern ein vollständiger Werkzeugsatz für die agile embedded Software Development zur Verfügung. Die TASKING-Funktionen in Altium Designer bieten ihnen einen branchenüblichen Werkzeugsatz, der für die Erstellung von Embedded Systems für zahlreiche Anwendungen erforderlich ist.
Kontaktieren Sie uns oder laden Sie eine kostenlose Testversion von Altium Designer® und Altium Concord Pro herunter. Sie erhalten Zugang zu den besten Routing-, Layout-, Simulations- und MCAD-Kollaborationswerkzeugen der Branche in einem einzigen Programm. Sprechen Sie noch heute mit einem Altium-Experten, um mehr zu erfahren.