Software-Design für gute Codequalität, Teil 1

Embedded Code erfordert hohe Sorgfalt

Seite: 2/2

Firmen zum Thema

Das Code-Archiv nicht außer Acht lassen

Weiterhin ist noch ein anderer wichtiger Punkt zu beachten: Im Laufe jedes Projekts entsteht ein Archiv mit Code, Designs und Wissen. Dieses Archiv sollte am Ende des Projekts nicht außer Acht gelassen werden, da es darüber hinaus von Wert sein könnte.

Softwareentwickler generieren viel Wissen zu bestimmten Technologien und Strukturen, das auch für zukünftige Projekte nützlich sein kann. Bewährter Code ist eine Erweiterung dieses Wissens, wobei der Code (womöglich innerhalb eines Systems) bereits im Feld validiert wurde und für spätere Arbeiten nutzbar ist. Der Einsatz von bewährtem Code ist eine attraktive Option für Entwicklungsprojekte, da er frühere Investitionen in Softwareentwicklung nutzt. Hier lässt sich Zeit und Geld sparen, die Qualität verbessern und Mehrwert erzeugen. Um maximalen Mehrwert zu erzielen, sollte jedoch bewährte Software und die Art ihres Einsatzes sorgfältig ausgewählt werden.

Beim Import von bewährtem Code – entweder aus einem früheren Archiv innerhalb der Firma oder als COTS von externen Anbietern ist am wichtigsten, dass sich der Code nicht nur für die Anwendung eignet, sondern auch geltende Richtlinien erfüllt. Material wieder zu verwenden ist zwar verlockend, doch die Auswirkungen eines solchen Einsatzes in einer neuen Umgebung sollten stets evaluiert werden. Auch wenn sich für bewährten Code ein bestimmter Qualitätsstandard belegen lässt, so kann kein Code 100-prozentige Fehlerfreiheit garantieren.

Realistischerweise sollte man akzeptieren, dass jeder Code Fehler enthält und daher in einer neuen Umgebung Tests durchlaufen muss. Dies kann eine Herausforderung sein, insbesondere wenn der Quellcode nicht immer verfügbar ist, doch es ist nicht unmöglich. Es kommt darauf an, welche Testabdeckung sich erreichen lässt, und ob diese akzeptabel ist. In jedem Fall sollten seine Vor- und Nachteile untersucht werden. Kommt jedoch bewährte Software zum Einsatz, so kann ein sonst kaum tragfähiges Geschäftsszenario realisierbar werden.

Open-Source-Code vs. validiertem Code

Als Unterstützung beim Start eines Projektes oder um wichtige Funktionen wie Hardware-Schnittstellen und Betriebssysteme bereitzustellen, nutzen Ingenieure oft Open-Source-Code oder lizenzgebührenfreien Code aus anderen Quellen wie etwa von Halbleiterherstellern. Dabei ist stets zu berücksichtigen, dass dieser Code nicht unbedingt schon validiert wurde. Der Unterschied zwischen validiertem und nicht-validiertem Code ist die Evidenzbasis. Code ohne nachgewiesene Validierung kann für ein Projekt immer noch nützlich sein, erfordert jedoch eine Qualitätsbewertung und bei seinem Einsatz ist Vorsicht geboten.

Bei der Nutzung von offenem Quellcode können die Größe der Community, die diesen Code nutzt, und der Umfang der seitens der Community gebotenen Wartung und Unterstützung als Indikator für die Qualität des Codes dienen. Weiterhin ist zu überlegen, ob das unternehmensinterne Wissen durch die Erstellung eines neuen Codes erweitert werden soll, anstatt Code wieder zu verwenden oder extern zu beschaffen. Neuer Code, den Entwickler selbst validieren können, bietet langfristig womöglich einen größeren Mehrwert. Auch diese Entscheidung muss mit der eigenen Geschäftsstrategie im Einklang stehen.

