Integration von Business Rules in eine Standardapplikation
|
|
- Manuela Lange
- vor 8 Jahren
- Abrufe
Transkript
1
2 Integration von Business Rules in eine Standardapplikation
3
4
5 Inhaltsverzeichnis
6
7 Abbildungsverzeichnis
8
9 Tabellenverzeichnis
10
11 Beispiele
12
13 Vorwort
14
15 Kapitel 1. Einleitung 1.1. Problemstellung 1.2. Aufgabenstellung und Zielsetzung 1.3. Lösungsansatz
16 1.4. Gliederung der Arbeit
17
18
19 Kapitel 2. Business Rules 2.1. Definition
20 2.2. Darstellung von Business Rules Einleitung
21 Ontologie
22 Allgemeiner Aufbau einer Business Rule IF the value of all transactions of a customer is more than 100 $ in one year THEN he qualifies for a discount of 10%.
23 RuleML - XML Sprache zur Repräsentation von Fakten/Regeln Allgemein RuleML Design
24 rules / \ 1. / \ 2. / \ reaction rules transformation rules 3. derivation rules facts queries 6. integrity constraints Wenn eine Aktie x um mehr als 5 % verliert Dann verkaufe Aktie x und schicke eine Info per
25 Hier die Darstellung in RuleML: <imp> <_body> <atom> <_opr><rel>eine Aktie x um mehr als 5 % verliert</rel></_opr> </atom> </_body> <_head> <and> <atom> <_opr><rel>verkaufe Aktie x</rel></_opr> </atom> <atom> <_opr><rel>schicke eine Info per </rel></_opr> </atom> </and> </_head> </imp> Wenn eine Aktie x um mehr als 5 % verliert Dann verkaufe Aktie x Wenn eine Aktie x um mehr als 5 % verliert Dann schicke eine Info per <imp> <_body> <atom> <_opr><rel>eine Aktie x um mehr als 5 % verliert</rel></_opr> </atom> </_body> <_head> <atom> <_opr><rel>verkaufe Aktie x</rel></_opr> </atom> </_head> </imp> <imp> <_body> <atom> <_opr><rel>eine Aktie x um mehr als 5 % verliert</rel></_opr> </atom> </_body> <_head> <atom> <_opr><rel>schicke eine Info per </rel></_opr> </atom> </_head>
26 </imp> Das Beispiel if medium(abwasser) then ort(rostock)
27 <?xml version="1.0" encoding="utf-8"?> <rulebase> <imp> <_head> <atom> <_opr> <rel>orte</rel> </_opr> <ind>rostock</ind> </atom> </_head> <_body> <and> <atom> <_opr> <rel>medium</rel> </_opr> <ind>abwasser</ind> </atom> </and> </_body> </imp> </rulebase> if medium(abwasser) and not ort(rostock) then send("message") Zusammenfassung
28
29 Kapitel 3. Busines - Rule - Managment - Systeme 3.1. Einführung
30
31 3.2. Auswahl
32 3.3. ILog - JRules Allgemein ILOG`s Rule Engine
33
34 A(x) ^ B(x) ^ C(y) ) add D(x) A(x) ^ B(y) ^ D(x) ) add E(x) A(x) ^ B(x) ^ E(y) ) delete A(x) Arbeitsspeicher(WM): {A(1); A(2); B(2); B(3); B(4); C(5)}
35
36
37
38
39 ILOG`s JRules - Das Business-Rule-Management-System
40
41
42
43
44
45
46
47 ILOG's - Business Rule Language
48
49
50 BAL Wenn Dann das abzurechnende Medium ist : Abfall und nicht der Abrechnungsort : Rostock Sende diese Nachricht : "Die Abrechnung von Abfall ist nur in Rostock gestattet!" TRL When Then there is a [ ] Abrechnung [ ] [ called?abrechnung] [where] such that Medium equals Abfall and not Abrechnungsort equals Rostock modify [ ]?abrechnung so that Nachricht = "Die Abrechnung von Abfall ist nur in Rostock gestattet!" IRL when {?abrechnung1: Abrechnung(Medium equals "Abfall" ;! (Ort equals "Rostock")); } then { modify?abrechnung } { Nachricht = "Die Abrechnung von Abfall ist nur in Rostock erlaubt!"; }
51 Repository
52
53
54
55 Zusammenfassung
56 3.4. Mandarax und Oryx Allgemein Mandarax
57 If the value of all transactions of a customer is more than 100 $ in one year then he qualifies for a discount of 10%.
58 LogicFactory factory = LogicFactory.getDefaultFactory(); Term term1 = factory.createvariableterm("a customer", Customer.class); Discount discount = new Discount(5); Term term2 = factory.createconstantterm(discount); Term[] terms = {terms1,term2}; Class[] predicatestructure = {Customer.class,Discount.class}; Predicate predicate = new SimplePredicate("gets discount", predicatestructure); Fact fact = factory.createfact(predicate,terms); org.mandarax.example.crm org.mandarax.kernel.kowledgebase public Discount getdiscount (Customer customer) { //Erzeuge Anfrage(Parameter sind die Klassen des Objektmodells) Class[] parameters = {Customer.class, Discount.class}; Predicate getsdiscount = new SimplePredicate ("get discount", parameters); Fact query = factorysupport.fact (getsdiscount, customer, "a discount"); // Anfrage stellen InferenceEngine ie = new ResolutionInferenceEngine (); KnowledgeBase kb =...; // hier sind die Regeln gespeichert Result result = ie.query (query, kb);
59 Replacement replaced = result.getreplacements ()[0]; Discount discount4customer = (Discount) replaced.replacement.getobject (); return discount4customer; } org.mandarax.kernel.inferenceengine org.mandarax.kernel.resultset Derivation getproof();
60 clauses nextclause(); next(); java.util.iterator
61 String[] struct = {String.class}; DataSource datasource =..; SQLFunction function = new SQLFunction(); function.setdatasource(datasource); function.setquery( "SELECT COUNT(*) FROM CUSTOMER_TRANSACTIONS WHERE CUSTOMER=?" ); function.setobjectrelationalmapping(new OneColumnMapping (Integer.class) ); function.setname("number of all transactions of a customer"); function.setstructure(struct);
62
63 Oryx 2 - Knowledge Editor/Repository Allgemein /plugins /plugins com.jbdietrich.oryx.gui.plugin.plugin
64 plugins/joi.zip plugins/pluginviewer.jar plugins/log4jconfig.jar plugins/lfconfig.jar plugins/sysinfo.jar Knowledge Editor
65 ExtendedKnowledgeBase Repository
66
67 3.5. Fazit
68
69 Kapitel 4. Implementation 4.1. Die Standardapplikation kvasy
70 4.2. Prototyp Voraussetzungen
71 Wenn das abzurechnende Medium Abwasser ist und der Abrechnungsort nicht Rostock ist Dann sende die Nachricht: "Abwasser kann nur in Rostock abgerechnet werden!" Wenn der abzurechnende Tarif Abfallentsorgung ist und der Abrechnungsort nicht Rostock ist Dann sende die Nachricht: "Die Abfallentsorgung existiert nur in Rostock!"
72 Clientseitige Integration Abrechnung
73 Abrechnung
74 addinfo(string arg) comparemedium(balmedium arg) compareort(balort arg) comparetarif(baltarif arg)
75
76 Regelmaschine.java public static int processabrechnung(abrechnung a) (1) { if (handler == null) { System.err.println("generateContext aufgerufen" ); handler = new RegelMaschine("Abrechnung.irl"); (2) } context.insert(a); (3) int i = context.fireallrules(); (4) context.retractall(); return i; } processabrechnung(abrechnung a)
77 Abrechnung Regelmaschine declare lv_fire number; lv_obj_a ORA_JAVA.JOBJECT; lv_error ORA_JAVA.JEXCEPTION; begin al_id Alert; al_button Number; lv_obj_a:= abrechnung.new(:sweiss_rule.kund_kunden_nr, (1) :sweiss_rule.kund_name1, :sweiss_rule.ort_o_name, :sweiss_rule.abzu_bezeichnung, :sweiss_rule.prei_bezeichnung); lv_fire:= REGELMASCHINE.processAbrechnung(lv_obj_a); (2) message('fire? :' lv_fire); if lv_fire > 0 (3) then al_id := Find_Alert('Alert'); Set_Alert_Property(al_id, ALERT_MESSAGE_TEXT, abrechnung.getnachricht(lv_obj_a)); al_button := Show_Alert(al_id); end if; exception when ORA_JAVA.EXCEPTION_THROWN then lv_error:= ORA_JAVA.LAST_EXCEPTION; ORA_JAVA.CLEAR_EXCEPTION; when ORA_JAVA.JAVA_ERROR then message(ora_java.last_error); end; Abrechnung processabrechnung(lv_obj_a) processabrechnung(lv_obj_a)
78 Wenn das abzurechnende Medium ist: Abwasser ist und der Abrechnungsort ist nicht: Rostock Dann sende die Nachricht: "Abwasser kann nur in Rostock abgerechnet werden!" Weiterentwicklung der clientseitigen Integration
79 Serverseitige Integration
80 when {?boe_debitorenv: Boe_debitorenv(); } then { System.out.println(?boe_debitorenv + "gefunden"); }
81 Kapitel 5. Zusammenfassung und Ausblick 5.1. Zusammenfassung
82 5.2. Ausblick
83
84
85 Anhang A. RuleML-DTD Version 0.8 <!-- An XML DTD for a Datalog RuleML Sublanguage: Monolith Version --> <!-- Last Modification: > <!-- ELEMENT Declarations --> <!-- 'rulebase' root element uses 'imp' rules and 'fact' assertions as top-level elements --> <!ELEMENT rulebase ((imp fact)*)> <!-- 'imp' rules are usable as general implications on the top-level --> <!-- 'imp' element uses a conclusion role _head followed by a premise role _body, or equivalently --> <!-- (since roles constitute unordered elements), uses a premise role _body followed by a conclusion role _head --> <!-- "<imp>_head _body</imp>" stands for "_head is implied by _body", i.e., "_head is true is implied by _body is true", or equivalently, --> <!-- "<imp>_body _head</imp>" stands for "_body implies _head", i.e., "_body is true implies _head is true" --> <!ELEMENT imp ((_head, _body) (_body, _head))> <!-- 'fact' assertions are usable as degenerate rules on the top-level --> <!-- 'fact' element uses just a conclusion role _head --> <!-- "<fact>_head</fact>" stands for "_head is implied by true", i.e., "_head is true" --> <!ELEMENT fact (_head) > <!-- _head role is usable within 'imp' rules and 'fact' assertions --> <!-- _body role is usable within 'imp' rules --> <!-- _head uses an atomic formula --> <!-- _body uses an atomic formula or an 'and' --> <!ELEMENT _head (atom)> <!ELEMENT _body (atom and)> <!-- an 'and' is usable within _body's --> <!-- 'and' uses zero or more atomic formulas --> <!-- "<and>atom</and>" is equivalent to "atom"--> <!-- "<and></and>" is equivalent to "true"--> <!ELEMENT and (atom*)> <!-- atomic formulas are usable within _head's, _body's, and 'and's --> <!-- atom element uses an: --> <!-- _opr ("operator of relations") role followed by a sequence of zero or more arguments, or similarly --> <!-- (since roles constitute unordered elements, and
86 the zero-argument case must not cause ambiguity), --> <!-- a sequence of one or more arguments followed by an _opr role --> <!-- the arguments may be ind(ividual)s or var(iable)s --> <!ELEMENT atom ((_opr, (ind var)*) ((ind var)+, _opr))> <!-- _opr is usable within atoms --> <!-- _opr uses rel(ation) symbol --> <!ELEMENT _opr (rel)> <!-- there is one kind of fixed argument --> <!-- individual constant, as in predicate logic --> <!ELEMENT ind (#PCDATA)> <!-- there is one kind of variable argument --> <!-- logical variable, as in logic programming --> <!ELEMENT var (#PCDATA)> <!-- there are only fixed (first-order) relations --> <!-- relation or predicate symbol --> <!ELEMENT rel (#PCDATA)>
87 Anhang B. Performancevergleich von Rules Engine
88
89 Anhang C. Prototyp - Quellcode Abrechnung.java public class Abrechnung { public String KundenNummer; public String KundenName; public String Ort; public String Medium; public String Tarif; public String Nachricht = ""; public Abrechnung(String knr, String kn,string o,string m, String t) { KundenNummer = knr; } KundenName = kn; Ort = o; Medium = m; Tarif = t; public void addinfo(string text) { this.nachricht += text+"\n"; } } Regelmaschine.java import java.io.*; import java.util.*; import ilog.rules.engine.*; import ilog.rules.tools.*; import ilog.rules.util.logging.*; import ilog.rules.repository.brm.*; import ilog.rules.repository.model.*; import ilog.rules.repository.facility.*; import ilog.rules.util.ilroperationexception; public class RegelMaschine { private static RegelMaschine handler = null; private static IlrContext context; public RegelMaschine(String rulefile) { IlrRuleset ruleset = new IlrRuleset(); ruleset.parsefilename( rulefile ); context = new IlrContext( ruleset ); System.err.println( "Constr. aufgerufen" );
90 } public static int processabrechnung(abrechnung a) { if (handler == null) { System.err.println("generateContext aufgerufen" ); handler = new RegelMaschine("PATH/Abrechnung.irl"); } context.insert(a); int i = context.fireallrules(); context.retractall(); return i; } }
91 Anhang D. Oracle Form Builder - Start.bat set CLASSPATH=$HOME\jbproject\Abrechnung\classes; \ D:\ILOG\JRules45\lib\jrulesall.jar; \ F:\oracle\orant\FORMS60\java; \ F:\oracle\orant\TOOLS\COMMON60\JAVA\IMPORTER.JAR; \ F:\oracle\orant\jdk\lib\classes.zip; \ D:\ILOG\JRules45\lib\*.jar set path=c:\j2sdk1.4.1\bin;c:\j2sdk1.4.1\jre\bin\client;%path% set NLS_NUMERIC_CHARACTERS=,. set NLS_SORT=BINARY F:\oracle\orant\BIN\ifbld60.EXE '' kvasy/kvasy@local
92
93 Anhang E. Glossar
94
95 Literaturverzeichnis
Ü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,
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
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel
ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:
MehrMandarax. Ein OpenSource Projekt zur Unterstützung von regelbasierten Anwendungen
Mandarax Ein OpenSource Projekt zur Unterstützung von regelbasierten Anwendungen Java Forum Stuttgart 2002 27.06.2002 Jochen Hiller, jochen.hiller@bauer-partner.com Überblick Projekt-Verantwortliche Jens
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
MehrIch liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
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
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
Mehrphp Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.
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)
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrWPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
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
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
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
MehrIndexing und Performance Tuning
Indexing und Performance Tuning Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig PostgreSQL Indexing - Jeder hat schon einmal ein Telefonbuch Benutzt - Jeder hat schon einmal Suchen durchgeführt CREATE
MehrSecurity Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08
Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme
MehrDipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009
Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrTechnische Dokumentation SilentStatistikTool
Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...
MehrUnigraphics Schnittstelle entfernen
Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version 1.0 Voraussetzungen für diesen Workshop Sie sind mit dem Betriebsystem vertraut Sie besitzen Administrator-Rechte Die M-Quest Suite ist
MehrWhitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt
MehrPraktische Übung 'JUnit-Test'
Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse
Mehri n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
MehrRapide An Event-Based Architecture Definition Language
Rapide An Event-Based Architecture Definition Language Ralf Bettentrup Seminar: Architekturbeschreibungssprachen Wozu Rapide? Computer mit Modem Provider Broker Client Broker PC Prov 1 Client 1 RS-232
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
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
MehrNathan Burgener. Design by Contract. Modul SWE
NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6
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
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.:
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
Mehretutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche
etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:
MehrPraktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel
Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrDataTables LDAP Service usage Guide
DataTables LDAP Service usage Guide DTLDAP Usage Guide thomasktn@me.com / www.ktn.ch Benutzung des DTLDAP Service DataTables Der Service stellt einen JSON Feed für DataTables (http://www.datatables.net)
MehrSQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter
SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java
MehrDynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München
Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester
MehrBesonderheiten von C#
Besonderheiten von C# Wert- und Referenztypen int a, b; a = 3; b = a; a++; Debug.Assert( a==4 && b==3 &&!a.equals(b), "int ist doch kein Werttyp" ); RTyp ra, rb; ra = new RTyp(3); rb = ra; ra.inc(); Debug.Assert(
MehrUNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme
UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //
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
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
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
MehrLog xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade
HACK #76 Hack APIs mit dem Façade-Muster vereinfachen Durch die Verwendung des Façade-Entwurfsmusters können Sie die anderen Programmierern zugängliche API vereinfachen. #76 Dies ist ein Muster, von dem
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
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
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrOracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz
Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,
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
MehrÜbungsblatt 8- Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)
MehrBTree.dll - Balancierte und verkettete Bäume. Ecofor. BTree.dll. Realisiert mit Microsoft Visual Studio 16.04.2015 1/9
BTree.dll Realisiert mit Microsoft Visual Studio 16.04.2015 1/9 INHALT 1. Allgemein... 3 2. Class BTree1 (balanciert)... 3 3. Class BTree2 (balanciert und verkettet)... 4 4. Beschreibung BTree1 und BTree2...
MehrAlgebraische Spezifikation von Software und Hardware II
Algebraische Spezifikation von Software und Hardware II Markus Roggenbach Mai 2008 3. Signaturen 3. Signaturen 2 Grundlegende Frage Wie lassen sich Interfaces beschreiben? Signaturen = Sammlung aller bekannten
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrJürgen Bayer. MDI-Anwendungen in C#
Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte
MehrWeb Sockets mit HTML5. Quelle: www.html5rocks.com/de
Web Sockets mit HTML5 Quelle: www.html5rocks.com/de Intensive Client-Server-Kommunikation: Beispiele Online-Spiele mit mehreren Mitspielern Chat-Anwendungen Live-Sport-Ticker Echtzeit-Aktualisierungen
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
MehrArchitektur des agimatec-validation Frameworks
Development : Implementierung Validierungskonzept (Dokumentation) This page last changed on Apr 03, 2008 by roman.stumm. Architektur des agimatec-validation Frameworks Generierung der Metainformationen
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
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,
MehrDie Datenmanipulationssprache SQL
Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify
MehrNachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)
Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der
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
MehrSichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der
Sichere E-Mail der Nutzung von Zertifikaten / Schlüsseln zur sicheren Kommunikation per E-Mail mit der Sparkasse Germersheim-Kandel Inhalt: 1. Voraussetzungen... 2 2. Registrierungsprozess... 2 3. Empfang
MehrVerwendung der PayJoe -API zum externen Upload von Belegen und Zahlungen
Verwendung der PayJoe -API zum externen Upload von Belegen und Zahlungen Um über die PayJoe -API Belege bzw. Zahlungen hochladen zu können, müssen Sie zunächst einen entsprechenden Zugang anlegen, bei
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:
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
MehrDokumentation für Popup (lightbox)
Dokumentation für Popup (lightbox) Für das Popup muss eine kleine Anpassung im wpshopgermany Plugin vorgenommen werden und zwar in der Datei../wp-content/plugins/wpshopgermany/controllers/WarenkorbController.class.php
MehrLogik für Informatiker Logic for computer scientists
Logik für Informatiker Logic for computer scientists Till Mossakowski WiSe 2007/08 2 Rooms Monday 13:00-15:00 GW2 B1410 Thursday 13:00-15:00 GW2 B1410 Exercises (bring your Laptops with you!) either Monday
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrXML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de
XML-Namensräume Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 19. Mai 2003 Inhaltsverzeichnis 1 Motivation
MehrApplet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 15. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrSharePoint 2010 Mobile Access
Erstellung 23.05.2013 SharePoint 2010 Mobile Access von TIMEWARP IT Consulting GmbH Stephan Nassberger Hofmühlgasse 17/1/5 A-1060 Wien Verantwortlich für das Dokument: - Stephan Nassberger (TIMEWARP) 1
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen
Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere
MehrKURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?
KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen
Mehresms - sms senden & empfangen mit Outlook
esms - sms senden & empfangen mit Outlook Einrichten der SMS Terminerinnerung für Microsoft Outlook 2007/10 Inhalt Einleitung... 1 1 SMS Terminerinnerung einrichten... 2 1.1 Beim Service esms anmelden...
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrSDK zur CRM-Word-Schnittstelle
SDK zur CRM-Word-Schnittstelle SDK zur CRM Wordinterface für Microsoft Dynamics CRM2011 zur Version 5.2.0 Inhalt 1. Vorwort... 3 2. Voraussetzungen... 4 3. Funktionsbeschreibung... 4 4. Technische Funktionsbeschreibung...
MehrJDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.
JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten
Mehr8 Zugriffstypen ( Zeiger )
8 Zugriffstypen ( Zeiger ) 1. Zugriffstypen, die auf Daten in einem Storage Pool zeigen Heap. 2. Allgemeine Zugriffstypen, die auf (mehr oder weniger) beliebige Daten zeigen. 3. Zugriffsparameter für Unterprogramme
MehrObjektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
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:
MehrExtracting Business Rules from PL/SQL-Code
Extracting Business Rules from PL/SQL-Code Version 7, 13.07.03 Michael Rabben Knowledge Engineer Semantec GmbH, Germany Why? Where are the business rules? Business Rules are already hidden as logic in
MehrOracle: Abstrakte Datentypen:
Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8
MehrAJAX Implementierung mit Joomla!
Joomla! DAY TM AUSTRIA 2015 AJAX Implementierung mit Joomla! Inhalt AJAX Implementierung mit Joomla! Inhalt Einleitung Was ist AJAX und wie funktioniert es Joomla! & AJAX AJAX in Templates mit Komponenten
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
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:
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
MehrSQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:
SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In
MehrDesign by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
MehrDokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696
Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen
MehrDokumentation des Projektes Tic Tac Toe
Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.
MehrInformatik. Christoph Treude. Elektronisches Geld. Studienarbeit
Informatik Christoph Treude Elektronisches Geld Studienarbeit Universität Siegen Fachbereich 12 Elektrotechnik und Informatik Seminararbeit Elektronisches Geld (Informatik und Gesellschaft) Christoph
Mehr.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011
.procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können
MehrSemantic Web. RDF, RDFS, OWL, and Ontology Engineering. F. Abel, N. Henze, and D. Krause 17.12.2009. IVS Semantic Web Group
Semantic Web RDF, RDFS, OWL, and Ontology Engineering F. Abel, N. Henze, and D. Krause IVS Semantic Web Group 17.12.2009 Exercise 1: RDFS OWL Erstellen Sie mit Hilfe von RDF Schema und OWL eine Ontologie
Mehr1 Software Engineering 1
1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrLog Parser 2.0 HackerScan.js. Beschreibung. Anforderungen. Unterstützte Plattformen. Script-Code. Zurück zur Übersichtsseite
Zurück zur Übersichtsseite Log Parser 2.0 HackerScan.js (Engl. Originaltitel: HackerScan.js) Beschreibung Dieses Script sucht in allen IIS-Protokolldateien (IIS-, HTTPError- und UrlScan-Protokolldateien)
MehrEs wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.
Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder
Mehr