Mehr als Design

Die Geschichte der Softwarearchitektur ist eine Geschichte voller Missverständnisse.

Jeder, der in Softwareprojekten tätig ist, verwendet mehr oder weniger oft den Begriff „Softwarearchitektur“. Leider zeigt die Erfahrung, dass hierbei eigentlich Technologien, allgemeine Vorgehensweisen, Softwarefunktionalitäten- und Module gemeint sind. Dokumentierte Software- und Systemarchitekturen findet man in den wenigsten Fällen vor. Vor allem, wenn es sich um „gewachsene“ Systeme handelt.

Zugegeben, in der Vergangenheit (etwa in den 1980er) war dies vielleicht auch nicht so von Nöten, da die damalige IT noch sehr überschaubar war. Die Diskussion, wo jetzt eine Komponente zur Kundenverwaltung angesiedelt wird stellte sich nicht. Heterogene IT-Landschaften waren die Ausnahme. Die Menschen bauten ja auch Lehmhütten ohne einen Plan zu haben.

Je komplexer IT-Systeme werden, desto wichtiger ist es, deren Architektur festzulegen. Hierbei ist eben so wichtig, dass die Umgebung betrachtet wird. Niemand würde auf die Idee kommen ein 200 Meter hohes Gebäude ohne genau ausgearbeitete Pläne zu bauen, nur weil er ein begnadeter Maurer ist, einen Kran beherrscht und weiß, dass man mehrere Stockwerke braucht.

Warum eigentlich Komplexität?

Die Prozesse in den Unternehmen werden zunehmend komplexer. Gleichzeitig müssen die Prozesse effektiver und schneller abgearbeitet werden. Dies bedingt, dass die Komplexität vom Schreibtisch der Mitarbeiter in die Intelligenz der IT verlagert wird.

Technologien, Vorgehensmodelle, Tools

Dies ist sicherlich alles wichtig, um erfolgreich ein IT System zu realisieren.

Technologien wie etwa Java, J2EE, .NET, Oracle PL/SQL stellen die Grundlage der Softwareentwicklung dar. Hochentwickelte Frameworks wie J2EE, .NET, ADF erleichtern dem Entwickler die Arbeit und entlasten ihn von Routinearbeiten.

Es gibt verschiedene Vorgehensmodelle, wie ein Projekt durchgeführt werden kann. Klassische Ansätze wie das V-Modell, das Wasserfall-Modell, RUP, MSF3 oder unternehmensspezifische Vorgehensmodelle werden zunehmend durch agile Vorgehensweisen wie eXtremeProgramming, TestDrivenDevelopment, MSF4 abgelöst. Jedes dieser Vorgehensmodelle hat spezifische Vor- und Nachteile. Das ideale Vorgehen hängt vom Projekt und letztendlich vom Kunden ab. Gibt es eine festgelegte Vorgehensweise, die auch gelebt wird, erhöht dies die Wahrscheinlichkeit auf ein erfolgreiches Projekt ungemein.

Unterschiedliche Technologien erfordern unterschiedliche Werkzeuge. Werkzeuge ermöglichen allen am Softwareprojekt Beteiligten, ihre Arbeit zu tun. Natürlich gibt es auch bei den Werkzeugen Unterschiede. Eine Bohrmaschine aus dem Baumarkt ist eben nicht mit einer Profi-Hilti zu vergleichen. Besonders wichtig sind Werkzeuge zur Testautomation. Testfälle werden hierbei in einer Programmiersprache beschrieben. Das System führt dann die Testfälle automatisch aus. Auf einem Blick wird erkennbar, ob die getestete Funktionalität das gewünschte Ergebnis liefert.

Der AlienTecture Ansatz

Wie im richtigen Leben gibt es auch bei den IT-Architekten Spezialisten für jedes Fachgebiet. Ein Beton-Architekt ist bei der Planung einer Stahlkonstruktion vielleicht nicht die erste Wahl.

AlienTec hat sich nach Umwegen über Oracle PL/SQL und Java auf Microsoft Technologien spezialisiert.

Das .NET Framework bietet eine vielschichtig moderne und zugleich integrierte Plattform für die professionelle Softwareentwicklung von Business Anwendungen. Der Vorteil: Alles ist integriert und greift nahtlos ineinander. Die Werkzeuge sind ausgereift, durchgängig und unterstützen alle offenen Standards. Einem .NET Web-Service ist es egal, ob er von einer JAVA-Anwendung, einer Oracle-Datenbank oder einem .NET RichClient verwendet wird. Mit der Workflow Foundation steht eine mächtige Workflow Engine zur Verfügung. Die Presentation Foundation stellt komplett neue Möglichkeiten des Oberflächendesigns zur Verfügung. Endlich muss der Programmierer nicht mehr designen und der Designer nicht mehr programmieren.

Alle philosophischen Projektvorgehensweisen haben sich als wenig praktikabel erwiesen. Klassische Projektvorgehensmodelle wie das V-Modell sind zu starr und unflexibel. Andere Ansätze wie eXtremeProgramming sind in der Realität nicht umzusetzen, da es weder die dafür notwendigen Entwickler noch die dafür notwendigen Kunden gibt.

AlienTec hat sich hier für einen Mittelweg entschieden. Die Verschmelzung von konsequentem Requirement Management, Prototyping, das Verwenden von Patterns, Application Blocks und automatisierten Unit-Tests bieten das optimale Gleichgewicht zwischen höchster Qualität, flexibler Software, schnellen Ergebnissen und Aufwänden.