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.