Der Markt befindet sich in Aufruhr: Nachdem IBM den Mittelstand schon längst als lohnenswertes Geschäftssegment entdeckt hat, starten nun auch SAP & Co. gezielte KMU-Offensiven. Was aber bleibt den kleinen, auf Branchen(nischen) spezialisierten Anbietern zu tun? Wer sich nicht kleinlaut „SAPisieren“ will, muss Mehrwert bieten: mehr Service, mehr Kundennähe, mehr Branchen Know-how. Langjährig gewachsene Prozesse allein reichen aber kaum mehr, mit Green Screens ist in der e-Welt kein Staat mehr zu machen. Modernes Outfit und Zusatzfunktionalitäten sind gefragt. Entwicklungs- und Modernisierungswerkzeuge helfen beim (Re)Design. Gute Software-Entwickler sind am Arbeitsmarkt nach wie vor gefragt – auch wenn die IT-Branche in Sachen Human Resources eher kränkelt. Der Traumjob Software-Designer ist aber Knochenarbeit: Die Teams schrumpfen, die Komplexität der Anforderungen steigt, Zeitdruck ist allgegenwärtig. Entwicklers Augen sind überall und auf Integration bedacht, die Ohren stetig am Markt: Wo entwickeln sich neue Trends? Welche Technik ist die richtige? Gibt es nahende Killer-Applikationen? Reine Handarbeit ist bei Programmierern selten geworden, was von Werkzeugen erledigt werden kann, wird automatisiert designt.

Auch viele AS/400-CASE-Tools (Computer-Aided Software Engineering) haben sich inzwischen zum modernen Software-Entwicklungswerkzeug für die gängigen Zielplattformen entwickelt. Sie generieren Anwendungen mit grafischer Oberfläche für iSeries-Server ebenso wie für das UNIX-, Linux- und Windows-Serverumfeld. Auch für das e-Business können Applikationen entwickelt werden, ohne dass Kenntnisse über HTML (Hypertext Markup Language), Java oder JSP/ASP nötig sind.

Werkzeuge

Der Markt hält eine Fülle an Application Development Tools bereit, mit denen sich Unternehmenssoftware, Web-Lösungen, Anwendungen für den mobilen oder sprachgestützten Zugang u. v. m. entwickeln lassen. IBM, Borland, CA und Magic: Die Liste der Anbieter ist lang, die Produktvielfalt groß. Potenzielle Käufer berichten von deutlich unterschiedlicher Funktionalität, eine genaue Evaluierung lohnt. Wer unterschiedliche Applikationen designen und Integrationsprobleme vermeiden will, ist mit einer Software-Entwicklungsumgebung gut bedient. Sie ist quasi Rahmen der einzelnen Entwicklungstools, deren Ergebnisse später problemlos interagieren.

Funktionale IDEs

IDEs (Integrated Development Environment) sind „Alleskönner“: Sie vereinen sämtliche notwendigen Bestandteile wie Code Editor, Compiler oder Debugger unter einer einheitlichen Oberfläche. Sie gelten zudem als benutzerfreundliche Frameworks für viele moderne Programmiersprachen. Besonders häufig kommen die Tool-Rahmen für die Generierung von HTML-Code zum Einsatz, Microsoft’s FrontPage oder auch der Netscape Composer sind beliebte Lösungen zur Programmierung von Websites, auch ohne HTML-Kenntnisse.

Mit einem Editor lassen sich Datenformen auf relativ simple Art bearbeiten, vorhandene Texte, Grafiken etc. laden und speichern. Compiler sind für das Auslesen von Quellcode und die „Übersetzung“ in ein lauffähiges Programm verantwortlich. Ein Linker fasst die als Einzelmodule vorliegenden Quelldateien zu einem brauchbaren Programm zusammen, das dann zur Qualitätskontrolle durch einen Debugger läuft.

Effektives Software-Engineering sorgt für Sicherheit in verteilten Systemen. Die automatische Generierung von Testfällen erleichtert umfangreiche Funktionschecks, die jedes neue Softwaresystem vor der Implementierung durchlaufen muss. Sicherheitslücken können via automatische Prüfung aufgedeckt werden. Die Wiederverwendung von Software-Bausteinen und klare Vererbungsstrukturen sorgen für Effizienz und gemäßigte Handarbeit. Zeit ist Geld – auch und gerade in der IT.

Web Services

