magazin Delivery Continuous JAVA Mag DVD-INHALT Die letzte Meile zum Release 20 Was zählt, ist gutes Design! Model-driven Beans JDeveloper und ADF

Größe: px
Ab Seite anzeigen:

Download "magazin Delivery Continuous JAVA Mag DVD-INHALT Die letzte Meile zum Release 20 Was zählt, ist gutes Design! Model-driven Beans JDeveloper und ADF"

Transkript

1 inkl. JAVA Mag DVD Happy new Grails! Version 2.0 ist da 14 Deutschland 9,80 Österreich 10,80 Schweiz sfr 19, magazin Java Architekturen Web Agile DVD-INHALT Java ist tot? Nein, #1! von Adam Bien Video von der JAX 2011 The New Generation of Enterprise Java von Stephen Burton Video von der W-JAX 2011 Google Wallet Die elektronische Brieftasche 91 Qt Java Bindings Mit Java auf die Qt Libraries zugreifen 97 Programm ab Seite 51 Continuous Delivery Buchauszüge Cloud Computing Java-Core- Programmierung Single Source Publishing Die komplette Ausgabe des Android Magazin 3.11 als PDF Die letzte Meile zum Release 20 Was zählt, ist gutes Design! Interview mit Martin Fowler, Erik Dörnenburg und Wolf Schlegel 29 Alle DVD-Infos ab Seite 2 Cloud-Plattform OpenShift JBoss in den Wolken S. 35 JDeveloper und ADF ADF goes mobile S. 84 Model-driven Beans EJB 3 modellgetrieben entwickeln S. 61

2 EJB 3 Enterprise Model-driven Beans EJB 3 modellgetrieben entwickeln Das Modell wird zum Hauptdarsteller Die modellgetriebene Softwareentwicklung (Model-driven Development, kurz MDD) wird in der Softwaretechnik seit einigen Jahren nicht mehr nur als vielversprechender Ansatz diskutiert, sondern in mittleren und großen Projekten erfolgreich praktiziert. Dabei gibt es einige Eigenheiten, die es für eine erfolgreiche Realisierung zu beachten gilt. In diesem Artikel wird die modellgetriebene Softwareentwicklung in Kombination mit der Komponentenarchitektur der Enterprise Java Beans vorgestellt. von Christian Schwörer und Konrad Pfeilsticker Unabhängige Technologie- und Marktforschungsunternehmen, wie Forrester [1] oder Gartner mit ihrem jährlich erscheinenden Hype Cycle [2], attestieren dem modellgetriebenen Paradigma eine zunehmende Schlüsselrolle in der Softwareentwicklung. Auch praxisnahe Umfragen, die sich mit Verbreitung und Einsatz modellgetriebener Techniken und Werkzeuge beschäftigen, bestätigen die steigende Relevanz [3], [4]. Bei der praktischen Umsetzung von MDD können für den Entwicklungsprozess zahlreiche Vorteile und Verbesserungen erreicht werden. Jedoch gilt es im Umkehrschluss, auch einige neue Aspekte zu berücksichtigen, die bei der konventionellen Softwareentwicklung so nicht auftreten. Daher wird im Folgenden zunächst das modellgetriebene Paradigma charakterisiert, um anschließend die Enterprise Java Beans 3 (EJB 3) als mögliche Zielarchitektur kurz vorzustellen. Basierend auf dieser grundlegenden Einführung wird dargelegt, wie eine ideale Verknüpfung der beiden Technologien erreicht werden kann. Insbesondere wird darauf eingegangen, mit welchen Strategien generierte Quelltexte und manuelle Codeergänzungen kombiniert werden können. Modellgetriebene Softwareentwicklung Nicht erst seit das modellgetriebene Paradigma Einzug gehalten hat, wird Modellierung in der Softwareerstellung eingesetzt. Im Unterschied zur konventionellen Vorgehensweise bei der Softwareentwicklung dienen hier Modelle nicht ausschließlich zu Dokumentationszwecken, sondern stellen zentrale Bestandteile der Anwendungsentwicklung dar. Entsprechend werden große Teile der Anwendung im Modell spezifiziert, anstatt diese wie bei der codezentrierten Softwareentwicklung vollständig in einer Programmiersprache auszuformulieren. Demzufolge hat MDD das Ziel, automatisiert möglichst viele Artefakte eines zu erstellenden Softwaresystems generativ aus formalen Modellen abzuleiten. Die Modelle nehmen daher eine zentrale treibende Rolle in der Anwendungsentwicklung ein und sind in ihrer Bedeutung dem Quellcode gleichgestellt. Die formalen Modelle werden mit einer domänenspezifischen Sprache (DSL) erstellt. Oftmals wird dazu die Unified Modeling Language (UML) mittels des Profilmechanismus spezifisch angepasst. Prinzipiell sind aber auch andere grafische oder textuelle Notationen möglich. Einige elementare Begrifflichkeiten der modellgetriebenen Softwareentwicklung werden im Kasten Begriffsdefinition MDD definiert. Der Umstand, dass das modellgetriebene Paradigma eine höhere Automatisierung des Entwicklungsprozesses beabsichtigt, impliziert, dass dem Einsatz von Werkzeugen eine maßgebliche Bedeutung zukommt. Neben geeigneten Modellierungstools ist dies in erster Linie der Generator. In ihm sind die Transformationen vom abstrakten Modell bis zu den konkreten Quellcodeartefakten realisiert. Diese Werkzeuge müssen in den Entwicklungsprozess integriert werden. Abbildung 1 zeigt beispielhaft eine modellgetriebene Werkzeugkette. Das modellgetriebene Vorgehen verspricht gegenüber der konventionellen Softwareentwicklung eine Reihe von Vorteilen: Die Anwendungsentwicklung erfolgt auf einer höheren Abstraktionsebene. Architekturvorgaben lassen sich besser durchsetzen. Zentrale Framework- oder Architekturänderungen lassen sich besser ausrollen. Die Entwicklungseffizienz und der Automatisierungsgrad werden erhöht. javamagazin

