Individuelle Erweiterung des generierten Codes. 16. Januar 2013



Ähnliche Dokumente
Internet Explorer Version 6

Kurzanweisung für Google Analytics

Print2CAD 2017, 8th Generation. Netzwerkversionen

SFirm32 Umstellung FTAM EBICS

Überprüfung der digital signierten E-Rechnung

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

BFV Widget Kurzdokumentation

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Netzwerkversion PVG.view

YouTube: Video-Untertitel übersetzen

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

FULFILLMENT VON ALLYOUNEED

Microsoft Office 365 Migration Benutzerdaten

Installationsanleitung für Magento-Module

Meine ZyXEL Cloud. Tobias Hermanns V0.10

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Installations Guide für YAJSW und DTLDAP

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Karten-Freischaltung mit dem UNLOCK MANAGER

Der Kontowecker: Einrichtung

INSTALLATIONSANLEITUNG

Download, Installation und Autorisierung der Lasergene Software. Bitte unbedingt beachten!

Microsoft Update Windows Update

Stand: Adressnummern ändern Modulbeschreibung

Arbeiten mit dem Outlook Add-In

Modellgetriebene Softwareentwicklung. 31. Januar 2013

Einen Klick schneller zum Ziel! Ihre Onlinebewerbung bei der REWE Group

GeODin 7 Installationsanleitung

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Anleitung für CleverReach

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

BFV Widgets Kurzdokumentation

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Anleitung zur Webservice Entwicklung unter Eclipse

2. Konfiguration der Adobe Software für die Überprüfung von digitalen Unterschriften

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Java Script für die Nutzung unseres Online-Bestellsystems

Mit einem Mausklick sind s aus ACT! heraus in Outlook geschrieben, die dann wiederum auf Wunsch in ACT! dokumentiert werden.

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Uhlenbrock USB-LocoNet-Interface Treiber Setup. Windows 2000

Einrichten eines E- Mail-Kontos unter Windows Live Mail mit der IMAP-Funktion

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Installation EPLAN Electric P8 Version Bit Stand: 07/2014

Schnittstelle DIGI-Zeiterfassung

Erstellen einer digitalen Signatur für Adobe-Formulare

Backup Premium Kurzleitfaden

AutoCAD Dienstprogramm zur Lizenzübertragung

GEORG-WWW. Online-Kundenmodul. Handbuch-Online-Kunden.docx 1

Installationsanleitung für ein WAWI Update

Vorgehensweise bei Lastschriftverfahren

)XQNWLRQVWDVWH8PEXFKHQ

Installationsanleitung

UpToNet DMS Posteingang

Brainloop Secure Client für ios Version 1.5 Schnellstartanleitung

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Datenaustausch mit dem BVK Data Room

DVB-T DA2 Hybrid Seite 1 von 10

Microsoft Office 365 Migration Benutzerdaten

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung HBCI mit Wechseldatenträger in der. VR-NetWorld Software 5

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Version 0.3. Installation von MinGW und Eclipse CDT

e-books aus der EBL-Datenbank

Kurzanleitung. Toolbox. T_xls_Import

Bedienungsanleitung für den SecureCourier

Webseitenintegration. Dokumentation. v1.0

Schriftgut- und Informationsverwaltung. Anleitung BürgerTOP

Archiv - Berechtigungen

Umstellung von Inlandssammelaufträgen in SEPA-Sammelaufträge

PCC Outlook Integration Installationsleitfaden

Fragebogen zur Anforderungsanalyse

Leitfaden zur Nutzung von binder CryptShare

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Patch Management mit

Popup Blocker/Sicherheitseinstellungen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Die guten ins Töpfchen, die schlechten ins Kröpfchen

vtime: die Browser-App von virtic

So eröffnen Sie schnell und bequem Ihr Internet-Festgeld

LIP Formulare Anleitung zum Speichern, Öffnen und Drucken

Outlook 2000 Thema - Archivierung

Da ist meine Anleitung drin!

schooltas offline Modus mit der Google Chrome App

Anleitung Typo3-Extension - Raumbuchungssystem

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

impact ordering Info Produktkonfigurator

Web2Lead. Konfiguration

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Transkript:

Individuelle Erweiterung des generierten Codes 16. Januar 2013

Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene (Klassenebene) Welche haben wir schon kennengelernt? Welche Vor- und Nachteile haben diese? Eine Lösung für Xtext/Xtend Taentzer Modellgetriebene Softwareentwicklung 336

Individuelle Codeteile innerhalb Geschützte Bereiche von Klassen Durch Kommentare angezeigte Bereiche, die nicht überschrieben werden Generierte Bereiche Invers zu geschützten Bereichen Außerhalb von generierten Bereichen stehender Code wird nicht überschrieben. Partielle Klassen Verteilung einer Klasse auf mehrere Dateien Taentzer Modellgetriebene Softwareentwicklung 337

