Modellgetriebene Entwicklung von Webanwendungen: eine ...swt/ws12/mdd/files/Folien121025.pdf ·...
Transcript of Modellgetriebene Entwicklung von Webanwendungen: eine ...swt/ws12/mdd/files/Folien121025.pdf ·...
Modellgetriebene Entwicklung von Webanwendungen:
eine erste Analyse25. Oktober 2012
Taentzer Modellgetriebene Softwareentwicklung 59
Überblick Anforderungsanalyse auf zwei Ebenen:
Analyse einer konkreten Anwendung Analyse einer Infrastruktur für die modellgetriebene
Entwicklung von Webanwendungen
Analyse einer konkreten Webanwendung: Welche funktionalen Anforderungen? Welche nichtfunktionalen? Ist eine modellgetriebene Entwicklung möglich?
Analyse einer Infrastruktur für Webanwendungen: Welche Anwendungen sollen generiert werden? Welche Aspekte sollen modelliert werden? Codegenerierung: Welche Architektur? Welche Plattformen?
Taentzer Modellgetriebene Softwareentwicklung 60
Eine konkrete Webanwendung Beispiel: ein Vorlesungs-
verzeichnis Funktionale
Anforderungen: Lehrveranstaltungen,
Dozenten und Räume verwalten
Zwei Rollen: Leser und Verwalter
Nichtfunktionale Anforderungen: Quality of Service Verwendete Technologien Entwicklungsprozess
Taentzer Modellgetriebene Softwareentwicklung 61
Taentzer Modellgetriebene Softwareentwicklung 62
Ausschnitte aus Anwendungsfalldiagrammen
Hauptanwendungsfälle für ein Vorlesungs-verzeichnis
Taentzer Modellgetriebene Softwareentwicklung 63
Beispiel: Anwendungsfall Titel: Vorlesung eintragen Kurzbeschreibung: Dozent gibt Raum, Zeit und Titel einer Vorlesung
ein und legt einen Vorlesungseintrag an. Akteur: Dozent Vorbedingungen: Eine Vorlesung mit diesem Titel gibt es noch nicht. Beschreibung des Ablaufs:
Prüfe, ob der Vorlesungstitel schon vergeben ist Prüfe, ob der Raum zur angegebenen Zeit schon vergeben ist Wenn nicht, wird die neue Vorlesung eingetragen und die Daten
der Vorlesung werden angezeigt. Falls vergeben, wird die Vorlesung nicht eingetragen und eine
entsprechende Fehlermeldung wird angezeigt. Auswirkungen: Die Vorlesung wird angezeigt, in diesem Fall hat sie
eine eindeutige Nummer zugeordnet bekommen, oder ein Fehler wird gemeldet.
Anmerkungen:
Quality of Service
Verfügbarkeit der Webanwendung und ihrer Dienste Wie hoch ist die Zeit, um einen ausgefallenen Dienst wieder bereit
zustellen? (Time to repair) Wie skalierbar ist das System?
Integrität: Dienste werden als Transkationen ausgeführt Gute Performanz bedeutet hoher Durchsatz und niedrige Latenz
Roundtrip-Zeit zwischen Senden einer Anfrage und Empfang der Antwort
Sicherheit der Datenhaltung und –übertragung Authentifizierung der Benutzer und definierte Zugriffskontrolle Verschlüsseln von Nachrichten
Taentzer Modellgetriebene Softwareentwicklung 64
Verwendete TechnologienTypische Anforderungen: Regelmäßige Weiterentwicklung
erfordert eine strikte Trennung von Datenhaltung, Anwendungslogik und Darstellung
Einheitliches Look and Feel auf verschiedenen Geräten
Objektorientierte Programmierung Vertrauter Umgang mit Datenstrukturen Automatische Funktionstests
Open-Source-Software
Taentzer Modellgetriebene Softwareentwicklung 65
JSFHTML
Struts
Eclipse RAP
Cocoon
JavaScriptPython
Ajax PHPASP
XML
C#
Ruby
GWT
Java
Viele Fragen, die für jede Webanwendung immer wieder neu beantwortet werden müssen.
Überblick Anforderungsanalyse auf zwei Ebenen:
Analyse einer konkreten Anwendung Analyse einer Infrastruktur für die modellgetriebene
Entwicklung von Webanwendungen
Analyse einer konkreten Webanwendung: Welche funktionalen Anforderungen? Welche nichtfunktionalen? Ist eine modellgetriebene Entwicklung möglich?
Analyse einer Infrastruktur für Webanwendungen: Welche Anwendungen sollen generiert werden? Welche Architektur? Welche Plattformen?
Taentzer Modellgetriebene Softwareentwicklung 66
Beispiele für datenorientierte Webanwendungen
Taentzer Modellgetriebene Softwareentwicklung 67
Taentzer Modellgetriebene Softwareentwicklung 68
Eigenschaften datenorientierte Webanwendungen
Datenorientierte Webanwendungen: verteilte Systeme mit Datenbank
Beispiele für datenorientierte Webanwendungen: Vorlesungsverzeichnis Kinoprogramm Online Versandhandel Online Reisebüro Bibliothekssystem und viele weitere
Eigenschaften von daten-orientierten Webanwendungen: viele Daten meist mehrere verschieden-
artige Benutzer Hauptaktivitäten: Sammeln
und Freigeben von Daten Bereitstellung von Diensten interaktive Anwendungen
Taentzer Modellgetriebene Softwareentwicklung 69
Webanwendungen
Client-seitig Server-seitig
Webserver
http-Anfrage
http-Antwort
Web-anwendung
persistente Daten
Taentzer Modellgetriebene Softwareentwicklung 70
Funktionsablauf
Benutzer startet Webanwendung, gibt die URL des Webservers und die erste Anfrage ein.
Webserver leitet die Anfrage an die Webanwendung weiter. Webanwendung generiert den HTML-Code einer Webseite, die
vom Webserver an den Browser des Benutzers zurückgeschickt wird.
Browser zeigt die erhaltene Webseite an.
Was sind die Vor- und Nachteile von Webanwendungen gegenüber unverteilten Anwendungen?
Taentzer Modellgetriebene Softwareentwicklung 71
Grundlegende Systemstruktur
Benutzerschnittstelle: Entwurf der Interaktion zwischen System und Benutzer/anderen Systemen
Anwendungslogik: Dienste und Controller-Klassen, die die Funktionalität der Anwendungsfälle modellieren
Datenbasis: Datenzugriffs-schicht wie im Domänen-modell beschrieben
Schnittstelle
Typische Systemarchitektur:
Anwendungslogik
Datenbasis
Das System aus der internen (technischen) Sicht:
Welche Aspekte von Webanwendungen müssen modelliert werden?
Taentzer Modellgetriebene Softwareentwicklung 72
Präsentationsschicht: Wie soll die Weboberfläche
aussehen? Welche Daten sollen an der
Oberfläche angezeigt werden? Services: Welche Services haben wir? Wie sind die Services definiert?Datenzugriffsschicht: Welche Datenstrukturen werden
verwendet?Datenbankschicht: Welche Daten soll persistent sein? Wie sollen die Daten in der
Datenbank gespeichert werden?„andromda.org“
Funktionale Anforderungen an den Generator
Eingabe an den Generator: anwendungsspezifische Informationen über die Webanwendung Welche Anwendungsfälle? Welche Rollen? Welche Datenstrukturen? Wie speichern? Welche Services? Welche Darstellung an der Oberfläche?
Ausgabe des Generators: generierter Code Welche Designentscheidungen werden durch den Generator
entschieden und welche nicht? Welche Plattformen werden unterstützt? Welche Anwendungsarchitektur? Wo kann individueller Code eingefügt werden?
Taentzer Modellgetriebene Softwareentwicklung 73
Funktionale Anforderungen an die Modellierungssprache und ihre Editoren
Wie viele Editoren für welche Teilsprachen? Welche Teilsprachen?
Modellelemente mit Attributen Relationen zwischen den Modellelementen
Welche Editieroperationen? CRUD-Funktionalität: Create, Read, Update, Delete Komplexe Operationen wie z.B. Refactorings
Validierung Syntaxchecks und Smells Quick Fixing
Taentzer Modellgetriebene Softwareentwicklung 74
Nichtfunktionale Anforderungen an die Infrastruktur
Technologien: Welche Metawerkzeuge zur Entwicklung von Infrastrukturen:
welche Editor- und Codegenerator-Generatoren?
Qualität der entwickelten Infrastruktur: Qualität der Editoren Qualität des generierten Codes
Entwicklungsprozess: Welche Iterationsstufen? Welche Art der Zertifizierung?
Taentzer Modellgetriebene Softwareentwicklung 75
Testgetriebene Entwicklung Erst Tests erstellen, dann implementieren! Im Kontext von Infrastrukturentwicklung:
Auswahl von Referenzanwendungen: Welche sind die richtigen?
Welche Informationen sollen modelliert werden? Können diese editiert werden? Welche Validierungen? Ist der Code gut genug?
Vollständigkeit der Testsuiten: Diversität der ausgewählten Referenzanwendungen:
Überdeckung der Modellierungssprache
Taentzer Modellgetriebene Softwareentwicklung 76
Taentzer Modellgetriebene Softwareentwicklung 77
Qualitätsmerkmale für Software
Funktionalität: Korrektheit, Angemessenheit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit
Zuverlässigkeit: Reife, Fehlertoleranz, Wiederherstellbarkeit
Benutzbarkeit: Verständlichkeit, Bedienbarkeit, Erlernbarkeit, Robustheit
Effizienz: Wirtschaftlichkeit, Zeitverhalten, Verbrauchsverhalten
Wartungsfreundlichkeit: Analysierbarkeit, Änderbarkeit, Stabilität, Testbarkeit
Übertragbarkeit: Anpassbarkeit, Installierbarkeit, Konformität, Austauschbarkeit
Der generierte Code soll die folgenden Qualitätskriterien erfüllen:
Taentzer Modellgetriebene Softwareentwicklung 78
Zusammenfassung Analyse von konkreten Webanwendungen
Anwendungsfälle Datenstrukturen Serviceschnittstellen Oberfläche
Analyse der Domäne der datenorientierten Webanwendungen Verschiedenste Fachdomänen Mehrschichtenarchitektur Schematisch wiederkehrende Aspekte von datenorientierten
Webanwendungen, die modelliert werden können: Datenstrukturen, Serviceschnittstellen, Oberfläche
Anforderungen an die Modellierungssprache Generator: ein Anwendungsfall Editor: an die domänenspezifische Modellierungssprache angepasste
Editieroperationen