3 Enterprise EJB 3 Zielplattform, für die Code generiert wird, Auswirkung auf die Definition der Transformationsregeln und somit des Generators. Im Folgenden werden einige dieser zu berücksichtigenden Besonderheiten für die Zielplattform Java EE skizziert. Abb. 1: Exemplarische modellgetriebene Werkzeugkette Die Wiederverwendung wird vereinfacht. Die Softwarequalität kann gesteigert werden. Eine Plattformunabhängigkeit lässt sich einfacher realisieren. Diese Vorteile ergeben sich jedoch nicht von selbst. Vielmehr müssen für eine erfolgreiche Umsetzung bestimmte Faktoren beachten werden. Unter anderem hat die Begriffsdefinitionen MDD Formales Modell: Ein Modell ist stets ein abstrahiertes Abbild eines Originals. Bei formalen Modellen handelt es sich um Modelle mit klarer Syntax und Semantik. Das heißt, es ist eindeutig geregelt, welche Notationselemente (Symbole, Zeichen, Wörter) erlaubt sind und was genau diese Elemente bedeuten. Metamodell: Bei der Metamodellierung werden Modelle wiederum durch Modelle beschrieben, die dann Metamodelle genannt werden. Das Metamodell bringt somit Struktur, Beziehungen und Einschränkungen eines konkreten Modells zum Ausdruck. Domäne: Modellgetriebenes Vorgehen erfolgt immer im Rahmen einer Domäne. Darunter versteht man ein klar abgegrenztes Interessens- oder Wissensgebiet. DSL: Bei einer domänenspezifischen Sprache handelt es sich um eine formale Sprache zur abstrakten Darstellung von Sachverhalten einer Domäne. Die Ausdrücke einer DSL sind für Mensch und Maschine verständlich: Ein vom Domänenexperten mit der DSL erstelltes, formales Modell kann von einem Generator verarbeitet werden. M2M-Transformation: Eine Modell-zu-Modell-Transformation (M2M) ist eine Komponente einer MDD-Werkzeugkette, die Modelle entgegennimmt und daraus wiederum ein oder mehrere Modelle erzeugt. Dies dient zur Überbrückung der Lücke zwischen verschiedenen Abstraktionsebenen. M2T-Transformation: Bei einer Modell-zu-Text-Transformation (M2T) werden aus formalen Modellen plattformspezifische Textartefakte wie Quellcode und Konfigurationsdateien generiert. Die Transformationsart wird auch als Modellzu-Code (M2C) oder ganz allgemein als Codegenerierung bezeichnet. EJB Einen wesentlichen Bestandteil der Java-EE-Plattform bilden EJBs. Sie stellen die serverseitige Komponentenarchitektur zur modularen Entwicklung von komplexen, verteilten Softwaresystemen dar. Seit Java EE 5 gibt es EJB 3, das einige gravierende Nachteile der Vorgängerversionen ausräumt [5]. So steht etwa mit dem Java Persistence API (JPA) als Bestandteil von EJB 3 eine deutlich vereinfachte Schnittstelle zur persistenten Abbildung von Objekten in Datenbanken bereit (Anmerkung: Seit JPA 2.0 ist dieses eigenständig und steht nicht mehr in zwingender Abhängigkeit zu den EJBs). Dieser Weg der Vereinfachung wird mit Java EE 6 und der darin spezifizierten EJB-Version 3.1 konsequent fortgeführt. Grundsätzlich lassen sich drei EJB-Typen unterscheiden: Session Beans, Entities und Message-driven Beans (Kasten: EJB-Typen ). Ein seit Java EE 5 stark genutztes Prinzip, das maßgeblich zur Reduktion der Komplexität beiträgt, ist Convention over Configuration (CoC). Darunter ist der Grundsatz zu verstehen, dass alle Artefakte der Anwendungsentwicklung, die der JEE-Konvention folgen, nicht konfiguriert werden müssen. Lediglich applikationsspezifische und unkonventionelle Aspekte einer Anwendung müssen explizit konfiguriert werden. Ist aus Konfigurationsgründen das Hinzufügen von Metadaten erforderlich, werden diese üblicherweise im Quelltext über das Sprachelement der Annotationen eingebunden. So wird beispielsweise die Ausprägung der erwähnten Session Beans anhand der definiert. Ein weiteres Konstrukt zur Angabe von Metadaten sind die bereits aus früheren Java-EE-Versionen bekannten Deployment-Deskriptoren. In diesen können XML-basiert Metainformationen hinzugefügt oder im Quelltext definierte Annotationen überschrieben werden. Es lässt sich also prinzipiell folgende Hierarchie festhalten: Als erstes Prinzip steht CoC, das heißt, alle der JEE-Konvention entsprechenden Elemente müssen nicht konfiguriert werden. Notwendige Abweichungen werden über Annotationen definiert, die wiederum durch Deployment-Deskriptoren ergänzt und überschrieben werden können. Besonderheiten der modellgetriebenen Entwicklung mit EJB 3 Will man nun eine optimale Kombination des beschriebenen Ease of Use von EJB 3 mit den Vorteilen des modellgetriebenen Vorgehens erreichen, gilt es einige 62 javamagazin

