Softwareentwicklung im Maschinenbau im PLM durchgängig verwalten

ALM und PLM. Softwareentwicklung im Sondermaschinenbau im KMU Umfeld

Die nächste Herausforderung - Software sauber über den Produktlebenszyklus zu managen und die Verfügbarkeit sicherzustellen.

In der Vergangenheit wurde die Produktlebenszyklus sehr stark auf die Verwaltung von mechanischen Komponenten ausgelegt.

Mit der Zunahme von Elektronik und Elektrik entstand der Begriff mechatronische Entwicklung. Mit der Zunahme der Softwareentwicklung und den konvergierenden Systeme stehen viele Unternehmen vor einer großen Herausforderung in der Umsetzung dieser Anforderungen.

Auf was Sie achten müssen und welche Rahmenbedingungen im Vorfeld geklärt sein müssen erfahren Sie in diesem Artikel.

SBOM und die SBOM

SBOM

Es gibt eine Art von BOM (Bill of Materials) für Software, die als „Software Bill of Materials“ oder „SBOM“ bezeichnet wird. Eine SBOM ist eine Liste aller Komponenten und Abhängigkeiten, die in einer Softwareanwendung oder einem Softwarepaket enthalten sind. Dies kann z.B. Bibliotheken, Frameworks, Module, Treiber, Skripte oder andere Komponenten umfassen, die für die Funktionalität der Software erforderlich sind.

Eine SBOM wird verwendet, um die Transparenz und Sichtbarkeit von Softwarekomponenten zu verbessern und um sicherzustellen, dass die Softwarekomponenten den Lizenz- und Sicherheitsanforderungen entsprechen. Insbesondere ist die SBOM wichtig, um potenzielle Schwachstellen und Abhängigkeiten in der Software aufzudecken, um Sicherheitsprobleme und Risiken im Zusammenhang mit der Software-Entwicklung zu minimieren.

Die Verwendung von SBOMs wird in verschiedenen Branchen wie der Automobil-, Luft- und Raumfahrt- sowie der Gesundheitsbranche immer häufiger gefordert, um die Transparenz und Sicherheit der Software zu erhöhen und um den Austausch von Software-Komponenten zu erleichtern.

S-BOM

Achtung oft wird unter der Defintion S-BOM steht für „Service Bill of Materials“ oder „System Bill of Materials“ und bezieht sich auf eine Liste aller Komponenten und Teile, die für die Herstellung, Montage, Wartung und Reparatur eines Produkts erforderlich sind.

Im Lifecycle-Management bezieht sich der S-BOM auf die Verwaltung dieser Materialliste im gesamten Lebenszyklus des Produkts, von der Konzeption und Entwicklung bis zur Entsorgung. Der S-BOM wird oft von Herstellern und Service-Providern verwendet, um sicherzustellen, dass sie alle erforderlichen Teile und Komponenten für die Wartung und Reparatur von Produkten haben und um die Verfügbarkeit von Ersatzteilen zu gewährleisten.

In einigen Fällen kann der S-BOM auch in der Regelung von Materialien für Recycling und Entsorgung verwendet werden, um sicherzustellen, dass Produkte am Ende ihres Lebenszyklus ordnungsgemäß entsorgt werden. Der S-BOM ist somit ein wichtiges Instrument für das Lifecycle-Management von Produkten, um sicherzustellen, dass sie effektiv und effizient verwaltet werden.

Welche Grundlagen müssen etabliert werden um Software durchgängig in der Produktentwicklung im Maschinenbau verwalten zu können.