Wenn die Implementation einer Lösung für eine bestimmte Problemstellung komplex ist und die Expertise des internen Teams überschreitet, oder wenn die Herausforderung Spezialwissen außerhalb des Schwerpunkts der eigenen Geschäftstätigkeit erfordert, dann könnte die Beschaffung von validiertem Code aus externen Quellen wirtschaftlicher sein. Würde andererseits die Entwicklungsarbeit den internen Erfahrungsschatz des Unternehmens erhöhen oder gäbe es die Möglichkeit zur Nutzung des Codes für weitere Projekte, dann wäre die Erstellung eines neuen Codes wirtschaftlich vertretbar.

Letzterer Fall würde zwar eine größere Anfangsinvestition erfordern, auf lange Sicht jedoch einen größeren Mehrwert bieten. Für einen Wirtschaftlichkeitsnachweis muss ermittelt werden, wo Wert geschaffen und sichergestellt wird, damit sich der erzeugte Wert erfassen und kommunizieren lässt.

Bildergalerie

Renesas hat das „Make-or-Buy“-Dilemma erkannt, vor dem Unternehmen am Beginn einer jeden Produktentwicklung stehen, und stellt validierte Software zum Einsatz auf Renesas Synergy™ Komponenten bereit. Die validierte Software umfasst Code für Hardware-Treiber, Betriebssystem und Security-Funktionen. Diese Software-Bereiche sind überall in der Entwicklung von elektronischen Produkten zu finden und adressieren beispielsweise keine spezifischen Produkt-Funktionen. Durch den Einsatz dieses Codes gewinnen Entwickler die Freiheit, sich ganz auf ihr Produkt und die Anwendungsbereiche des Systems zu konzentrieren. Dies entlastet Unternehmen außerdem von den Gesamtbetriebskosten dieser Software.

Für die Software-Komponenten bietet Renesas umfassende Gewährleistung, die zu denen der Hardware-Komponenten passt, und liefert bei Bedarf auch Software-Updates. Senkungen der Betriebskosten und Einsparungen beim Entwicklungsaufwand setzen wertvolle Kapazitäten frei. So können sich Entwickler auf die Erstellung von Software für den Kernbereich ihres Geschäfts konzentrieren und größeren Mehrwert erzielen.

Der Schlüssel zur Sicherstellung dieses Wertes heißt Testen. Tests beweisen die korrekte Implementierung validierter Software und machen eine Validierung der neu verfassten Software möglich.

Unabhängig vom gewählten Design, der genutzten Architektur oder Programmiersprache ist ohne die Einhaltung guter Codierungsrichtlinien alles vergeblich. Codierung als Disziplin unterscheidet sich von der Architekturerstellung und Entwicklung. Oft sind daran unterschiedliche Entwickler beteiligt. Codierungsstandards und -Richtlinien sind daher besonders wichtig.

Die Klarheit des Codes lässt sich mit einer sorgfältigen Benennung der Daten verbessern. Durch gut benannte Daten und verständliche Erklärungen, warum der Codierer die Software auf eine bestimmte Weise geschrieben hat, lassen sich später bei der Überprüfung und Wartung des Codes viele Arbeitsstunden einsparen. Darüber hinaus ermöglicht die Bereitstellung von ausreichend Debugging- und Testpunkten im Code erhebliche Zeiteinsparungen – ebenso wie eine stringente Verwaltung unterschiedlicher Code-Versionen.

Eine zielgerichtete Architektur und eine robuste, mit prüfbarem, konsistentem und kontrolliertem Code implementierte Schnittstelle helfen dem Entwickler, offenkundig korrekte und wartbare Software zu erstellen. In diesem Teil wurde speziell der Aspekt des Software-Designs betrachtet.

Dieser Beitrag stammt ursprünglich von unserem Schwesterportal Elektronikpraxis.de.

* Dr. Val Lynch ist CEO bei AND Technology Research.

* Steve Norman ist Manager Global Ecosystems bei Renesas Electronics Europe.

(ID:45017144)