4 EJB 3 Enterprise Besonderheiten zu berücksichtigen. So stellt unter anderem die Kombination von generiertem und manuell implementiertem Quellcode eine zentrale Herausforderung dar. Dies hat den Hintergrund, dass eine pragmatische Auslegung des modellgetriebenen Ansatzes in der Regel nicht zum Ziel hat, alle Bestandteile einer Anwendung generativ zu erzeugen. Vielmehr wird ein Implementierungsrahmen generiert, der große Teile des Infrastrukturcodes enthält. Dieser Code kann bis zu zwei Drittel einer Unternehmensanwendung ausmachen und ist gekennzeichnet durch sich wiederholende Konstrukte, sodass er sich für die automatisierte Erzeugung anbietet. Der so generierte Implementierungsrahmen wird vom Entwickler durch manuell in der Zielsprache implementierten Code ergänzt, der weitere Teile der fachspezifischen Anwendungslogik enthält. Dies erfordert jedoch ein Verfahren, wie generierter Quelltext mit manuellen Ergänzungen kombiniert werden kann. Dazu sind die nachfolgenden Strategien denkbar. Geschützte Bereiche Bei dieser Vorgehensweise werden in den generierten Codeartefakten so genannte Protected Regions vorgesehen, in denen der Entwickler manuellen Code einfügen kann. Die Bereiche sind speziell markiert, sodass sie vom Generator erkannt werden. Bei den folgenden Generatorläufen wird der manuell hinzugefügte Quelltext nicht überschrieben. Bei diesem einfach zu realisierenden Ansatz findet keine Trennung von Generator und handgeschriebenen Ergänzungen auf physikalischer Dateiebene statt, was einige gravierende Nachteile mit sich bringt. So ist beispielsweise das Versionsmanagement unsauber, da auch der generierte Code zwangsläufig in das Versionierungssystem eingecheckt wird. Ebenso gehen manuelle Ergänzungen außerhalb der geschützten Bereiche bei der nächsten Generierung unweigerlich verloren. Zusätzlich wird der Codegenerator komplexer, da er geschützte Bereiche verwalten, erkennen und erhalten muss. Daher wird dieser Ansatz auch nicht von allen Generatorframeworks unterstützt. Vererbung Eine striktere Trennung der Artefakte lässt sich erreichen, indem die Mittel der Zielsprache genutzt werden, um die unterschiedlichen Aspekte in verschiedenen Dateien zu hinterlegen. Eine Lösung, die sich bei einer objektorientierten Sprache wie Java anbietet, ist die Aufteilung mittels Vererbung. Abbildung 2 zeigt diese Strategie, erweitert um eine mögliche Ableitung von Frameworkklassen. Dabei wird vom Generator eine abstrakte Oberklasse erzeugt, die alle aus dem Modell abgeleiteten (und somit generierbaren) Aspekte beinhaltet. Diese Klasse wird bei jedem Generatorlauf überschrieben und beinhaltet demzufolge immer die im Modell definierten Informationen. Abgeleitet von dieser Oberklasse ist die Implementierungsklasse, die nur initial vom Generator erzeugt und bei den folgenden Generatorläufen nicht mehr automatisch überschrieben Abb. 2: Kombination von generiertem und manuell ergänztem Quelltext mittels Vererbung Abb. 3: Kombination von generiertem und manuell ergänztem Quelltext mittels Delegation Kann eine Schulungseinrichtung für mehr als EINEN Themenbereich berühmt werden? Das Linuxhotel ist bekannt für erstklassige Open- Source-Schulungen. In den letzten Jahren kamen Java und andere Programmiersprachen hinzu - wie immer in Kooperation mit führenden Spezialisten. Es ist naheliegend, auch Entwicklerthemen bei den OpenSource lern zu lernen, weil man dort schon immer sehr unter die Haube guckte... Mehr siehe

