Siemens ist eines der größten Software-Häuser der Welt. Etwa 30 000 Forscher und Entwickler arbeiten an den Progammen der Zukunft: Software wird künftig allgegenwärtig sein, stark vernetzt und benutzerfreundlich und sie wird sich teilweise sogar selbst optimieren können.
Von der Formel zur Praxis: Obwohl Software nur aus nackten Codezeilen besteht, kann sie mit Hilfe mathematischer Formeln (links), einer intelligent konzipierten Software-Architektur (Boden) und leistungsfähigen Rechnern ganze Fabriken steuern (im Hintergrund ein Transportsystem aus der Autobranche)
Im Grunde steckt in allem ein Programm: Im Gehirn, wenn es Töne oder Bilder interpretiert. In Pflanzenzellen, wenn sie das Sonnenlicht in chemische Energie umsetzen. Im Embryo, wenn sich die Gestalt eines neuen Lebewesens bildet. In dieser biologischen Welt ist es nicht viel anders als in der technischen: Hier beschreiben ein paar Zeilen Code in der DNS den Bauplan einer Fruchtfliege, dort sorgen Programmzeilen dafür, dass ein Handy beim Einschalten "Willkommen" sagt.
Jahrzehnte nach der Einführung von Computern staunen Laien immer noch darüber, dass sich die physische Welt einfach dadurch verändern lässt, dass man Code schreibt oder bearbeitet letztlich sind es nur Abfolgen von Einsen und Nullen, aus denen ein Programm besteht. In Verbindung mit einem Betriebssystem das wie ein Verkehrspolizist zwischen den Befehlen des Anwenders und der Zuteilung der physischen Ressourcen wie Speicherplatz und Energie vermittelt können Programme eine fast unendliche Vielfalt an Funktionen ausführen. "Tatsächlich wird die Funktionsweise unserer Produkte in zunehmendem Maße durch die Software bestimmt, die wir entwickeln", sagt Reinhold Achatz. Er leitet sowohl die Abteilung Software & Engineering bei Siemens Corporate Technology (CT) wie auch die Siemens-übergreifende Software-Initiative, die die Wettbewerbsfähigkeit des Unternehmens steigern soll. Zwei Zahlen belegen Achatz- Einschätzung: Siemens investiert pro Jahr mehr als 3 Mrd. - in die Software-Entwicklung, und etwa 30 000 Mitarbeiter - ungefähr so viele wie bei Microsoft - arbeiten an den Programmen von morgen.
Rechenleistung immer billiger. Noch vor wenigen Jahren war es meist die Hardware, die über die Leistungsfähigkeit von Produkten entschied, heute ist Software der Innovationsmotor. Warum? Der wichtigste Treiber ist der enorme Kostenverfall bei der Rechnerleistung. 1976 kostete ein Cray-Computer, der 100 Millionen Gleitkommaoperationen pro Sekunde ausführen konnte, etwa 13 Mio. Heute steckt die gleiche Leistung unter der Motorhaube eines Durchschnittsautos, und die Kosten betragen nur noch 13 . Noch vor zehn Jahren kostete 1 Mbit (eine Million Bit) Speicherplatz 3,26 US-$. 2003 war der Preis auf etwa 0,02 US-$ gefallen.
Deswegen verfügen Geräte wie Mobiltelefone, Infotainment-Systeme im Auto oder Set-top-Boxen auf dem Fernseher heute über genügend Rechnerleistung, um ein Betriebssystem und ein ganzes Spektrum an Anwendungssoftware zu beherbergen. Software steckt bereits verborgen in sehr vielen Produkten. Diese so genannte eingebettete (embedded) Software macht einen Großteil des weltweiten Softwaremarktes aus, der jährlich etwa 185 Mrd. US-$ umfasst. "Manche Embedded-Systeme verwenden Controller, die so leistungsfähig sind wie ein PC. Dadurch können sie immer mehr Signale verarbeiten und immer komplexere Aufgaben bewältigen", erläutert Dr. Lothar Borrmann, Leiter der CT-Abteilung für Softwarearchitektur.
Handy auf Besichtigungstour: Mit elektronischen Markierungen könnten Informationen zu Sehenswürdigkeiten abgerufen werden
Dr. Ulrich Löwen, Leiter der Abteilung Systems Engineering bei CT, ergänzt: "Software steckt mittlerweile selbst in ganz kleinen Komponenten, etwa in einzelnen Bauteilen eines Motors. Das macht das Gesamtsystem natürlich sehr komplex, aber auch exakter in seiner Funktion." Nirgendwo tritt dieser Trend offenkundiger zu Tage als in der Automobilindustrie, wo Software für mehr Komfort, Benutzerfreundlichkeit und Sicherheit sorgt, ohne zusätzliches Gewicht zu bedeuten. "In Automobilen der Premiumklasse finden sich heute bis zu 70 elektronische Steuereinheiten, die vom Motormanagement bis zu den Bremsen alles per Software steuern", sagt Hans-Georg Frischkorn, Leiter der Systemarchitektur und Integration bei BMW (siehe auch Beitrag Software-Standards). In naher Zukunft werden diese Embedded-Systeme immer stärker vernetzt sein. "So wird z.B. das Navigationssystem wissen, dass nach der nächsten Kurve eine Steigung kommt, und Motor und Bremsen entsprechend vorbereiten", erklärt Borrmann
Wo die Software zunehmend sicherheitsrelevante Funktionen übernimmt, werden ihre Qualität und die entsprechenden Testprozeduren immer wichtiger. Für den Bereich Energieverteilung hat die CT-Abteilung Software Development Techniques etwa eine Software entwickelt, die simulieren kann, ob die Zeitspanne, die man benötigt, um einen gefährlichen Kurzschluss zu entdecken, zu analysieren und die Informationen an den nächst höheren Knoten im Netzwerk der Schutzeinrichtungen weiterzugeben, zur Eindämmung des Problems ausreicht. Damit könne eine mögliche Kettenreaktion bis hin zum Stromausfall vermieden werden, erklärt Abteilungsleiter Klaus Beetz. Software wird für sicherheitsrelevante Bereiche aber nicht nur für den Informationsaustausch im Netzwerk und damit für die Verringerung akuter Risiken entwickelt. Sie spielt auch zusehends bei der Archivierung von Daten, der Fehlerdiagnose und der Verbesserung der Systemeffizienz eine wichtige Rolle. "Das ist deshalb wichtig", meint Beetz, "weil in den Systemen immer mehr Dinge gleichzeitig passieren." Zum Beispiel laufen auf den neuesten bildgebenden Systemen in der Medizin mehr als 60 verschiedene Programme gleichzeitig.
Auf den Spuren der Ameisen. Angesichts der explosionsartigen Vermehrung von Systemen, die nahezu in Echtzeit miteinander kommunizieren, ist eines der heißesten Themen der Software-Forschung die Optimierung der Pfade, auf denen sich Signale oder auch reale Objekte bewegen. "Die uralte Frage, was die kürzeste Route zwischen einer Anzahl von Knoten in einem Netzwerk ist, hat heute eine enorme wirtschaftliche Bedeutung", sagt Dr. Johannes Nierwetberg, Leiter der CT-Abteilung für Software-Optimierung. Der Physiker Nierwetberg erklärt, dass die Antwort in "digitalen Pheromonen" liegen könnte: Dieses Konzept beruht auf den chemischen Duftspuren, die Ameisen hinterlassen, um den kürzesten Weg zu einer Nahrungsquelle zu finden. Es kann z.B. für Bestückungsautomaten in der Industrie eingesetzt werden. Hierfür wurden kleine Softwareprogramme entwickelt, die die Entscheidungsfindung der Ameisen anhand ihrer "Pheromon-Pfade" nachahmen. In ihrem Zusammenwirken ermitteln die Programme den bestmöglichen Pfad, den der Bestückkopf mit seinen zwölf Segmenten nehmen muss, um einzelne Bauelemente zu greifen und auf Leiterplatten zu platzieren. "Die Frage lautet: Welche Bauelemente müssen in welcher Reihenfolge platziert werden, um den Gesamtdurchsatz zu optimieren?" erklärt Nierwetberg. "Eine Verbesserung um ein paar Prozentpunkte kann bereits einen erheblichen Produktivitätsunterschied bedeuten, denn unter den besten Bedingungen kann die Maschine bis zu 60 000 Bauelemente pro Stunde platzieren." Die Technologie könnte ganz analog aber auch Roboterbewegungen in Lagerhallen effizienter machen oder die Frage beantworten, wo man am besten eine Pizza bestellen sollte.
Die enorme und stetig wachsende Nachfrage nach Software (Fakten und Prognosen) motiviert die Forscher auch, nach neuen Methoden zu suchen, mit denen die Softwareentwicklung beschleunigt werden kann. Dazu gehören die Standardisierung von Software und Verfahren der Prozessverbesserung (Beitrag Software-Qualität), aber eine der effektivsten Möglichkeiten ist sicherlich die Modularisierung: Dabei werden einzelne Softwaremodule für sich optimiert und mit standardisierten Schnittstellen ausgestattet. Danach können sie fast so einfach wie Legosteine und mit ebenso wenig Fehlermöglichkeiten zu Programmen zusammengesetzt werden. In diese Richtung zielt auch die aspektorientierte Programmierung, ein viel versprechendes neues Konzept, das den Entwicklern den Einbau so genannter Join Points in die Software erlaubt, mit denen zukünftige Module an das Programm angedockt werden können.
Softwarearchitekt Borrmann hält es darüber hinaus für möglich, dass die Modularisierung der erste Schritt in Richtung einer selbstschreibenden Software sein könnte. "Einige Studien, die derzeit in Zusammenarbeit mit der Vanderbilt University in Nashville, Tennessee, durchgeführt werden, zeigen z.B., dass im Prinzip die für ein Programm benötigten Module auch von einem Software-Tool, einem so genannten model interpreter, identifiziert, lokalisiert und zu einem funktionsfähigen System verbunden werden können", sagt Borrmann. "Wenn wir das zum Laufen bringen können, würde es natürlich die Entwicklungszeit von Softwaresystemen deutlich verkürzen."
Mit diesem Ziel arbeiten die Forscher in Borrmanns Abteilung in München, an der Vanderbilt University und bei PSE, dem bereichsunabhängigen Softwarehaus von Siemens, an der so genannten modellgetriebenen Software (Beitrag Programmerstellung und Kasten links). Geplant ist, die Entwicklungszeit für Software radikal zu verkürzen, indem man Programme einfach als formale Modelle entwirft. Ein spezielles Programm übersetzt diese Modelle in Code. Siegfried Zopf, Experte für Methodik und Qualitätsmanagement in der SoftwareEntwicklung bei PSE, erklärt: "Wir bewegen uns definitiv auf eine schnellere, effizientere Entwicklung zu und zwar mit Hilfe der modellgetriebenen Software-Entwicklung."
Objektorientierte Programmierung (OOP): Programme und Daten bilden eine Einheit (Objekte), die über Schnittstellen mit ihrer Außenwelt kommuniziert. Die Schnittstellen definieren das Verhalten der Objekte untereinander, wobei das Innenleben der Objekte gekapselt bleibt. Objekte sind so allgemein definiert, dass sie in unterschiedlichen Zusammenhängen Verwendung finden. Eine Analogie ist das Auto: Teile lassen sich in verschiedenen Modellen verwenden, es bleibt aber immer ein funktionsfähiges Auto.
Aspektorientierte Programmierung (AOP): Stellt Mittel bereit, mit denen sich bestimmte Programmteile (Aspekt-Code) mehrfach verwenden lassen. Beispiel: Sicherheitsfunktionen für die Kontoabfrage werden auch bei einer Online-Überweisung aktiv.
Model Driven Development (MDD): Basiert auf grafischen Modellierungssprachen, die reale Aufgaben sowie die Abläufe im zu entwickelnden System "zeichnen". Die Entwicklungswerkzeuge erzeugen dann daraus automatisch Codegerüste, die durch manuelle Programmierung noch auf den jeweiligen Einsatzfall zugeschnitten werden.
Programmiersprachen: Es gibt maschinennahe (Assembler) und höhere Sprachen (ADA, Cobol, Fortran, Pascal, PL/1, C) sowie objektorientierte Sprachen wie C++, Java, Delphi oder Smalltalk. Eine wichtige Rolle spielen auch anwendungsspezifische Sprachen sowie Script-, Modellierungs- und Seitenbeschreibungssprachen. Zudem bieten Hersteller eigene Werkzeug- und Methodensammlungen (Frameworks) an.
Andreas Beuthner
Unsichtbar, aber allgegenwärtig. Siemens-Forscher haben bereits in Zusammenarbeit mit Tecnomatix, einem israelischen Spezialisten für die Simulation industrieller Prozesse, eine Technologie entwickelt, die nur aus Beschreibungen von Autobauteilen und Produktionssimulationen Programmcode erzeugt. "Zugegeben ein Spezialbereich. Aber ich gehe davon aus, dass diese Lösung auf weitere Industriesegmente ausgeweitet wird", sagt Reinhold Achatz.
Software ist ohne Zweifel die unsichtbarste Technologie von allen. Dennoch werden die Trends, die die Software-Entwicklung und deren Anwendungen bestimmen, tief greifende Auswirkungen auf unser Leben haben. "Die Software, die unsere Welt in den kommenden Jahren steuern wird, wird allgegenwärtig sein, vernetzt, selbstoptimierend und von unseren Bedürfnissen bestimmt", ist Achatz überzeugt. Genau wie in der Natur wird in allen Bereichen des Lebens hinter allem ein genau angepasstes Programm stecken.
Arthur F. Pease
Wie eine elektronische Markierung funktioniert eine Technik von Forschern der Siemens Corporate Technology in München. Sie haben eine Software-Plattform und den passenden Prototypen eines Handys entwickelt, mit dem man praktisch überall Nachrichten hinterlassen kann. Anders als bei einer SMS klingelt das Telefon des Empfängers der Nachricht nur dort, wo es sinnvoll ist, nämlich in der Nähe der platzierten Botschaft. Das so genannte Digital Graffiti kann z.B. vom Instandhaltungspersonal auf Flughäfen eingesetzt werden, um die Lage von Schlaglöchern auf Start- und Landebahnen zu markieren. Der Mitarbeiter hält einfach sein Handy über die beschädigte Stelle und drückt eine Taste (Bild links). Mit Hilfe einer verfeinerten GPS-Positionsbestimmung sendet das Handy eine geographisch abgestempelte Nachricht mit einer Ortsgenauigkeit bis 30 cm an einen Server. Wenn der Empfänger einer Nachricht hier ein Reparaturmitarbeiter zum Schlagloch kommt, schickt der Server die Botschaft auf sein Handy. Die Auslöse-Entfernung kann eingestellt werden und auch mehr als 1 km betragen. Wird die Kamera des Mobiltelefons über den Asphalt geschwenkt, so erscheinen auf dem Display Pfeile, die das Schlagloch anzeigen. Laut Projektleiter Dieter Kolb könnte man damit aber auch an Info-Points am Flughafen persönliche Nachrichten für bestimmte Empfänger hinterlassen, oder das System könnte als Wegweiser und elektronischer Führer für Touristen und Museumsbesucher dienen (Bild oben). "Letztlich wird der Anwender sein Telefon fragen können, wo die Renoir-Gemälde hängen und sich von dem Gerät den Weg weisen lassen. Wenn er dann sein Handy auf ein bestimmtes Bild richtet, bekommt er dort weitere Hintergrundnformationen angezeigt", erklärt Kolb.