Applikationen und Softwarearchitekturen unterscheiden sich hinsichtlich ihres Designs, der Technologieeinsatzes und der Zielumgebung. Diese Unterschiede beeinflussen sowohl die Auswahl der Werkzeuge als auch den Entwicklungsprozess erheblich. Im Folgenden werden die zentralen Merkmale verschiedener Applikationstypen und Softwarearchitekturen beschrieben und deren Einfluss auf Werkzeuge und Prozesse erklärt.
Wesentliche Merkmale von Applikationstypen
Typ | Definition | Merkmale | Entwicklungstools | Testing | Deployment |
Fat Client | Eine Anwendung, die grösstenteils lokal auf einem Gerät läuft und nur teilweise mit einem Server interagiert. | Lokale Ressourcen, Offline-Fähigkeit, Komplexe Installation | Lokale Entwicklungsumgebungen wie Visual Studio, IntelliJ IDEA | Fokus auf Plattformkompatibilität und Hardware-Ressourcen | Verwendung von Installationspaketen oder automatisierten Tools wie Windows Installer |
Thin Client | Eine Anwendung, die grösstenteils auf einem Server läuft, während der Client lediglich die Benutzerschnittstelle bereitstellt. | Zentrale Verwaltung, Geringe Anforderungen, Netzwerkabhängigkeit | Webframeworks wie Angular, React, oder Vue.js | Fokus auf Browserkompatibilität und Netzwerklatenz | Continuous Integration/Continuous Deployment (CI/CD) |
Mobile Client | Eine speziell für mobile Geräte entwickelte Anwendung. | Plattformabhängigkeit, Ressourcenoptimierung, Integration | Plattformspezifische IDEs wie Android Studio oder Xcode, oder plattformübergreifende Frameworks wie Flutter oder React Native | Fokus auf Usability, Performance und plattformspezifische Funktionen | Veröffentlichung in App-Stores (Google Play, Apple App Store) mit entsprechenden Zertifizierungen |
Wesentliche Merkmale von Softwarearchitekturen
Typ | Definition | Merkmale | Entwicklungstools | Testing | Deployment |
Web-Applikationen | Anwendungen, die über einen Webbrowser zugänglich sind und auf einem Webserver laufen. | Zentraler Server, Cross-Plattform, Skalierbarkeit | HTML, CSS, JavaScript, Django, Flask, Spring Boot | Funktionalität, Browserkompatibilität, Sicherheit, Performance | Hosting-Dienste wie AWS, Azure oder On-Premises |
Mobile Applikationen | Anwendungen, die speziell für mobile Geräte wie Smartphones oder Tablets entwickelt wurden. | Native oder plattformübergreifend, Offline-Funktionalität, Kleine Bildschirmgrössen | Android Studio, Xcode, Flutter, React Native | Plattformübergreifende Funktionalität, Responsiveness, Hardwaretests | Store-Zertifizierungen, Release-Management |
3-Tier Enterprise-Applikationen | Enterprise-Applikationen mit einer typischen Dreischichtenarchitektur: Präsentationsschicht (UI), Logikschicht (Server) und Datenzugriffsschicht (Datenbank). | Modularität, Verteilte Systeme, Hohe Komplexität | Spring, Hibernate, Angular | Integrationstests zwischen Schichten, Datenbanktests, Lasttests | Containerisierung (Docker), Orchestrierung (Kubernetes) |
Einfluss auf den Entwicklungsprozess
Einfluss auf den Entwicklungsprozess | Web-Applikationen | Mobile Apps | Enterprise-Systeme |
Technologieauswahl | Flutter für mobile Apps | Spring Boot für 3-Tier-Enterprise-Systeme | |
Teamstruktur | Entwickler mit Frontend- und Backend-Kompetenzen | Spezialisten für Android/iOS oder plattformübergreifende Entwicklung | Teams mit Experten für Datenbanken, Middleware und UI |
Testing-Prozesse | Cross-Browser-Testing | Gerätetests, Responsiveness | Integration und Performance |
Deployment-Strategien | Deployment auf Servern oder in der Cloud | Veröffentlichung in App-Stores | Komplexe Deployment-Pipelines mit Containern und Orchestrierung |