Um Software durchgängig in der Produktentwicklung im Maschinenbau verwalten zu können, müssen verschiedene Grundlagen entwickelt werden. Hier sind einige wichtige Aspekte:

  1. Definition von Prozessen und Standards: Es ist wichtig, klare Prozesse und Standards für die Entwicklung, Verwaltung und Wartung von Software in der Produktentwicklung zu definieren. Diese Prozesse sollten die Anforderungen an die Software-Entwicklung, Test, Dokumentation, Versionskontrolle und Freigabe beschreiben.

  2. Auswahl geeigneter Tools: Es ist wichtig, geeignete Tools für die Verwaltung der Software-Entwicklung und -Tests auszuwählen. Dazu gehören z.B. Versionskontrollsysteme, Build-Tools, Test-Tools und Bug-Tracking-Systeme. Diese Tools sollten gut integriert sein und den gesamten Software-Lebenszyklus abdecken.

  3. Schulung der Mitarbeiter: Alle Mitarbeiter, die an der Software-Entwicklung und -Verwaltung beteiligt sind, müssen geschult werden, um sicherzustellen, dass sie die Prozesse und Tools verstehen und effektiv nutzen können.

  4. Integration von Software-Entwicklung in den Produktentwicklungsprozess: Software-Entwicklung sollte in den gesamten Produktentwicklungsprozess integriert werden. Dies umfasst z.B. die Definition von Anforderungen, die Zusammenarbeit mit anderen Abteilungen, die Integration von Software-Komponenten in das Produkt und die Test- und Freigabeprozesse.

  5. Dokumentation und Traceability: Eine gründliche Dokumentation ist entscheidend, um die Software-Entwicklung nachvollziehbar zu machen und um sicherzustellen, dass die Software den Anforderungen entspricht. Eine Traceability-Matrix kann helfen, die Verbindung zwischen den Anforderungen und der Software zu dokumentieren.

  6. Sicherheit: Die Sicherheit von Software-Komponenten in der Produktentwicklung ist ein wichtiger Aspekt. Es ist wichtig, sicherzustellen, dass alle Sicherheitsanforderungen und -richtlinien eingehalten werden, um das Risiko von Cyberangriffen und anderen Sicherheitsproblemen zu minimieren.

Diese Grundlagen sind entscheidend, um Software durchgängig in der Produktentwicklung im Maschinenbau zu verwalten und zu gewährleisten, dass die Softwarekomponenten den Anforderungen entsprechen und effektiv zum Gesamtprodukt beitragen.

Wie heißt der Fachbegriff für Softwareverwaltung in Produkt Lebenszyklus Management ?

Der Fachbegriff für die Softwareverwaltung im Produkt-Lebenszyklus-Management lautet „Software Lifecycle Management“ oder auch „Application Lifecycle Management“. Dies bezieht sich auf die Verwaltung und Steuerung des gesamten Lebenszyklus von Software-Produkten, einschließlich der Planung, Entwicklung, Bereitstellung, Wartung und Aktualisierung von Software-Komponenten. Dabei sollen Prozesse und Tools eingesetzt werden, um eine effektive und effiziente Verwaltung der Software-Entwicklung und -Wartung zu gewährleisten, die Qualität und Sicherheit der Software zu erhöhen sowie die Kosten und Risiken zu reduzieren.

Zusammanspiel zwischen E-BOM, M-BOM und SBOM in der Produktentwicklung

In der Produktentwicklung gibt es verschiedene Arten von BOMs (Bill of Materials), die jeweils unterschiedliche Aspekte des Produkts beschreiben. Hier ist eine Erklärung des Zusammenspiels zwischen E-BOM, M-BOM und SBOM:

  • E-BOM (Engineering-BOM): Die E-BOM ist eine BOM, die von den Ingenieuren erstellt wird und die Bauteile und Materialien beschreibt, die für die Konstruktion eines Produkts benötigt werden. Die E-BOM enthält normalerweise nur physische Komponenten und ist ein wichtiger Teil des Designprozesses.

  • M-BOM (Manufacturing-BOM): Die M-BOM ist eine BOM, die die Bauteile und Materialien beschreibt, die tatsächlich zur Herstellung eines Produkts verwendet werden. Die M-BOM enthält normalerweise zusätzliche Informationen wie Stücklisten, Arbeitspläne und Fertigungsinformationen, die für die Produktion benötigt werden.

  • SBOM (Software-BOM): Die SBOM ist eine BOM, die alle Komponenten und Abhängigkeiten von Softwareanwendungen oder Softwarepaketen beschreibt. Die SBOM ist ein wichtiger Bestandteil des Application Lifecycle Managements und wird verwendet, um die Sicherheit, Transparenz und Sichtbarkeit von Softwarekomponenten zu verbessern.

Das Zusammenspiel zwischen E-BOM, M-BOM und SBOM ist wichtig, um sicherzustellen, dass das Produkt vollständig und korrekt beschrieben wird. Die E-BOM beschreibt die physischen Komponenten, während die M-BOM beschreibt, welche Komponenten tatsächlich in der Produktion verwendet werden. Die SBOM beschreibt die Softwarekomponenten, die im Produkt enthalten sind, sowie deren Abhängigkeiten und Sicherheitsinformationen.

Die Verbindung zwischen diesen BOMs ist wichtig, um sicherzustellen, dass alle Komponenten des Produkts vollständig erfasst und korrekt dokumentiert sind. Zum Beispiel kann eine Änderung an der SBOM Auswirkungen auf die E-BOM oder M-BOM haben, und umgekehrt können Änderungen an der E-BOM oder M-BOM Auswirkungen auf die SBOM haben. Eine effektive Verwaltung und Synchronisierung der verschiedenen BOMs ist daher ein wichtiger Bestandteil der Produktentwicklung.