5 Enterprise EJB 3 durch Vererbung für EJB 3 nicht problemlos übernommen werden. Abb. 4: Mikroarchitektur zur Trennung von generiertem und manuell erstelltem Code am Beispiel der Session Bean CustomerService Delegation Neben der Vererbung bieten objekt orientierte Sprachen wie Java mit der Delegation ein zweites Konzept zur Wiederverwendung von Programmcode an. Dabei stellt ein Objekt zwar Funktionalität nach außen zur Verfügung, delegiert aber die Verantwortung dafür an andere Objekte. Wird dieses Prinzip zur Trennung von generierten und manuell zu ergänzenden Artefakten bei EJB 3 angewendet, enthält eine generierte Klasse sämtliche notwendige Metainformationen in Form von Annotationen. Methodenaufrufe werden von ihr an eine manuell veränderbare Implementierungsklasse weitergeleitet, das heißt delegiert (Abb. 3). Die Umsetzung der Delegation für EJB 3 stellt sich jedoch sehr aufwändig dar, da die Mikroarchitektur der generierten Artefakte äußerst komplex wird und somit ihre Les- und Wartbarkeit erschwert werden. Abb. 5: Mikroarchitektur zur Trennung von generiertem und manuell erstelltem Code am Beispiel der Entity Customer wird. Folglich können hier manuelle Erweiterungen vorgenommen werden. Diese Strategie basiert auf dem so genannten Generation Gap Pattern [6]. Leider lässt sich dieses in der MDD-Praxis etablierte Prinzip nicht problemlos auf EJB-3-Artefakte übertragen, da die Vererbung von Java-Annotationen nur bedingt möglich ist. So muss etwa die Annotation zur Ausprägung einer Session Bean (@Stateful direkt in der Implementierungsklasse angegeben werden und kann nicht von einer generierten, abstrakten Oberklasse geerbt werden. Ebenso verhält es sich bei der Definition einer persistenten Entity (@Entity), die in der konkreten Implementierungsklasse erfolgen muss. Da sich diese Metadaten jedoch aus den im Modell spezifizierten Informationen ergeben und demzufolge generativ erzeugt werden, kann der Ansatz der Trennung Deployment-Deskriptoren Die Auslagerung aller Metadaten in die Deployment-Deskriptoren ist eine EJB-spezifische Strategie. Wie zuvor beschrieben, lassen sich prinzipiell alle Metadaten in die Konfigurationsdateien auslagern. Dazu werden zusätzlich zu den einmalig beim ersten Generatorlauf erzeugten Implementierungsklassen die benötigten Deployment-Deskriptoren generiert. Sie enthalten alle Metainformationen und werden bei jedem Generatorlauf neu erzeugt. Ein Hauptproblem dieses Ansatzes besteht darin, dass beispielsweise das nachträgliche Hinzufügen einer Methode zu einer bestehenden Session Bean im Modell nicht generativ abgebildet werden kann, da die Implementierungsklasse nur einmalig erzeugt und dann manuell verändert wird. Zudem stellt die reine Nutzung von konfigurativen Deployment-Deskriptoren sozusagen einen Rückfall in die J2EE-Welt dar und berücksichtigt die Vorteile des aktuellen Java- EE-Standards nicht. Konkrete Realisierung Wie aus dem vorherigen Abschnitt hervorgeht, kann keine der beschriebenen Strategien problemlos für 64 javamagazin

6 EJB 3 Enterprise EJB 3 adaptiert werden: Die geschützten Bereiche bringen prinzipiell eine Reihe von Nachteilen mit sich und sollten nur als Notlösung betrachtet werden. Der Einsatz von Vererbung hat das Problem, dass nicht alle EJB-Annotationen ableitbar sind. Bei Delegation dagegen werden die generierten Codeartefakte unnötig komplex. Eine reine Nutzung von Deployment- Deskriptoren ist wiederum zu unflexibel bezüglich Modelländerungen. Aus diesem Grund müssen für die EJB-Typen Session Bean und Entity spezielle Vorgehensweisen definiert werden. Entscheidendes Kriterium für die Erstellung der Strategien ist neben der strikten Trennung auch eine einfache Realisierbarkeit, damit die Transformationen und somit der Codegenerator beherrschbar bleiben. Zusätzlich sollen die Codebereiche, in denen der Anwendungsentwickler manuelle Ergänzungen vornehmen kann, möglichst frei von EJB- Metadaten bleiben. Dies hat sich in der Vergangenheit als Best Practice erwiesen. Vorweggenommen sei, dass es sich in beiden Fällen um eine Kombination der beschriebenen Vorgehensweisen Vererbung und Deployment-Deskriptoren handelt. Session Beans Generell wird der Ansatz der Vererbung soweit wie möglich eingesetzt. Das bedeutet, dass eine abstrakte Basisklasse generiert wird, die alle sinnvoll durch Vererbung ableitbaren Metainformationen als Annotationen beinhaltet. Darunter fallen beispielsweise eine aus dem Modell abgeleitete Injektion einer anderen EJB über oder die Einbindung des JPA-Entity- Managers Die generierte Basisklasse erhält als Namenszusatz Bean (also zum Beispiel CustomerServiceBean). Zusätzlich wird auch die Geschäftsschnittstelle, d. h. das Business Interface der Session Bean, vollständig generativ erzeugt. Sie enthält alle entsprechend modellierten Methoden, die die Session Bean bereitstellt. Die konkrete Implementierungsklasse wird einmalig generiert. Ihr Bezeichner erhält den Namenszusatz Bean- Impl, also beispielsweise CustomerServiceBeanImpl. Sie enthält bei der Erzeugung lediglich die aus dem Modell resultierenden Attribute und die Methodenrümpfe. Anschließend kann sie vom Entwickler manuell erweitert werden, das heißt, er ergänzt die einzelnen Methoden um ihre Fachlogik. Bei einer Neugenerierung wird diese Klasse nicht überschrieben. Das vierte generierte Artefakt ist der Deployment- Deskriptor (ejb-jar.xml). Er enthält alle Metainformationen, die von der Implementierungsklasse nicht sinnvoll aus der Basisklasse abgeleitet werden können. Dazu zählen unter anderem der Zustand (<session-type>stateless</session-type> bzw. <session-type>stateful</session-type>) sowie die Angaben zur Transaktionalität der Klasse oder einer Methode (<trans-attribute>...</trans-attribute>). Die Implementierungsklasse bleibt somit komplett frei von EJB- Metadaten und kann vom Entwickler wie ein echtes POJO vervollständigt werden. Auch der Deployment- Deskriptor wird, wie die abstrakte Basisklasse und das Business Interface, bei einer erneuten Generierung komplett neu erzeugt und überschrieben. Den Zusammenhang der einzelnen Artefakte zeigt die Mikroarchitektur in Abbildung 4. Entities Auch bei den Entities wird die Trennung durch den Vererbungsansatz in Kombination mit dem Deployment- Deskriptor realisiert, wie in Abbildung 5 zu sehen ist. Bei jedem Generatorlauf wird eine Basisklasse generiert, die alle sich aus dem Modell ergebenden Attribute mit den zugehörigen Getter- und Setter-Methoden enthält. Diese werden soweit möglich mit JPA-Annotationen versehen. Darunter fallen beispielsweise Angaben zu Tabellenspalten (@Column), Primärschlüsseln (@Id) und Relationen zwischen Für eine korrekte, objektrelationale Abbildung muss die abstrakte Basisklasse anstelle mit der gekennzeichnet werden. Damit wird sichergestellt, dass lediglich die abgeleitete Implementierungsklasse, die alle Attribute und die entsprechenden Mapping-Informationen von erbt, persistiert wird. Alle Metadaten, die nicht aus der generierten Oberklasse abgeleitet werden können, werden wiederum in den entsprechenden Deployment-Deskriptor (orm.xml) ausgelagert. Hierunter fällt etwa die Kennzeichnung der Implementierungsklasse als persistente Entity (mittels <entity.../>). Somit ist auch hier die Implementierungsklasse, die nur einmalig erzeugt wird und anschließend manuell ergänzt werden kann, frei von EJB-spezifischen Metadaten. EJB-Typen Bei Session Beans handelt es sich um nicht persistente Komponenten, in denen die Geschäftslogik einer Anwendung implementiert ist. Es gibt sie in den zwei verschiedenen Ausprägungen zustandsbehaftet (stateful) und zustandslos (stateless). Entities stellen die fachlichen Geschäftsobjekte dar, mit denen die in den Session Beans implementierte Geschäftslogik arbeitet. Eine persistente Entity repräsentiert somit eine Objektsicht auf gespeicherte Daten. Entities enthalten folglich keine nennenswerte Logik, vielmehr kapseln sie lediglich den Zugriff auf private Attribute mittels Getterund Setter-Methoden. Für die dauerhafte Speicherung der fachlichen Objekte und Sachverhalte basieren persistente Entities auf dem Konzept der objektrelationalen Abbildung (Object-Relational Mapping, ORM), die im Regelfall über JPA realisiert wird. Message-driven Beans (MDB) dienen zur Realisierung nachrichtenbasierter Kommunikation in Java-EE-Systemen. Beim weiteren Vorgehen finden MDBs keine Verwendung, weshalb auf eine ausführlichere Beschreibung verzichtet wird. javamagazin

7 Enterprise EJB 3 Im Gegensatz zu den oben beschriebenen Artefakten der Session Beans erhält bei einer Entity lediglich die Basisklasse einen Namenszusatz. Dies hat den Hintergrund, dass der Verwender einer Session Bean immer mit der Geschäftsschnittstelle arbeitet und die Implementierungsklasse für ihn verborgen bleibt. Hier ist die Benennung der Geschäftsschnittstelle ausschlaggebend. Der Verwender einer Entity arbeitet dagegen mit der konkreten Implementierungsklasse, sodass diese sinnvoll benannt sein muss. Demgemäß erhält die Implementierungsklasse den prägnanten Namen (zum Beispiel Customer) und die Basisklasse einen Namenszusatz (entsprechend CustomerBase). Fazit Die beiden dargestellten Generierungsstrategien folgen der zu Beginn beschriebenen Hierarchie, gemäß derer das CoC-Paradigma mittels Annotationen und Deployment-Deskriptoren überschrieben werden kann. Sie basieren somit auf einem der Grundprinzipien des aktuellen Java-EE-Standards. Grundsätzlich lässt sich festhalten, dass für eine sinnvolle Trennung von generierten und manuell erstellten Quelltexten nach Möglichkeit die Mittel der Zielsprache genutzt werden sollten. Für objektorientierte Sprachen empfiehlt sich die beschriebene Vererbungsstrategie, da sie sich in der modellgetriebenen Praxis etabliert hat und relativ einfach zu realisieren ist. Des Weiteren ist der Zusammenhang der generierten Artefakte für den Anwendungsentwickler gut nachvollziehbar und beispielsweise auch problemlos Debug-fähig. Sollte die Strategie nicht vollständig nutzbar sein, muss sie spezifisch erweitert werden, so wie im beschriebenen Fall für EJB 3 mit den Deployment-Deskriptoren. Um die Trennung auf der Dateiebene weiter zu manifestieren, sollten für die unterschiedlichen Artefakte auch verschiedene Quellordner verwendet werden. Als Best Practice hat sich etabliert, die Generate in ein Verzeichnis src-gen zu erzeugen. Die manuell ergänzten Implementierungsklassen werden dagegen in einem Quellverzeichnis src-man gespeichert. Diese Aufteilung bildet auch die Grundlage für eine saubere Trennung bei der Versionskontrolle. Der generierte Code ist vollständig aus dem Modell reproduzierbar und sollte daher auch nicht in ein Versionierungssystem eingecheckt werden. Somit müssen zusätzlich zu den Modellen, in denen die relevanten Informationen enthalten sind, lediglich die Quelltexte in src-man versioniert werden. Weitere, allgemeiner gehaltene Informationen und Handlungsempfehlungen zur modellgetriebenen Softwareentwicklung finden sich unter [7] bzw. [8]. Abschließend lässt sich festhalten, dass die Praxistauglichkeit der beschriebenen Umsetzungsstrategien anhand eines Migrationsprojekts verifiziert wurde. Dabei wurde die Zielplattform eines modellgetriebenen Entwicklungsprozesses, der von 200 Entwicklern genutzt wird und auf dessen Basis Anwendungen für mehr als 4000 Nutzer entwickelt werden, erfolgreich auf eine neue Technologie angehoben. Genauer gesagt hatte das Projekt zum Ziel, die bisherige EJB-2-basierte Anwendungsplattform durch eine EJB-3-basierte zu ersetzen. Prämisse war dabei eine möglichst geringe Beeinträchtigung des etablierten modellgetriebenen Verfahrens. Der modellgetriebene Ansatz erlaubte es, die Anwendungsentwicklung zentral umzustellen: Die UML-basierte DSL wurde angepasst und der zentral gewartete Generator, d. h. die darin enthaltenen Transformationsregeln, wurde erweitert. Durch die Verwendung der beschriebenen Trennungsstrategie konnten die Auswirkungen auf die bestehende Anwendungsentwicklung wie erhofft minimiert werden. Christian Schwörer ist Senior Consultant bei der NovaTec - Ingenieure für neue Informationstechnologien GmbH. Neben der modellgetriebenen Softwareentwicklung liegen seine Beratungsschwerpunkte im Bereich der serverseitigen Anwendungsentwicklung mit Java EE, insbesondere mit dem Java Persistence API (JPA) und Hibernate. Kontakt: christian.schwoerer@novatec-gmbh.de. Konrad Pfeilsticker ist Senior Managing Consultant und Mitglied des Managements bei der NovaTec Ingenieure für neue Informationstechnologien GmbH. Er besitzt langjährige Erfahrung in der Erstellung von Enterprise-Java-Anwendungsentwicklungs-Plattformen als Basis für die modellgetriebene Softwareentwicklung. Kontakt: konrad.pfeilsticker@novatec-gmbh.de. Links & Literatur [1] Forrester Research, Inc.: The State of Model-Driven Development Claryfying The Options For Application Development Teams, 2007, Market Research [2] Gartner Inc.: Hype Cycle for Application Development, 2010, Research [3] Forschungszentrum Informatik/Generative Software GmbH: Umfrage zu Verbreitung und Einsatz modellgetriebener Softwareentwicklung, Abschlussbericht: [4] OFFIS Institut für Informatik: MDSD Umfrage Ergebnisse und Trends- IF-ModE: MDSD_Umfrage_2009.pdf [5] Sun Microsystems Inc.: Enterprise JavaBeans 3 Final Release: download.oracle.com/otndocs/jcp/ejb-3_0-fr-eval-oth-jspec/ [6] Vlissides, John: Pattern Hatching Generation Gap: ibm.com/designpatterns/pubs/gg.html [7] Schwörer, Christian: Automatisierung durch modellgetriebene Softwareentwicklung: Aufbau einer modellgetriebenen Entwicklungsplattform, VDM Verlag Dr. Müller, 2011 [8] Völter, Markus et al.: Modellgetriebene Softwareentwicklung: Techniken, Engineering, Management, 2. Auflage, dpunkt Verlag, javamagazin

EJB 3 modellgetrieben ein Praxisbericht

EJB 3 modellgetrieben ein Praxisbericht EJB 3 modellgetrieben ein Praxisbericht Source Talk Tage Göttingen 28. August 2012 NovaTec Ingenieure für neue Informationstechnologien GmbH Leinfelden-Echterdingen, München, Frankfurt am Main, Jeddah

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Sehr geehrte Faktor-IPS Anwender,

Sehr geehrte Faktor-IPS Anwender, März 2014 Faktor-IPS 3.11 Das neue Release Faktor-IPS 3.11 steht Ihnen zum Download zur Verfügung. Wir informieren Sie über die neusten Feautres. Lesen Sie mehr Sehr geehrte Faktor-IPS Anwender, Auf faktorzehn.org

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 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

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5 Das Management von Informations- Systemen im Wandel Die Informations-Technologie (IT) war lange Zeit ausschließlich ein Hilfsmittel, um Arbeitsabläufe zu vereinfachen und Personal einzusparen. Sie hat

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

YouTube: Video-Untertitel übersetzen

YouTube: Video-Untertitel übersetzen Der Easytrans24.com-Ratgeber YouTube: Video-Untertitel übersetzen Wie Sie mit Hilfe von Easytrans24.com in wenigen Schritten Untertitel für Ihre YouTube- Videos in mehrere Sprachen übersetzen lassen können.

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Neue Funktionen in Innovator 11 R5

Neue Funktionen in Innovator 11 R5 Neue Funktionen in Innovator 11 R5 Innovator for Enterprise Architects, Java Harvester und Prüfassistent 12.11.2013 Agenda 1 2 3 Einführung Was ist neu in Innovator 11 R5? Szenario Enterprise Architektur

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Ein mobiler Electronic Program Guide für Android

Ein mobiler Electronic Program Guide für Android Whitepaper Telekommunikation Ein mobiler Electronic Program Guide für Android Prototyp für Android Apps 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller Munde. Durch

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Dossier: Rechnungen und Lieferscheine in Word

Dossier: Rechnungen und Lieferscheine in Word www.sekretaerinnen-service.de Dossier: Rechnungen und Lieferscheine in Word Es muss nicht immer Excel sein Wenn Sie eine Vorlage für eine Rechnung oder einen Lieferschein erstellen möchten, brauchen Sie

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Skript Pilotphase em@w für Arbeitsgelegenheiten

Skript Pilotphase em@w für Arbeitsgelegenheiten Die Pilotphase erstreckte sich über sechs Meilensteine im Zeitraum August 2011 bis zur EMAW- Folgeversion 2.06 im August 2013. Zunächst einmal musste ein grundsätzliches Verständnis für das Verfahren geschaffen

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 2010 Mit Folienmastern arbeiten PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die

Mehr

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

How-to: Webserver NAT. Securepoint Security System Version 2007nx

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen

Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen Was genau ist ein Turtle Chart? Ein Turtle Chart (auch Schildkrötengrafik) ist eine Prozessdarstellungsform ähnlich eines Prozesssteckbriefes.

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

Mehr

Mit exportiert man das öffentliche Schlüsselpaar. Die Datei, die dabei erzeugt wird heißt PublicKey_MediaMillionWebService.key.

Mit exportiert man das öffentliche Schlüsselpaar. Die Datei, die dabei erzeugt wird heißt PublicKey_MediaMillionWebService.key. Über eine MediaMillion - und Graffiti-Anbindung können im VM Verlags- Manager die Verkaufschancen genutzt werden. Die Verkaufschancen können über die Web-Anbindung Graffiti erfasst und schließlich über

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Kurzeinweisung. WinFoto Plus

Kurzeinweisung. WinFoto Plus Kurzeinweisung WinFoto Plus Codex GmbH Stand 2012 Inhaltsverzeichnis Einleitung... 3 Allgemeines... 4 Vorbereitungen... 4 Drucken des Baustellenblatts im Projekt... 4 Drucken des Barcodes auf dem Arbeitsauftrag

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Einleitung: Frontend Backend

Einleitung: Frontend Backend Die Internetseite des LSW Deutschland e.v. hat ein neues Gesicht bekommen. Ab dem 01.01.2012 ist sie in Form eines Content Management Systems (CMS) im Netz. Einleitung: Die Grundlage für die Neuprogrammierung

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Die Lernumgebung des Projekts Informationskompetenz

Die Lernumgebung des Projekts Informationskompetenz Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als

Mehr

Stand 10.2011 vr bank Südthüringen eg 1 von 10. Smart TAN plus Umstellungsanleitung VR-NetWorld Software

Stand 10.2011 vr bank Südthüringen eg 1 von 10. Smart TAN plus Umstellungsanleitung VR-NetWorld Software Stand 10.2011 vr bank Südthüringen eg 1 von 10 Smart TAN plus Umstellungsanleitung VR-NetWorld Software INHALTSVERZEICHNIS 1. Einführung 3 2. Allgemeine Informationen 4 3. Schritt 1 die Anmeldung des Generators

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Übungsblatt 4 Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin) Die Saartal Linien beauftragen Sie mit dem Entwurf der Datenstrukturen für ein Informationssystem. Dieses soll zur Verwaltung

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Ein mobiler Electronic Program Guide

