Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick  Zusammenfassung:  Generell: Konzepte der Softwaretec...
Author: Carin Schubert
14 downloads 2 Views 35KB Size
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013

Überblick  Zusammenfassung:  Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung  Diskussion über ihre Ausprägung in EMF und mit Xtext und Xtend generierten Infrastrukturen:  Entwicklungszeiten  Softwarequalität  Dokumentation  Wiederverwendbarkeit  Anpassbarkeit

 Diskussion: Kritische Fragen zur modellgetriebenen Softwareentwicklung Taentzer

Modellgetriebene Softwareentwicklung

442

Zusammenfassung: Modellgetriebene Softwareentwicklung  MDD bedeutet zweierlei:  Entwicklung einer MDD-Infrastruktur für eine Anwendungsdomäne  Entwicklung einer Anwendung mit der MDD-Infrastruktur

 Entwicklung einer MDD-Infrastruktur  Entwicklung von Referenzanwendungen  Analyse des Anwendungscode: Separierung in generischen, schematisch wiederkehrenden und individuellen Code  Entwicklung einer domänenspezifischen Modellierungssprache in Syntax und Semantik (Editoren, Codegeneratoren)



MDD-Infrastruktur Referenzanwendung(en) (Prototyp)

Anwendung

Taentzer

generierte Anwendung

… Modellgetriebene Softwareentwicklung

443

Was kann modellgetriebene Softwareentwicklung leisten?         

verkürzte Entwicklungszeiten schnelle Erstellung von Prototypen weniger technisches Wissen leichtere Umstellung auf neue Technologien stärkere Entkoppelung von Domänenwissen und Technologiewissen Kohärenz von Modell und Code wohldefinierte Softwarearchitektur, besserer Code aktuelle Dokumentation Unterstützung bei der Erstellung automatischer Tests

Taentzer

Modellgetriebene Softwareentwicklung

444

Entwicklungszeiten bei modellgetriebenem Vorgehen  üblicherweise liegt der grösste Aufwand bei der Implementierung  bei modellgetriebenen Vorgehen:  Analysephase wie üblich  Mehraufwand bei der Entwicklung des Entwurfsmodells (warum?)  weitgehende oder sogar komplette Automatisierung der Codeerstellung  Qualitätssicherung:  Testen auf Codeebene  Umstrukturierungen (Refactoring) auf Modellebene  Entwicklungsaufwand kann bis zu 60 % reduziert werden. Taentzer

Modellgetriebene Softwareentwicklung

445

Softwarequalität  wohldefinierte Software-Architektur  MDD-Infrastruktur zwingt zur Einhaltung einer gewissen Architektur  generierter Code folgt einer vorgegebenen Architektur

 konserviertes Expertenwissen  Verwendung von verschiedenen Frameworks  Generator enthält das Expertenwissen zur richtigen Verwendung dieser Frameworks

 stringente Programmierrichtlinien  Eventuell manuell erstellter Code wird an bestimmten Stellen in den generierten Code eingefügt und setzt auf klar strukturierten Schnittstellen auf.

Taentzer

Modellgetriebene Softwareentwicklung

446

Softwarequalität  Qualität des generierten Codes:  Die Qualität des generierten Codes hängt direkt von der Modell-Code-Transformation ab.  Manchmal ist der generierte Code schwer lesbar, nicht dokumentiert und nicht effizient genug.  Die Qualität von generiertem Code kann ebenso gut wie von manuell erstelltem sein, wenn  die Referenzanwendung gut gepflegt wird,  die Transformation sorgfältig entwickelt wird.  Meist ist generierter Code systematischer und konsistenter. (warum?) Taentzer

Modellgetriebene Softwareentwicklung

447

Dokumentation  Das erstellte Modell ist immer aktuell und bietet einen guten Überblick über die Software.  sehr kompakte Informationsdarstellung  visuelle Elemente zur Darstellung von Strukturen  Neben dem Code können auch die Online-Hilfe und weitere Dokumentation aus dem Modell generiert werden.  Trotzdem ist weitere Dokumentation nötig. (Welche?)

Taentzer

Modellgetriebene Softwareentwicklung

448

Wiederverwendbarkeit  MDD bietet ein hohes Maß an Wiederverwendbarkeit  Aufteilung in domänen- und anwendungsspezifischen Code

 Infrastruktur für die Erstellung von Software in einem bestimmten Bereich  domänenspezifische Modellierungssprache  domänenspezifische Plattform mit Generatoren

 Die Infrastruktur ist hochgradig wiederverwendbar.

Taentzer

Modellgetriebene Softwareentwicklung

449

Portabilität, Anpassbarkeit  aufgrund des MDA-Ansatzes  durch plattfomunabhängiges Modell leichte Portabilität auf andere Plattformen, die durch die MDD-Infrastruktur unterstützt werden  schnelle Portabilität auf neue oder geänderte Plattformen (durch Transformationsanpassung)

 strukturierte Anpassung an neue Domänenanforderungen  Anpassung der Modellierungssprache  Anpassung der Model-Code-Transformation  Anpassung der übrigen Infrastruktur Taentzer

Modellgetriebene Softwareentwicklung

450