Wie verbindet man eine SBOM mit der Produktstruktur im Engineering ?

Um eine Verbindung zwischen einer SBOM (Software-Bill of Materials) und der Produktstruktur im Engineering herzustellen, müssen die folgenden Schritte durchgeführt werden:

  • Identifikation der Softwarekomponenten: Die Ingenieure müssen die Softwarekomponenten identifizieren, die für die Funktionalität des Produkts erforderlich sind. Dazu gehören z.B. Anwendungen, Treiber, Frameworks, Bibliotheken und Skripte.

  • Erstellung der SBOM: Die Ingenieure müssen eine SBOM erstellen, die alle identifizierten Softwarekomponenten, deren Abhängigkeiten und weitere Informationen wie Versionen und Lizenzinformationen enthält.

  • Integration in die E-BOM: Die SBOM muss in die E-BOM (Engineering-Bill of Materials) integriert werden, um eine vollständige Produktstruktur zu erstellen. Die Integration kann auf verschiedene Weise erfolgen, z.B. durch Verwendung von Software-Tools, die eine nahtlose Integration von SBOMs in E-BOMs ermöglichen.

  • Synchronisierung und Aktualisierung: Die SBOM und die E-BOM müssen synchronisiert und aktualisiert werden, um Änderungen an den Softwarekomponenten zu berücksichtigen. Wenn eine Änderung an einer Softwarekomponente vorgenommen wird, muss diese Änderung in beiden BOMs aktualisiert werden.

  • Verwaltung von Abhängigkeiten und Risiken: Die Verbindung zwischen SBOM und E-BOM ermöglicht es den Ingenieuren, Abhängigkeiten zwischen Software- und Hardwarekomponenten zu identifizieren und Risiken zu bewerten. Zum Beispiel können Änderungen an einer Softwarekomponente Auswirkungen auf andere Softwarekomponenten oder physische Komponenten haben.

Durch die Verbindung von SBOM und E-BOM können die Ingenieure eine vollständige Produktstruktur erstellen, die alle physischen und softwarebezogenen Komponenten enthält. Dies ermöglicht eine effektive Verwaltung des Produktlebenszyklus und eine verbesserte Sicherheit und Qualität des Produkts.

Was genau ist GIT und wo liegen die Unterschiede zwischen GITlab und GitHUB ?

GIT ist ein verteiltes Versionskontrollsystem, das von Linus Torvalds entwickelt wurde. Es ist ein Werkzeug, das Entwicklern ermöglicht, Änderungen an Quellcode-Dateien zu verfolgen und zu verwalten, indem es eine zentrale Codebasis auf einem Server und eine Kopie des Repositorys auf jedem Entwicklungscomputer speichert. Entwickler können Änderungen an der Codebasis vornehmen, indem sie ihre Änderungen im Repository speichern, so dass andere Entwickler diese Änderungen sehen, kommentieren und darauf aufbauen können.

GitLab und GitHub sind zwei verschiedene Hosting-Plattformen für GIT-Repositories, die ähnliche Funktionen bieten, aber einige Unterschiede aufweisen:

  1. GitLab: GitLab ist eine Open-Source-Plattform, die eine umfassende Suite von Tools für Software-Entwicklungs- und Projektmanagement-Aufgaben bietet. Es bietet Funktionen wie Issue-Tracking, CI/CD, Code-Reviews und mehr. GitLab kann als SaaS (Software-as-a-Service) oder als selbst gehostete Lösung bereitgestellt werden.

  2. GitHub: GitHub ist auch eine Hosting-Plattform für GIT-Repositories, die jedoch mehr auf die Community und das Teilen von Open-Source-Projekten ausgerichtet ist. GitHub bietet eine Vielzahl von Tools und Funktionen, einschließlich Issue-Tracking, Pull Requests, Code-Reviews und mehr. GitHub bietet auch die Möglichkeit, kostenpflichtige private Repositories zu erstellen.

Einige wichtige Unterschiede zwischen GitLab und GitHub sind:

  • Lizenzierung: GitLab ist eine Open-Source-Software und kann kostenlos selbst gehostet werden, während GitHub kostenpflichtig ist, wenn Sie private Repositories erstellen möchten.

  • Funktionalität: GitLab bietet eine umfassendere Suite von Tools und Funktionen, während GitHub mehr auf die Community und das Teilen von Open-Source-Projekten ausgerichtet ist.

  • Sicherheit: GitLab legt einen großen Schwerpunkt auf die Sicherheit und bietet eine Vielzahl von Funktionen, die die Sicherheit von Repositories und Entwicklungsprojekten verbessern, während GitHub in dieser Hinsicht weniger Funktionen bietet.

