Die Anforderungen an moderne Software steigen zusehends. Individualisier- und Anpassbarkeit sind zentrale Anforderungen insbesondere bei schnelllebigen Web-Applikationen. Die zur Erstellung verwendbaren Programmierparadigmen, Architekturmuster und Frameworks sind im Kapitel 2 zusammengefasst dargestellt. Dabei werden die Kerneigenschaften besprochen und der teilweise Einsatz in aktuellen Frameworks an einem Beispiel demonstriert.
Im anschließenden Hauptteil der Arbeit ist zunächst der Konsens zwischen Performance und Flexibilität, zwei der wichtigsten aber widersprüchlichsten Anforderungen an Applikationen, dargestellt. Dabei werden Lösungsansätze vorgeschlagen, welche im Kern eine Verbindung von prozeduraler bzw. objektorientierter Programmierung und den Möglichkeiten der generativen Programmierung enthalten.
Darauf aufbauend widmet sich das nachfolgende Kapitel mit der Generierung von Applikationen und den dazu notwendigen Voraussetzungen. Es werden drei Voraussetzungen für eine effiziente Generierung aufgestellt, welche die Architektur und die Art des Aufbaus der zu generierenden Software sowie die notwendigen Eigenschaften des Bibliothekscodes behandeln. Im Folgenden ist die Verwendung einer DSL der Verwendung einer grafischen Benutzeroberfläche gegenübergestellt, diese miteinander verglichen sowie Vor- und Nachteile beider beleuchtet. Außerdem wird über eine DSL nachgedacht und ein Lösungsansatz anhand von beispielhaften Ausdrücken dargestellt und anschließend an dem Beispiel einer, mit dem MVC-Muster strukturierten, Applikation die Vorgehensweise der Generierung detaillierter dargestellt.
Nachfolgend erfolgt eine Betrachtung von Testverfahren und ihrem möglichen Einsatz während der Entwicklung und bei der Generierung auf der Zielplattform. Dabei werden dynamische und statische Testverfahren in klassischem, automatisiertem und agilem Einsatz sowie Anwendbarkeit auf generierte Applikationen beschrieben.
Weiterhin werden verschiedene Ansätze zur Anpassung von Applikationen, auch aus der Architektursicht, beleuchtet. Anschließend wird auf die Aktualisierung von Individualsystemen eingegangen. Es werden auftretende Probleme beschrieben und praxisnahe Lösungen entwickelt. Im letzten Kapitel der Arbeit werden die Kernaussagen an einem praktischem Beispiel demonstriert.
Inhaltsverzeichnis
1 Einleitung
2 Grundlagen
2.1 Programmierparadigmen
2.1.1 Prozedurale Programmierung
2.1.2 Objektorientierte Programmierung
2.1.3 Aspektorientierte Programmierung
2.1.4 Generative Programmierung
2.1.5 Übersicht
2.2 Architekturmuster
2.2.1 MDA
2.2.2 MVC
2.2.3 PAC
2.3 Frameworks
2.3.1 Prado
2.3.2 Symfony
2.3.3 Zend Framework
2.3.4 Fehleranalyse
2.3.5 Zusammenfassung
3 Individualsoftware
3.1 Performance versus Flexibilität
3.2 Generierung
3.3 Tests
3.3.1 Testverfahren
3.3.2 Integrationstests auf der Zielplattform
3.3.3 Selbsttests nach Generierung
3.4 Anpassung
3.4.1 Anpassbarkeit bei Installation
3.4.2 Anpassbarkeit im Betrieb
3.4.3 Architekturmuster
3.5 Aktualisierung
3.6 Praktischer Nachweis
3.6.1 Projekt ConfMaster
3.6.2 Generierung
3.6.3 Performancevergleich
4 Zusammenfassung
5 Ausblick
Zielsetzung & Themen
Die Arbeit untersucht Methoden und Werkzeuge zur Entwicklung und Wartung individualisierbarer und anpassbarer webbasierter Applikationen mit dem Ziel, einen effizienten Konsens zwischen Performance und Flexibilität unter Verwendung moderner Software-Engineering-Ansätze zu finden.
- Analyse von Programmierparadigmen und Architekturmustern (insb. MVC)
- Evaluation von PHP-basierten Frameworks wie Prado, Symfony und Zend
- Untersuchung generativer Ansätze zur Applikationsentwicklung
- Strategien für Tests und Qualitätssicherung in generativen Systemen
- Konzepte zur Anpassbarkeit und Aktualisierung webbasierter Individualsoftware
Auszug aus dem Buch
3.1 Performance versus Flexibilität
In diesem Kapitel werden Wege besprochen, um einen Konsens zwischen den zwei, in der Regel widersprüchlichen Anforderungen Flexibilität und Performance zu finden. Grundsätzlich können dabei beide Anforderungen zur Laufzeit und während der Entwicklung betrachten werden.
Performance wird allgemein als die Leistung pro Zeiteinheit verstanden. Es ist also eine messbare und objektiv vergleichbare Größe. Zur Laufzeit eines Systems wird Performance anhand einer durchschnittlichen Verarbeitungsanzahl von Aufträgen pro Zeiteinheit, meist Sekunde oder Millisekunde, angegeben. Bei einem Webserversystem wäre dies z.B. die durchschnittliche Verarbeitungsanzahl von Requests pro Millisekunde. Performante Systeme erreichen ihre Leistungsfähigkeit durch Vermeidung unnötiger Operationen (Effizienz) und sinnvoller Zwischenspeicherung bereits berechneter Ergebnisse (Caching).
Flexible Software zeichnet sich dadurch aus, dass sie „[…] bei Bedarf in seiner Funktionsfähigkeit erweitert, abgerüstet oder geändert werden kann“ ([LiTr88] S.18). Weiterhin können Eigenschaften wie paralleles Ablaufen verschiedener Versionen und Portabilität (vgl. [ClSc01]) unter Flexibilität verstanden werden.
Die Flexibilität zur Laufzeit kann in interpretative, generative (vgl. [KlKl06]) und argumentative Flexibilität unterteilt werden. Interpretative und generative Flexibilitäten verfolgen gleiche Ziele und werden an dieser Stelle näher betrachtet, argumentative Flexibilität wird im Abschnitt „Grenzen generativer Flexibilität“ in diesem Kapitel näher dargestellt. Interpretative Flexibilität wird durch Konfigurationsdateien erreicht. Diese werden eingelesen, von der Software interpretiert, validiert und wirken auf den Programmablauf ein. Somit lässt sich generische Software individualisieren.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die Herausforderungen der wachsenden Softwarekomplexität und die Zielsetzung der Arbeit, individualisierbare Web-Applikationen mittels moderner Methoden flexibler und performanter zu gestalten.
2 Grundlagen: Bietet einen Überblick über relevante Programmierparadigmen, Architekturmuster und die Evaluierung dreier PHP-Frameworks zur Vorbereitung auf den Hauptteil.
3 Individualsoftware: Der Hauptteil der Arbeit, der sich mit dem Konsens zwischen Performance und Flexibilität, generativen Ansätzen, Testverfahren, Anpassbarkeit und deren praktischer Anwendung in einem Konferenzverwaltungssystem befasst.
4 Zusammenfassung: Fasst die Ergebnisse der Arbeit zusammen und betont die Notwendigkeit von Softwaregeneratoren zur Steigerung der Produktivität.
5 Ausblick: Skizziert zukünftige Forschungsrichtungen, wie etwa die Entwicklung einer webbasierten IDE zur automatisierten Softwareerstellung.
Schlüsselwörter
Web-Engineering, Individualisierbarkeit, Anpassbarkeit, Performance, Flexibilität, Software-Engineering, Generative Programmierung, MVC-Muster, PHP, Applikationsgenerierung, Softwarearchitektur, Testverfahren, Konfigurationsmanagement, Web-Applikationen, Frameworks
Häufig gestellte Fragen
Worum geht es in dieser Diplomarbeit grundsätzlich?
Die Arbeit befasst sich mit der Entwicklung und Wartung von individualisierbaren und anpassbaren webbasierten Applikationen unter Berücksichtigung der Performance.
Was sind die zentralen Themenfelder?
Die Schwerpunkte liegen auf Programmierparadigmen, Architekturmustern (wie MVC), Framework-Evaluationen und vor allem auf generativen Methoden zur effizienten Softwareentwicklung.
Was ist das primäre Ziel oder die Forschungsfrage?
Das Ziel ist es, Methoden und Verfahren zu identifizieren, die den Entwicklungsaufwand verkürzen und dabei einen optimalen Kompromiss zwischen der Flexibilität der Anwendung und ihrer Performance finden.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit kombiniert theoretische Analysen von Architekturmodellen mit einer Evaluierung von Frameworks sowie einer praktischen Untersuchung anhand eines Konferenzverwaltungssystems (ConfMaster), inklusive Performancemessungen.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil behandelt den Zielkonflikt zwischen Performance und Flexibilität, Strategien zur Generierung von Softwarekomponenten, Testmethoden für generative Systeme und Verfahren zur Anpassung und Aktualisierung von Applikationen.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zu den wichtigsten Begriffen gehören Web-Engineering, generative Programmierung, MVC-Architektur, Software-Flexibilität und Performancesteigerung.
Was ist der Unterschied zwischen interpretativer und generativer Flexibilität?
Interpretative Flexibilität basiert auf dem Einlesen von Konfigurationsdaten zur Laufzeit, während generative Flexibilität diese Logik in einen Generierungsprozess verlagert, um zur Laufzeit effizienteren Code zu nutzen.
Warum spielt das MVC-Muster eine so große Rolle?
MVC ist ein weit verbreitetes Architekturmuster für Web-Applikationen, das durch die klare Trennung von Datenmodell, Präsentation und Steuerung eine modulare Struktur bietet, die sich sehr gut für generative Ansätze eignet.
- Arbeit zitieren
- Arthur Kaiser (Autor:in), 2006, Web-Engineering unter besonderer Berücksichtigung von Individualisier- und Anpassbarkeit, München, GRIN Verlag, https://www.grin.com/document/62731