Kritische Fragen zu MDD  Was ist neu an MDD?  Codegenerierung ist nicht neu  aber: MDD ist ein neues Entwicklungsparadigma für Software - Softwareentwicklung auf einer höheren Abstraktionsebene

 Wenn der Ansatz so brillant ist, warum wird er nicht mehr benutzt?  Wichtige Voraussetzungen, wie flexible Werkzeuge und umfangreiches Wissen zu MDD sind noch nicht gegeben.  Die Werkzeuge sind häufig noch nicht reif genug.  Aber es gibt durchaus schon Erfolgsgeschichten. Taentzer

Modellgetriebene Softwareentwicklung

451

Beispiele für MDA-Anwendungen  Auflistung der OMG: MDA-Erfolgsgeschichten http://www.omg.org/mda/products_success.htm  Komponentenbasierte Entwicklung auf Basis der "Model Driven Architecture" (BMW) http://ebookbrowse.com/bien-beschorner-os-05-04-pdfd149667715  Modellgetriebene Softwareentwicklung auf Basis von OpenSource-Werkzeugen – reif für die Praxis? http://www.springerlink.com/content/q48225772l75t675/  Vom Geschäftsprozess zur Anwendung: Modellgetriebene Entwicklung betrieblicher Software http://www.sigs.de/publications/os/2005/MDD/ Andres_MDA_OS_2005.pdf Taentzer

Modellgetriebene Softwareentwicklung

452

Kritische Fragen zu MDD  Hat MDD nicht negative Auswirkungen auf die Effizienz und Lesbarkeit des Anwendungscodes?  Effizienz und Lesbarkeit sind vom Codegenerator abhängig, sind aber meist so hoch wie bei traditioneller Anwendungssoftware.

 Sind nicht die heutigen UML-basierten Entwicklungsumgebungen reifer als MDD-Werkzeuge?  Mag sein, sie stellen aber eine andere Kategorie von Werkzeugen dar.  Diese Werkzeuge haben keine entsprechende Codegenerierung. Taentzer

Modellgetriebene Softwareentwicklung

453

Kritische Fragen zu MDD  Stellt MDD nicht eine zu starke Abhängigkeit einer Anwendung von einem spezifischem Werkzeug dar?  Abhängigkeit von einer MDD-Infrastruktur existiert  Da MDD-Software häufig Open Source ist, können Änderungen selbst durchgeführt werden.  Generierter Code kann auch ohne MDD-Infrastruktur traditionell weiterentwickelt werden.

 Ist es nicht teilweise einfacher, den Code zu ändern als das Modell und neu zu übersetzen?  Das Modell hat meist eine reiche Semantik, d.h. eine Änderung im Modell zieht viele Änderungen im Code nach sich.  Codeänderungen sollten so durchgeführt werden, dass eine modellgetriebene Vorgehensweise weiterhin möglich ist. Taentzer

Modellgetriebene Softwareentwicklung

454

Kritische Fragen zu MDD  In kritischen Projektphasen kann es passieren, dass Features gebraucht werden, die die Infrastruktur nicht zur Verfügung stellt.  Kleine Anpassungen können direkt an der Infrastruktur vorgenommen werden.  Größere Unzulänglichkeiten können nur mit der traditionellen Weiterentwicklung der Software beantwortet werden.

Taentzer

Modellgetriebene Softwareentwicklung

455

Kritische Fragen zu MDD  MDD in einem größeren Team heisst verteiltes Modellieren. Gibt es dafür überhaupt unterstützende Werkzeuge?  Es gibt bereits UML-CASE-Werkzeuge, die verteiltes Modellieren unterstützen.  Die Aufteilung in Teilmodelle kann sinnvoll sein.

 Ist handgeschriebener Code nicht zuverlässiger als generierter Code?  Compilerfehler wurden auch meist genannt, um weiterhin in einer niederen Programmiersprache zu implementieren.  Eine Referenzanwendung wird meist noch verbessert, wenn daraus Templates und der Generator entwickelt werden. Taentzer

Modellgetriebene Softwareentwicklung

456

Ausblick  Offene Probleme bzgl. MDD:  Entwicklung passender domänenspezifischer Modellierungssprachen  integrierte Entwicklungsumgebungen für MDD  Standardisierung einer Transformationssprache:  Modell-zu-Modell  Modell-zu-Code  modellgetriebenes Testen  Versionierung von Modellen, speziell bei verteiltem Arbeiten  Refactoring in modellgetriebener Softwareentwicklung  MDD und Legacy Code Taentzer

Modellgetriebene Softwareentwicklung

457

Themen für Fortgeschrittenenpraktika und Abschlussarbeiten  Entwicklung einer neuen MDD-Infrastruktur für  Webanwendungen, auf verschiedenen Plattformen basierend  mobilen Anwendungen  Auch in Kooperation mit Externen

 Modell-Koevolution  Automatische Ableitung von Modellmigrationsskripten von beliebigen Metamodellevolutionen

 Verteilte modellgetriebene Softwareentwicklung  Implementierung von Strategien für das Verteilen von Modellen  Erweiterung von Xtext-generierten Editoren um verteiltes Editieren

 Modellversionierung  Für eine konkrete DSL: Modellversionierung auf einer höheren Abstraktionsstufe zur Verfügung stellen Taentzer

Modellgetriebene Softwareentwicklung

458

Literatur  Völter, Stahl: Modellgetriebene Softwareentwicklung, Wiley, 2006  Steimann, Kühne: Are Models the DNA of Software Construction? A Controversal Discussion, http://www.kbs.unihannover.de/~steimann/published/WiSME2004.pdf

Taentzer

Modellgetriebene Softwareentwicklung

459