Ein mobiler Electronic Program Guide Whitepaper Telekommunikation Ein mobiler Electronic Program Guide Ein iphone Prototyp auf Basis von Web-Technologien 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

UpToNet Workflow Workflow-Designer und WebClient Anwendung

UpToNet Workflow Workflow-Designer und WebClient Anwendung UpToNet Workflow Workflow-Designer und WebClient Anwendung Grafische Erstellung im Workflow-Designer 1 Grafische Erstellung im Workflow-Designer Bilden Sie Ihre Arbeitsvorgänge im Workflow-Designer von

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Microsoft PowerPoint 2013 Folien gemeinsam nutzen Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft PowerPoint 2013 Folien gemeinsam nutzen Folien gemeinsam nutzen in PowerPoint 2013 Seite 1 von 4 Inhaltsverzeichnis Einleitung... 2 Einzelne

Mehr

Maintenance & Re-Zertifizierung

Maintenance & Re-Zertifizierung Zertifizierung nach Technischen Richtlinien Maintenance & Re-Zertifizierung Version 1.2 vom 15.06.2009 Bundesamt für Sicherheit in der Informationstechnik Postfach 20 03 63 53133 Bonn Tel.: +49 22899 9582-0

Mehr

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

Registrierung am Elterninformationssysytem: ClaXss Infoline

