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
|
|
- Ulrike Schreiber
- vor 8 Jahren
- Abrufe
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 Source Talk Tage Göttingen 28. August 2012 NovaTec Ingenieure für neue Informationstechnologien GmbH Leinfelden-Echterdingen, München, Frankfurt am Main, Jeddah
MehrSession 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
MehrCopyright 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
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
MehrModellgetriebene 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 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
MehrVortrag 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
MehrRobot 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
MehrWas 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
MehrSehr 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
MehrObjektorientierter 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
MehrAgile 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
MehrIst 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,
MehrEinfÅ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
MehrIndividuelle 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
MehrLizenzierung 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
MehrQt-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
MehrBauteilattribute 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...
MehrSystemen 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
MehrAlbert 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.
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrWeb 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.
MehrYouTube: 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.
MehrJava 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
MehrObjektorientierte 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
MehrNeue 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
MehrEasyWk 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
MehrIntegration 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
MehrFachbericht 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
MehrAGROPLUS 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
Mehr1 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.
MehrDatensicherung. 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
MehrBeschreibung 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,
Mehr10 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
MehrSANDBOXIE 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:
MehrPrimzahlen 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
MehrMotivation. 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
Mehr2. 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
MehrEin 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
MehrSoftwaretests 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
MehrGeoPilot (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
MehrDossier: 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
MehrSuche 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
MehrSkript 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
MehrPowerPoint 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
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
MehrHow-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
MehrAbamsoft 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
MehrFassade. 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
MehrTurtle 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.
MehrSpeicher 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
MehrPrä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
MehrMit 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
MehrEs 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
MehrKurzeinweisung. 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
MehrWichtige 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
MehrEinleitung: 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
MehrAnleitung 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
MehrInstallation 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
MehrInternet 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
MehrAnwendungshinweise 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
MehrMusterlö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
MehrUniversal 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
MehrHandbuch 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
MehrDie 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
MehrStand 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
MehrSeite 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
MehrOrdner 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.
MehrZeichen 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) Die Saartal Linien beauftragen Sie mit dem Entwurf der Datenstrukturen für ein Informationssystem. Dieses soll zur Verwaltung
MehrFachdidaktik 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,
MehrIAWWeb 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
Mehr5.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
MehrEin 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
MehrVermeiden 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
MehrUpToNet 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
MehrSoftware 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
MehrTask: 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
MehrKostenstellen 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
MehrGuide 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
MehrMicrosoft 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
MehrMaintenance & 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
MehrIT-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
MehrFTP-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...
MehrRegistrierung 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
MehrAUF 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
MehrLernwerkstatt 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 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrOERA 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
MehrINNOVATOR 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
MehrInhalt. 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...
MehrErfolg ist programmierbar.
4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568
MehrSICHERN 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
MehrAnwenderdokumentation
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
MehrApplication 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
MehrCookies. 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..........................................
MehrDiplomarbeit. 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
MehrActiveCharts. 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
MehrVgl. 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
MehrAZK 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