Individuelle Codeteile auf Klassen- und Ordnerebene Individuelle Klassen Diese erben von generierten Klassen und werden nicht überschrieben. (Generation gap pattern) Diese delegieren bestimmte Funktionalität an generierte Klassen. Strukturierung der Ordner und des gesamten Projekts nach generiertem und individuellem Code src target-ordner Taentzer Modellgetriebene Softwareentwicklung 338

Beispiel für einen geschützten Bereich Methode mit individuellem Code in EMF: In RaumImpl.java: Taentzer Modellgetriebene Softwareentwicklung 339

Generation Gap Pattern heikobehrens.net handgeschriebene Basisklassen Abstrakte Klassen, die immer generiert werden Konkrete Klassen, die nur generiert werden, wenn sie noch nicht existieren Taentzer Modellgetriebene Softwareentwicklung 340

Beispiel: Individuelle Klassen Lecturer.java: LecturerImpl.java: Taentzer Modellgetriebene Softwareentwicklung 341

Beispiel: Individuelle Klassen LecturerServiceImpl.java: Taentzer Modellgetriebene Softwareentwicklung 342

Beispiel: Getrennte Ordnerstrukturen Standardordnerstruktur für Webanwendungen: Trennung in src- und target-ordner: Taentzer Modellgetriebene Softwareentwicklung 343

Geschützte Bereiche versus individuelle Klassen/Ordner Geschützte Bereiche: Feingranulare Individualisierung Enge Verquickung von generiertem und nicht generiertem Code Anwendungsentwickler sieht den generierten Code. Der generierte Code muss versioniert werden. Individuelle Klassen/Ordner: Individualisierung auf Klassen-/Ordnerebene Klare Trennung von generiertem und individuellem Code Höhere Anzahl von Klassen und Ordnern Generierte Anteile werden eventuell nicht überschrieben, obwohl veraltet (src-once) Taentzer Modellgetriebene Softwareentwicklung 344

Geschützte Bereiche und Xtext/Xtend Designentscheidungen: Welche Codeteile dürfen individuell gestaltet werden? Warum sollen sie nicht modelliert werden? Gibt es einen Parser für die Zielsprache? Sollen geschützte Bereiche mit Ids versehen werden? Wie sollen geschützte Bereiche gekennzeichnet werden? Sollen geschützte Bereiche ein- und ausblendbar sein? Eine Lösung: https://github.com/danieldietrich/xtext-protected-regions Taentzer Modellgetriebene Softwareentwicklung 345

Beispiel für einen geschützten Bereich Methode mit individuellem Code: In Person.java: Ein geschützter Bereich, der mit einer Id versehen und ein- und ausschaltbar ist. Taentzer Modellgetriebene Softwareentwicklung 346

Installation von Xtext Protected Regions Voraussetzung: Eclipse Juno 4.2 und Xtext 2.3 Installation in Eclipse: Help -> Install New Software -> http://danieldietrich.net/protectedregions/updates/releases/current Abhängigkeiten im Require-Bundles zu Manifest.MF hinzufügen: org.eclipse.xtext.builder, net.danieldietrich.protectedregions.core, net.danieldietrich.protectedregions.xtext Taentzer Modellgetriebene Softwareentwicklung 347

Erweiterung der <Projekt>RuntimeModule-Klasse Taentzer Modellgetriebene Softwareentwicklung 348

Hinzufügen der generierten Bereichs im Generator-Template Für Methoden mit individuellem Code im Rumpf Taentzer Modellgetriebene Softwareentwicklung 349

Beispiel: Code-Generierung Modell: Generierter Code mit individuellem Anteil: Taentzer Modellgetriebene Softwareentwicklung 350

Generierte Regionen Erweiterungen Invers zu geschützten Regionen Der Inhalt eines Dokuments ist geschützt bis auf generierte Regionen, die überschrieben werden dürfen. Anschaltbare Regionen Erweiterung der geschützten und generierten Regionen Sie können an- und ausgeschaltet werden. Eine angeschaltete geschützte Region wird geschützt, sonst überschrieben. Erlaubte Ids: Konkatenation von Segmenten, mit. getrennt Ein Segment besteht aus mind. einem Buchstaben, einer Zahl, _ oder $. Taentzer Modellgetriebene Softwareentwicklung 351

Sprachunterstützung Die folgenden Zielsprachen werden unterstützt: Clojure, CSS, HTML, Java, JavaScript, PHP, Ruby, Scala, XML, Xtend2, Xtext Weitere Sprachen können unterstützt werden. Die Notation der Regionen kann individuell angepasst werden. Taentzer Modellgetriebene Softwareentwicklung 352

Zusammenfassung Geschützte Bereiche lassen eine feingranulare Individualisierung des generierten Codes zu. Enge Verquickung von generiertem und manuellem Code. Erbende Klassen ermöglichen eine klare Trennung von generiertem und individuellem Code. Bessere Versionierung Komplexere Dateienstruktur Bei einmaligem Generieren sind Refactorings nötig. Partielle Klassen erlauben einen guten Kompromiss, leider nicht in allen Sprachen. Taentzer Modellgetriebene Softwareentwicklung 353