Registrierung am Elterninformationssysytem: ClaXss Infoline elektronisches ElternInformationsSystem (EIS) Klicken Sie auf das Logo oder geben Sie in Ihrem Browser folgende Adresse ein: https://kommunalersprien.schule-eltern.info/infoline/claxss Diese Anleitung

Mehr

AUF LETZTER SEITE DIESER ANLEITUNG!!!

AUF LETZTER SEITE DIESER ANLEITUNG!!! BELEG DATENABGLEICH: Der Beleg-Datenabgleich wird innerhalb des geöffneten Steuerfalls über ELSTER-Belegdaten abgleichen gestartet. Es werden Ihnen alle verfügbaren Belege zum Steuerfall im ersten Bildschirm

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt OERA OpenEdge Reference Architecture Mike Fechner PUG Infotag 19. Mai 05 Frankfurt Überblick OERA Separated presentation and integration layers Common business logic with advanced models Data access abstracted

Mehr

INNOVATOR im Entwicklungsprozess

INNOVATOR im Entwicklungsprozess Erfahrungsbericht INNOVATOR im Entwicklungsprozess Basis für Host- und Java-Anwendungen Dr. Carl-Werner Oehlrich, Principal Consultant MID GmbH Das Modellierungswerkzeug INNOVATOR Geschäftsprozess-Modellierung

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568

Mehr

SICHERN DER FAVORITEN

SICHERN DER FAVORITEN Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich

Mehr

Anwenderdokumentation

Anwenderdokumentation Anwenderdokumentation LS Viola Software-Version: 8.02.05 Dokumenten-Version: 2.2 Stand: 3/2014 2014 BS software development GmbH & Co. KG Inhaltsverzeichnis Kapitel 1 Einsatzzweck der Anwendung... 1 Kapitel

Mehr

Application Lifecycle Management als strategischer Innovationsmotor für den CIO

Application Lifecycle Management als strategischer Innovationsmotor für den CIO Application Lifecycle Management als strategischer Innovationsmotor für den CIO Von David Chappell Gefördert durch die Microsoft Corporation 2010 Chappell & Associates David Chappell: Application Lifecycle

Mehr

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel 2 Inhaltsverzeichnis 1 Cookies 4 1.1 Regelungen......................................... 4 1.2 Verwaltung..........................................

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation

Mehr

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr