Was ist Software-Architektur?
Applikationsarchitektur
Bei der Applikationsarchitektur geht es um die niedrigeren Stufen (lower levels) des Softwareentwurfs. Meistens gibt es nur eine Technologie (Java, Microsoft .Net, etc.). Die Bauteile beinhalten Programmiersprache, Bibliotheken, Frameworks, etc. Bei der Applikationsarchitektur geht es um die Software und die Organisation des Codes.
Systemarchitektur
In einem Softwaresystem gibt es meistens mehrere Applikationen. Diese müssen zusammenarbeiten. Die Mehrheit der Softwaresysteme kommunizieren mit der Aussenwelt, daher sind Interoperability und Integration mit den anderen Systeme sehr wichtig. Zusätzlich ist die Hardware auch wichtig. Die Bauteile beinhalten sowohl Software als auch Hardware (z.B. Programmiersprache, Frameworks, Servers, Infrastruktur). Systemarchitektur ist abstrakter als Applikationsarchitektur.
Softwararchitektur
Softwarearchitektur ist die Kombination der Applikation- und Systemarchitektur. Hier geht es um:
- Logging und Exception Handling
- Sicherheit
- Performance, scalability, availability
- Real-world constraint of the environment
- Interoperability/ Integrität,
- Operational, support and maintenance requirements
- ... Wir müssen also einen allgemeinen Blick auf die Software werfen.
Enterprise-Architektur - Strategie statt Code
Bei der Enterprise-Architektur geht es nicht darum, wie Technologie funktioniert, sondern wie Technologie in der Organisation besser benutzt werden kann. Enterprise-Architektur guckt wie man Menschen, Prozesse und Technologien am besten organisiert und einsetzt, damit die Organisation besser und effizienter funktionieren kann.