Thema 4 Acceleo- Sprachmittel und Generatorstruktur
|
|
- Herbert Holzmann
- vor 8 Jahren
- Abrufe
Transkript
1 SE Vertiefung Beuth-Hochschule Berlin Thema 4 Acceleo- Sprachmittel und Generatorstruktur
2 1. ACCELEO-PRAXIS (c) schmiedecke 14 SE3 2
3 Abgeguckt bei Obeo UmlToJava Es gibt zwei Generatorprojekte UmltoJava UmlToJava (Helios) einfach über den Marketplace installieren (überschaubarer, hier überwiegend verwendet) UmlToJava (Kepler) über das Obeo-Network von Github herunterladen (Anspruchsvoll, Projekt wird fortgeführt) (c) schmiedecke 14 SE3 3
4 Templating-Sprache Ein Generator besteht aus Templates (+ Queries + Properties) (mind.) ein Template wird als Main Template ausgezeichnet Die Ausgabe erfolgt in die Datei, die im File-Block angegeben ist Mehrere File-Blöcke sind möglich, aber nur nacheinander (c) schmiedecke 14 SE3 4
5 Beispiel 1 [comment encoding = UTF-8 /] [module generateumltojava(' [template public generate(aclass : Class)] [file (aclass.name.concat('.java'), false)] public class [aclass.name.toupperfirst()/] { [for (p: Property aclass.attribute) separator('\n')] private [p.type.name/] [p.name/]; [/for] [for (p: Property aclass.attribute) separator('\n')] public [p.type.name/] get[p.name.toupperfirst()/]() { return this.[p.name/]; } [/for] } [/file] (c) schmiedecke 14 SE3 5 [/template]
6 Beispiel 1a [module generatejava(' [import common/] [import interfacebody/] [import org::eclipse::acceleo::module:.example::uml2java::helios::common::classbody/] [template public generateclass(c : Class)] /] [file (c.getfullpathfile().trim(), false)] [_commentfileblock()/] [c.packageblock()/] [importblock()/] [_commentbodyblock()/] [c.generateclassbody()/] [/file] [/template] (c) schmiedecke 14 SE3 6
7 Beispiel 1b zweites Main Module und zweites File [template public generateinterface(i : Interface)] /] [file (i.getfullpathfile().trim(), false)] [_commentfileblock()/] [i.packageblock()/] [importblock()/] [_commentbodyblock()/] [i.generateinterfacebody()/] [/file] [/template] [query public getjavafilename (name : String) : String = name.concat('.java') /] (c) schmiedecke 14 SE3 7
8 Templates - Details Templates haben keinen Rückgabetyp, sie erzeugen Output (String) Templates haben Parameter, die Typen sind Metamodell-Elemente Ein Template-Aufruf wird nur ausgeführt, wenn der Parameter "passt" (bzw. die Parameter passen) Bei Anwendung auf eine Menge von Elementen wird das Template wiederholt angewendet (s. Folgefolie) Templates realisieren Polymorphie sie werden je nach Parameter-(Sub-)Typ ausgewählt (s. Folgefolie) (c) schmiedecke 14 SE3 8
9 Beispiel 2a: Schleife und Typ-Switch Quelle: Acceleo Best Pracitces [template public classswitchtemplate(eclass : Eclass) [for (enamed : ENamendeElement eclass.eallcontents(enamedelement))] [if (enamed.ocliskindof(etypedelement))] do something for ETypedElement [elseif (enamed.ocliskindof(estructuralfeature))] do something for EStructuralFeature [elseif (enamed.ocliskindof(eattribute))] do something for Eattribute [/if] [/for] [/template] (c) schmiedecke 14 SE3 9
10 Beispiel 2b: Menge und Polymorphie [template public polymorphicclasstemplate(eclass : EClass)] [eclass.eallcontents(enamedelement).dosomething()/] [/template] [template private dosomething(arg : ETypedElement)] do something for ETypedElement [/template] [template private dosomething(arg : EStructuralFeature)] do something for EStructuralFeature [/template] [template private dosomething(arg : EAttribute)] do something for EAttribute [/template] [template (c) schmiedecke private 14 dosomething(arg : ENamedElement)] SE3 [/template] 10
11 Navigieren im Modell Navigieren im Modell erfolgt anhand des Metamodells Zu den Attributen liefert typischerweise einfache Werte [c.name/] Über die Assoziationen des Metamodells liefert typischerweise Mengen!! [c.superclass/] Über die Funktionen des EMF-GenModels Über die Acceleo-Operationen auf EObject eallcontents econtainer ancestors siblings followingsiblings... (c) schmiedecke 14 SE3 11
12 Navigieren mithilfe des EMF-GenModels der UML (c) schmiedecke 14 SE3 12
13 Beispiel 3 Navigieren im Modell [template public generateclassbody(c : Class)] public [if (c.isabstract)] abstract [/if] class [c.name.toupperfirst()/] [for (superc : Class c.superclass) before(' extends ') separator(',')] [superc.name/] [/for] [for (interf : Interface c.getimplementedinterfaces()) before(' implements ') separator(',')] [interf.name/] [/for] (c) schmiedecke 14 SE3 13
14 ...erreichbar über die Acceleo-Vorhersage (c) schmiedecke 14 SE3 14
15 Beispiel 4 [for (p : Property c.getallattributes())] [if (p.upper = -1 or p.upper > 1)] private List<[p.type.name/]> [p.name/]; [else] private [p.type.name/] [p.name/]; [/if] [/for] (c) schmiedecke 14 SE3 15
16 Navigieren mithilfe des EMF-Genmodels der UML (c) schmiedecke 14 SE3 16
17 ... erreichbar über die Acceleo-Vorhersage (c) schmiedecke 14 SE3 17
18 Beispiel 5 [template public packagepath(cl : Classifier)] [cl.getnearestpackage().normalizename()/] [/template] (c) schmiedecke 14 SE3 18
19 Acceleo- Operationen wiki.eclipse/ Acceleo/ Acceleo_Operations _Reference (c) schmiedecke 14 SE3 19
20 Parametrisierte Operationen (Acceleo und Genmodel) Die meisten mengenliefernden Acceleo-Operationen können durch einen Parameter eingeschränkt werden z.b.: (c) schmiedecke 14 SE3 20
21 Beispiel 6 Parametrisierte Operationen [template public genpackagepath(anelement : Element)] [if (anelement.ancestors(component)->size() > 0)] [anelement.ancestors(component) ->first().gencomponentpath()/] [else][anelement.reqgetdefaultprojectname()/] [/if] /[anelement.reqgetsourcefolderpath()/] /[anelement.genpackagedeclaration().substituteall('.', '/').concat('/')/] [/template] (c) schmiedecke 14 SE3 21
22 Templates können eingeschränkt und mit post nachbearbeitet werden "? (Bedingung)" im Template-Tag schränkt die Gültigkeit ein "post" ermöglicht abschließende Bearbeitung des Outputs (c) schmiedecke 14 SE3 22
23 Beispiel 7 Template-Einschränkung [template private getterandsetter(aproperty : Property)? (aproperty.upper = 1)] public [if(aproperty.isstatic)] static [/if] [aproperty.reqtypename()/] get[aproperty.genname().toupperfirst()/]() { return [if(not aproperty.isstatic)]this.[/if] [aproperty.genname()/]; }... (c) schmiedecke 14 SE3 23
24 Beispiel 8 Template-Nachbearbeitung [template private normalizename(anelement : NamedElement) post(trim())] [if ((anelement.name = 'package') or (anelement.name = 'interface') or (anelement.name = 'class'))] [anelement.name.concat('_')/] [else] [anelement.name/] [/if] [/template] (c) schmiedecke 14 SE3 24
25 Operationsanwendung Operationen (Acceleo, EMF, OCL) werden angewendet Mit "." auf einfache Werte [anelement.genpackagedeclaration().substituteall('.', '/').concat('/')/] Mit "->" auf Mengen und Folgen [if (anelement.ancestors(component)->size() > 0)] (c) schmiedecke 14 SE3 25
26 Let-Blöcke Mit dem let-tag können Variablen mit der Gültigkeit des Let-Blocks definiert werden Der Let-Block wird nur dann ausgeführt, wenn die Variablen-Zuweisung typkompatibel ist (also "funktioniert") [let x : Type = myexpression] x.dosomething() [/let] Ist gleichbedeutend mit [if (myexpression.ocliskindof(type))] [myexpression.oclastype(type).dosomething()/] [/if] (c) schmiedecke 14 SE3 26
27 Beispiel 9 Let-Block Wird nur ausgeführt, falls aclass einen Wert hat [template private genclassifierbody(aclassifier : Classifier) overrides genclassifierbody] [let aclass : Class = aclassifier.oclastype(class)] [aclass.declaration()/] { [aclass.attributes()/] [aclass.constructor()/] [aclass.operations()/] [for (aproperty : Property aclass.ownedattribute ->union(aclass.reqoutgoingnavigableownedend()))] [aproperty.accessors()/] [/for] [/let] [/template] (c) schmiedecke 14 SE3 27
28 Mengenkonstruktion Die Navigation durch Metamodell liefert immer wieder Mengen Viele Acceleo- und OCL-Operationen dienen der Bearbeitung von Mengen Filtern Vereinigen Zu Sequenzen machen oder wieder zu Mengen Unterstrukturen auflösen (flatten) Vieles lässt sich mit Mengenoperationen eleganter ausdrücken als mit Schleifen ÜBEN (c) schmiedecke 14 SE3 28
29 Beispiele 10 - Mengenoperationen [template public genpackagedeclaration(anelement : Element)] [anelement.packagepath().normalizename()->reverse()->sep('.')/] [/template] [for (aparameter : Parameter ownedparameter ->select(param : Parameter param.direction = ParameterDirectionKind::return) ->first())]... (c) schmiedecke 14 SE3 29
30 OCL- Operationen wiki.eclipse.org/acceleo/ OCL_Operations _Reference Ähnlich wie Acceleo-Ops, andere Typen (c) schmiedecke 14 SE3 30
31 Queries Queries sind Expressions, d.h. Sie liefern ein Ergebnis Zweck: Kapselung / Wiederverwendung komplexer Abfragen ++Ergebnis wird gecached (Effizienzgewinn) Typischerweise, aber nicht zwingend, OCL (c) schmiedecke 14 SE3 31
32 Beispiele 11 [query public getjavafilename (name : String) : String = name.concat('.java') /] [query private packagepath(anelement : Element) : Sequence(Package) = Sequence{anElement.getNearestPackage()} ->union(anelement.getnearestpackage().ancestors()->filter(package)) ->select(pack : Package pack.oclistypeof(package)) /] [query private alldocumentation(anelement : Element) : Sequence(String) = anelement.eannotations.details->select(entry entry.key = 'documentation') ->collect(entry entry.value) /] (c) schmiedecke 14 SE3 32
33 Queries als Java Wrapper Services EMF liefert das Modell als Java-Objektbaum und ein Traversierungs-API (GenModel) Alle Abfragen lassen sich auch in Java formulieren Dort, wo das leichter ist, kann Java-Code geschrieben und innerhalb einer Query mit "invoke" gerufen werden (s. Getting-Started-Tutorial) (c) schmiedecke 14 SE3 33
34 Konstanten Konstanten können als Property-Datei hinterlegt werden Syntax: Schlüssel = Text (c) schmiedecke 14 SE3 34
35 ACCELEO BEST PRACTICES (c) schmiedecke 14 SE3 35
36 Quellen (c) schmiedecke 14 SE3 36
37 Best practices: Naming Conventions A. Naming conventions Project (eclipse plugin): <domain><project name (optional)><kind of input (optional)><input metamodel name>gen<output language name> Example: com.mydomain.myproject.pim.uml.gen.java Modules, variables camel case names, avoid acceleo or ocl keywords: Acceleo keywords: module, import, extends, template, query, public, private, protected, guard, init,overrides, each, before, after, for, if, elseif, else, let, elselet, trace, macro,file, mode, text_explicit, code_explicit, super, stdout OCL keywords: and, body, context, def, derive, else, end, if, endpackage, false, if, implies, in, init, inv, invalid, let, not, null, (c) schmiedecke or, package, 14 post, pre, self, static, SE3 then, true, xor 37
38 BP: Package Structure Root package should share the same name of the project. Example: com.mydomain.myproject.pim.uml.gen.java Subpackages main all modules with main templates and their matching launcher class files all modules that will generate a file common all utility modules request / query all modules that contains utility requests (queries) on the input model services all modules wrapping Java classes properties (c) all schmiedecke properties 14 files SE3 38
39 BP: Package Structure (c) schmiedecke 14 SE3 39
40 BP: Package Export B. 3. Exporting packages The main package, the properties package and the service package need to be exported. Java services will not work when the generator is deployed if the package containing those package is not exported in the MANIFEST.MF (runtime tab). It is recommended to export all other packages but to keep them "hidden from all plugins". (c) schmiedecke 14 SE3 40
41 Der Rest ist ÜBEN und ABGUCKEN...
Thema 2 Acceleo-MTL- Sprachmittel
SE Vertiefung Beuth-Hochschule Berlin Thema 2 Acceleo-MTL- Sprachmittel Sprachstruktur Template-Sprache implementiert MOFM2T Bausteine: Modul Template Query Block Protected Area (c) schmiedecke 13 Generator-Kapsel;
MehrWhiteStarUML Tutorial
WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/
MehrSoftware Engineering II
Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters
MehrSEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.
SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrSoftware Engineering II
Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt
MehrWebService in Java SE und EE
Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.
MehrEMF-GMF-Tutorial: Petrinet
EMF-GMF-Tutorial: Petrinet Petrinet-Metamodell anlegen 1. File/New/Other: Empty EMF Project Project Name: de.upb.agengels.se.petrinet 2. Rechtsklick auf model-verzeichnis => New/Other: Ecore Diagram Domain
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Mehrpublic class SternchenRechteckGefuellt {
Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrMenü auf zwei Module verteilt (Joomla 3.4.0)
Menü auf zwei Module verteilt (Joomla 3.4.0) Oft wird bei Joomla das Menü in einem Modul dargestellt, wenn Sie aber z.b. ein horizontales Hauptmenü mit einem vertikalen Untermenü machen möchten, dann finden
MehrScala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrWEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?
WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrKapitel MK:IV. IV. Modellieren mit Constraints
Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Mehr1. Schritt: Export Datei im Fidelio erstellen
FIDELIO FRONT OFFICE MAILING MIT MAIL MERGE 1. Schritt: Export Datei im Fidelio erstellen Mail Merge erstellen Unter OPTIONEN ->BERICHTE unter WERBUNG auf VORBEREITUNG MAIL anwählen MAIL MERGE Maske öffnet
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrNützliche Tipps für Einsteiger
Nützliche Tipps für Einsteiger Zusätzliche Browsertabs - effizienter Arbeiten Ein nützlicher Tipp für das Arbeiten mit easysys ist das Öffnen mehrerer Browsertabs. Dies kann Ihnen einige Mausklicks ersparen.
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
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
MehrDieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
MehrGrundlagen der Videotechnik. Redundanz
Grundlagen der Videotechnik Redundanz Redundanz beruht auf: - statistischen Abhängigkeiten im Signal, - Information, die vorher schon gesendet wurde - generell eine Art Gedächtnis im Signal Beispiel: Ein
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrInformatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto
programmieren in Delphi am Beispiel der konkreten Klasse Auto Auto -Baujahr -Typ -Besitzer -Farbe -Kilometerstand -Fahren() -Bremsen() Objekt1: Auto Typ: Golf Baujahr: 1998 Besitzer: Peter Farbe: rot Kilometerstand:
Mehr4. AuD Tafelübung T-C3
4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {
MehrVNUML Projektpraktikum
VNUML Projektpraktikum Michael Monreal, Tomasz Oliwa 14. Juni 2006 Abstract Entstanden im Projektpraktikum Simulationen mit User Mode Linux, der vnuml Multiinstaller und VOToN, das VNUML-Old-To-New Programm
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Mehr4 Vererbung, Polymorphie
4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrEntwurf: opsi Erweiterung für Roaming Profiles
Stand: 06.09.2011 uib gmbh Bonifaziusplatz 1b 55118 Mainz Tel.:+49 6131 275610 www.uib.de info@uib.de i Inhaltsverzeichnis 1 opsi Erweiterung für 1 1.1 Vorbedingungen für die opsi Erweiterung für......................
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
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
Mehr1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrDer lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
MehrErstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrPraktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005
Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:
MehrVeröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense 2.0.6 Copyright 1993-2015 QlikTech International AB. Alle Rechte vorbehalten.
Veröffentlichen von Apps, Arbeitsblättern und Storys Qlik Sense 2.0.6 Copyright 1993-2015 QlikTech International AB. Alle Rechte vorbehalten. Copyright 1993-2015 QlikTech International AB. Alle Rechte
MehrEinrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)
Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrSchnellanleitung: Verbuchung von Studien- und Prüfungsleistungen
Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen Die folgenden Schritte sind für die Verbuchung von Studien- bzw. Prüfungsleistungen notwendig. Eine Online-Anleitung mit vielen weiterführenden
MehrWie konfiguiriert man Eclipse (mit oder ohne Plugin) Erich Ehses
Wie konfiguiriert man Eclipse (mit oder ohne Plugin) Erich Ehses Man kann die nötigen Dateien separat von den angegebenen Quellen beziehen oder das Eclipse- Plugin für java_cup verwenden. Am Ende benötigt
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrSoftwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel
Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrÜbungen für Woche 10
Übungen für Woche 10 Martin Rubey 12. Januar 2011 Die folgenden Übungen sollen den Umgang mit Backtracking und kombinatorischen Spezies näherbringen. Genaue Hinweise gibt es erst auf Seite 5. Zur Erinnerung:
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
MehrKlassendefinitionen verstehen
Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen
MehrS/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrP&P Software - Adressexport an Outlook 05/29/16 14:44:26
Adressexport an Outlook Wozu? Aus EASY können viele Daten im Excelformat ausgegeben werden. Diese Funktion kann zum Beispiel zum Export von Lieferantenadressen an Outlook genutzt werden. Hinweis Wir können
MehrImport und Export von Übergängern
Import und Export von Übergängern SibankPLUS bietet Ihnen eine komfortable Schnittstelle, um den Wechsel der Schüler nach der Stufe 4 von der Grundschule auf eine weiterführende Schule zu verarbeiten.
MehrDefinition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrFunktionales Programmieren in Python
Wintersemester 2008/2009 1 Funktionen sind Objekte 2 lambda Funktionen 3 apply 4 map 5 zip 6 filter 7 reduce 8 List Comprehension Funktionales Programmieren Wer nicht funktional programmiert, programmiert
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrSRH - Kurzinformation
SRH - Kurzinformation Dieses Dokument gibt eine Übersicht über das Shockley/Read/Hall-Programm, im folgenden SRH- Programm genannt. Bei dem SRH-Programm handelt es sich um ein Java Programm, welches in
Mehrmiditech 4merge 4-fach MIDI Merger mit :
miditech 4merge 4-fach MIDI Merger mit : 4 x MIDI Input Port, 4 LEDs für MIDI In Signale 1 x MIDI Output Port MIDI USB Port, auch für USB Power Adapter Power LED und LOGO LEDs Hochwertiges Aluminium Gehäuse
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
Mehr10.6 Programmier-Exits für Workitems
10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrHandbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software
Artologik EZ-Equip Plug-in für EZbooking version 3.2 Artologik EZbooking und EZ-Equip EZbooking, Ihre webbasierte Software zum Reservieren von Räumen und Objekten, kann nun durch die Ergänzung um ein oder
MehrStarten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.
Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis
MehrTYPO3 Tipps und Tricks
TYPO3 Tipps und Tricks Seiten als Shortcut. Hiermit ist gemeint, dass eine Oberseite direkt auf eine tiefere Unterseite verlinkt. Dies kann bei Themen ohne gesonderte Übersichtsseite hilfreich sein. Zum
MehrRundung und Casting von Zahlen
W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für
MehrHandbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager Dateiname: ecdl2_03_05_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement und Dateiverwaltung
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen
Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig
Mehrhttps://portal.microsoftonline.com
Sie haben nun Office über Office365 bezogen. Ihr Account wird in Kürze in dem Office365 Portal angelegt. Anschließend können Sie, wie unten beschrieben, die Software beziehen. Congratulations, you have
MehrWir machen neue Politik für Baden-Württemberg
Wir machen neue Politik für Baden-Württemberg Am 27. März 2011 haben die Menschen in Baden-Württemberg gewählt. Sie wollten eine andere Politik als vorher. Die Menschen haben die GRÜNEN und die SPD in
Mehr