WISE – Eine Methodik für die Entwicklung webbasierter Anwendungen Im Rahmen des Seminars „Software Engineering" Alexander Hachmann
Agenda Einleitung / Motivation Entwicklung in der Praxis Idee des WISE – Ansatzes Der WISE Ansatz – Eine komponentenorientierte Vorgehensweise Zusammenfassung / Fazit
Einleitung / Motivation seit Einführung des WWW: Anforderungen an webbasierte Anwendungen stark verändert in den Anfängen: reine Vermittlung von Informationen heutzutage: kommerzielle Anwendungen dadurch: steigender Aufwand von Entwicklung und Pflege
Motivation / Charakteristika heutiger Webanwendungen Beinhalten sowohl informationsvermittelnde als auch applikationsorientierte Bestandteile Hohe multimediale Ausprägung Hoher Stellenwert von Besucherrollen Ständige Aktualisierung notwendig (kurzer Lebenszyklus) Bei der Entwicklung: Häufig Mitarbeiter verschiedener Disziplinen beteiligt
Entwicklung in der Praxis Gestiegene Anforderungen an Entwicklung machen den Einsatz von methodischen Vorgehensweisen sinnvoll Dennoch: methodische Vorgehensweise bei der Entwicklung in der Praxis kaum verbreitet Implementierung erfolgt zumeist ad-hoc oder auf Basis unternehmensinterner Modellierungsmethoden Durch Tools wie HTML-Editoren Fokussierung auf Implementierung Gründe für geringe Akzeptanz wissenschaftlicher Methoden: große Komplexität der vorhandenen wissenschaftlichen Methoden geringe Orientierung am Design der späteren Webanwendung
Projekt WISE Verbund aus Universitäten und Unternehmen Projektpartner: Projektträger:
Der WISE Ansatz - Ziele Unterstützung aller Entwicklungsphasen in einem Ansatz Automatische Weiterverarbeitung Grafische Entwurfsmodelle Implizite Verständlichkeit der grafischen Modelle Prototyping jederzeit möglich Änderungen und Modifikationen an unterschiedlichen Bereichen der Webanwendung unabhängig voneinander möglich (Daten und Navigation/Design) Dadurch: Neuprogrammierung auch bei grundlegenden inhaltlichen oder grafischen Änderungen nicht notwendig
Phasen des Web-Engineering Quelle: [Wi05] Ziel: systematischer Aufbau, so dass alle relevanten Entwurfsbereiche in einem integrierten Ansatz angeboten werden können
Durchgängiges Beispiel Beispielunternehmen: fiktiver mittelständischer Kraftfahrzeughersteller Produkte: Motorräder und Automobile Beispiel erhebt keinen Anspruch auf genaue Abbildung der Realität Dient der Vermittlung der Methodik
Analyse Analyse grundlegender Größen als Basis für die Entwicklung Definition der Ziele (Was soll mit der Website erreicht werden?) Identifikation relevanter Nutzergruppen Untersuchung der Rahmenbedingungen Festlegung der strategischen Ausrichtung
Analyse (im Beispiel) Zielsetzungen: Relevante Nutzergruppen: Bereitstellung aktueller Informationen für alte und neue Kunden Werben neuer Kunden durch professionelle Außendarstellung Werben neuer Mitarbeiter Interaktionsmöglichkeiten für Besucher Bestellung Kontakt Relevante Nutzergruppen: Kunden Potentielle Mitarbeiter
Anforderungsspezifikation Formulierung wichtiger Anforderungen Darzustellende Themen Informationsstrutkur Funtkionalität Usability Im Beispiel: Kernthemen: Produkte aus den Bereichen Automobil und Motorrad Formulare und Dienste für die Interaktionsmöglichkeiten müssen vorhanden sein
Modellierungsphase Kern der komponentenorientierten Vorgehenswese Unterteilung in 4 Teilschritte Spezifisches (überführbares) Modell für jeden Teilschritt
Modellierungsphase Phase 1: konzeptuelles Modell (Themenstruktur) Quelle: Eine Vorgehensweise zur systematischen Modellierung webbasierter Anwendungen, M. Wissen, 2005 Phase 1: konzeptuelles Modell (Themenstruktur) Phase 2: Navigationsmodell (optische Orientierung am Design der Website) Phase 3: Sichtenmodell (Berücksichtigung von Besucherrollen) Phase 4: Präsentationsmodell (grafische Aspekte)
Konzeptuelles Modell Basis für die Inhalte der Website Informationsbestand im Unternehmen wird in Ontologie aufgearbeitet Ontologie Wissensrepräsentation Informationsbestand wird in Oberthemen (Konzepte) eingeteilt Beziehungen zwischen Konzepten über Assoziationen Vorhandenes Wissen wird übersichtliche und kategorisiert dargestellt Über Assoziationen ist Navigation innerhalb der Ontologie möglich Diese entspricht jedoch nicht zwingend der Navigation innerhalb der Webanwendung Dient vielmehr der systematischen Analyse aller relevanten Themenfelder
Konzeptuelles Modell Ontologie (Fortsetzung) Logische Basis für die spätere Navigationsstruktur In der Wissenschaft gibt es eine Vielzahl von Ansätzen für die Erstellung von Ontologien (hier für Verständnis nicht erforderlich) Hier: Erstellung zu betrachten als manueller Prozess Speicherung der Ontologie: in der Datenbank Ontologie für Website permanent verfügbar
Konzeptuelles Modell (Beispiel) Modell muss für die Navigation erweitert werden
Konzeptuelles Modell (Beispiel) Themenmodell der Ebene 1:
Instanzierung der Inhalte Inhalte in Form von Instanzen in der Datenbank Korrekte Auswahl der Instanzen durch Relationen Quelle: [Wi05]
Navigationsmodell Besteht aus 2 Typen von Komponenten Strukturelle Komponenten Positionierung der Elemente Seitenaufbau Inhaltspezifische Komponenten
Navigationsmodell (Struktur) Alle Inhalte werden in Containern organisiert Verschachtelte Darstellung möglich Quelle: [Wi05] Jeder Container kann Menge von Subcontainern haben Subcontainer werden als eigenständige Container betrachtet Darstellungsformen der Subcontainer: Nur ein Container Sichtbar (Realisierung über XOR-Verknüpfung) Mehrere Sichtbar (Subcontainer als Partitionen ihres Containers)
Navigationsmodell (Struktur) Quelle: [Wi05] Platzhalter als weitere Strukturierungsmöglichkeit
Navigationsmodell (inhaltsspezifische Komponenten) Werden nicht unmittelbar in Containern gehalten Werden durch Modellklassen beschrieben, die Containern zugeordnet sind Container kann neben Subcontainern beliebig viele Modellklassen enthalten Modellklassen Primitive Klassen Inhalte nicht weiter zerlegbar Z.B.: Texte, Bilder Navigationale Klassen Verantwortlich für größere Menüstrukturen Einfache Links können auch für primitive Klassen definiert werden
Navigationsmodell (inhaltsspezifische Komponenten) Quelle: [Wi05] Navigationsrelationen können zusätzlich Broadcasting-Mechanismen auslösen Quelle: [Wi05] Dadurch beispielsweise Zuweisung von Benutzerrollen möglich
Navigationsmodell (inhaltsspezifische Komponenten) Statische und dynamische Inhalte der Modellklassen Statisch: stehen zum Zeitpunkt der Modellierung fest Dynamisch: ergeben sich zur Laufzeit Durch Navigationspfade Durch Eingaben des Benutzers … im Weiteren als Kontext bezeichnet Jeder Container wird mit einem Kontext initialisiert Dadurch Herleitung der dynamische Inhalte möglich (z.B. für navigationale Klassen)
Navigationsmodell (inhaltsspezifische Komponenten) Weitere Klassen: Zustandsklassen Abstrakte Serviceklassen Integration existierender Applikationsmodule oder Web Services (beispielsweise für Suchfunktion)
Navigationsmodell (Beispiel)
Navigationsmodell (Beispiel)
Navigationsmodell (Beispiel) Darstellung in Indexform Weitere Darstellungsformen möglich (Tabs, Baumstrukturen…) Hier: alle Produkte des Kraftfahrzeugherstellers Festlegung zur Modellierungszeit: alle Konzepte, die mit dem Konzept „Produkte“ über die Assoziation „beinhaltet“ verbunden sind, sollen angezeigt werden Zusätzliche Angabe: Tiefe (hier 1) Durch Rückgriff auf konzeptuelles Modell: Flexibilität Bei Auswahl eines Navigationselements: Übergabe des Kontextes an B12
Navigationsmodell (Beispiel)
Navigationale Klassen allgemein: Navigationsmodell Navigationale Klassen allgemein: Zur Modellierungszeit: Festlegung des Zielkonzepts Assoziation zum Ursprungskonzept Zur Laufzeit: Ermittlung der Instanzmenge
Sichtenmodell Berücksichtigung benutzerbezogener Informationen Technische Rahmenbedingungen (z.B. Bandbreite) Orts- und zeitbezogene Informationen (z.B. Aufenthaltsort, Uhrzeit) Sozialer Kontext (z.B. Besucherrollen) Zugriffsklassen Benutzergruppe (Rolle) Bedingung Quelle: [Wi05] Bei vielen Zugriffsklassen: Liste der Modellklassen mit zugehörigen Zugriffsklassen
Präsentationsmodell Nötig für grafische Formatierungen Quelle: [Wi05]
Test und Evaluation Durch Prototyping jederzeit möglich Sofortige Kontrolle modellierter Komponenten Geeignetes Softwaretool nötig
Technische Unterstützung Softwaretool ist bisher nur in der Prototypphase Themen- und Navigationsmodell können größtenteils zeichnerisch erstellt werden Import- und Exportfunktion für Wiederverwendbarkeit modellierter Komponenten BuildWeb Komponente zur Erstellung der Website-Vorlage HTML JSP-Erweiterungen Javascript Abschließende Festlegung der endgültigen grafischen Formatierungen erfolgt manuell
Zusammenfassung Der WISE-Ansatz Alle Bereiche der Entwicklung in einem integrierten Ansatz Getrennte Behandlung von Daten und Design. Modellierung mittels grafischer Modelle Unterstützung durch geeignetes Software-Tool
Fazit Zur Erinnerung Ziel der Vorgehensweise: systematisches Vorgehen in einem durchgängigen Ansatz Konzeptuelles Modell Ontologie als Basis aller Inhalte Aber: Ergänzungen und Selektion für das Themenmodell nötig Sinn der Ontologie daher zumindest abgeschwächt: Hoher Aufwand Besser: sofortiges Themenmodell
Navigationsmodell / Sichtenmodell: Fazit Navigationsmodell / Sichtenmodell: Nachträgliche Modellierung der Sichten kann zu Inkonsistenzen führen Software-Tool: Nicht überprüfbar Guter Ansatz: Zeichnerische Erstellung aller benötigten Modelle
Vielen Dank Fragen?