Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering1 Produktlinien für Software- und Systementwicklung Hauptseminar Sommersemester 2006,

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Prüfung objektorientierter Programme -1
V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Heterogene Informationssysteme
On the Criteria to Be Used in Decomposing Systems into Modules
Designing Software for Ease of Extension and Contraction
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Finale Semantik und beobachtbares Verhalten
Inhaltlich orientierter Zugriff auf unstrukturierte Daten
Ontologien- Query 1 Teil2
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
On a Buzzword: Hierachical Structure David Parnas.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
RUP-Elemente (Schlüsselkonzepte)
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Abhängigkeitsbeziehung
DOM (Document Object Model)
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XDoclet ETIS SS05.
Rational Unified Process (RUP) - Definitionen
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
Vortrag 11: Reengineering - Refactoring
Software Risk Evaluation Method (SRE)
eXtreme Programming (XP)
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
Explizite und editierbare Metainformationen für Software Muster.
Projekt Web Engineering
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007.
Business Engineering Chancen und Risiken am Beispiel des aktiven Schadenmanagements Prof. Dr. Michael Löwe Euroforum, Freising, 10 März 2003.
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
UML Begleitdokumentation des Projekts
Werkzeugunterstützte Softwareadaption mit Inject/J
1 Dienstbeschreibung mit DAML Ein graphischer Editor für DAML - Ting Zheng Betreuer: Michael Klein, Philipp Obreiter.
Vorlesung Gestaltung von soziotechnischen Informationssystemen - RequirementsEngineering und Contextual Design- Thomas Herrmann, Lehrstuhl Informations-
Einführung Margot Bittner, Mark-Oliver Reiser TU Berlin Helko Glathe, Matthias Weber Carmeq Peter Lascych Continental WS09/10 berlin.de/menue/studium_und_lehre/lehrveranstaltunge.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Hauptseminar Web Engineering – Semantic Web Dominik Pretzsch.
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Enterprise Achitect (Sparx Systems) Marius Rudolf
Information Retrieval, Vektorraummodell
AOP Lösung für Querschnittsaufgaben. Was ist AOP ? AOP ist kein Ersatz für OOP AOP ergänzt OOP AOP beinhaltet die Behandlung von Querschnittsaufgaben.
Software Design Patterns
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Seminar: Software-Architektur Einführender Vortrag
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Objektorientierte (OO) Programmierung
Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
Semi-automatische Komposition von Dienstbenutzerschnittstellen auf mehreren Abstraktionsebenen Christian Jäckel Universität des Saarlandes Bachelor.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
 Präsentation transkript:

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering1 Produktlinien für Software- und Systementwicklung Hauptseminar Sommersemester 2006, Prof. Broy Rainer Burgstaller Garching, Product Line Evolution and AOP

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering2 Agenda AOP in a nutshell: Quo vadis? Einführung, Grundlagen, Überblick PL und AOP NAPLES –Vorgehensweise –Lifecycle-Abdeckung –Unterstützung Requirements Engineering –Einsatzerfahrung, Verbreitung Zusammenfassung und Fazit Diskussion

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering3 AOP Gleich mal vorweg … OO war und ist nach wie vor sehr erfolgreich. Aber … –Die Komplexität der Systeme hat zugenommen (und nimmt nach wie vor zu). These: Jeder Entwickler ist in der Lage große Software Systeme zu entwickeln …

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering4 Software Engineering is a Piece of Cake?

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering5 Software Engineering is a Piece of Cake? Persistence Transaction Security Logging Distributio n Scalability Performanc e Fault Tolerance

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering6 Problem “I have a small mind and can only comprehend one thing at a time”. Edsger Dijkstra

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering7 Strategie für große Probleme: Separation of Concerns “When faced with any large task, it is usually best to put aside some of its aspects for a moment and concentrate on others“ David Gries “Divide et Impera” Julius Caesar

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering8 Separation of Concerns - Ordnung

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering9 Separation of Concerns - Mülltrennung

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering10 Wie sieht das nun im Software Engineering aus??

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering11 Ein Beispiel: Tomcat Gute Trennung der Belange (Concerns): XML parsing

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering12 Ein Beispiel: Tomcat Faire Trennung der Belange (Concerns): URL pattern matching

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering13 Ein Beispiel: Tomcat Schlechte Trennung der Belange: Logging in Tomcat

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering14 Querschneidende Belange (Crosscutting Concerns) CCC sind verflochten (tangled) und verteilt (scattered) im System, und können aufgrund dessen nicht klar lokalisiert werden. Einige Aspekte/Belange sind von Natur aus schwer zu modularisieren (im Sinne OO Modulen).

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering15 Definitionen Joinpoint – ein Punkt im Ausführungsfluss eines Programms. Pointcut – selektieren von joinpoints; beschreibt eine Menge von joinpoints. Advice – erweitern oder einschränken von Belangen bei joinpoints. Aspekt – Element zur Modularisierung von sonst querschneidenden Belangen. Viewpoint – Blickwinkel aus dem man etwas betrachtet (Betrachtungsweise auf ein Artefakt).

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering16 Konsequenzen von schlechtem Separation of Concerns Redundanz –ähnliche Code Fragmente an vielen Stellen Code ist schwer zu verstehen –schwer das Gesamtbild zu bekommen Wartung/Änderungen ist/sind sehr teuer –Code muss lokalisiert werden –Code muss in vielen Stellen geändert werden Wiederverwendung wird erschwert

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering17 AOP Was können wir tun??

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering18 Lösung Beide Teile, sprich: Anwendungscode und Aspektcode voneinander unabhängig entwickeln Doch: Wie werden die beiden Teile miteinander kombiniert?? … +

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering19 Lösung Durch Verwendung eines Aspekt-Webers Weaver

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering20 Überblick Gibt verschiedene Zeitpunkte des Webens; zur –Übersetzungszeit, –Ladezeit und –zur Laufzeit. Bekannteste Implementierungen –AspectJ –AspectWerkz –JBossAOP –AspectC++

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering21 Agenda AOP in a nutshell: Quo vadis? Einführung, Grundlagen, Überblick PL und AOP NAPLES –Vorgehensweise –Lifecycle-Abdeckung –Unterstützung Requirements Engineering –Einsatzerfahrung, Verbreitung Zusammenfassung und Fazit Diskussion

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering22 PL und AOP Software Systeme „leben“ –neue Anforderungen bzw. Funktionalität –Anpassungen –Erweiterungen 80% der Aufwendungen machen Wartung und Weiterentwicklung aus. Deshalb sollte Wartbarkeit und Erweiterbarkeit besondere Beachtung geschenkt werden  Speziell für SPL

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering23 PL und AOP Instanzen einer Produktfamilie unterscheiden sich durch die Features welche sie enthalten. Während des SPL Entwicklungs-Prozesses werden Gemeinsamkeiten und Unterschiede herausgearbeitet. Funktionalität eines Features umspannt oft mehrere Teile eines Systems. Erfahrung hat gezeigt, dass Klassen im Sinne von OO Features nur unzureichend „einfangen“ Feature entspricht oft einem Crosscutting Concern (  AOP) Werden Features in Modulen gekapselt, kann man sie leichter „rein“ und „raus“ nehmen.  AO-Ansätze besser geeignet !?

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering24 Agenda AOP in a nutshell: Quo vadis? Einführung, Grundlagen, Überblick PL und AOP NAPLES –Vorgehensweise –Lifecycle-Abdeckung –Unterstützung Requirements Engineering –Einsatzerfahrung, Verbreitung Zusammenfassung und Fazit Diskussion

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering25 NAPLES Ziel: automatisieren der zeitaufwendigen Aktivitäten wie das identifizieren von (querschneidenden) Belangen, Viewpoints, Gemeinsamkeiten und Variabilitäten Dabei kann prinzipiell auf beliebigen Dokumenten gearbeitet werden, unabhängig von deren Struktur. Beispiele: unstrukturierte Interviews, Beschreibungen in PROSA, …

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering26 NAPLES AORE... Aspect Oriented Requirements Engineering FODA... Feature Oriented Domain Analysis

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering27 NAPLES – Mining Elements –Eingabe: Anforderungsdokumente, Benutzerhandbücher, dokumentierte Interviews, … –Zweck: wichtige Konzepte identifizieren, diese dem Benutzer so aufzubereiten, dass davon ein geeignetes strukturiertes Modell abgeleitet werden kann (AORE und FODA Modell) –Funktionsweise: EA-Miner verwendet natürliche Spracherkennungsmechanismen von WMATRIX

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering28 NAPLES – WMATRIX (Funktionen) –WMATRIX stellt Funktionen wie Wortartanalyse, semantische Analyse, Worthäufigkeitsanalyse usw. zur Verfügung –Wortartanalyse zielt auf die Herauslockung von Wortarten (z.B.: Hauptwörter, Zeitwörtern) ab. –Semantische Analyse hat sich zum Ziel gesetzt verwandte oder verschiedene Ausdrücke von Wörtern zu gruppieren Bsp: driver(s), vehicle(s), traffic  „land transport“

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering29 NAPLES – Mining Elements (Resultat) –WMATRIX produziert aus der Eingabedatei eine XML-Datei, welche für jedes Wort die Wortart und die semantische Bedeutung markiert. Dabei ist die XML-Datei in Sätzen strukturiert ( … ) Bsp authorised JJ …allgemeines Eigenschaftswort S7.4+ …bedeutet „Zulassung/Erlaubnis“ –Mit diesen Mitteln können Domänen Konzepte mit besonderem Stellenwert erkannt werden (Early Aspects, Viewpoints, Gemeinsamkeiten und Variabilitäten)

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering30 NAPLES – Early Aspects Identifizierung –basiert auf einem domänenspezifischen Lexikon (XML Datei), welches erstellt wurde unter Berücksichtigung von nichtfunktionalen Wörtern vorhanden im NFR (Nonfunctional Requirements) Framework Katalog. –EA-Miner vergleicht nun jedes Wort, ob es gleichwertig („equalTo“) zu einem NFR Konzept ist. –Die „equalTo“-Operation ist dabei definiert wie folgt: if a word is lexically equal, ignoring case and suffixes, to the word in the lexicon AND the word has the same semantic class as a word in lexicon.

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering31 NAPLES – Vorgehensweise

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering32 NAPLES – Gemeinsamkeiten und Variabilitäten Analyse –Basiert auf einem domänenspezifischen Lexikon (XML-Datei) für z.B. Tempomaten (Bsp.: Fahrzeug, Fahrer, Geschwindigkeit, …) –EA-Miner wendet auch hier die „equalTo“-Operation auf jedes Wort an

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering33 NAPLES – Gemeinsamkeiten und Variabilitäten Analyse

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering34 NAPLES – Gemeinsamkeiten und Variabilitäten

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering35 NAPLES – Zusammenfassung –Viewpointsidentifizierung wird unterstützt –Early Aspects spiegeln querschneidende Belange wider, welche Viewpoints durchkreuzen –Viewpoints helfen die Implementierung der funktionalen Anforderungen abzuleiten –Early Aspects dienen zur Lokalisierung von CCCs welche mehrere Features betreffen und nicht durch das FODA- Modell repräsentiert werden

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering36 NAPLES – Vorgehensweise

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering37 Lifecycle-Abdeckung NAPLES

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering38 Unterstützung im Requirements-Engineering NAPLES unterstützt mehr oder weniger alle Phasen des Produktlinien-Lifecycle ein bißchen – vor allem aber das Domain Engineering Primärer Fokus war die Unterstützung der RE-Phase Unterstützung der RE-Phase –Elicitation  Requirements Engineer fokusiert sich nur auf bestimmte Teile des Dokuments –Strukturierung  Feature-Modell kann als oberstes Strukturierungsschema für Anforderungen dienen. Ea-Miner stellt bestimmte Sichten auf die Anforderungen dar. –Modellierung  Feature Diagramm wird für Requirements benutzt Traceability –für nicht querschneidende als auch für querschneidende Belange gegeben (da sehr früh erkannt).

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering39 Einsatzerfahrung, Verbreitung Bereits (erfolgreich?) auf einzelne Fallstudien angewendet. Noch nicht sehr verbreitet, da es sich um einen Prototypen handelt. Wurde der Öffentlichkeit noch nicht zugänglich gemacht

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering40 Agenda AOP in a nutshell: Quo vadis? Einführung, Grundlagen, Überblick PL und AOP NAPLES –Vorgehensweise –Lifecycle-Abdeckung –Unterstützung Requirements Engineering –Einsatzerfahrung, Verbreitung Zusammenfassung und Fazit Diskussion

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering41 Zusammenfassung und Fazit NAPLES ist ein vielversprechender Ansatz, der die Produktlinienorientierte Entwicklung durch den Lebenszyklus hindurch unterstützt/unterstützen wird. Verwendet verschiedene Techniken wie Wortanalyse, und AOSD Techniken um „automatische“ Unterstützung für (querschneidende) Belange zu erreichen. Noch nicht alle Phasen werden unterstützt, da sich der Ansatz noch in den frühen Phasen der Entwicklung befindet. Primärer Fokus war auf Anforderungsanalyse, inzwischen aber schon auf Design und Implementierung erweitert (siehe Bsp)

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering42 Zusammenfassung und Fazit unterstützt zeitintensive und fehleranfällige Aktivitäten. ermöglicht dem Anforderungs-Entwickler ein schnelles Verständnis über ein System zu erlangen. unterstützt Modell-Verfeinerungen und Modell-Erstellungen. Ansatz konnte leider nicht kritisch in Aktion bewertet werden (da Werkzeug noch nicht verfügbar). Kann gegenwärtig nur in Verbindung mit englischen Texten (Anforderungen) angewendet werden

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering43 Ausblick/Aktivitäten First Workshop on Aspect-Oriented Product Line Engineering Part of GPCE 06 and colocated with OOPSLA 06 Sunday October 22, 2006 Portland, Oregon Siemens: AMPLE-Projekt; Start: Oktober Framed Aspects Ansatz wird von Lancaster University im Rahmen des Projekts weiter verfolgt/erneut aufgegriffen.

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering44 Agenda AOP in a nutshell: Quo vadis? Einführung, Grundlagen, Überblick PL und AOP NAPLES –Vorgehensweise –Lifecycle-Abdeckung –Unterstützung Requirements Engineering –Einsatzerfahrung, Verbreitung Zusammenfassung und Fazit Diskussion

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering45 ?

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering46 Backup Folien

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering47 Beispiel: Observer Pattern

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering48 Verwendung des Observer Patterns

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering49 Verwendung des Observer Design Patterns Anwenden des Musters fügt Code bei allen Beteiligten ein Muster verschwindet im Code Implementierung des Muster kann nicht wiederverwendet werden.

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering50 Realisierung des Observer Patterns mit Aspekten

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering51 ObserverProtocol Aspekt Rollen Observer update konzeptuelle Op Update Logik Beteiligte Obj

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering52 ColorObserver Aspekt Rollen Mapping Mapping der konzeptuellen Op Update Logik

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering53 Vorteile des Aspekt-Ansatzes Lokalität –Pattern Code ist in den abstrakten und konkreten Aspekt- Klassen, nicht in den „teilnehmenden“ Klassen –Änderungen sind konsistent –(leichter zu verstehen, leichter zu debuggen) Wiederverwendbarkeit –Pattern Code ist abstrakt und wiederverwendbar Pattern Code ist leichter entfernbar

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering54 ObserverProtocol Aspekt Rollen Observer update konzeptuelle Op Update Logik Beteiligte Obj

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering55 Beispiel: Durchsetzen von Architekturrichtlinien Laufzeitfehler

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering56 Beispiel: Durchsetzen von Architekturrichtlinien Übersetzungsfehler

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering57 NAPLES – WMATRIX

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering58 NAPLES – WMATRIX

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering59 NAPLES – WMATRIX

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering60 NAPLES – Vorgehensweise

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering61 NAPLES – Vorgehensweise

Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering62 NAPLES – Vorgehensweise