Der Wunsch nach unternehmensübergreifender Kommunikation und der Interoperabilität von Applikationen hat Web Services (WS) auf den Plan gebracht: Software-Stückchen, die sich selbst via Internet verfügbar machen. Laut IDC haben Web Services schon bald Hochkonjunktur: Zunächst sollen die Software-Anbieter von dieser Entwicklung profitieren, dann die Hardware-Lieferanten und am Ende die Professional Services-Spezialisten. Die Jahre 2007, 2009 und 2011 seien die jeweiligen Höhepunkte für die verschiedenen Branchen, IDCs Senior Vice President Anthony Picardi adressiert sie gesamt: „Für Anbieter in jedem dieser Segmente ist es wichtig, die aktuellen Markttrends und Planzahlen zu kennen, um die richtigen Schritte einzuleiten und damit auch zukünftig erfolgreich zu sein.“ Ende 2002 hatten bereits 5 Prozent aller amerikanischen Firmen ein Web-Services-Projekt abgeschlossen; bis 2008 sollen sich 80 Prozent in mindestens einem solchen Projekt engagiert haben. Besonders schnell werden sich WS laut IDC in den großen Unternehmen der Manufacturing- und Dienstleistungsindustrie durchsetzen.

Komponenten-Recycling

Auch Software ist eine Ressource, die sich recyceln lässt. Theoretisch können einmal entwickelte Steuerungsprogramme zumindest in Teilen wiederverwertet werden. Praktisch scheiterte das Recycling bisher an der Komplexität der Programme. Die Lösung liefern soll ein Software-Entwicklungsbaukasten, den die Fraunhofer-Gesellschaft während der CeBIT präsentierte. Ein Legoroboter drehte hier seine Kreise und sammelte leise brummend Kugeln ein. „Wir zeigen hier, dass Programm-Komponenten, die in sich abgeschlossen sind, immer wieder neu zusammengesetzt werden können“, erklärte Dr. Christian Bunse vom Fraunhofer-Institut für Experimentelles Software Engineering IESE. Der Forscher verschiebt auf dem Bildschirm ein Ikon, das einen Software-Baustein symbolisier, und schon folgt der Lego-Roboter einem neuen Verhaltensmuster: Anstatt stupide im Kreis herumzufahren und einzusammeln, was im Wege liegt, orientiert er sich nun selbstständig, registriert die Positionen der Kugeln, steuert sie an und sammelt sie auf. „Durch Verschieben eines Bausteins ändert sich das Steuersystem und damit das Verhalten des Roboters“, so Bunse. „Die komponentenbasierte Programmierung erlaubt es, Teilsysteme, die einmal entwickelt wurden, aus dem Kontext herauszulösen und in neue Anwendungen zu integrieren.“

Glaskugelschau

„Das eigentlich Neue an der KobrA-Methode ist ein sehr detailliertes Modell, das der Programmierung zugrunde liegt, und das künftige Schnittstellen von vorneherein festlegt“, sagt Bunse. Interessant ist die Baukasten-Software vor allem für Anwender, die Produkte entwickeln, die schnell an die unterschiedlichen Bedürfnisse der Kunden angepasst werden müssen: Abrechnungssysteme beispielsweise, die in verschiedenen europäischen Ländern die jeweils gängigen Kredit- und Bankkarten akzeptieren müssen, oder Automotoren, die sich nur in wenigen Details vom Vorgängermodell unterscheiden. Die ersten praktischen Erfahrungen mit der neuen Software-Architektur seien ermutigend, berichtet der Fraunhofer-Forscher: Die Umstellung könne schrittweise erfolgen: „Man kann damit anfangen, für die vorhandene Software ein UML-Modell – die Abkürzung steht für Unified Modelling Language – zu entwickeln und dann im Laufe der Zeit immer neue Anwendungstechnologien hinzufügen, bis schließlich eine vollständige komponentenbasierte Produktlinie erreicht ist.“

Entscheidungshilfe

Das Design einer neuer Software ist eine komplexe Aufgabe. Heute gilt es, eine Fülle an Plattformen, neuer Entwicklungsstandards und -technologien abzuwägen. J2EE, Web Services, .NET und komponentenbasierte Entwicklungstechnologien erfordern Lösungen, mit denen Unternehmen ihre Anwendungen vereinheitlichen und integrieren können. Die Schnelligkeit der Tools darf der Qualität der generierten Anwendungen keinen Abbruch tun. Was bleibt, ist die Qual der Wahl. Erleichterung soll unsere Marktübersicht verschaffen.