Letztendlich hängt die Wahl zwischen GitLab und GitHub von den spezifischen Bedürfnissen eines Entwicklers oder Unternehmens ab. Beide Plattformen bieten ähnliche Funktionen und Tools, aber GitLab bietet eine umfassendere Suite von Tools und Funktionen, während GitHub auf die Community und das Teilen von Open-Source-Projekten ausgerichtet ist.

Zusammenhang zwischen Continous Delivery von Software im Maschinenbau und dem After Sales Service

Continuous Delivery von Software im Maschinenbau bezieht sich auf den Prozess, bei dem Software kontinuierlich entwickelt, getestet und automatisch bereitgestellt wird. Dies geschieht in der Regel durch die Verwendung von automatisierten Tools und Technologien wie Continuous Integration, Continuous Deployment und Continuous Testing. Durch den Einsatz von Continuous Delivery wird es einfacher und schneller, Software-Updates und Verbesserungen an Maschinen durchzuführen.

Der After Sales Service im Maschinenbau bezieht sich auf die Dienstleistungen, die ein Unternehmen seinen Kunden nach dem Kauf einer Maschine anbietet. Dazu gehören Wartung, Reparatur und technischer Support, um sicherzustellen, dass die Maschine in einwandfreiem Zustand bleibt und effizient funktioniert. In einigen Fällen können auch Upgrades und Software-Updates angeboten werden, um sicherzustellen, dass die Maschine immer auf dem neuesten Stand ist.

Der Zusammenhang zwischen Continuous Delivery von Software und dem After Sales Service besteht darin, dass die kontinuierliche Bereitstellung von Software-Updates und Verbesserungen es Unternehmen ermöglicht, schnell auf Kundenfeedback und sich ändernde Geschäftsanforderungen zu reagieren. Dies kann dazu beitragen, die Effektivität und Effizienz von Maschinen zu verbessern, was wiederum den Bedarf an After-Sales-Dienstleistungen reduzieren kann.

Wenn eine Maschine beispielsweise über eine veraltete Softwareversion verfügt, die Fehler verursacht, kann die kontinuierliche Bereitstellung von Software-Updates dazu beitragen, diese Fehler schnell zu beheben und Ausfallzeiten zu reduzieren. Darüber hinaus können diese Updates dazu beitragen, die Leistung der Maschine zu verbessern und die Lebensdauer zu verlängern, was den Bedarf an Wartung und Reparatur verringert.

Insgesamt können Continuous Delivery von Software und After Sales Service im Maschinenbau dazu beitragen, die Kundenzufriedenheit zu verbessern, die Effizienz zu steigern und die Kosten im Zusammenhang mit Wartung und Reparatur zu senken.

Ein Beispiel für Continuous Delivery im IoT-Umfeld könnte die Entwicklung und Bereitstellung von Software-Updates für ein Smart-Home-System sein. Ein Smart-Home-System besteht aus mehreren vernetzten Geräten, wie beispielsweise intelligenten Thermostaten, Lichtschaltern oder Überwachungskameras, die über das Internet miteinander verbunden sind und von einem zentralen Steuerungssystem aus gesteuert werden können.

In diesem Szenario könnte ein Unternehmen, das ein Smart-Home-System anbietet, Continuous Delivery verwenden, um kontinuierlich Software-Updates bereitzustellen, die die Leistung und Funktionalität der Geräte verbessern. Durch die Verwendung von Continuous Delivery-Tools und -Technologien kann das Unternehmen Updates schnell entwickeln und automatisch an die betroffenen Geräte verteilen, ohne dass die Benutzer manuell eingreifen müssen.

Ein konkretes Beispiel könnte sein, dass das Unternehmen ein neues Feature für das Smart-Home-System entwickelt hat, das es dem Benutzer ermöglicht, den Energieverbrauch der vernetzten Geräte zu überwachen und zu steuern. Sobald das Feature getestet und freigegeben ist, kann es automatisch an alle mit dem System verbundenen Geräte verteilt werden.

Durch die Verwendung von Continuous Delivery kann das Unternehmen sicherstellen, dass seine Kunden immer Zugriff auf die neuesten Funktionen und Verbesserungen haben, ohne dass sie manuell nach Updates suchen oder warten müssen, bis sie verfügbar sind. Dies trägt zur Verbesserung der Benutzererfahrung bei und hilft dem Unternehmen, seine Kundenbindung zu stärken.

Mit welchen Open Source Software Applikationen kann man Softwareentwicklung und Continous Delivery umsetzen

Es gibt viele Open Source Software-Tools, die für die Softwareentwicklung und Continuous Delivery verwendet werden können. Hier sind einige Beispiele:

  1. Git: Eine verteilte Versionskontrollsoftware, die zur Verwaltung von Quellcode, Versionsverwaltung und Zusammenarbeit bei der Softwareentwicklung verwendet wird.

  2. Jenkins: Ein Open-Source-Continuous-Integration-Server, der verwendet wird, um Builds zu automatisieren, Tests auszuführen und Bereitstellungen zu automatisieren.

  3. Docker: Eine Containerisierungsplattform, die es Entwicklern ermöglicht, Anwendungen und ihre Abhängigkeiten in standardisierte Container zu packen, die leicht zwischen Entwicklungs-, Test- und Produktionsumgebungen verschoben werden können.

  4. Ansible: Ein Open-Source-Konfigurationsmanagement- und Automatisierungstool, das es ermöglicht, Software automatisch zu installieren, zu konfigurieren und zu verteilen.

  5. Kubernetes: Ein Open-Source-Container-Orchestrierungssystem, das für die automatische Bereitstellung, Skalierung und Verwaltung von Containeranwendungen in einer Clusterumgebung verwendet wird.

  6. Grafana: Ein Open-Source-Tools für Monitoring und Visualisierung von Metriken, die von verschiedenen Anwendungen und Diensten generiert werden.

  7. Prometheus: Ein Open-Source-System für Monitoring und Metriken-Sammlung, das speziell für Container- und Cloud-nativen Anwendungen entwickelt wurde.

Diese Tools können zusammen oder separat eingesetzt werden, um den Entwicklungsprozess und die Continuous Delivery von Software zu automatisieren und zu beschleunigen. Sie bieten Entwicklern eine Vielzahl von Funktionen, darunter Versionierungskontrolle, automatisiertes Testing, Konfigurationsmanagement, Containerisierung, Orchestrierung und Überwachung.

Berücksichtigen SIe wichtige Normen und Regulatorien bei der Softwareentwicklung im Lifecycle Management

Im Bereich der Softwareentwicklung im Medizin- und Luftfahrtsektor gibt es verschiedene Normen, die die Qualität, Sicherheit und Zuverlässigkeit von Software-Systemen sicherstellen sollen. Hier sind einige wichtige DIN-Normen in diesem Bereich:

  1. DIN EN ISO 13485: Diese Norm legt Anforderungen für das Qualitätsmanagementsystem von Unternehmen fest, die medizinische Geräte und Dienstleistungen bereitstellen. Sie bezieht sich speziell auf die Aspekte des Qualitätsmanagements, die für medizinische Geräte relevant sind, einschließlich Software.

  2. DIN EN 62304: Diese Norm legt die Anforderungen an die Softwareentwicklung und Wartung von medizinischen Geräten fest. Sie gibt Richtlinien für die Planung, Entwicklung, Validierung und Wartung von medizinischer Software vor.

  3. DIN EN 61508: Diese Norm legt die Anforderungen an die Sicherheit von elektrischen, elektronischen und programmierbaren elektronischen Systemen fest, die in sicherheitskritischen Anwendungen wie Luftfahrt und Kernkraftwerken eingesetzt werden.

  4. DO-178C: Diese Norm ist eine internationale Luftfahrtnorm, die die Anforderungen an die Softwareentwicklung und Verifikation von Avionik-Systemen festlegt. Sie legt die Anforderungen an den gesamten Software-Entwicklungsprozess fest, einschließlich Planung, Entwurf, Implementierung, Integration, Verifikation, Validierung und Wartung.

  5. DO-254: Diese Norm legt die Anforderungen an die Entwicklung und Verifikation von Hardware-Systemen fest, die in der Luftfahrt eingesetzt werden. Sie legt die Anforderungen an den gesamten Hardware-Entwicklungsprozess fest, einschließlich Planung, Entwurf, Implementierung, Integration, Verifikation, Validierung und Wartung.

Diese Normen sind wichtige Instrumente, um die Sicherheit und Qualität von Software-Systemen in sicherheitskritischen Bereichen zu gewährleisten. Sie helfen dabei, Entwicklungsprozesse zu standardisieren und zu dokumentieren, um sicherzustellen, dass die Software ordnungsgemäß entwickelt, validiert und verifiziert wurde.