Home
Objektorientierte Programmierung wissensbasierter Systeme
Contents
1. 4 3 2 Datenbanktreiber f r den Zugriff Zur Nutzung von JDBC braucht man einen passenden Treiber f r die Datenbank JavaSoft unterscheidet 4 Treiber Kategorien 1 JDOBC ODBC Bridge Treiber Die JDBC ODBC Br cke wandelt Aufrufe von JDBC in ODBC Aufrufe der Client Seite um Die Methoden sind nativ ODBC Open DataBase Connectivity ist ein Standard von Microsoft der den Zugriff auf Datenbanken ber eine genormte Schnittstelle m glich macht JavaSoft und Intersolv haben eine JDBC ODBC Bridge gt 2 entwickelt die die JDBC Aufrufe nach ODBC umwandelt 2 Native API Java Driver 3 Netzprotokoll All Java Driver 4 Native Protocol All Java Driver 4 3 3 Verbindung zur Datenbank Die Verbindung zur Datenbank wird ber die Klasse DriverManager und die Schnittstelle Connection aufgebaut Vor der Ausf hrung mu ein passender Datenbanktreiber geladen werden z B die von JavaSoft mitgelieferte JDBC ODBC Bridge deren Klasse unter dem Namen JdbcOdbcDriver verf gbar ist Alle Datenbanktreiber m ssen an einer Stelle gesammelt werden dem Treibermanager Dazu dient die Klasse DriverManager 32 Leider ist die Br cke nur f r Win32 und Solaris Systeme verf gbar Das JDK von Sun liefert diese Br cke aus und damit k nnen Java Programmierer Datenbank Anwendungen mit der Unterst tzung einer Vielzahl existierender ODBC Treibern programmieren 86 Objektorientierte Programmierung wissensbasierter Systeme Param
2. ingabeTextFeld setEditable true ausgabeTextFfeld setEditable false Panel panel new Panel panel add eingabeTextFeldLabel panel add eingabeTextFeld 121 Objektorientierte Programmierung wissensbasierter Systeme panel add ausgabeTextFeldLabel panel add ausgabeTextFeld ingabeTextFeld addActionListener this add panel pack setVisible true public void actionPerformed ActionEvent ae System out println ae getActionCommand String s eingabeTextFeld getText ausgabeTextfeld setText s public static void main String args Vorllla vorllla new Vorllla vorllla addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 5 1 3 4 Dialoge Der Anwender verkehrt im Rahmen grafischer Benutzeroberfl chen ber vom Programm vorgegebene Dialoge Diese bestehen aus einem Fenster und einer Reihe von Dialogelementen z B Textfelder Buttons Listboxen zur Darstellung und Erfassung programmspezifischer Daten Das Design der Dialoge wird von Layoutmangern unterst tzt die sich um Gr e und Anordnung der einzelnen Dialogelemente k mmern Zum Erstellen eines Dialogs sind 4 Schritte n tig Anlegen eines Fensters Zuordnen eine Layoutmanagers Einf gen von Dialogelementen Anzeigen des Fensters Anlegen eines Fensters Ein Dialogfenster kann wahlwe
3. See if we need to open the connection to the database if conn null Load the JDBC driver output append Loading JDBC driver driver_class n Class forName driver_class Connect to the databse output append Connecting to connect_string n DriverManager registerDriver new oracle jdbc driver OracleDriver conn DriverManager getConnection connect_string output append Connected n Create a statement Statement stmt conn createStatement Execute the query output append Executing query query n ResultSet rset stmt executeQuery query Dump the result while rset next output append rset getString 1 n We re done output append done n catch Exception e output append e getMessage n return true else return false 96 Objektorientierte Programmierung wissensbasierter Systeme 4 3 8 2 Anwendungen Applets mit Embedded SQL SQLJ This applet extends the AppletInterface class that contains the user interface component of the applet This applet connects to a database to select and display employee information It will also delete a select employ from the database F aE E F SQLJ specific classes import java sql SQLException import java sql DriverManager import sqlj runtime ExecutionContext import sqlj runtime ref DefaultContext impor
4. Die Klasse URL besitzt auch Konstruktoren die die Angabe der Komponenten von der Adresse also Zugriffsart Hostname und Dateiadresse getrennt akzeptieren public URL String protocol String host int port String file throws MalformedURLException public URL String protocol String host String file throws MalformedURLException Jeder der Konstruktoren wirft eine Mal fo rmedURLException wenn der Parameter im Konstruktor entweder null ist oder er ein unbekanntes Protokoll beschreibt Zugriff auf Daten ber eine URL Es gibt zwei M glichkeiten ber eine URL bzw ber eine URLConnection Beide Wege benutzen Streams Jedes URL Objekt besitzt die Methode openStream die einen InputStream zum Weiterverarbeiten liefert final InputStream openStream throws IOException ffnet eine Verbindung zum Server und liefert einen InputStream zur ck URLConnection openConnection throws IOException liefert ein URLConnection Objekt das die Verbindung zum entfernten Server vertritt openConnection wird vom Protokoll Handler immer dann aufgerufen wenn eine neue Verbindung ge ffnet wird Verweist die URL auf eine Textdatei dann erweitert man den InputStream zu einem BufferedReader da dieser die readLine Methode besitzt Bsp Eine Antwort HTML Seite auf eine Suchfrage import java io 58 pr52100 137 Objektorientierte Programmierung wissensbasierter Systeme import java net public
5. private int yWert int iWert Berechne x y double x y int jWert x iWert xmax xmin appletBreite 1 xmin Berechnen Funktionswert y Math sin x Math cos x x Umsetzen y in Bildpunktwerte jWert int y ymin appletHoehe 1 ymax ymin Umrechnen auf das Koordinatensystem des Fensters jWert appletHoeh 1 jWert return jWert lt HTML gt lt HEAD gt lt TITLE gt Graphische Darstellung einer Funktion lt TITLE gt lt HEAD gt lt BODY gt lt APPLET CODE GraphApplet class WIDTH 400 HEIGHT 300 gt lt PARAM NAME AppletParameter1 VALUE Uebergabewert gt lt PARAM NAME AppletParameter2 VALUE Uebergabewert gt lt APPLET gt lt BODY gt lt HTML gt 114 Objektorientierte Programmierung wissensbasierter Systeme 5 1 2 Applets und Anwendungen Da in Applets alle Java Sprachkonstrukte und Klassenbibliotheken zur Verf gung stehen unterscheidet sich der Quellcode zwischen Applets und Applikationen nur unwesentlich Einer der wesentlichsten Unterschiede besteht darin da ein Applet keine main Methode besitzt und statt dessen von der Klasse Applet abgeleitet werden mu Ferner ist anstelle eines Konstruktors die init Methode zu verwenden Diese Methode wird vom Browser aufgerufen wenn ein Objekt der Applet Klasse erzeugt wird Wird von einer Anwendung implizit das Rahmen Layout verwendet so mu in der initQ Methode bei der Konvertierung e
6. catch InterruptedException e public void paint Graphics g setColor drawLine setColor illOval Color blue xStart yStart x y Color red x d 2 y d 2 d d Q Qa aQ Reduktion von Flimmereffekten in Animationen Die Methode update ist due Ursache f r das Flimmer Problem Da das Applet Fenster zwischen den Einzelbildern gel scht wird springen die Bereiche des Applet Fenster die sich ndern kurz zwischen dem Zustand L schen und Neuzeichnen hin und her d h sie flimmern Zwei Verfahrensweisen k nnen das Flimmern von Java Applets einschr nken berschreiben der update Methode so da sie entweder den Bildschirm nicht l scht oder nur Teile l scht die ge ndert wurden berschreiben der Methoden update und paint Verwenden doppelter Pufferung 1 Uberschreiben der update Methode update l scht den Bildschirm durch F llen mit der aktuellen Hintergrundfarbe setzt die aktuellen Farbe auf die Vordergrundfarbe und ruft anschlie end paint auf Das berschreiben von update mu sicherstellen da so etwas hnliches geschieht 129 Objektorientierte Programmierung wissensbasierter Systeme import java awt public class PendelAppl2 extends java applet Applet implements Runnable Instanzvariable Position vom Zentrum des schwingenden Pendels int x y double thetaMax double 01 39 double thetaMin double 0 35 Die initiale Positio
7. 109 Objektorientierte Programmierung wissensbasierter Systeme chenketten konvertiert s Initialisierungen initialisierungen Startpunkte startpunkte Haltepunkte haltepunkte g drawString s 10 10 Browser lt lt new gt gt ffnet Webseite verl sst Browser schliesst destroy Browser Abb Lebenszyklus eines Applets Die paint Methode wird in Java immer aufgerufen wenn ein Applet gezeichnet werden mu z B bein erstmaligen Zeichnen des Applet beim Verschieben des Applet Fenster beim berlagern des Applet Fenster durch ein anderes Fenster Die paint Methode hat folgende Gestalt public void paint Graphics g paint besitzt ein Argument eine Instanz der Klasse Graphics Dieses Objekt wird vom Browser erstellt und an paint abgegeben Es mu sichergestellt sein da die Graphics Klasse in den Code der Applet Subklasse importiert47 wird Bsp Aller Anfang ist schwer Dieser Spruch soll mit Hilfe eines Applet gezeigt werden Die zugeh rige Quellcodedatei AllerAnfangApplet java umfa t import java applet import java awt public class AllerAnfangApplet extends Applet Font f String spruch 47 Normalerweise geschieht dies iiber import java awt Graphics 110 Objektorientierte Programmierung wissensbasierter Systeme public void init f new Font Helvetica Font BOLD 24 this spruch All
8. FH db Vorlesung Fachbereich Dozent Fachhochschule Student TE un mu IE 19 vgl Booch Grady u a Das UML Benutzerhandbuch Seite 451 68 Objektorientierte Programmierung wissensbasierter Systeme 3 Objektorientierte Programmierung mit Java 1 Objekte Klassen Eigenschaften und Verhaltensweisen Definition von Klassen Anweisungen und Ausdr cke Erstellen neuer Objekte und Instanzen Referenzen auf Objekte Konvertieren Manipulieren von Objekten Bestimmen der Klasse eines Objekts Kopieren von Objekten Definition von Eigenschaften Variable und Datentypen Datenfelder Arrays Definition von Verhaltensweisen Aufruf von Methoden Klassenmethoden Methoden Overloading Methoden Overridung Konstruktor Methoden Finalizer Methoden Ausnahmen 2 Vererbung Schnittstellen Schutzebenen und Pakete Vererbung Zugriffskontrolle durch Schutzebenen Pakete Schnittstellen 3 Java Klassenbibliothek Das Paket java lang Grundlegende Methoden aus dem java io Paket Das java awt Paket Komponenten Ereignisse Graphik und Animation Bildverarbeitung 69 Objektorientierte Programmierung wissensbasierter Systeme 4 Objektorientierte Wissensrepr sentation im Internet 4 1 Kommunikations bzw Dokumentationsnetze 4 1 1 Vernetztes Wissen Ausgangssituation Unbestreitbar ist Eine Wissensexplosion hat die Menschheit mittlerweise voll erfasst Die dezentrale Welt verlangt eine intensive Kommunikation des Wissens Ausku
9. WWW Server Proxy Browser Betriebessystem Betriebssystem Betriebssystem Betriebssystem WAN z B Modem LAN der Zentrale HTML Betriebssystem Betriebssystem Betriebssystem Seiten WWW Server Browser Browser Datenbanksystem Abb Intranet Architektur Bei der Client Server Kommuniktaion ber das Internet ben tigt man eine Server der st ndig in Bereitschaft ist und auf Anfragen von einem Client wartet Der Client baut eine Verbindung auf indem er eine Anfrage an den Server richtet und dieser die Verbindung aufnimmt Das einfachste Bsp hierf r ist ein Web Server der auf einem Host Rechner installiert ist Der Web Browser fungiert dabei als Client der eine Verbindung zu einem bestimmten Web Server f r den Datenaustausch herstellt In erster Linie wird der Client HTML Dokumente vom Web Server empfangen Viele Web Knoten legen jede Web Seite als eigene HTML Datei ab Solche Seiten sind allerdings statisch d h sie erzeugen bei jedem Aufruf denselben Inhalt In vielen Unternehmen steigt aber das Interesse vorhandene in Datenbanksytemen gehaltene Dokumente und Informationen f r Web Clients verf gbar zu machen Die Anbindung einer Datenbank an einen Web Server erleichtert die Aktualisierung der Inhalte Allerdings m ssen dazu die Daten mediengerecht aufbereitet d h in 29 Proxy Server Das ist ein zus tzliches lokales Datenbeschaffungsinstrument f r einen bestimmten anwenderkreis Clients des oberen LAN Die Clien
10. Methode abgebene Graphics Objekt enth lt den Grafikstatus d h die aktuellen Merkmale der Zeichnungsoberfl che public void repaint Sie kann jederzeit aufgerufen werden wann auch immer das Applet neu gezeichnet werden mu Sie ist der Ausl ser die paint Methode sobald wie m glich aufzurufen und das Applet neu zu zeichnen Sollten die repaint Anweisungen schneller ablaufen als Java diese verarbeiten kann werden evtl einige bersprungen In vielen F llen ist die Verz gerung zwischen dem Aufruf von repaint und der eigentlichen Aktualisierung des Fensters vernachl ssigbar public void update Graphics g Sie wird von repaint aufgerufen Die update Methode l scht den vollst ndigen Zeichenbereich und ruft anschlie end die paint Methode auf die dann das Applet vollst ndig neu zeichnet Der Aufruf der paint Methode erfolgt also nicht direkt ber die repaint Methode sondern indirekt ber die update Methode 5 1 1 3 HTML Tags f r den Einsatz von Applets Die konkrete Referenzierung eines Java Applet in einer HTML Seite wird mit dem Applet Tag lt applet gt eingeleitet Zwischen dem einleitenden Tag und dem abschlie enden Applet Tag lt applet gt k nnen ben tigte Parameter oder beliebiger Text eingegeben werden Die einfachste Form der Applet Referenz Ohne irgendwelche Parameter wird ein Java Applet eingebunden mit lt APPLET CODE klassenelement WIDTH Wert HEIG
11. Methode wird von Java aufgerufen wenn ein Applet gezeichnet werden mu Java kann aber auch aufgefordert werden ein Bild zu einem bestimmten Zeitpunkt nachzuzeichnen Tut man das wiederholt und schnell genug mit der repaint Methode dann entsteht eine Animation repaint isteine Anfrage an Java das Applet so schnell wie m glich zu zeichnen import java awt import java util public class PendelAppll extends java applet Applet implements Runnable Instanzvariable Position vom Zentrum des schwingenden Pendels PAC Ky v5 double thetaMax double 0 355 double thetaMin double 0 35 Die initiale Position vom Pendel double theta double 0 double wechsel double 0 01 int xStart 150 yStart 20 Radius des Pendels double r double 200 Durchmesser des Balls int d 20 Thread faden Methoden public void init setBackground Color yellow 128 Objektorientierte Programmierung wissensbasierter Systeme public void start if faden null faden new Thread this faden start public void stop if faden null faden stop faden null public void run while true x xStart int r Math sin theta y yStart int r Math cos theta if theta gt thetaMax theta lt thetaMin wechsel wechsel theta wechsel repaint try Thread sleep 10
12. Objektorientierte Programmierung wissensbasierter Systeme WillkommenApplet Abb Paketstruktur im Will kommenApplet 2 Speichern der Datei mit dem Namen WillkommenAppletjava unter einem beliebigen Verzeichnis 3 Aufruf des Java Ubersetzers ber die folgende Befehlszeileneingabe javac WillkommenApplet java Der Compiler gibt bei erfolgreicher bersetzung keine R ckmeldung Zwei Dateien m ssen nach erfolgreicher bersetzung vorliegen willkommenApplet java und willkommenApplet class 4 Erstellen der folgenden HTML Datei willkommenApplet html anschlie end Speichern dieser Datei lt HTML gt lt HEAD gt lt TITLE gt Seid gegruesst lt TITLE gt lt HEAD gt lt BODY gt lt P gt Mein Java Applet sagt lt BR gt lt APPLET CODE willkommenApplet class WIDTH 200 HEIGHT 50 gt lt APPLET gt lt BODY gt lt HTML gt Der Bezugspunkt in HTML Dateien auf ein Applet erfolgt mit dem lt Applet gt Tag Das Code Attribut dient zur Angabe von dem Namen der Klasse die das Applet enth lt Die Attribute WIDTH und HEIGHT dienen zum Bestimmen der Gr e des Applets Der Browser benutzt diese Werte zur Zuteilung des Raums der f r das Applet auf der Seite freigehalten werden mu Hier wurde eine Box mit einer Breite von 200 und einer H he von 50 Pixeln definiert WillkommenApplet ist als Applet implementiert Es kann nie isoliert stehen sondern ist normalerweise Teil e
13. ausgef hrt ist wird der Zustand in Pr fung erreicht mit dem die Aktivit t Pr fe Auftragsposition verbunden ist Syntax do Aktivit t Vom Zustand in Pr fung gehen drei Transitionen aus Alle drei haben in ihren Beschriftungen nur Bedingungen Eine mit einer Bedingung guard versehene Transition findet nur statt wenn diese als wahr ermittelt wird Aus einem Zustand kann nur eine Transition ermittelt werden Dabei ist zu ber cksichtigen 1 Wurden noch nicht alle Auftragspositionen gepr ft dann hole die n chste Auftragsposition und kehre in den Zustand in Pr fung zur ck 2 Wurden alle Auftragspositionen gepr ft und sind diese alle vorr tig dann gehe in den zustand freigegeben Im Zustand freigegeben befindet sich die Aktivit t die ane Auslieferung bewirkt Sobald Auslieferung initiieren beendet wird bleibt der Auftrag im Zustand freigegeben bis das Ereignis ausgeliefert auftritt 3 Wurden alle Auftragspostionen gepr ft und sind nicht alle vorr tig dann gehe in den Zustand wartend ber Die beiden vom Zustand wartend ausgehenden Transitionen sind mit dem Ereignis Position erhalten beschriftet Das bedeutet Ein Auftrag wartet bis er dieses Ereignis empf ngt 58 Objektorientierte Programmierung wissensbasierter Systeme Start hole erste Auftragsposition hole n chste Auftragsposition noch Positionen ungepr ft Alle Positionen ge
14. inh rente Unsicherheit der Information 7 Knowledge Engineering Environment von Intellicorp Inc 8 vergleichbar mit dem Klassenkonzept 9 KEE baut auf der Programmiersprache Lisp auf und wird nicht mehr kommerziell vertrieben 27 Objektorientierte Programmierung wissensbasierter Systeme Unvollst ndigkeit der Information Unsicherheit der Schlu folgerung Zusammenfassung von Informationen aus mehreren Quellen Unsicherheiten k nnen numerisch oder symbolisch dargestellt werden bei der symbolischen Repr sentation wird der Grad der Unsicherheit durch Elemente aus einer vorgegebenen Menge von Symbolen ausgedr ckt z B dirch Begriffe wie meisten beinahe immer Bei der numerischen Repr sentation wird die Unsicherheit durch die Zuordnung von einem oder mehreren Zahlenwerten z B der Wahrscheinlichkeit ausgedr ckt 1 3 Wissensspeicher Wissensspeicher stellen das zentrale Glied in der Verbindung zwischen dem Informationssender und dem Empf nger dar Ihnen kommt die Aufgabe zu jedem Benutzer egal ob Mensch oder Maschine das gew nschte Wissen zur Verf gung zu stellen Dabei haben Mensch und Maschine unterschiedliche M glichkeiten und Anforderungen was Suche und Darstellung des geforderten Wissens betrifft 1 3 1 Wissensspeicher mit elektronischem Zugang Beim Internet oder bei Datenbanken efolgt der Zugang elektronisch Relationale Datenbanken und objekt relationale Datenbanken Relationale Datenbanken
15. und filler Ein Rahmen besteht gew hnlich aus zwei Teilen einem Namen und einer Liste von Attribut Wert Paaren Die Attribute werden auch Slotnamen slot names und ihre Werte filler genannt Ein Eintrag in einem Rahmen kann verschieden interpretiert werden In manchen F llen k nnen die entsprechenden Daten unmittelbar im Rahmen gespeichert werden in anderen F llen wird eine Prozedur angegeben mit der Informationen ermittelt werden k nnen Slotwerte k nnen demnach umfassen einfache Datenwerte oder Wertmengen Zeiger auf andere Frames die eine Beziehung zwischen Frames beschreiben prozedurale Darstellung von Wissen Auswertung und Interpretation der Daten steuert ein Facet Hier kann man zus tzliche Informationen ber den Slotwert Typspezifikation Bedingungen sog D monen ablegen 4 Die Begriffe Facet Slot Frame sind ber die deutsche Terminologie des Fachgebiets K nstliche Intelligenz eingef hrt und werden deshalb hier einfach aus dem Englischen bernommen 24 Objektorientierte Programmierung wissensbasierter Systeme So kann ein Frame System bspw folgende Facets anbieten wert value enth lt unmittelbar den aktuellen Wert des Slots bei_bedarf gibt eine Prozedur an die bei fehlendem Wert Eintrag value Facet aufgerufen wird und den aktuellen Wert liefert beim_hinzufuegen enth lt ein prozedurales Anh ngsel das bei der erstmaligen Instanziierung des Werts von einem
16. voreingestellter Wert Operationen d h das Verhalten der Objekte Manchmal wird auch von Services oder Methoden gesprochen Das Verhalten eines Objekts wird beschrieben durch die m glichen Nachrichten die es verstehen kann Zu jeder Nachricht ben tigt das Objekt entsprechende Operationen Die UML Syntax f r Operationen ist Sichtbarkeit Name Parameterliste R ckgabetypausdruck Eigenschaften Sichtbarkeit ist ffentlich gesch tzt oder privat Name ist eine Zeichenkette Parameterliste enth lt optional Argumente deren Syntax dieselbe wie f r Attribute ist R ckgabetypausdruck ist eine optionale sprachabh ngige Spezifikation Eigenschaften zeigt Eigenschaftswerte ber String an die f r die Operation Anwendung finden Zusicherungen 41 Objektorientierte Programmierung wissensbasierter Systeme Die Bedingungen Voraussetzungen und Regeln die die Objekte erf llen m ssen werden Zusicherungen genannt UML definiert keine strikte Syntax f r die Beschreibung von Bedingungen Sie m ssen nur in geschweifte Klammern gesetzt werden Idealerweise sollten Regeln als Zusicherungen engl assertions in der Programmiersprache implementiert werden k nnen Bsp Eigenschaften Operationen Zusicherungen eines Kreises der auf einem Bildschirm dargestellt werden soll Attribute Radius des Kreises Position des Kreises auf dem Bildschirm Operationen Anzeigen und Entfernen des Kreises Verschieben des Kr
17. Rollen Arbeitgeber Arbeitnehmer sind Namen f r Klassen in einer Relation Eine Rolle ist die Seite die die Klasse an einem Ende der Assoziation der Klasse am anderen Ende der Assoziation zukehrt Die Navigierbarkeit kann durch einen Pfeil in Richtung einer Rolle angezeigt werden Rollel Rolle2 Abb Bin re Relation R C1 x C2 Rollel Abb n re Relation K1 x K2 x x Kn In vielen Situationen ist es wichtig anzugeben wie viele Objekte in der Instanz einer Assoziation miteinander zusammenh nen k nnen Die Frage Wie viele bezeichnet man als Multiplizit t der Rolle einer Assoziation Gibt man an einem Ende der Assoziation eine Multiplizit t an dann spezifiziert man dadurch F r jedes Objekt am entgegengesetzten Ende der Assoziation mu die angegebene Anzahl von Objekten vorhanden sein Ein A ist immer mit Ein A ist immer mit Ein A ist mit keinem Ein A ist mit kei nem einem B assoziiert einem oder mehre oder einem B asso einem oder mehreren ren B assoziiert ii B asso ziiert Unified 1 1 1 1 l n 0 2 6 0 n 2 6 0 0 n 0 n 17 4 17 4 n m Abb Kardinalit ten f r Beziehungen Pfeile in Klassendiagrammen zeigen Navigierbarkeit an So kann in der folgenden Darstellung Objektorientierte Programmierung wissensbasierter Systeme V empfangsdatum Navigi erbarkeit name ist Vorausbezahlt adresse preis Geld kreditwiirdigkeit String ausfiihren abschliess
18. Stundenplanerstellung dass er einen bestimmten Tag in der Woche frei haben m chte Durch jede Constraint wird der L sungsraum zus tzlich eingeschr nkt Ein Constraint kann h ufig als mathematiscje Gleichung betrachtet werden ein Constraint System als Gleichungssystem Unter Constraint Programmierung versteht man dann die Berechnung des Gleichungssystems Es lassen sch aber nich nur mathematische Gleichungen Beschreiben sondern auch Ungleichungen und nicht numerische Zusammenh nge Es existieren unterschiedliche M glichkeiten Constraints zu realisieren z B l sst sich die Beziehung zwischen K rp ergr e und Idealgewicht folgenderma en darstellen Tabelle z B mit Hilfe einer Gewichtstabelle Funktion z B Normalgewicht K rpergr e 100 Pr dikate bergewicht tats chliches Gewicht Normalgewicht gt 1 2 Ein Propagierungsalgorithmus schr nkt den Wertebereich einer Variablen solange ein bis keine weiteren Einschr nkungen mehr m glich sind Bsp Hilferuf eines Studenten an seinen Vater SEND MORE MONEY Es soll jedem Buchstaben eine Ziffer zugewiesen werden so dass die Addition korrekt ist Wieviel Geld ben tigt der Student von seinem Vater Cl D E Y 10 Ul C2 N R Ul E 10 U2 C3 E O U2 N 10 U3 C4 S M U3 0 10 U4 C5 M U4 D E N O R Y 0 1 2 3 4 5 6 7 8 9 M S 1 2 3 4 5 6 7 8 9 s U1 U2 U3 U4 0 1 Aus C5 folgt M und U4 stellen dieselbe Zahl dar und sind
19. equals obj Object finalize toString getClass clone wait S mtliche Java Klassen bilden eine Hierarchie mit java lang Object als gemeinsame Basisklasse Assoziationen Assoziationen repr sentieren Beziehungen zwischen Instanzen von Klassen M gliche Assoziationen sind einfache benannte Assoziationen Assoziation mit angef gten Attributen oder Klassen Qualifzierte Assoziationen Aggregationen Assoziationen zwischen drei oder mehr Elementen Navigationsassoziationen Vererbung Attribute werden von Assoziationen unterschieden Assoziation Beschreibt Beziehungen bei denen beteiligte Klassen und Objekte von anderen Klassen und Objekten benutzt werden k nnen Attribut Beschreibt einen privaten Bestandteil einer Klasse oder eines Objekts welcher von au en nicht sichtbar bzw modifizierbar ist Grafisch wird eine Assoziation als durchgezogene Line wiedergegeben die gerichtet sein kann manchmal eine Beschriftung besitzt und oft noch weitere Details wie z B Muliplizit t Kardinalit t oder Rollenanmen enth lt z B 4 Arbeitet f r 0 1 Arbeitgeber Arbeitnehmer Eine Assoziation kann einen Namen zur Beschreibung der Natur der Beziehung Arbeitet f r besitzen Damit die Bedeutung unzweideutig ist kann man dem Namen eine Richtung zuweisen Ein Dreieck zeigt in die Richtung in der der Name gelesen werden soll 43 Objektorientierte Programmierung wissensbasierter Systeme
20. n n sql m_ctx ecur SELECT FROM EMP WHERE ENAME query_name_field getText while ecur next output append Employee s Number ecur empno n output append Employee s Name ecur ename n output append Employee s Job etury gob EN output append Employee s Salary ecur sal n output append Employee s Commison ecur comm n numRecordst we re done output append numRecords record numRecords 1 s retrieved n query_name_field setText ensure that iterator is closed ecur close else if command equals delete output setText Use an execution context to get an update count ExecutionContext ectx new ExecutionContext sql m_ctx ectx DELETE FROM EMP WHERE ENAME delete_name_field getText int numDeleted ectx getUpdateCount if numDeleted 1 output append Deleted delet N mploy _name_field getText else if numDeleted ExecutionContext EXCEPTION_COUNT output append An exception occurred during deletion else output append Deleted numDeleted employees 99 Objektorientierte Programmierung wissensbasierter Systeme delete_name_field setText catch SQLException e Report the error output append A SQL exception occurred n te
21. t ein Muster f r multithreading f hige Applets Name der Klasse Beschreibung Import der Pakete import java lang import java applet import java awt Top Level Klassen Deklaration bzw Definition des Applets public class Klassenname extends java applet Applet Variablen Deklarationen bzw Definitionen Eigene Methoden ffs Re thoden die ueberschrieben werden public void init public void start public void stop 126 Objektorientierte Programmierung wissensbasierter Systeme public void destroy Optional die Ausgabemethode public void paint Graphics g Bei Multithreading Verwendung der run Methode public void run Ly 127 Objektorientierte Programmierung wissensbasierter Systeme 5 1 5 Animation in Applets Animationsschritte Eine Animation umfa t in Java zwei Schritte 1 Aufbau und Ausgabe eines Animationsrahmens fenster 2 Entsprechende h ufige Wiederholung der Zeichnung um den Eindruck von Bewegung zu vermitteln Abspielen einer Animation Aufbau eines Animationsrahmens Dazu geh rt alles das was die Animation vorbereitet z B Ermitteln der Gr e des Ausgabebereichs Positionieren der Animation Erstellen oder Laden der einzelnen Animationsbilder Aufbau von einzelnen Animationssequenzen Abspielen einer Animation Die paint
22. und lt HEAD gt lt TITLE gt und lt TITLE gt Diese Marken stehen im Head Teil eines Dokuments lt BODY gt und lt BODY gt lt H1 gt und lt H1 gt lt P gt und lt P gt lt und gt Mit diesen Marken werden Kommentare eingeschlosen Sie dienen der Dokumentation und werden vom Browser nicht ausgewertet amp Uuml Umlaute und Sonderzeichen m ssen besonders definiert werden Dies geschieht ber sog Escapesequenzen die mit dem Zeichen amp beginnen und mit einem Semikolon enden 4 1 4 Arbeitsweise eines Web Servers 1 Das Hypertext Transfer Protocol http http definiert eine Kommunikation zwischen Client und einem Server Typischerweise horcht der Server auf Port 80 oder 8080 auf Anfragen des Clients Das Protokoll nutzt eine TCP IP Verbindung und ist textbasiert Alle HTTP Anfragen haben folgendes Format 74 Objektorientierte Programmierung wissensbasierter Systeme Eine Zeile am Anfang Einige Kopf Zeilen Einen K rper Body Anfrage GET index html HTTP 1 0 If Modified Since Saturday 12 Dec 98 12 34 56 GMT Ergebnis HTTP 1 0 200 OK MIME Version 1 0 Content type text html Content length 123 Last Modified Saturday 12 Dec 98 12 34 56 GMT lt HTML gt Server Client Abb Datentransfer zwischen Client und Server 2 Anfragen an den Server Ist die Verbindung aufgebaut wird eine Anfrage formuliert auf welches Objekt Dokument oder Programm zug
23. 0 5 TextField Label ingabeTextFeld new TextField 20 ingabeTextF ingab ingab public String s TextFeld set ldLabel new Label Eingabestring Editable true TextFeld addActionListener new ActionListener void actionPerformed ActionEvent ae ingabeTextFeld getText ausgabeTextFeld setText s 5 TextField ausgabeTextFeld new TextField 20 Label ausgabeTextFeldLabel new Label Ausgabestring ausgabeTextFeld set Editable false Panel panel new Panel panel add panel add eingabeTextFeld ingabel xtFeldl Label panel add ausgabeTextFeldLabel panel add ausgabeTextFeld Frame fenster new Frame Echo fenster add panel fenster pack fenster setVisible true Alternativ zur vorliegenden Realisierung der Ereignisbehandlung ber eine anonyme Klasse kann auch ein Listener ber eine lokale Klasse implementiert werden Gew hnlich ist die Anwendung eine Subklasse von Frame import java lang import java awt import java awt event public class Vorlllb extends Frame 120 Objektorientierte Programmierung wissensbasierter Systeme private static Label eingabeTextFeldLabel new Label Eingabestring private static TextField eingabeTextFeld new TextField 20 private static Label ausgabeTextFeldLabel new La
24. 0 lt Diese leere Klausel erscheint im Prolog Programm selbst nicht Sie ist beweistechnisch wichtig Der Ablauf des Programms besteht in dem Versuch ein Faktum aus dem Programm der Wissensbasis aus Fakten und Regeln abzuleiten Die Ableitung erfolgt nach einem fest vorgegebenen in Prolog implementierten Schlu folgerungsmechanismus Herzuleitende Fakten 18 Objektorientierte Programmierung wissensbasierter Systeme werden vom Benutzer in der Form von Implikationen ohne Konklusionsteil Anfrage goal an den Inferenz mechanismus bergehen z B struktur p1 b2 X mit der Bedeutung Gibt es ein X so da struktur p1 b2 X aus dem Programm folgt Der in Prolog eingebettete Schlu folgerungsmechanismus Resolution ver sucht herzuleiten da die Anfrage mit den Formeln des Programms im Wider spruch steht wenn f r X bestimmte Werte eingesetzt werden Bsp Gegeben ist das folgende Prolog Programm kind_von juergen christian fR Te Fakt kind_von juergen liesel J 2u Fakt ET mann christian 3 Fakt mann juergen 4 Fakt frau liesel 5 Fakt mutter_von X Y 1 Regel kind_von Y X frau X vater_von X Y 2 Regel kind_von Y X mann X An dieses Prolog Programm wird die Anfrage mutter_von liesel juergen gestellt Die Frage ist durch den Kopf der ersten Regel ersetzbar Prolog durchsucht die Wissensbasis vom Anfang bis zum Ende nach einem passendem Fakt b
25. Argument ein Objekt vom zugeh rigen Ereignistyp Alle Methoden sind vom Typ void 118 Objektorientierte Programmierung wissensbasierter Systeme Das JDK 1 1 impliziert eine Vielzahl von unterschiedlichen M glichkeiten Ereignishandler zu implementieren Fogende Entwurfsmuster bieten sich an Die Fensterklasse implementiert die erforderlichen EventListener Interfaces stellt die erforderlichen Call Back Methoden zur Verf gung und registriert sich selbst bei der Ereignisquelle In der Fensterklasse werden lokale und anonyme Klassen definiert die einen EventListener implementieren oder sich aus einer Adapterklasse ableiten Eine Adapterklasse implementiert ein Interface mit mehreren Methoden und erlaubt es somit abgeleiteten Klassen nur noch die Methoden zu berlagern die tats chlich von Interesse sind GUI Code und Ereignisbehandlung werden vollkommen getrennt und auf unterschiedlicheerteilt Klassen verteilt In der Komponentenklasse werden Methoden berlagert die f r das Empfangen und Verteilen von Nachrichten erforderlich sind 5 1 3 3 Anwendung lokaler Klassen f r die Ereignisbehandlung Im GUI Objekt das einen Event Handler ben tigt wird eine lokale Klasse zur Implementierung des passenden Interface angegeben Lokale Klassen werden lokal zu einer anderen Klasse erzeugt Sie sind nur innerhalb dieser Klasse definiert und sichtbar Objekte der lokalen Klasse k nnen nur aus der erzeugenden Klasse produziert werden Die lo
26. Catalina und Jasper Catalina ist f r Servlets zust ndig und Jasper f r die Java Server Pages Bei einer Installation sind beide Teile aktiv Bsp Snoop unter http localhost 8080 examples jsp snp snoop jsp Dieser Aufruf bezieht sich auf die Datei lt jakarta tomcat Pfad gt webapps examples jsp snp snoop jsp Zum Test eigener JSP Seiten kann das Verzeichnis benutzt werden um den Pfad nicht anpassen zu m ssen 5 4 2 Skript Elemente Die Spezifikation unterscheidet unterschiedliche Skript Elemente f r Ausdr cke Scriplets und Deklarationen Allen gemeinsam ist dass sie mit dem Tag lt beginnen und mit gt enden Script Tags k nnen nicht geschachtelt werden lt gt Eingebettete Javast cke besitzen dieses Format Hier lassen sich beliebige Deklarationen t tigen und Ausgaben machen Scriplets liegen zwischen den Tags lt und gt lt gt In dieser Umgebung werden variablen und Methoden definiert lt gt Hier steht ein Ausdruck der in die Seite eingebaut wird 5 4 3 Entsrechende XML Tags F r die entsprechenden Tags gibt es quivalente XML Anweisungen F r Scriplets lt jsp scriplet gt Programmcode lt jsp scriplet gt F r Ausdr cke lt jsp expression gt Programmcode lt jsp expression gt F r Deklarationen lt jsp declaration gt Programmcode lt jsp declaration gt 148 Objektorientierte Programmierung wissensbasierter Systeme 5 4
27. Java Code f r Interfaces 2 Erstellen und Kompilieren von Java Code f r die Implementierungs Klassen 3 Generieren von Stubs und Skeleton class files aus den Implementierungs Klassen 4 Erstellen des Java Code f r das request service host program 5 Entwicklung von Java Code f r das RMI client program 6 Installation und Ablauf vom RMI System Bsp 1 Definition der Schnittstelle Calculator Interface Das Calculator Interface definiert alle remote features die vom Dienst angeboten werden Die Methoden m ssen alle ein throws Remote Exception Statement besitzen das etwaige Netzwerkprobleme auff ngt die zur Verhinderung der Kommunikation zwischen Client und Server f hren k nnen public interface Calculator extends java rmi Remote public long add long a long b public long sub long a long b public long mul long a long b public long div long a long b throws java rmi RemoteException throws java rmi RemoteException throws java rmi RemoteException throws java rmi RemoteException Das Calculator Interface definiert alle remote features die vom Dienst angeboten werden Es wird bersetzt mit javac Calculator java 2 Implementierung des remote service Calculatorlmpl ber javac CalculatorImpl java public class CalculatorImpl extends java rmi server UnicastRemoteObject implements Calculator Implementations must have an e
28. KE Probleml sungstechniken u a a Frames Regeln ab Das grundlegende Konzept von KEE ist das Framekonzept Der Grundbaustein innerhalb der KEE Umgebung ist die Einheit unit Auch eine KEE Einheit besteht aus Slots die die Attribute der Einheit speichert Slots k nnen umfassen Daten Datenstrukturen Regeln und Methoden Jeder Slot hat seine eigenen Attribute Facets Sie erhalten Werte in KEE VALUES genannt Ist der Wert eines Slots eine Lisp Funktion so wird diese Methode METHOD genannt Methoden werden ber Botschaften angesto en Eine KEE Einheit kann Eigenschaften und Methoden h herer Ebenen bearbeiten auch mehrfache Veerbung ist zul ssig 1 2 6 Intelligente Agenten F r effektiven Informationsaustausch z B im Internet ist es in vielen F llen nicht m glich ein konventionelles Programm zu erstellen das seine Aufgabenstellung in zufriedenstellender Qualit t l st Die Verwendung von intelligenten Agenten stellt einen Ansatz dar mit deren Hilfe komplexe verteilte Probleme bew ltigt werden k nnen Zu diesem Zweck wird das Gesamtproblem in kleinere Teilprobleme zerlegt die von evtl verteilten autonomen Programmen ausgef hrt werden 1 2 7 Unsicheres Wissen Bisher wurde Wissen immer in Form von eindeutigen Fakten Regeln Bedingungen oder Abbildungen gespeichert H ufig k nnen aber Aussagen und Schlussfolgerungen nur mit einer bestimmten Unsicherheit getroffen werden Quellen f r die Unsicherheit k nnen sein
29. L sung des Problems liegt im erneuten Schreiben des Applets mit Threads Das Applet mu dazu mit den vorgegebenen vier Arbeitsschritten erweitert werden import java awt Graphics import java awt Font import java util Date Top Level Deklaration des Applets public class DigitalThreadUhr extends java applet Applet implements Runnable Variablen Deklaration Font einFont new Font TimesRoman Font BOLD 24 Date datun Thread faden Eigene Methoden Methoden die ueberschrieben werden public void start if faden null faden new Thread this faden start public void stop if faden null 125 Objektorientierte Programmierung wissensbasierter Systeme faden stop faden null public void run Ausfuehrung des Applet hier findet die Animation statt while true datum new Date repaint Aufruf der repaint Methode try Thread sleep 1000 Pause von 1000 Millisekunden catch InterruptedException e Optional aber sehr wahrscheinlich die Ausgabemethode public void paint Graphics g g setFont einFont Setzen des aktuellen Font g drawString datum toString 10 50 Ausgabe Datum Da paint wiederholt mit jeweils dem aktuellen Wert von datum aufgerufen wird wird die Zeichenkette jede Sekund zur Ausgabe des neuen Datums aufgerufen Das folgende Ger st umfa
30. Ort Hessisches Kniillgebirge Zeitpunkt Vorviegende T tigkeit Vorbereiten von Vorlesungen Schema Name Urlaub von Hubert Instanz von URLAUB Slots Ort S dfika Zeitpunkt Dezember 1998 Januar 1999 Vorviegende T tigkeit LGroBwildiagd Kosten 0 000 DM Abb Bezeihung zwischen Schema und zwei Instanzen Ein Rahmen f r einen bestimmten Urlaub wird durch Instanzierung des allgemeing ltigen Rahmens erzeugt Ein allgemeing ltiger Rahmen wird Schema genannt Die Instanzierung des Schema verl uft 26 Objektorientierte Programmierung wissensbasierter Systeme folgenderma en Zun chst wird ein neuer Rahmen erzeugt indem Speicherplatz f r ihn angefordert wird Danach wird er mit dem Schema verbunden indem bspw eine spezieller Instanz von Slot gef llt wird Anwendungen Frames sind passive Datenstrukturen Die Manipulation dieser Datenstrukturen erfolgt durch Prozeduren die nicht von einem Frame ausgew hlt und angesto en wurden Darin liegt auch der wesentliche Unterschied zum objektorientierten System Dort sind Zustand und Verhalten gekapselt und Operationen eine direkte Antwort auf eingegangene Botschaften Wegen der gro en Bedeutung von Frames in der K nstlichen Intelligenz KI gibt es zahlreiche Implementierungsversuche FLAVORS LOOPS KEE usw die auch objektorientierte Umgebungen besitzen Am weitesten fortgeschritten ist KEE Dieses System deckt ein weites Spektrum von
31. Schnittstellen und abstrakte Klassen Eine Schnittstelle ist eine Ansammlung von Operationen die eine Klasse ausf hrt Eine Klasse h ngt mit der Schnittstelle ber die Implementierung zusammen Eine Schnittstelle modelliert man in der Form einer gestrichelten Linie mit einem gro en unausgef llten Dreieck das neben der Schnittstelle steht und auf diese zeigt Bei der Bildung einer Unterklasse wird beides vererbt Eine reine Schnittstelle wie bspw in Java ist eine Klasse ohne Implementierung und besitzt daher nur Operationsdeklarationen Schnittstellen werden oft mit Hilfe abstrakter Klassen deklariert Bei abstrakten Klassen oder Methoden wird der Name des abstrakten Gegenstands in der UML u U kursiv geschrieben Ebenso kann man die Bedingung abstract benutzen lt lt interface gt gt InputStream DataInput PGS a po ge OrderReader abstract be _ Generalisierung A Abh ngigkeit Verfeinerung DatalnputStream f Abb Schnittstellen und abstrakte Klassen Ein Beispiel aus Java Irgendeine Klasse z B OrderReader ben tigt die DataInput Funktionalit t Die Klasse DataInputStream implementiert DataInput und InputStream Die Verbindung zwischen DataInputStream und Datalnput ist eine Verfeinerung refinement Eine Verfeinerung ist in UML ein allgemeiner Begriff zur Anzeige eines h heren Detaillierungsniveaus Die Objektbeziehung zwischen OrderReader und Datalnput ist eine Abh ngigkeit
32. Slot aufzurufen ist beim_entfernen wird beim Entfernen einer Slot Instanziierung aktiviert beim_aendern wird beim ndern eines Slot Werts aufgerufen default erm glicht die Angabe einer Vorbesetzung f r den Wert eines Slots Sie wird gew hlt falls weder wert noch bei_bedarf Facet vorliegt anforderungen kann Bedingungen f r den Wert des Slots enthalten Das k nnen bspw einfache Werte oder Wertintervalle sein vorziehen enth lt Angaben zu Werten oder Wertebereiche die nicht obligatorisch aber w nschenswert sind Der bedarfsweise R ckgriff auf h here Rahmen wird als Vererbung bezeichnet Welche Rahmen jeweils bergeordnet ist und zu welcher Klasse somit ein Objekt geh rt wird in einem ako Slot verzeichnet Alle Rahmen mit Ausnahme des allerh chsten m ssen einen ako Slot besitzen Der oberste Rahmen steht gew hnlich f r allgemein umfassendes Objekt Die Zugriffsstrategie f r die Veerbung ist durch folgende Regeln bestimmt Gibt es einen Slot f r die gesuchten Daten im Rahmen des gerade behandelten Objekts so gelten die in ihm enthaltenen Informationen Andernfalls wird der entsprechende Slot im direkt bergeordneten Rahmen also in der Beschreibung der n chsth heren Klasse gesucht und so von den Eltern auf die Kinder vererbt und diese Veerbung wird gegebenenfalls bis zum allerh chsten Objekt der Hierarchie fortgesetzt Slotanh ngsel Ein Slot kann mit einem Wert und oder einer
33. Wissen wird erleichtert indem das Wissen in Bausteine den sog Frames bereitgestellt wird Ein Frame Rahmen bezeichnet das Zusammenwirken von Wissen das f r ein Objekt Konzept oder in einer bestimmten Situation von Bedeutung ist Eine Wissensbasis besteht generell aus vielen Rahmen wobei jeder Rahmen wiederum mehrere Informationen enth lt Ein Rahmen kann im System st ndig gehalten oder w hrend eines L sungsvorgangs beliebig oft erzeugt und gel scht werden Ein Frame Rahmen enth lt demnach das problem und fallspezifische Wissen ber ein Objekt Objekte sind hier in eine Hierarchie eingebettet Instanzen sind die Endknoten Bl tter der Hierarchie h here Knoten in der Hierarchie die n her zu den allgemeinen allen bergeordneten Objekttypen stehen sind Klassen Eine Klasse kann als Schablone Schema f r ein Objekt aufgefa t werden Sie definiert die Eigenschaften und das erhalten der zugeh rigen Objekte Die einzelnen Auspr gungen einer Klasse hei en Instanzen Instanzen erhalten grunds tzlich die gleichen Eigenschaften und Verhaltensweisen z B Methoden wie die Klasse Klassen Instanzen im allg Objekte erhalten Rahmen zugeordnet Frames sind demzufolge Erwartungsrahmen zur Aufnahme und Abspeicherung von Wissen Der Wissensingenieur bzw Benutzer soll die vorgegebenen festen Rahmen nur noch mit dem problem und fallspezifischen Wissensinhalten ausf llen Ein Frame hat einen Objekt Namen Slots
34. add Methode des Fensters die tats chliche Anordnung der Komponenten auf dem addWindowListener new WindowAdapter public void windowClosing WindowEvent e setVisible false dispose System exit 0 H Layout festelegen und Komponenten hinzufuegen int i 0 Panel pl new Panel pl setLayout new GridLayout 3 1 pl add new Button Schaltflaeche 1 pl add new Button Schaltflaeche 1 pl add new Button Schaltflaeche 1 Panel p2 new Panel p2 setLayout new BorderLayout p2 add North new Button Schaltflaeche p2 add South new Button Schaltflaeche p2 add West new Button Schaltflaeche p2 add East new Button Schaltflaeche r p2 add Center new Button Schaltflaeche 1 Hauptfenster setLayout new GridLayout 1 2 add pl add p2 pack public static void main String args PR14171 f new PR14171 f setVisible true void setIconImage Image bild kann einem Fenster ein Icon zugeordnet werden das beim minimieren angezeigt wird 123 Objektorientierte Programmierung wissensbasierter Systeme Das vorliegende Programm zeigt nach dem Aufruf das folgende Fenster Schaltflaeche 4 Schaltflaeche 2 Schaltfaeche 6 Schaltflaeche 8 Schaltflaeche 7 Schaltfllaeche 3 Schaltflaeche 5 Einf gen von Dialogelementen Es erfolgt b
35. bergreifend sein Gesch ftsregeln und Entscheidungslogik lassen sich ebenfalls abbilden Aktivit tsdiagramme enthalten blicherweise Aktivit tszust nde und Aktionszust nde Zustans berg nge Transitionen Objekte 61 Objektorientierte Programmierung wissensbasierter Systeme Anfangszustand Pita A PAT IAE AIE E REN gt Aktivitat Aktivitat Aktionszus tand te Luke l Bedingung 1 Aktivit t Aktivit t Aktivit t End sta n aeea ecke Abb Aktivit tsdiagramm Beispiel Kaffeekochen Jede Aktivit t kann von einer anderen gefolgt werden einfache Aneinanderreihung z B wird in der folgenden Abb Kaffeepulver in Filter einfiillen von der Aktivit t Filter in Maschine einsetzen gefolgt Aus Bestimme Getr nk kommen zwei Trigger Jeder Trigger besitz eine Bedingung guard ein zu wahr oder falsch auszuwertender logischer Ausdruck Wird der Kaffeeweg eingeschlagen dann f hrt dieser Trigger zu einem Synchronisationsbalken synchronization bar an den drei ausgehende Trigger angeschlossen sind Die dar ber erreichten Aktivit ten k nnen parallel stattfinden Reihenfolge ist unwichtig Die von diesen Aktivit ten ausgehenden Trigger werden wieder in einem Synchronisationsbalken zusammengafa t Ein einfacher Synchronisationsbalken bedeutet Der ausgehende Trigger tritt erst dann in Erscheinung wenn alle eingehenden Trigger aufgetreten sind In einem anderen Pfad des Be
36. class GoogleSucher public static void main String args throws String s if args length 0 s Stephan Meier in R else for int i 0 i lt args length i s a s trim s p URLEncoder encode s System out println s URL u new URL http de google yahoo com BufferedReader ein new BufferedReader new InputStreamReader u openStream String zeile antwort null whil zeil in readLin null antw System out print antwort URLs in Applets Die Klasse Applet hat zwei Methoden mit kann ohne eine feste Adresse im Programm anzugeben Die Methode getDocumentBase gibt ein URL Objekt zur ck die Webseite mit dem Applet enth lt Die Methode getCodeBase gibt ein URL Objekt zur ck das class Datei der Hauptklasse des Applet befindet Die Applet Klasse bietet eine Methode mit dem Namen get 1 IOException MalformedURL Exception egensburg L rgs i bin query_de s ort zeile n denen man eine Basis URL erzeugen welches das Verzeichnis repr sentiert das den Ordner repr sentiert in dem sich die mage an mit der ein Bild in ein Image Objekt geladen werden kann Es gibt zwei M glichkeiten diese Methode zu verwenden Die Methode get Image aufgerufen mit einem Argument ein Objekt vom Typ URL l dt das Bild mit dieser URL Die Methode get Image aufgerufen mit zwei Argumenten der B
37. des Lebenszyklus eines Applet Ein Applet f hrt keine Aktionen aus eigener Initiative aus sondern empf ngt Ereignisse vom System und liefert Ergebnisse zur ck Beim Start eines Applet ruft der Webbrowser die Methode init des Appletobjekts auf Beim Beenden eines Applets wird die Methode destroy aufgerufen init und destroy werden im Lebenszyklus eines Applet genau einmal ausgef hrt n mlich beim Erzeugen bzw beim Beenden eines Objekts Zus tzlich sind zwei weitere Methoden start und stop vorgesehen die an verschiedenen Stellen zur Aktivierung aufgerufen werden k nnen W hlt ein Anwender bei gestartetem Applet z B im Browser eine andere Internetseite an so ruft der Browser die stop Routine auf und h lt das Applet an bis der Anwender wieder auf die Appletseite zur ckkehrt Dann ruft der Browser die start Routine zum ordnungsgem en Fortsetzen des Applet auf import java awt import java applet public class AppletDemo extends Applet Instanzvariable String s int initialisierungen 0 int startpunkte 0 int haltepunkte 0 Methoden public void init initialisierungent t public void start startpunkte t t public void stop haltepunktet t public void paint Graphics g Zar Ausgab iner geeigneten Nachricht tiber das Verhalten des Applet wird der String s mit Hilfe des Opertors aus Teilstrings zusammengesetzt Ganze Zahlen werden dabei in Zei
38. deshalb durch die Schnittmenge der beiden Wertebereiche mit M 1 eindeutig bestimmt C4 reduziert sich auf S U3 O 9 Annahme U3 1 C4 vereinfacht sich zu S O 8 Daraus ergibt sich Se 18 9 und O 0 Damit vereinfacht sich C3 zu E U2 N 10 was f r keine g ltige Wertebelegung erf llt sein kann da E lt 10 sein mu U3 1 war also falsch Neue Annahme U3 0 C4 vereinfacht sich zu S O 9 und ist nur f r S 9 und O 0 erfiillbar F r C3 ergibt sich E U2 N Die Annahme U2 0 f hrt zum Widerspruch E N also mu U2 1 sein Daraus folgt E 1 N Man ersetzt in C2 N durch E 1 symbolisches Propagieren F r C2 ergibt sich R U1 9 9 ist nicht mehr im Wertebereich der Variablen R es folgt R 8 und U1 1 F r C1 gilt nun D E Y 10 Die aktuelle Wertemengen sind D E N Y 2 3 4 5 6 7 Aus E 1 N folgt da f r N der wert 2 und E der Wert 7 herausf llt Aus D E Y 10 fogt die Ungleichung D E gt 11 Dadurch werden die Wertemengen weiter eingeschr nkt Ee 15 6 und De 6 7 23 Objektorientierte Programmierung wissensbasierter Systeme Aus E 5 folgt D 7 und N 7 Widerspruch E 5 mu gelten Damit ergeben sich N 6 D 7 und Y 2 und insgesamt die folgende eindeutige L sung des Problems 9657 1085 10652 1 2 5 Objektbezogene texttuelle Darstellung Frames Rahmen frames Frames Rahmen liefern ein Organisationsschema f r Wissensbasen Der Zugriff auf das
39. die SQL Anweisung aber nicht aus Die Methoden executeQuery executeUpdate und execute nehmen keine Parameter auf sondern nur Aufrufe f r das DBMS das bereits optimierte SQL Statement auszuf hren 37 EinCallableStateme nt Objekt wird von der prepared Methode eines Connect ion Objekts erzeugt 88 Objektorientierte Programmierung wissensbasierter Systeme public ResultSet xecuteQuery String sql throws SQLException des Java Interface java sql Statement f hrt ein SQL Statement aus das ein einzeilnes ResultSet Objekt zur ckgibt getMaxFieldSize OF ee see setMaxFieldSize i getMaxRows do S O getQueryTimeout Oi O Abb Methoden des Interface java sql Statement Das Ergebnis einer Abfrage durch executeQuery wird von einer Ergebnistabelle vom Typ ResultSet lassen sich unterschiedliche Spalten ansprechen und die zeilen auswerten Methodenname wasNull Beschaffen der Datenwerte ber die Position fin columhindeo Tale getDouble int columnIndex int columnIndex int columnIndex int columnIndex long String columnIndex int scale Java sql Numeric getObject String ColumnIndex int columnIndex int columnIndex Gitcolamnindes wanna getTimeStamp int columnIndex Java sql Timestamp int columnIndex 89 Objektorientierte Programmierung wissensbasierter Systeme Beschaffen der Datenwerte ber den Spalten Name String columnName String columnName Sting columnName Stri
40. eignen sich besonders gut zur Bearbeitung umfangreicher regelm ig strukturierter Informationsmengen In relationalen Datenbanken werden bestimmte Beziehungen abgelegt aus denen sich Zusammenh nge ableiten lassen Datenbanksysteme stellen in der Regel zuverl ssige Operationen zur Verf gung Projektion Selektion Verbund Diese lassen sich zu Abfragen und im begrenzten Umfang auch zu Inferenzen einsetzen Zusammen mit leistungsf higen Inferenzmethoden z B der Resolution der Pr dikatenlogik ergibt sich ein intelligentes schnell reagierendes wissensbasiertes System Relationale Datenbanken unterst tzen die logischen Verfahren zur Beschreibung von Wissen Wird Wissen in einem Graphen repr sentiert dann entsprechen die Knoten des Graphen den Objekten des Problembereichs Die Kanten des Graphen geben die Beziehungen zwischen den Objekten wieder Eine persistente Ablage die Struktur und Verhalten des Objekts enth lt kann in objekt relationalen Datenbanken erfolgen Bedeutende Hersteller von relationalen Datenbanken z B Oracle haben die rein relationale Datenstruktur auf objekt relationale Architektur umgestellt Es k nnen aber weiterhin auch Tabellen f r relationale Datenbanken erstellt werden zus tzlich aber auch vollst ndige Spezifikationen von Objekttabellen reine Indextabellen und komplexe Strukturen in denen Attribute Typen verschachtelte Tabellen eingesetzt werden k nnen 28 Objektorientierte Programmierung wissensbasier
41. eine DB Wissensbasis eines Computersystems herk mmlichen Wissensspeicher Informatio Wissen Informationsverarbeitung Gewinnen der f r die Situation n tige handlungsrelevante Information aus dauerhaft gespeichertem Wissen Denken log Schlie en iederauffinden verstehen Interpretation Kommunikation von gespeichertem Wissen Abb Kreislauf von Wissen und Information zeigt den Kreislauf der Transformation von Wissen in Information und umgekehrt Darin steht Handeln f r Denken logisches Schlie en und Kommunikation durch das Informationen aus der Umgebung aufgenommen wird Handeln steht aber auch f r das Verhalten in problematischen unbekannten Situationen in denen ein System Mensch Rechner Informationen ben tigt um zu handeln Wissensverarbeitung befasst sich mit der Beschleunigung der Rationalisierung und Automatisierung der Transformation von Wissen in Information und umgekehrt Die Wissensverarbeitung bedient sich dazu der Methoden der KI Simulation menschl Intelligenz der Heuristik Umsetzen menschl Probleml sens in die Programmierung und des automatischen Erkennes Bild und Spracherkennung Objektorientierte Programmierung wissensbasierter Systeme 1 1 Wissensverarbeitung und Wissensverbreitung Rechnergest tzte Wissensverbreitung Wissensverarbeitung erfolgt durch einen Kommunikationsprozei zwischen dem Informationsproduzenten und dem Informationsempf nger Dieser Proze kann di
42. existieren Verbindungen Dabei handelt es sich um die physikalischen Kommunikationspfade die als Linien gezeichnet werden Frankfurt Geldautomat Zentrale Konsole Mainframe Bildschirm M nchen Geldautomat Abb Deployment Diagramm 65 Objektorientierte Programmierung wissensbasierter Systeme 2 2 9 Schema Modellierung relationale Datenbanken Die Klassendiagramme der UML bilden eine Obermenge von Entity Relationship Diagrammen Klassendiagramme lassen auch das Modellieren von Verhaltensweisen zu In einer physischen Datenbank werden diese logische Operationen im allg in Trigger oder gespeicherte Prozeduren umgewandelt 1 Modellierung eines logischen Datenbankschemas Das Modellieren eines logischen Datenbankschemas umfa t die Identifikation von Klassen deren Zustand die Lebensdauer ihrer Anwendungen berdauern mu das Erstellen eines Klassendiagramms das all diese Klassen enth lt und das Markieren dieser Klassen mit den Standardeigenschaftswert persistent Expansion der strukturellen Eigenschaften dieser Klassen Spezifikation der Details zu den Attributen Konzentration auf Assoziationen und Kardinalit ten Beachtung typischer Muster z B rekursive Assoziationen Eins zu eins Assoziationen n re Assoziationen Betrachtung der Vehaltensweisen dieser Klassen z B durch Expansion von Operationen die f r Datenzugriff und Integrit t der Daten wichtig sind berf hrung falls m glich mit Hil
43. im Pfad jakarta tomcat unterschiedliche Verzeichnisse wobei unter bin die ausf hrbaren Skripte zum Verwalten der Servers sind Damit der Server gestartet werden kann mu die Umgebungs Variable JAVA_HOME so gesetzt sein dass sie auf das JDK zeigt set TOMCAT_HOME d Programme jakarta tomcat 3 2 3 set JAVA_HOME d jdk1 3 1 cd bin startup Ohne Ver nderung der Voreinstellung installiert sich der Webserver auf dem lokalen Rechner auf Port 8080 Der aufruf bin startup aktiviert direkt den Server 67 Hierf r stehen im JDK die Pakete java servlet und java servlet http spezifische Erweiterung von http bere 68 Sun verzeichnet auf ihrer Webseite http java sun com products servlet industry html eine Liste von Servlet f higen Servern Ein Server ist genau dann Servlet f hig wenn er die Java Servlet und Java Server Pages Spezifikation erf llt Die Servlet Komponete kann dabei integraler Bestandteil des Servers sein oder auch ein Zusatz der nachtr glich zu installieren ist 69 Webadresse http jakarta apache org 70 Batch Dateien unter Windows 146 Objektorientierte Programmierung wissensbasierter Systeme Ein Blick im Browser auf die lokale Adresse http localhost 8080 zeigt die Startseite Hier befinden sich Beispiele und die APIs f r das Paket 5 4 Java Server Pages JSP 5 4 1 Was sind Java Server Pages Sun Micosystems hat die Java Server Pages JSP f r die Realisierung einer Pr sentationsschicht einer Web
44. import java util public class HalloJdbcApplet extends java applet Applet The driver to load static final String driver_class oracle jdbc driver OracleDriver The connect string static final String connect_string Jdbc oracle thin saj39122 saj39122 lap sauer 1521 pcora81 This is the kind of string you woudl use if going through the Oracle 8 connection manager which lets you run the database ona different host than the Web Server S the on line documentation for more information The query we will execute static final String query Select Hallo JDBC sysdate from dual The button to push for executing the query Button execute_button The place where to dump the query result TextArea output The connection to the database Connection conn Create the User Interfac public void init this setLayout new BorderLayout Panel p new Panel p setLayout new FlowLayout FlowLayout LEFT execute_button new Button Hello JDBC p add execute_button this add North p output new TextArea 10 60 this add Center output Do the work public boolean action Event ev Object arg r if ev target execute_button try 95 Objektorientierte Programmierung wissensbasierter Systeme Clear the output area Diese setText Anweisung initialisiert TextArea mit leerem String output setText
45. kann durch Anklicken derartiger Markierungen im Dokument oder durch Weiterbl ttern bzw R cksprung zu einem fr heren Knoten fortfahren solange er will Dokumente werden in einem speziellen Format dem Hypertext Format gespeichert Zum Erstellen von Dokumenten steht die Seitenbeschreibungssprache HTML Hypertext Markup Language zur Verf gung Grundlage der Webtechnik ist die Sprache HTML die aus SGML Standard Generalized Markup Language abgeleitet wurde SGML bietet ein hochkomplexes System f r die Auszeichnung von Dolumenten Bei der Entwicklung des WWW brauchte man ein einfaches Auszeichnungs System bei dem praktisch jeder schnell zur K nnerschaft gelangen konnte Man entschlo sich die neue Auszeichnungssprache an SGML zu orientieren So entstand die HyperText Markup Language HTML HTML ist ein spezieller Dokumenttyp von SGML HTML Dateien sind reine Textdadteien Steueranweisungen sog Tags werden in spitzen Klammern eingeschlossen HTML beschreibt die Struktur des Texts z B dies ist eine berschrift oder hier beginnt ein Absatz Neben Tags zur Strukturierung des Texts gibt es auch noch Image Tags zur ansprechenden Ausstattung der Web Seiten mit Bildern Die wichtigsten Tags sind Hyperlinks Dar ber kann man auf Dokumente verweisen die irgendein anderer Rechner im Internet bereitstellt Diese Verweise bilden ein weltumspannendes Netz das WWW Das Hypertext Transfer Protocol HTTP dient ar bertragung von In
46. sentiert die die Webseite mit dem Applet enth lt die Methode getCodeBase gibt ein Verzeichnis Ordner zur ck das das Verzeichnis repr sentiert in dem sich die class Datei der Hauptklasse des Applet befindet Ausgabe von Bildern Mit der Methode drawImage der Graphics Klasse kann ein Bild das in ein Image Objekt geladen wurde angezeigt werden drawImage hat 4 Argumente das Image Objekt das angezeigt werden soll die x und y Koordinate das Schl sselwort this Mit paint kann das Bild zur Anzeige gebracht werden public paint Graphigs g g drawImage imageObjekt xKoord yKoord this Bsp import java awt import java applet public class ZeichneBild extends Applet private Image bild public void init bild getImage getDocumentBase B04240900 jpg resize 250 200 public void paint Graphics g int xPos 10 g drawImage bild xPos 10 this 53 Adressen im World Wide Web werden durch URL Objekte repr sentiert Die Klasse URL Uniform Resource Locator ist Teil des Pakets java net 133 Objektorientierte Programmierung wissensbasierter Systeme 5 1 7 Die Ausgabe von Sound Sound Ausgabe in Applets Das JDK bietet M glichkeiten zur Ausgabe von Sound gt an Die Ausgabe von Sound kann ber zwei Methoden der Klasse Applet erfolgen public void play URL url public void play URL url String name hier kann entweder d
47. sich auf ihn beziehenden Information vorbesetzt werden Da eine solche Information weder dem Wert mit dem der Slot gef llt ist wurde noch dem Namen des Slot entspricht wird sie slot attachement Anh ngsel genannt Anh ngsel k nnen sein 1 Eine Bedingung constraint die vom in den Slot gef lten Wert erf llt wird 5 D monen demons sind Prozeduren die automatisch aktiviert werden falls eine mit angegebene Bedingung zutrifft 6 vgl Thuy N H C Schnupp P Wissensverarbeitung und Expertensysteme M nchen Wien 1989 25 Objektorientierte Programmierung wissensbasierter Systeme 2 Eine Prozedur die bei Bedarf zur Bestimmung des Slotwerts eingegesetzt wird 1f needed prozedurales Anh ngsel 3 Eine Prozedur die ausgef hrt wird nachdem ein Slot mit einem Wert gef llt wurde if added prozedurales Anh ngsel Dadurch wird erreicht da Wissen nicht nur passiv gespeichert wird Es wird m glich bei jedem Zugriff auf Slots Schl sse zu ziehen und andere Frames zu modifizieren Auf diesem Wege kann die Wissensbasis auf einfache Art konsistent halten werden 4 Defaultwerte die beim Lesezugriff zur ckgegeben werden wenn kein Wert explizit zugeordnet wird Schema Ein Rahmen wird h ufig an eine Klasse von Objekten oder Situationen gebunden z B Schema Name URLAUB Slots Ort DL Zeitpunkt DU Vorwiegende T tigkeit LO Schema Name Mein Urlaub 1998 Instanz von URLAUB Slots
48. zur Verf gung Bsp Ein Applet zum Zeichnen von Punkten an den Stellen an denen eine Maustaste gedr ckt wurde Import der Pakete import java awt import java awt event Top Level Klassen Deklaration des Applets public class MausDownPunktApplet extends java applet Applet Variablen Deklarationen private int mausX mausY private boolean mausKlick false Methoden die ueberschrieben werden public void init setBackground Color yellow addMouseListener new MouseAdapter public void mouseClicked MouseEvent e mausX e getX mausY e getY repaint public boolean mouseDown Event e int x int y mausX x mausY y mausKlick true repaint return true Ausgabemethode public void paint Graphics g g setColor Color blue if mausKlick VIA g fillOval mausX mausY 20 20 mausKlick false Nach jedem Mausklick wird ein blauer Punkt in die Zeichenfl che gebracht Das Bild wird neu gezeichnet Die repaint Methode ruft vor der Ausf hrung der paint 116 Objektorientierte Programmierung wissensbasierter Systeme Methode die update Methode auf die anschlie end paint aufruft update leert in Originalform den Anzeigebereich des Applets Wird update berschrieben z B durch public void update Graphics g paint g entf llt das Leeren des Anzeigebereichs Import der Pakete i
49. 2 2 3 Klassendiagramme Elemente und Darstellung des Klassendiagramms Das Klassendiagramm beschreibt die statische Struktur der Objekte in einem System sowie ihre Beziehungen untereinander Die Klasse ist das zentrale Element Klassen werden durch Rechtecke dargestellt die entweder den Namen der Klasse tragen oder zus tzlich auch Attribute und Operationen Klassenname Attribute Operationen Methoden sind jeweils durch eine horizontale Linie getrennt Klassennamen beginnen mit Gro buchstaben und sind Substantive im Singular Ein strenge visuelle Unterscheidung zwischen Klassen und Objekten entf llt in der UML Objekte werden von den Klassen dadurch unterschieden da ihre Bezeichnung unterstrichen ist Haufig wird auch dem Bezeichner eines Objekts ein Doppelpunkt vorangestellt Auch k nnen Khssen und Objekte zusammen im Klassendiagramm auftreten Obi Wenn man die Objekt Klassen Beziehung Exemplarbeziehung Instanzbeziehung darstellen m chte wird zwischen einem Objekt und seiner Klasse ein gestrichelter Pfeil in Richtung Klasse gezeichnet Defintion einer Klasse Die Definition einer Klasse umfa t die bedeutsamen Eigenschaften Das sind Attribute d h die Struktur der Objekte ihre Bestandteile und die in ihnen enthaltenen Informationen und Daten Abh ngig von der Detaillierung im Diagramm kann die Notation f r ein Attribut den Attributnamen den Typ und den voreingestellten Wert zeigen Sichtbarkeit Name Typ
50. 4 Direktiven Eine Direktive in JSP hat Einflu auf die Struktur von Seiten Die Direktiven werden in den Tags lt und gt eingeschlossen 5 4 5 Aktionen Aktionen in JSP ver ndern das Verhalten des Servlet Containers Externe Daten k nnen eingebunden werden Seiten umgeleitet werden es kann auf externe Objekte verwiesen werden F r einzelne aktionen existieren keine Tags sie werden in XML Anweisungen gesetzt Dabei ist die interessanteste M glichkeit die Nutzung von JavaBeans Daf r wurde jsp useBeans setProperty jsp getProperty definiert 149
51. 8 kHz N lawKompression ab vorliegen mu te Seit dem JDK 1 2 werden auch die Sample Formate WAV und AIFF sowie die Midi Formate Typ 0 und Typ 1 und RMF unterst tzt Zudem gibt es einige Shareware oder Freeware Tools die zwischen verschieden Formaten konvertieren k nnen z B CoolEdit oder Gold Wave 134 Objektorientierte Programmierung wissensbasierter Systeme Thread sleep 10000 catch InterruptedException e catch MalformedURLException e System out println e toString 5 1 8 Applets in Archiven Bisher wurden Applet Klassen auf dem Server abgelegt Alle Klassen die das Applet ben tigt werden dann vom Server geladen wenn sie zum ersten Mal verwendet werden Das f hrt zu l stigen Verz gerungen In Java gibt es eine M glichkeit Applets in komprimierte Archive zu laden Solche Archive werden mit einem Zip Programm gepackt und enthalten alle Klassen die zum Ablauf n tig sind Die Archive werden komplett vor dem Start des Programms bertragen Das JDK stellt ein werkzeug mit dem Namen jar bereit jar cf archive jar class Falls das Applet eigene Pakete verwendet so sollten diese Klassen in den entsprechenden Unterverzeichnissen ebenfalls mit eingepackt werden Das Applet Tag in der HTML Datei mu dann folgenderma en erweitert werden lt APPLET CODE Appletname class WIDTH HEIGHT ALLIGN BOTTOM ARCHIVE archive jar gt Archive k nnen auch fiir locale App
52. Graphics f backgroundGraphics s backgroundGraphics d backgroundGraphics s backgroundGraphics f g drawImage backgrou xAlt x yAlt y phics g etColor Color white rawLine xStart yStart xAlt yAlt illOval xAlt d 2 yAlt d 2 d d etColor Color blue rawLine xStart yStart x y etColor Color red illOval x d 2 y d 2 d d ndImage 0 0 this 132 Objektorientierte Programmierung wissensbasierter Systeme 5 1 6 Das Laden und Anzeigen von Bildern Den Umgang mit Bildern erm glicht die Klasse Image des Pakets java awt In einem Applet k nnen Methoden der Klassen Applet und Graphics zum Laden und Anzeigen von Bildern herangezogen werden Bilder werden als seperate Dateien au erhalb der class Dateien von Java gespeichert Falls die Image Klasse verwendet wird mu das Bild im Format GIF oder JPG vorliegen Laden von Bildern Es erfolgt mit der Methode get Image aus der Applet Klasse die mit einem oder zwei Argumenten aufgerufen werden Kann Aufruf von getImage mit einem Argument ein Objekt vom Typ URL Aufruf mit zwei Argumenten Basis URL des Bilds URL Objekt und ein String der den relativen Pfad oder den Dateinamen des aktuellen Bilds angibt Die Klasse Applet besitzt zwei Methoden zum Erzeugen einer Basis URL ohne Angaben fester Adressen im Programm die Methode getDocumentBase gibt ein URL Objekt zur ck das den Ordner das Verzeichnis repr
53. HT Wert gt lt APPLET gt klassenelement Applet Klasse WIDTH Wert Breite des Applet in Pixel 48 Dies ist immer beim ersten Aufruf des Applets der Fall aber auch jedesmal dann wenn das Applet Fenster verschoben oder zwischenzeitlich von einem anderen Fenster berlagert wurde 49 Das ruft oft den unangenehmen Flimmereffekt bei schnellen Bildsequenzen hervor 112 Objektorientierte Programmierung wissensbasierter Systeme HEIGHT Wert H he des Applet in Pixel Das lt APPLET gt Tag erzeugt keinen Absatz deshalb sollte es in einem allgemeinen Text Tag stehen z B lt P gt oder in einem berschriften Tag lt H1 gt lt H2 gt usw Optionale Parameter des lt Applet gt Tag CODEBASE Hier kann ein alternatives Verzeichnis gt f r das Laden von Klassendateien angegeben werden Fehlt diese Angabe wird das Dokumentenverzeichnis genommen ARCHIVE Angabe des JAR Archivs aus dem die Klassendateien und sonstige Resourcen des Applet genommen werden OBJECT Name der Datei die den serialisierten Inhalt des Applet enth lt NAME Eindeutiger Name f r das Applet Er kann zur Unterscheidung mehrerer kommunizierender Applets auf einer Web Seite verwendet werden ALIGN Vertikale Anordnung des Applets in einer Textzeile Hier kann einer der Werte left right top texttop middle absmiddle baseline bottom absbottom angegeben werden VSPACE Rand ber und unter dem Applet HSPACE Rand links oder rech
54. Knoten und die Kanten zu benennen sind Man h lt sich aber generell an die folgenden Vereinbarungen 1 Knoten werden dazu benutzt um Objekte und Eigenschaften darzustellen Objekte k nnen sowohl physische Gegenst nde z B Student Dozent Seminarraum Fahrzeug als auch gedankliche Elemente z B Handlungen Ereignisse Vorlesungen sein Eigenschaften liefern zus tzliche Informationen ber Objekte gr n rot dumm intelligent 2 Eine Kante kann jede Art von Beziehung darstellen Objektorientierte Programmierung wissensbasierter Systeme Kantentypen in semantischen Netzen Einige Kantentypen haben sich als besonders grundlegend herausgestellt und werden praktisch in allen semantischen Netzen verwendet ist_ein is_a Kante Diese Kante wird benutzt um eine Beziehung zwischen Klasse und Subklasse darzustellen Bsp auto ist_ein fahrzeug Damit wird ausgedr ckt da die Menge der Autos in der Menge der Fahrzeuge enthalten ist hat bzw ist has bzw is Kante Die Kanten ordnen Objekte Eigenschaften zu Bsp auto hat raeder Hier wird dem Konzept auto die Eigenschaft zugeordnet da ein Auto R der hat instanz_von instance_of bzw auspraegung_von Kante Diese Kante verbindet ein Individuum mit seinem generischen Typ Dieser Kantentyp ist eine Hilfe zur Vermeidung m glicher Verwirrungen zwischen Konzepten und Instanzen solcher Konzepte Bsp hat Br ist ist wei schwarz Abb 1 2 2 Ein semantische
55. Objekten oder Objekttypen Semantische Netze sind daf r ein Beispiel Im Gegensatz zu Datenbankmodellen Trennung von Schema und Instanz z hlen Objekte Instanzen zur Repr sentation von Wissen Netzwerk Verfahren sind demnach objektbezogene graphische Verfahren 1 vgl 1 2 2 Objektorientierte Programmierung wissensbasierter Systeme 1 2 Repr sentationsformen von Wissen Praktisch kann man eine Wissensrepr sentation als die Abbildung eines Ausschnitts der realen Welt bezeichnen Die Abbildung mu in der Art und Weise geschehen dass die darin enthaltenen Informationen automatisiert verarbeitet werden k nnen Das Wissen kann implizit im Programmcode somit in der Abfolge der Befehle gespeichert sein oder explizit an bestimmten Stellen des Systems Algorithmus Probleml sungsstrategie Wissen Daten konventionelle Systeme Wissensbasierte Systeme Abb Grunds tzlicher Aufbau von konventionellen Programmen und wissensbasierten Systemen Konventionelle Programme die Wissen implizit speichern erschweren es Wissen nachtr glich zu ver ndern Dazu w re ein Eingriff in den Algorithmus notwendig Bei wissensbasierten Systemen existiert eine klare Schnittstelle zwischen anwendungsspezifischen Wissen und der allgemeinen Probleml sungsstrategie Die Komponente Allgemeine Probleml sungsstrategie wird auch Inferenzmaschine genannt Der Vorteil dieses Konzepts ist dass man eine Probleml sungsstrategie f r mehrere Anwendungsgebi
56. Objektorientierte Programmierung wissensbasierter Systeme Prof J rgen Sauer Objektorientierte Programmierung wissensbasierter Systeme Skriptum zur Vorlesung im WS 2002 2003 Objektorientierte Programmierung wissensbasierter Systeme Inhaltsverzeichnis 1 Beschreibung und Pr sentation von Wissen 1 1 Wissenverarbeitung und Wissensverbreitung Rechnergest tzte Wissensverarbeitung Verfahren zur Beschreibung von Wissen 1 Logische Verfahren 2 Netzwerkverfahren 1 2 Reprasentationsformen von Wissen 1 2 1 Prozedurale Methoden zur Wissenspr sentation 1 2 2 Objektbezogene graphische Darstellung Semantische Netze 1 2 3 Logikorientierte Methode zur Wissensrepr sentation 1 2 3 1 Einfache Fakten Regel Systeme 1 2 3 2 Logische Programmiersprache Prolog 1 2 4 Constraints 1 2 5 Objektbezogene textuelle Darstellung Frames 1 2 6 Intelligente Agenten 1 2 7 Unsicheres Wissen 1 3 Speicherung von Wissen in Relationalen Datenbanken und objekt relationalen Datenbanken 2 Objektorientierte Systementwicklung 2 1 Entwurfsgrundlagen objektorientierter Technologie 2 1 1 Das Objektmodell 2 1 2 Klassen und Objekte 2 1 3 Die Sprache zum Modellieren objektorientierter Systeme 2 2 Unified Modelling Language 2 2 1 bersicht 2 2 2 Anwendungsfall und Anwendungsfalldiagramme 2 2 3 Klassendiagramme 2 2 4 Interaktionsdiagramme 2 2 5 Zustandsdiagramme 2 2 6 Aktivit tsdiagramme 2 2 7 Package Diagramm 2 2 8 Implementieringsdiagram
57. Sie zeigt da OrderReader die Schnittstelle DataInput f r einige Zwecke benutzt Abstrakte Klassen und Schnittstellen erm glichen die Definition einer Schnittstelle und das Verschieben ihrer Implementierung auf sp ter Jedoch kann die abstrakte Klasse schon die Implementierung einiger Methoden enthalten w hrend die Schnittstelle die Verschiebung der Definition aller Methoden erzwingt Eine andere Darstellung einer Klasse und einer Schnittstelle besteht aus einem kleinen Kreis der mit der Klasse durch eine Linie verbunden ist z B 50 Objektorientierte Programmierung wissensbasierter Systeme Component O ImageObserver A Container Applet A WillkommenApplet Abb Verrebungshierarchie von WillkommenApplet einschl Schnittstelle ImageObserver 51 Objektorientierte Programmierung wissensbasierter Systeme 2 2 4 Interaktionsdiagramme Es gibt zwei Arten von Interaktionsdiagrammen Sequenzdiagramme Kollaborationsdiagramme Die beiden Diagramme beschreiben zeitliche Abl ufe d h Aufrufsequenzen Ausgangspunkt von Interaktionsdiagrammen sind Fallbeispiele Szenarios Beim Erstellen der Diagramme konzentriert man sich auf die wichtigsten F lle Anschlie end werden die Sonderf lle mit einbezogen 1 Sequenzdiagramme Ein Sequenzdiagramm ist ein Interaktionsdiagramm bei dem die zeitliche Abfolge der Nachrichten im Vordergrund steht Sequenzdiagram
58. ahme und Ausgabe von Information dienen zur Kommunikation mit der Welt Das Modell hat Informationen aufzunehmen und einer geeigneten Form zu repr sentieren Die Semantik semantischer Netze wird ber die Spezifikation von Such und Inferenzalgorithmen auf diesen Netzen definiert Dabei strebt man eine geringe Anzahl von Beziehungen an um die Komplexit t der Inferenzprozesse zu reduzieren Allgemein sind Semantische Netze leicht auf einem Rechner zu bearbeiten Die Netze bestehen aus Knoten und Kanten also Graphen Graphen sind eine weit verbreitete Datenstruktur die von vielen Programmiersprachen unterst tzt wird Zeigertypen in Pascal property lists in Lisp Objekt Attribut Wert Tripel Ein Spezialfall semantischer Netze sind Objekt Attribut Wert Tripel OAW Tripel Das ist eine verbreitete Methode zur Darstellung von Fakten Nach der unter der Bezeichnung Objekt Wert Attribut Tripel vorliegenden Methoden k nnen Schemata f r die Beschreibung von Wissen Daten bestimmt werden In einem solchen Schema k nnen Objekte Entit ten z B ein Fachbuch ein Transistor begriffliche Einheiten z B eine Vorlesung sein Attribute sind die Eigenschaften der Objekte Werte kennzeichnen die spezifische Beschaffenheit eines Attributs in einer bestimmten Situation Das Objekt Attribut Glied ist eine hat_ein Relation das Attribut Wert Glied ist eine ist_ein Relation Objekte k nnen bei der Darstellung als O A W Tripe
59. an ein anderes Objek sendet hei en die beiden Objekte synchronisiert F r Objekte in einer sequentiellen Anwendung wird die Synchronisation normalerweise durch einen Methodenaufruf erreicht Gibt es jedoch mehrere Steuerungsprozesse ist eine komplexe Nachrichten bermittlung f r die Objekte erforderlich zur berwindung der Probleme mit gegenseitig ausschlie enden Operationen die in Konkurrierenden Systemen auftreten k nnen Im Gegensatz zu Links gleichberechtigte Beziehungen gibt die Aggregation eine Hierarchie an die vom Ganzen bis zu den Teilen Attribute f hrt 33 Objektorientierte Programmierung wissensbasierter Systeme Was ist eine Klasse Eine Klasse ist eine Menge von Objekten die eine gemeinsame Struktur und ein gemeinsames Verhalten aufweisen Die Schnittstelle einer Klasse besteht vorwiegend aus Deklarationen aller Operationen die auf Instanzen dieser Klasse angewendet werden k nnen Sie kann aber auch die Deklaration anderer Klassen Konstanten Variablen und Ausnahmen beinhalten Die Implementierung einer Klasse besteht vorwiegend aus der Implementierung aller Operationen die in der Schnittstelle der Klasse definiert sind Klassen k nnen hnlich wie Objekte nie isoliert existieren Es gibt drei grundlegende Arten von Beziehungen Verallgemeinerung Spezialisierung is_a Beziehung Ganzes Bestandteil Part of Beziehung Assoziation In Programmiersprachen haben sich mehrere gemeinsame Ans tze herausge
60. anwendung entwickelt Die JSP Technik basiert auf dem Java Servlet API und dient im wesentlichen zur einfachen Erzeugung von HTML und XML Ausgaben eines Webservers Wie PHP oder Perl k nnen Autoren direkt HTML oder XML mit einer Skriptsprache mischen Nat rlich hat sich Sun f r Java entschieden Servlets sind Server Programme die Webseiten erstellen Das machen sie in dem sie HTML Anweisungen mit print1n oder hnlichem in den Ausgabestrom senden JSP Java Server Pages geht das Problem genau anders herum an Nicht ein Servlet k mmert sich um die Ausgabe des HTML Codes sondern eine HTML Datei wird mit Java Code erg nzt z B lt HTML gt lt BODY gt Hallo Anwender Heute ist der lt out print new java util Date gt lt BODY gt lt HTML gt Der Server kann JSP von normalen HTML Seiten unterscheiden und kompiliert mit Hilfe des JSP Ubersetzers7 daraus ein Servlet und stellt dieses Serlet dar Der bersetzungsvorgang von JSP in ein Servlet mu nur einmal get tigt werden dann nimmt der Servlet Container direkt die bersetzte Klasse Eine JSP ist eigentlich ein spezielles Servlet das durch eine JSP Engine erzeugt wird Der Servlet Container nimmt eine HTTP Anfrage an und ermittelt anhand eines URL Mapping dass es sich um eine Java Server Page handelt Eine JSP Engine wird aufgerufen und schaut in der Verwaltung nach ob vielleicht schon eine kompilierte aktuelle JSP f r die Anfrage vorliegt Falls nicht l dt sie
61. asierter Systeme Bsp Privat und Firmenkunden name adresse kreditwiirdigkeit String Privatkunde unternehmensname kreditkartennr kreditwiirdigkeit kreditlimit Es bestehen Unterschiede zwischen Privat und Firmenkunden aber auch viele Gemeinsamkeiten Die Gemeinsamkeiten werden in einer allgemeinen Klasse Kunde gesetzt kreditwiirdigkeit gering 2 Bsp Vererbungshierarchie und wichtige Methoden der Klasse Applet Panel ER init start paint g Graphics geerbt update g Graphics geerbt repaint stop destroy getParameter name String getParameterInfo getAppletInfo 48 Objektorientierte Programmierung wissensbasierter Systeme 3 Bsp Klassendiagramm zur Auftragsbearbeitung Kardinalit t stets vorhanden empfangsdatum name ist Vorausbezahlt adresse preis Geld kreditw rdigkeit String ausf hren abschliessen wenn Auftrag Kunde kreditw rdigkeit lt lt gering gt gt dann mu Generalisierung Klasse 1 Auftrag istVorausbezahlt true sein J lt T Bedingung unternehmensname kreditw rdigkeit _ 7 kreditlimit Attribute Rollenname Operationen gering Br Positionen Kardinalit t viele Kardinglit t optional Verk ufer 0 1 A Auftragsposition menge Integer preis Geld istGeliefert Boolean Abb Auftragsbearbeitung 49 Objektorientierte Programmierung wissensbasierter Systeme
62. asis URL und einem String der den relativen Pfad oder Dateinamen des aktuellen Bilds ausgibt Bsp import java applet Applet import java awt import public Image bild public void init URL ul getDocumentBase System out printl try URL u2 new URL ul images scratchl gi System out println u2 bild getImage getCodeBas catch java net class AppletURL extends Applet images B MalformedURLException e System out 59 vgl pr51800 138 n ul f 04240900 jpg println e Objektorientierte Programmierung wissensbasierter Systeme public void paint Graphics schirm int iBreite bild getWidth this int iHoehe bild getHeight this schirm drawImage bild 10 10 iBreite 4 iHoehe 4 this 5 2 2 Kommunikation mit einem CGI Skript CGI ist die Beschreibung einer Schnittstelle mit der externe Programme mit Informations Servern meistens Web Servern Daten austauschen Die ausgef hrten Programme werden CGI Programme genannt und k nnen in den unterschiedlichsten Programmiersprachen verfasst sein H ufig sind es Shell oder Perl Skripte Die CGI Programme werden von einem Server durch eine URL angesprochen Der Browser baut eine Verbindung zum Server auf und dieser erkennt an Hand des Pfads in der URL ob es sich um eine normale Web Seite handelt oder um ein Skript Falls es ein Skript ist dann f hrt der Server das Skript aus das eine HTML Datei erzeugt Diese
63. at Die Methode getMetaData des Interface java sql ResultSet gibt die Metainformationen ber ein ResultSet zur ck Metadaten sind auch f r die gesamte DB abfragbar Bsp F r diese Art von Informationen sind Wer ist mit der DB verbunden Kann die DB nur gelesen werden Sind gespeicherte Prozeduren erlaubt Sind Informationen ber die DB gefragt so lassen sich ber Metadaten eines DatabaseMetaData Objekts bspw Datenbankeigenschaften des Herstellers herausfinden Ein DataBaseMetaData Objekt erh lt man ber die Methode getConnection des Treibermanagers nu nn Connection con DriverManager getConnection jdbce odbc daten user password DataBaseMetaData meta con getMetaData getMetaData gibten DatabaseMetaData Objekt zur ck das eine gro e Anzahl von Methoden erlaubt 92 Objektorientierte Programmierung wissensbasierter Systeme arameter R ckgabetyp Methodenname allProceduresAreCallable allTablesAreSelectable getURL getUserName isReadOnly nullsAreSortedHigh nullsAreSortedLow nullsAreSortedAtStart nullsAreSortedAtEnd P S IS IS IS Ko I I Abb Methoden eines DatabaseMetaData Objekts 4 3 7 Ausnahmen bei JDBC Unter JDBC sind 3 Arten von Ausnahmen m glich SQLException Die Klasse SQLException ist die Basisklasse aller jdbc Exceptions Sie enth lt ber den Fehler folgende Informationen eine Fehlerbeschreibung ei
64. atenverw Datenverw Datenverw Datenverw Verteilte entfernte kooperative entfernte verteilte Pr sentation Pr sentation Verarbeitung Verarbeitung Datenverw 30 Vgl Client Server Architekturen 81 Objektorientierte Programmierung wissensbasierter Systeme Abb Verteilungsm glichkeiten im Client Server Modell Bei der entfernten Repr sentation Common Gateway Interface CGI findet die Verarbeitung server seitig statt auf dem Client werden nur Repr sentationsaufgaben ausgef hrt Web Browser Web Server HTML Seite mit Formular NE Start CGI Programm gt Eingabedaten bertragen HTML Seite Ergebnis ge HTML Seite generieren mit Ergebnis bertragen Abb Kommunikation bei CGI CGI stellt eine Schnittstelle zu einem Server dar Diese Schnittstelle erweitert die Funktionalit t eines Server Damit verf gt die Web Server Software ber eine Schnittstelle die es erlaubt HTML Dokumente dynamisch durch Programme erzeugen zu lassen und die aus der Datenbank erzeugten Daten direkt an den Client zu bergeben Die CGI Programme werden von einem Browser durch eine ganz normale URL angesprochen Der Browser baut eine Verbindung zum Server auf Dieser erkennt anhand des Pfades in der URL ob es sich um eine ganz normale Web Seite handelt oder um ein Skript Falls es ein Skript ist dann f hrt der Server das Skript aus das eine HTML Datei erzeugt Diese wird bertragen und im Browser dargestellt Bei der verteilten Datenv
65. ation ist eine Sonderform der Assoziation Sie repr sentiert eine strukturelle Ganzes Teil Beziehung Zus tzlich zu einfacher Aggregation bietet UML eine st rkere Art der Aggregation die Komposition genannt wird Bei der Komposition darf ein Teil Objekt nur zu genau einem Ganzen geh ren Objektorientierte Programmierung wissensbasierter Systeme Existenzab h ngiges Teil Eine Aggregation wird durch eine Raute dargestellt Die Komposition wird durch eine ausgef llte Raute dargestellt und beschreibt ein physikalisches Enthaltensein Bsp Die Darstellung des Problems T rme von Hanoi mit Klassendiagrammen Ziel ist es einen Stapel von Scheiben der sich auf einem von drei Podesten befindet auf ein anderes Podest umzuschichten Dabei wird das dritte Podest als Hilfspodest benutzt Jede Scheibe hat eine andere Gr e Die oberste Scheibe des Stapels auf einem Podest darf oben auf den Stapel eines der beiden anderen Podeste gelegt werden wobei nur eine Scheibe auf einmal bewegt und eine Scheibe niemals auf eine andere gelegt werden darf die kleiner ist als sie selbst Je nach Beschreibungstiefe des Problems ergeben sich folgende Klassendiagramme Abb Aggregation und Komposition 1 Ein Turm besteht aus drei Podesten Auf jedem Podest befinden sich mehrere Scheiben in einer bestimmten Reihenfolge 2 Ein Turm besteht aus drei Podesten Die Scheiben auf den Podesten sind in Untermengen aufgeteilt die als stapel b
66. auf Zuerst ruft das Java Programm die get Connection Methode auf um das Connection Objekt zu erstellen Dann erg nzt es das Statement Objekt und bereitet die SQL Anweisungen vor 85 Objektorientierte Programmierung wissensbasierter Systeme Ein SQL Statement kann sofort ausgef hrt werden Statement Objekt oder ein kompilierbares Statement Prepared Statement Objekt oder ein Aufruf an eine gespeicherte Prozedur Callable Statement Objekt sein Falls die executeQuery Methode ausgef hrt wird wird ein Resultat Objekt zur ckgeschickt SOL Anweisungen wie update und delete verwenden die executeUpdate Methode Sie gibt einen ganzzahligen Wert zur ck der die Anzahl der Zeilen anzeigt die vom SQL Statement betroffen sind Der ResultSet enth lt Zeilen mit Daten die mit der Methode next abgearbeitet werden k nnen Bei einer Anwendung mit Transaktionsverarbeitung k nnen Methoden wie rollback und commit verwendet werden Zur Ausf hrung Kann ein Java Programm ber mehrere JDBC Treiber angesteuert werden Jeder Treiber registriert sich beim JDBC Manager w hren der Initialisierung Beim Versuch sich mit einer Datenbank zu verbinden gibt das Java Programm einen Datenbank URL an den JDBC Manager weiter Der JDBC Manager ruft dann einen der geladenen JDBC Treiber auf Die URLs von JDBC haben die Form Jdbc subprotocol subname subprotocol ist der Name der jeweiligen Datenbank z B jdbc oracle oci7 rfhs8012_ora3
67. aus dem Dateisystem die entsprechende Seite In der JSP Datei befinden sich spezielle Tags in denen die sog Scriplets stehen Diese beschreiben die Anwendungslogik der Servlets Der Programmcode steuert dabei die Ausgabe Er kann die gesamte Java API nutzen die serverseitig verf gbar ist Daneben gibt es Vereinfachungen zum Ansprechen von JavaBeans Da das einf hren von eigenen Tags problematisch ist hat Sun spezielle XML Tags im Namensraum des JSP eingef hrt um mit speziellen XML Tools den Seitenaufbau zu gestalten Neben dem Inhalt der HTML Datei der Template genannt wird lassen sich 3 unterschiedliche JSP Konstrukte in eine Seite einbinden Skript Elemente Sie enthalten java Programmcode der direkt in das Servlet wandert Es gibt unterschiedliche Typen f r Ausdr cke Anweisungen und Deklarationen Normale Anweisungen werden Scriplets genannt Direktiven Sie steuern die Struktur der Seite 71 Der JSP bersetzer ist ein Schwachpunkt den hier mu ein Compiler eingebunden werden Tomcat l st das Problem in dem der Sun Compiler in tools jar verwendet wird F r nicht Compiler Hersteller ist es schwierig eine Servlet JSP Umgebung anzubieten 147 Objektorientierte Programmierung wissensbasierter Systeme Aktionen Nutzen von vergefertigeten Komponenten wie Beans Einbinden von externen Seiten und Weiterleitung an andere Seiten JSPs k nnen mit Tomcat genutzt werden Tomcat definiert zwei Teilprojekte mit den Namen
68. basierter Systeme Verwendungs Beziehungen zwischen Klassen entsprechen gleichrangigen Links zwischen den entsprechenden Instanzen dieser Klasse Instanzierung Generische Klassen Eine parametrisierte Klasse auch generische Klasse genannt ist eine Klasse die als Schablone f r andere Klassen dient Eine parametrisierte Klasse mu instanziiert werden d h Parameter m ssen mit Werten versehen werden bevor Objekte dieser Klasse erzeugt werden k nnen Metaklasse Eine Metaklasse ist eine Klasse deren Instanzen wiederum Klassen sind 2 1 3 Die Sprache zum Modellieren objektorientierter Systeme Visualisierung und Spezizierung objektorientierter Softwaresysteme erfolgt mit der Unified Modelling Language UML Die UML ist eine Sprache zur Modellierung deren Vokabular und Regeln sich auf die konzeptionelle und physische Darstellung des Systems konzentrieren Die UML ist eine Beschreibungssprache von Softwaresystemen keine Sprache zur Beschreibung von Software Entwicklungsprozessen Da r gibt es verschiedene Modelle die sich in der Praxis mehr oder weniger gut bew hrt haben z B Anforderungs Festlegungs bergabe phase phase phase Abb Einfacher Software Entwicklungsproze Insgesamt gesehen verl uft ein Entwicklungsproze in mehreren Iterationen er wird auch als spiralf rmig oder iterativ bezeichnet Die Entwicklung eines Proze modells das auf alle realen Prozesse pa t ist unm glich Deshalb wurd
69. bel Ausgabestring private static TextField ausgabeTextFeld new TextField 20 public Vorl1l1b ingabeTextFeld setEditable true ausgabeTextFfeld setEditable false Panel panel new Panel panel add eingabeTextFeldLabel panel add eingabeTextFeld panel add ausgabeTextFeldLabel panel add ausgabeTextFeld ingabeTextFeld addActionListener new TFL add panel pack setVisible true class TFL implements ActionListener public void actionPerformed ActionEvent ae String s eingabeTextFeld getText ausgabeTextFeld setText s public static void main String args Vorlllb vorlllb new Vorlllb vorlllb addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 5 Schlie lich kann das Interface auch direkt implementiert werden Zweckm igerweise ist dann die Anwendung eine Subklasse von Frame import java lang import java awt import java awt event public class Vorllla extends Frame implements Actionlistener private static Label eingabeTextFeldLabel new Label Eingabestring private static TextField eingabeTextFeld new TextField 20 private static Label ausgabeTextFeldLabel new Label Ausgabestring private static TextField ausgabeTextFeld new TextField 20 public Vorllla
70. bildet insbesondere gibt es direkte Unterst tzung f r die Kombination folgenden Beziehungen Assoziation dr ckt allgemein aus da es eine Beziehung zwischen zwei Klassen gibt z B ahs __ verkauftesProdukt letzter Verkauf RR ee Abb Assoziation Die Bedeutung der Beziehung zwischen den Klassen kann lediglich durch Benennen der Rolle hervorgehoben werden die einzelne Klassen in ihrer Beziehung zu anderen haben Das vorliegende Bsp zeigt eine 1 N Assoziation F r jede Instanz der Klase Verkauf k nnen keine Instanz oder mehrere Instanzen der Klasse Produkt vorhanden sein F r jedes Produkt gibt es genau eine Instanz von Verkauf In der Praxis unterscheidet man drei Arten von Kardinalit t f r Assoziationen 1 1 1 N N N Vererbung Die Vererbung ist eine Beziehung zwischen Klassen wobei eine Klasse Struktur oder Verhalten teilt das in einer Klasse Einfachvererbung oder mehreren anderen Klassen Mehrfachvererbung definiert wurde Unterklassen erben Verhalten und Struktur ihrer Oberklassen Aggregation Aggregations Beziehungen zwischen Klassen haben eine direkte Parallele zu Aggregations Beziehungen zwischen Objekten die diesen Klassen entsprechen Die Aggregation beschreibt Ganzes Bestandteil Beziehungen Falls eine Ganzes Bestandteil Beziehung zwischen den Objekten besteht dann mu es eine Aggregations Beziehung zwischen den Klassen geben Verwendung 34 Objektorientierte Programmierung wissens
71. bjektorientierung In einer objektorientierten Welt mu die Dokumentation objektorientierten Pr missen gen gen Anforderungen an Objekte k nnen auf Objekte vom Wissenspool bertragen werden Insbesondere sind Verf gbarkeit Verl lichkeit und Aktualit t gefordert Einstiegpunkte Navigationswege Der Anwender erwartet von einem System das ihm verl liches Wissen bereitstellen soll Verf gbarkeit in allen Situationen Zum Erreichen dieses Ziels werden verschiedene Einstiegpunkte und Navigationswege ben tigt Baumstruktur Die F lle der Dokumente wird in einer Baumstruktur angeordnet Schlagworte Die Suche ber Schlagworte wird f r Recherche ben tigt Fragenkatalog Fragenkataloge behandeln allgemein interessierende Fragen Probleme und L sungswege Sie vermitteln die Erfahrungen anderer Anwender und unterst tzen so die laufende Arbeit Querverweise Sie stellen die Verbindung zwischen verschiedenen Dokumenten her und m ssen die Navigation durch einfaches Anklicken gew hrleisten Indizierung Die schwierigste Arbeit bei der Erstellung der Dokumentation ist die Indizierung durch Schlagworte Beim Aufbau eines bergreifenden Wissenspools m ssen Auswahl und Formulierung der Schlagworte den Anforderungen aller Anwender gen gen Hierf r sind Verfahren und Modelle zur Indizierung zu entwerfen die allen Beteiligten bekannt sein m ssen Ein weiteres Problem ist die Menge der Dokumente die in einen Wissenspool einflie e
72. ch Willkommen in der Java Welt ausgibt L sungsschritte 1 Erstelle die folgende Datei mit dem Namen willkommenApplet java mit Hilfe eines Dateiaufbereites Editor Das erste Java Applet import java awt Graphics public class WillkommenApplet extends java applet Applet public void paint Graphics g g drawString Herzlich willkommen in der Java Welt 5 25 Durch die import Anweisung k nnen Entwickler Klassen verwenden die in anderen Dateien definiert sind Compiler bzw Interpreter greifen auf die class Dateien zu ber import wird bestimmt wo diese Dateien liegen Java importiert immer das Paket java lang denn hier ist die Klasse Object enthalten von der alle Java Klassen abgeleitet sind Die Graphics Klasse enth lt Methoden zum Zeichnen von Textzeichen und Zeichenketten Mit der ArawString Methode der Graphics Klasse k nnen Textzeichen auf den Bildschirm gemalt werden Die folgende Abbildung zeigt die Modellierung des vorliegenden Quellcodes 39 eine entsprechende Referenz innerhalb einer HTML Seite mit einem speziellen Tag dem lt APPLET gt Tag erledigt die Einbettung in den Browser 40 Die Modellierung erfolgt nach den Regeln der Unified Modelling Language UML Die UML ist eine grafische standardisierte Sprache zum Spezifizieren Konstruieren Visualisieren und Dokumentieren 101 Objektorientierte Programmierung wissensbasierter Systeme Will
73. ches Netzwerk erfolgen die Prozesse k nnen auch auf einem Rechner in Ausf hrung sein gt Die Kommunikation zwischen Client und Server kann auf 4 verschiedene Arten erfolgen Kommunikation mit einem CGI Skript Kommunikation ber Sockets und Datagramms Kommunikation mit Hilfe von CORBA Common Object Request Broker Architecture Kommunikation mit Hilfe von RMI Remote Method Invocation Das Paket java net stellt Klassen f r die Implementierung von Internet Anwendungen zur Verf gung Zentraler bestandteil des Pakets sind die Socket Klassen zum Aufbau von Verbindungen ber Sockets und Klassen mit denen Verbindungen unter Verwendung von URLs aufgebaut werden k nnen 5 2 1 Networking mit URLs Neben der M dlichkeit eine Kommunikation ber Sockets Datagramms CGI RMI oder CORBAS zu initiieren besteht in Java die M glichkeit mit URLs zu arbeiten Hierf r bildet die Klasse URL des Pakets java net mit ihren Methoden die Basis Im WWW werden Ressourcen ber URLs Universe Resource Locator identifiziert Eine URL besteht aus Einem Protokollnamen z B http HTML file lokale Dateien ftp Dateitransfer rmi Remote Method Invocation oder jdbc Java Database Connectivity dem ein Dopplelpunkt zwei Schr gstriche und optional ein Hostname bzw eine Hostadresse und eine Portnummer folgt Fehlt die Angabe des Rechners wird der aktuelle Rechner localhost benutzt bei Ports bekannte Standardnummern Schlie lich folgt
74. das System in den Zustand eintritt exit gibt an welche Aktion beim Verlassen des Zustands ausgef hrt wird do beschreibt das was geschieht wenn sich das System in dem betreffenden zustand befindet 1 Bsp Zustandsdiagramm f r einen Getr nkeautomaten 57 Objektorientierte Programmierung wissensbasierter Systeme Start M nzenEin Betrag Guthaben setzen Geldkassierend M nzenEin Betrag Guthaben erh hen Abbrechen M nzen zur ck Flaschen leer w hlen Getr nk Wechselgeld lt 0 do Flaschen pr fen und Wechselgeld berechnen Wechselgeld gt 0 Wechselgeld 0 do Wechselgeld ausgeben do Flasche ausgebe Abb Zustandsdiagramm f r einen Getr nkeautomaten In den meisten OO Techniken werden Zustandsdiagramme zur Darstellung des Verhaltens w hrend der Lebenszeit eines einzelnen Objekts f r eine einzelne Klasse entworfen Aktionen sind mit Transitionen assoziiert und werden als kurzzeitige und nicht unterbrechbare Prozesse betrachtet Aktivit ten sind mit Zust nden assoziiert und k nnen l nger andauern Eine Aktivit t kann durch ein Ereignis unterbrochen werden 2 Bsp Zustandsdiagramm f r ein Auftragsbearbeitungssystem Die Anfangstransition tr gt die Beschriftung hole erste Auftragsposition Die Syntax einer Transitionsbeschriftung kennzeichnet drei jeweils optionale Teile Ereignis Bedingung Aktion Sobald die Aktion hole erste Auftragsposition
75. det try System out println Verbindung akzeptiert socket BufferedReader ein new BufferedReader new InputStreamReader socket getInputStream PrintWriter aus new PrintWriter new BufferedWriter new OutputStreamWriter socket getOutputStream true while true String str ein readLine if str equals ENDE break System out println Echo str aus println str finally System out println Schliessen socket close finally s close 140 Objektorientierte Programmierung wissensbasierter Systeme 2 Ein einfacher Client der Zeilen zum Server sendet und einliest PlapperClient java einfacher Client der Zeilen zum Server sendet und einliest import java io import java net public class PlapperClient public static void main String args throws IOException null als Parameter produziert einen speziellen lokale Rueckgabe und dient zum Test fuer die Netzverarbeitung InetAddress adr InetAddress getByName null Alternativen InetAddress adr InetAddress getByName localhost InetAddress adr InetAddress getByName 127 0 0 1 System out println Adresse adr Socket socket new Socket adr PlapperServer PORT try 4 BufferedReader ein new BufferedReader new InputStreamReader socket getInputStream PrintWriter aus new Pr
76. e Q Quantorpr fix enth lt f r genau jedes in der Formel vorkommendes Variablensymbol X einen Allquantor in der Form VX Zus tzlich mu jede Variable die rechts vom Implikationszeichen vorkommt auch auf der linken Seite vorkommen Der Junktor A bindet st rker als gt Bsp VX mensch X gt sterblich X VXVY kind X Y A mensch X gt mensch Y mensch hans kind hans ernst kind olga ernst 1 2 3 2 Logische Programmiersprache Prolog Grundlagen Grundlage von Prolog vor allem der in Prolog implementierten Logiksprache ist eine Teilmenge der Pr dikatenlogik die Horn Logik Prolog Programme sind Konjunktionen von sog Programm Klauseln universelle definierte Horn Formeln definite clauses Programm Klauseln sind Implikationen von nichtnegierten Konditionen Bedingungen und einer nichtnegierten Konklusion Eine Horn Klausel ist eine spezielle Klausel b aoa bj ist die Konklusion der Horn KLausel Enh lt die Horn KLausel Variablen X4 X so ist das so zu interpretieren F r alle X Xk gilt b a a Vier F lle sind zu unterscheiden d m 1 n 0 b 1 Die ist eine einfache atomare Formel die von keiner Bedingung abh ngig ist In Prolog schreibt man bspw teil el einzelteil_1 struktur p1 b1 2 Jede Klausel wird in Prolog durch einen Punkt abgeschlossen Klauseln die durch Fall 1 beschrieben werden sind Fakten 2Q m 1 n lt 0 17 Objektorientiert
77. e Operation die den Status eines Objekts freigibt und oder das Objekt zerst rt Objekte tragen zum Verhalten des Systems bei indem sie zusammenarbeiten d h in Beziehung zueinander treten Die Beziehung zwischen zwei beliebigen Objekten beinhaltet die Annahmen die einzelne Objekte bereinander anstellen Das betrifft Operationen die durchgef hrt werden k nnen und auch das resultierende Verhalten Zwei Beziehungsarten sind von besonderem Interesse Links Aggregation Eltern Kind Beziehungen Ein Objekt arbeitet mit anderen Objekten mit Hilfe von Links zusammen Ein Link gibt die spezifische Verbindung an ber die ein Objekt die Dienste eines anderen Objekts ausf hrt oder ber die ein Objekt zu einem anderen gelangen kann 12 Identit t ist die Eigenschaft des Objekts die es von allen anderen Objekten unterscheidet 13 Die Begriffe Operation Nachricht Methode sind austauschbar 32 Objektorientierte Programmierung wissensbasierter Systeme a AnzeigeElement einController istunter b AnzeigeElement Abb Links Die vorstehende Darstellung zeigt verschiedene Links Linien zwischen den Object Icons Entlang der Links werden Nachrichten Pfeile die die Richtung der Nachricht angeben und eine Beschriftung mit dem Namen cer Nachricht tragen Das Objekt einController besitzt Links zu zwei Instanzen von AnzeigeElement Das Senden von Nachrichten zwischen zwei Objekten ist normalerweise einseitig ge
78. e Programmierung wissensbasierter Systeme b Ha A Ad Dies ist der bliche DANN WENN Fall In Prolog schreibt man anstelle von das Symbol anstelle von A ein Komma In dieser Form beschreibt Prolog Regeln Das folgende Pr dikat definiert eine derartige Regel grossvater Y X vater Y Z vater Z X Das bedeutet X ist der Gro vater von Y wenn Z der Vater von Y und X Vater von Z ist Das Pr dikat grossvater Y X ist nur beweisbar wenn die beiden Fakten vater Y Z und vater Z X vorliegen Regeln haben in Prolog folgendes allgemeines Format schlussfolgerung bedingung_l bedingung_2 Eine Regel besteht formal aus dem Regelkopf und dem Regelrumpf Beide sind verbunden ber das Symbol z Die Schlu folgerung ist dann wahr wenn alle Bedingungen des Regelrumpfes erf llt sind Regeln definieren den Zusammenhang in dem die Fakten eines Prolog Programms interpretiert werden Regeln und Fakten bilden die Wissensbasis des Programms 3a m 0 n lt 0 AN Na Die Formel besteht aus Bedingungen Sie kann so interpretiert werden Es ist nicht der Fall da gilt a A na Diese Auspr gung einer Klausel gibt es in Prolog in der Form einer Anfrage Allerdings wird hier das Symbol lt durch ein ersetzt Anfragen leiten aus Fakten und Regeln Antworten ab Prolog interpretiert die Horn klauseln prozedural Eine Anfrage l st einen Aufruf eines Fakts bzw des Regelkopfs aus 4 m 0 n
79. e aus der vorliegenden Aufgabe eine dlgemeine Applet Schablone die als Vorlage f r das Erstellen von Applets dienen kann Das folgende Ger st beschreibt ein Muster f r alle Applets Name der Klasse Beschreibung Import der Pakete import java lang import java applet import java awt Top Level Klassen Deklaration bzw Definition des Applets public class Klassenname extends java applet Applet Variablen Deklarationen bzw Definitionen Lh seeks Eigene Methoden FE baste thoden die ueberschrieben werden public void init public void start public void stop public void destroy 107 Objektorientierte Programmierung wissensbasierter Systeme Optional die Ausgabemethode public void paint Graphics g Ein Applet erbt Methoden und Variablen der Applet Klasse Die Applet Klasse erbt wiederum von einer Reihe anderer Klassen Eine Klasse die java applet Applet erweitert kann Variablen und Methoden aus java lang Object java awt Component java awt Container sowie java awt Panel verwenden 5 1 1 2 Lebenszyklus von Applets Ein Java Applet besitzt im Gegensatz zu einer Java Anwendung keine main Methode die beim Laden gestartet wird und das Programm solange am Leben h lt bis es der Benutzer beendet In einem Applet sorgen vier Methoden daf r da sich das Applet in seiner Umgebung korrekt ver
80. e der Proze und seine Darstellung aus der UML ausgeklammert Jedoch ist eine Softwareentwicklung ohne Einbettung in den Software Entwicklungsproze unprofessionell In der UML wird deshalb versucht ein Rahmenwerk f r Prozesse zur Verf gung zu stellen Rahmenwerk bedeutet Alle Vorgehensweisen und Notationen von konkreten Software 14 Beim spiralf rmigen Entwicklungsproze werden alle Phasen mehrfach durchlaufen in der Abb Pfeil m Dabei wird jedem Durchlauf eine Teilmenge der Anwender Anforderungen zugrunde gelegt Die Spirale wird solange durchlaufen bis das Endprodukt vorhanden ist Alle Zwis chenprodukte die nach einem Durchlauf entstehen sind voll funktionsf hig 35 Objektorientierte Programmierung wissensbasierter Systeme Entwicklungsprozessen sind mit der UML Notation darstellbar Die Grundlage f r dieses Proze Rahmenwerk bildet die Beschreibung der OOSE MethodelS von Jacobson und der darin beschriebene Proze Objectory Das Proze rahmenwerk der UML wird auch Objectory Proze genannt in Anlehnung an den OOSE Proze 2 2 Unified Modelling Language UML 2 2 1 bersicht Unified Modelling Language UML Die UML ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme Ihre Autoren sind Grady Booch Object oriented design and applications James Rumbaugh Co Autor der Object Modelling Technique Ivar Jacobsen Use Cases Aufgaben und Ziele der UML Die UML soll nach den W nsche
81. egriffen werden soll Neben der Anfrage wird auch noch das Protokoll festgelegt mit dem bertragen wird HTTP 1 0 und ebenso HTTP 1 1 definiert mehrere Hauptmethoden Die 3 wichtigsten Methoden sind GET Ist eine Anfrage auf eine Information die an einer bestimmten Stelle lokaliserbar ist Anfrage fiir eine normale Webseite die etwa durch Verfolgen eines Links oder Eintrag in der Browserzeile fiir die URL gestartet wird GET wird auch manchmal verwendet wenn Daten tiber Formulare an den server geschickt werden In diesem Fall werden die Daten kodiert und an eine Formular URL angeh ngt maximale Gr e etwa 2 K POST Sie elaubt es dem Client Daten zum Server zu schicken POST wird vom Browser nur f r Formulare innerhalb von lt FORM gt mit der Anweisung METHOD POST verwendet Es gibt keine Begrenzung des Informationsumfangs HEAD Funtioniert hnlich wie GET Nicht das ganze Dokument wird verschickt sondern nur Infos ber das Objekt So sendet er z B innerhalb einer HTML Seite die Informationen die innerhalb von lt HEAD gt lt HEAD gt stehen Eine Beispielanfrage an einen Web Server GET directory index html HTTP 1 0 Der erste Parameter ist die Methode des Aufrufs 3 Der zweite Parameter ist der Dateipfad relative Pfadangabe Die Anfrage endet mit einer Zeile die nur aus Carriage Return und Linefeed besteht Nach der Zeile mit der Anfrage k nnen optionale Zeilen gesendet werden 3 Die Antwort vom Server 23 Auc
82. eichs stammt Eine Klasse ist eine Menge von gleichartigen Objekten Jedes Objekt besitzt eine Identit t d h Man kann es benennen oder auf andere Weise von anderen Objekten unterscheiden ein Zustand und ein Verhalten d h Man kann etwas mit ihm machen und es kann seinerseits auch mit anderen Objekten etwas machen Objektorientiertes Design umfa t den Proze der objektorientierten Zerlegung und einer Beschreibung der logischen und physikalischen sowie auch statischen und dynamischen Modelle des betrachteten Systems 2 1 Entwurfsgrundlagen der objektorientierten Technologie 2 1 1 Das Objektmodell Es wurde im wesentlichen durch objektorientierte Programmiersprachen beeinflu t Objektorientierte Entwurfsmethoden sollen die Ausdrucksst rke objektorientierter Programmiersprachen mit Klasse und Objekt als grunlegende Bausteine ausnutzen Die durch objektorientierte Programmiesprachen zB Smalltalk C Java bestimmte objektorientierte Programmierung ist die Implementierungsmethode bei der Programme als kooperative Ansammlung von Objekten angeordnet sind Jedes dieser Objekte ist Instanz einer Klasse alle Klassen sind Elemente in einer durch die Vererbungsbeziehungen gekennzeichneten Klassenhierarchie Die vier wesentlichen Elemente Prinzipien des Objektmodells sind Abstraktion Eine Abstraktion gibt die wesentlichen Charakteristika eines Objekts an die es vor allen anderen Objekten unterscheiden wobei klar definierte konzept
83. eilziels im 5 Fakt Die Anfrage wurde damit vollst ndig bewahrheitet Der Prolog Interpreter best tigt dies durch die Antwort YES Den geschilderten Ablauf kann mit Hilfe einer graphischen Darstellung Beweisbaum zusammenfassen Zur Verdeutlichung des pr dikatenlogischen Resolutionsbeweises werden die Regeln in eine quivalente Darstellung mit disjunktiv verkn pften atomaren Formeln berf hrt Es ergibt sich mutter _von X Y v kind _von Y X v frau X mutter _von liesel juergen folgt unmittelbar aus a gt bs avb Anfragen werden im Rahmen des Resolu tionsbeweises negiert X liesel Y juergen Die Substitution erledigt die Unifikation NS kind _ von juergen liesel v frau liesel kind _ von juergen liesel frau liesel frau liesel leere Klausel Abb Beweisbaum zur Zielvorgabe mutter_von liesel juergen Die leere Klausel ist immer falsch die Anfrage somit wahr Der p dikatenlogische Resolutionsbeweis zu der folgenden Anfrage 20 Objektorientierte Programmierung wissensbasierter Systeme vater_von X Y kann ebenfalls direkt im Beweisbaum gezeigt werden vater_von X Y v kind _von Y X Vv mann X vater_von X Y kind _von Y X v mann X kind _ von juergen christian Mit der Substtution Y juergen X christian kann ein Abgleich erfolgen ae mann christian mann christian ig ge leere Klause Abb Beweisbaum zur Zielvorgabe vate
84. eine Bezeichnung der Ressource typischerweise unter Angabe eines Pfads Java implementiert das Konzept eines Uniform Resource Locator durch eine eigene Klasse URL Erzeugen von URL Objekten Am einfachsten ist es ber eine String Repr sentation der URL Adresse zu gehen z B URL fhURL new URL http www h regensburg de Diese URL wurde mit dem Konstruktor public URL String urlAddr throws MalformedURLException erzeugt Ein anderer Konstruktor ist 56 In jedem Fall mu jedoch die Netzwerksoftware TCP IP Protokoll auf dem Rechner vorhanden sein die auch ohne Existenz eines physischen Netzwerks diese Software f r die Kommunikation ben tigt wird 57 Common Request Object Broker Architecture 136 Objektorientierte Programmierung wissensbasierter Systeme public URL URL urlObj String throws MalformedURLException erzeugt relativ zur URL ein neues URL Objekt Bsp Zugiff auf die FH Homepage import java net import java io public class OeffneURLStrom public static void main String args try String s URL fhURL new URL http www fh regensburg de BufferedReader ein new BufferedReader new InputStreamReader fhURL openStream whil s ein readLine null System out println s ein close catch MalformedURLException e System out println MalformedURlException e catch IOException e System out println IOException e
85. eises Ver ndern des Radius des Kreises Zusicherungen Der Radius darf nicht negativ sein und nicht Null sein radius gt 0 Attribute werden mindestens mit ihrem Namen aufgef hrt und k nnen zus tzliche Angaben zu ihrem Typ d h ihrer Klasse einen Initialwert und evtl Eigenschaftswerte und Zusicherungen enthalten Attribute bilden den Datenbestand einer Klasse Operationen Methoden werden mindestens mit ihrem Namen zus tzlich durch ihre m glichen Parameter deren Klasse und Initialwerte sowie evtl Eigenschaftswerte und Zusicherungen notiert Methoden sind die aus anderen Sprachen bekannten Funktionen Klassenname attribut Typ initialerWert operation argumentenliste r ckgabetyp 1 Bsp Eine Klasse Kreis Eine Klasse Kreis enth lt bspw die Attribute radius und position sowie die Operationen anzeigen entfernen setzePosition pos und setzeRadius neuerRadius Die Zusicherung radius gt 0 fordert da der Wert des Attributs radius stets gr er als 0 sein mu Die Angabe des Initialwertwerts 10 10 f r das Attribut mittelpunkt bedeutet Beim Erzeugen eines Exemplars wird der Wert des Attributs mit 10 10 vorbesetzt radius radius gt 0 mittelpunkt Point 10 10 anzeigen entfernen setzePosition pos Point setzeRadius neuerRadius 42 Objektorientierte Programmierung wissensbasierter Systeme 2 Bsp Die Klasse Object aus dem Paket java lang
86. elper java HalloHolder java _HalloImplBase java _HalloStub java 3 bersetzen der Client Anwendung65 javac HalloClient java HalloApp java 4 bersetzen der Server Anwendung javac HalloServer java HalloApp java 5 Ablauf der Client Server Anwendung 1 Start des Java IDL Nameserver von einem DOS Fenster tnameserv ORBInitialPort 1050 2 Aufruf von einem 2 DOS Fenster java Halloserver ORBInitialPort 1050 3 Aufruf von einem 3 DOS Fenster java HalloClient ORBInitialPort 1050 4 Der Client gibt aus Hallo Welt 63 OMG gegr ndet von 8 Hardware Herstellern und Software Firmen mit dem Ziel der Standardisierung 64 Interface Definition Language 65 vgl pr52401 66 vgl pr52401 142 Objektorientierte Programmierung wissensbasierter Systeme 5 2 5 Kommunikation ber RMI hnlich wie die Kommunikation mit CORBA verfolgt auch RMI Remote Method Invocation den Ansatz eine verteile Objektarchitektur zu realisieren Im Gegensatz zu CORBA beruht RMI jedoch auf reiner Java Sprachbasis und relisiert eine verteilte Objektarchitektur f r eine homogene Java Welt Remote Methoden Aufruf RMI erlaubt die Erzeugung von Java Objekten derem Methoden von der virtuellen Maschine auf einem anderen Rechner aufgerufen werden k nnen Das System ist dem Remote Procedure Call RPC Mechanismus ziemlich hnlich Erstellen eines Remote Objekts Folgende Schritte dienen zum Aufbau des Systems 1 Erstellen und Kompilieren von
87. em DBMS ber das Statement Objekt weiter und holt sich Ergebnisse und auch Informationen ber die Resultat Datens tze JDBC Dateien und Java Anwendung Applet bleiben beim Client K nnen aber auch vom Netzwerk heruntergeladen werden Das DBMS und die Datenquellen liegen auf einem Remote Server Die JDBC Klassen befinden sich im java sql Paket Alle Java Programme verwenden zum Lesen und Schreiben von Datenquellen Objekte und Methoden des java sql Pakets Ein Programm das JDBC verwendet ben tigt einen Treiber f r die Datenquelle Es ist die Schnittstelle f r das Programm JDBC besitzt den DriverManager zur Verwaltung der Treiber und zum Erstellen einer Liste der in den Anwendungsprogrammen geladenen Treiber JDBC ODBC Bridge ist als JdbcOdbc class implementiert und eine native Bibliothek f r den Zugriff auf den ODBC Treiber Zuerst bildet dieser Treiber JDBC Methoden auf ODBC Aufrufe und tritt somit mit jedem verf gbaren ODBC Treiber in Interaktion JDBC ist als java sql Paket implementiert Dieses Paket enth lt alle JDBC Klassen und Methoden Klassen im java sq1 Paket sind java sql Driver java sql DriverManager java sql PropertyInfo java sql Connection java sql Statement java sql PrepareStatement java sql CallableStatement java sql ResultSet java sql SQLException java sgql SQLWarning java sql Database MetaData java sql ResultSetMetaData java sql Date java sql Time java sql Timestamp java
88. ement Do the SQL Hello World thing ResultSet rset stmt executeQuery select Hello World from dual while rset next System out println rset getString 1 System out println Your JDBC installation is correct close the resultSet rset close Close the statement stmt close Close the connection conn close Utility function to read a line from standard input static String readEntry String prompt try StringBuffer buffer new StringBuffer System out print prompt System out flush int c System in read while c n amp amp c 1 91 Objektorientierte Programmierung wissensbasierter Systeme buffer append char c c System in read return buffer toString trim catch IOException e return 4 3 5 Hinzuf gen von Elementen zu einer DB public int executeUpdate String sql throws SQLException f hrt eine SQL Anweisung aus die Manipulationen an der DB vornimmt Die SQL Anweisungen sind INSERT UPDATE oder DELETE Zur ckgegeben wird die Anzahl der ver nderten Zeilen bzw 0 falls eine SQL Anweisung nichts ver ndert hat 4 3 6 Metadaten Metadaten k nnen f r jede Abfrage angefordert werden So lassen sich u a leicht herausfinden wie viele Spalten in einer Tabelle abgefragt werden k nnen wie der Name der Spalte ist wie der SQL Typ der Spalte ist wie viele Dezimalzeichen eine Spalte h
89. en aus einem Auftrag auf den Kunden geschlossen werden aber einem Kunden fehlt die F higkei ber seine Auftr ge Auskunft zu geben Wenn die Navigierbarkeit nur in einer Richtung existiert nennt man die Assoziation eine gerichtete Assoziation unidirectional association Eine ungerichtete bidirektionale Assoziation enth lt Navigierbarkeiten in beiden Richtungen In der UML bedeuten Assoziationen ohne Pfeile da die Navigierbarbeit unbekannt oder die Assoziation ungerichtet ist Ungerichtete Assoziationen enthalten eine zus tzliche Bedingung Die zu dieser Assoziation zugeh rigen zwei Rollen sind zueinander invers Reflexive Assoziationen Manchmal ist eine Klasse auch mit sich selbst assoziiert Das kann der Fall sein wenn die Klasse Objekte hat die mehrere Rollen spielen k nnen Ein Fahrzeuginsasse kann entweder Fahrer oder Beifahrer sein In der Rolle des Fahrers f hrt bspw ein Fahrzeuginsasse null oder mehrere Fahrzeuginsassen die die Rolle von Beifahrern spielen Fahrzeuginsasse f hrt y Bee Bei einer refleviven Assoziation zieht man eine Linie von der Klasse aus zu dieser zuriick Man kann die Rollen sowie die Namen die Richtung und die Multiplizitat der Assoziation angeben Abh ngigkeiten Manchmal nutzt eine Klasse eine andere Das nennt man Abh ngigkeit dependency Die UML Notation ist eine gestrichelte Linie mit einem Pfeil z B System Maske Po zeigeMaske Eine Aggreg
90. en jJava applet vollzieht das Einbunden von java applet Applet automatisch Fast alle Applets die mit grafischen schnittstellen ben tigen auch java awt 108 Objektorientierte Programmierung wissensbasierter Systeme R ckkehr zur HTML Seite Verlassen der HTML Seite Abb Lebenszklus eines Applet Die Methode init wird nach dem Laden des Applet ausgef hrt Sie dient zur Initialisierung Die Methode start wird automatisch nach Aufruf der Methode init aufgerufen bzw dann wenn das Applet in den Zustand aktiv versetzt wird Applets k nnen in zwei Zust nden sein aktiv und inaktiv Nach dem Laden eines Applets ist dieses zun chst inaktiv Das Applet wechselt in den Zustand aktiv wenn es erstmalig auf dem Bildschirm erscheint Von dort aus wechselt es seinen Zustand zwischen aktiv und inaktiv Wodurch dieser Zustandswechsel genau ausgel st wird ist abh ngig vom Kontext des Applel d h in der Regel vom verwendetet Web Browser Die Methode stop wird aufgerufen wenn die HTML Seite in der das Applet eingebunden ist verlassen wird bzw das Applet in den Zustand inaktiv versetzt wird Die Methode destroy zerst rt das Applet nachdem es gestoppt wurde und der Kontext des Applet sich f r eine Zerst rung entscheidet Die Methode destroy sorgt daf r da alle vom Applet belegte Ressourcen wieder freigegeben werden Vorhandene vom Applet erzeugte Threads werden ebenfalls zerst rt Bsp berwachen
91. en Zur Verarbeitung des Wissens dienen Inferenzregeln mit deren Hilfe Beweisverfahren z B Resolutionsverfahren von 6 Objektorientierte Programmierung wissensbasierter Systeme Robinson Prolog Interpreter definiert werden k nnen M gliche Schlu folgerungen Inferenzen sind Ausdr cke die ber die Inferenzregeln aus den Axiomen ableitbar sind Das am h ufigsten verwendete Darstellungsschema ist das Pr dikatenkalk l 1 Ordnung Die Programmiersprache Prolog st tzt sich auf dieses Kalk l und ist daher f r die Implementierung von Wissensbasen mit logischen Repr sentationsverfahren besonders geeignet Objekte die mit diesen Darstellungen beschrieben werden k nnen sind jedoch recht einfach Ein gro er Teil der komplexen Struktur aus der Problemwelt kann deshalb nicht erfa t werden Die Problemwelt enth lt bspw Einzelobjekte die jeweils mehrere Eigenschaften haben einschl der Beziehungen zu anderen Objekten Es ist n tzlich solche Eigenschaften zusammen zu fassen um eine umfassende Beschreibung eines komplexen Objekts herzustellen Ein Vorteil eines solchen Schemas ist da es ein System in die Lage versetzt seine Aufmerksamkeit auf vollst ndige Objekt zu konzentrieren ohne dabei alle bekannten Fakten ber cksichtigen zu m ssen 2 Netzwerk Verfahren Sie pr sentieren das Wissen durch einen Graphen bei dem die Knoten die Objekte und Konzepte des Problemgebiets darstellen und die Kanten die Beziehung zwischen diesen
92. en instanziert und bei der Ereignisquelle registriert werden Zum Empfang von Nachrichen mu ein Objekt eine Reihe von Methoden implementieren die von der Nachrichtenquelle bei der es sich registriert hat aufgerufen werden k nnen Die Ereignisempf nger stellen Methoden durch Implementierung von Interfaces bereit die aus der Klasse EventListener des Pakets java util abgeleitet sind EventObj ComponentEvent ActionEvent AdjustmentEvent ItemEvent TextEvent InputEvent ContainerEvent WindowEvent Die Hierarchie der AWT spezifischen Ereignisklassen beginnt mit der Klasse AWTEvent und befindet sich im Paket java awt AWTEvent ist Superklasse aller Ereignisklassen des AWT die sich im Paket java awt event befinden Dieses Paket st in jede Klasse einzubeziehen die sich mit dem Event Handling von AWT Anwendungen besch ftigt EventListener Interface Je Ereignisklasse gibt es ein EventListener Interface Es definiert eine seperate Methode f r jede Ereignisart der Ereignisklasse So besitzt bspw das Interface MouseListener die Methoden mouseClicked mouseEntered mouseExited mousePressed und mouseReleased die beim Eintreffen des jeweiligen Ereignis aufgerufen werden ct EventListener FocusListener ActionListener AdjustementListener ItemListener KeyListener MouseListener MouseMotionListener ComponentListener ContainerListener WindowListener Jede der Methoden eines Listener Interface enth lt als einziges
93. en in allgemeiner Form bereit die systembezogen oder umgebungsbezogen sind Zur Nutzung des Internet steht eine Vielzahl von Anwendungen zur Verf gung die als Internet Dienste bezeichnet werden Die Dienste 3 st tzen sich auf ein Client Server Modell ab Bekannte Dienste im Internet sind Telnet File Transfer Protocol FTP Usenet News World Wide Web WWW 26 firmenintern als Intranet genutzt 27 Das f ngt beim Tagesdatum an und reicht zu so komplexen Funktionen wie bspw Zeitsynchronisierung innerhalb eines komplexen Netzes oder der Nachrichtenvemittlung zwischen Objekten Object Request Broker 28 F r eine Vielzahl von Diensten sind Standgardisierungen in sog RFCs Request for Comments niedergelegt 78 Objektorientierte Programmierung wissensbasierter Systeme Alle Internet Dienste st tzen sich auf das Client Server Konzept Das Client Programm Client stellt die Schnittstelle zwischen Benutzer und Server Programm Server dar Der Server bietet Informations und Kommunikationsvermittlung an Aufgabe des Client ist es Anfragen des Benutzers in eine maschinenverst ndliche Art umzuformulieren und dem Benutzer die vom Server gelieferte Antwort zu pr sentieren F r die Benutzung eines Internet Dienstes ist ein Client und ein Server Programm n tig Der Client bernimmt Vorfeldaufgaben front end application der Informationsverarbeitung und erlaubt unterschiedliche Datenquellen unter einer Oberfl che zu integrieren
94. er public Component add Component komponente public Component add Component komponente int pos public Component add String name Component komponente erwartet einen String Parameter der bei bestimmten Layout Managern z B BorderLayout Informationen zur Positionierung der Element bei BorderLayout South East West North Center angibt der Klasse Container Mit public void remove Component komponente k nnen bereits an das Fenster bergebene Komponenten gel scht werden Anzeigen eines Dialogfensters Es erfolgt durch einen Aufruf von setVisible Zweckm ig sollte zuvor public void pack der Klasse Window zur Anpassung der Fenstergr e an den f r die Darstellung der Dialogelemente erforderlichen Platz ausgef hrt werden 5 1 4 Multithreading f hige Applets Mit Threads k nnen in Java Applets so erstellt werden da alle oder auch einzelnen Codeteile in ihrem eigenen Thread laufen ohne andere Teile des Systems zu beeinflussen Ein Applet kann im wesentlichen ber vier Schritte Multithreading f hig gemacht werden 1 Erweitern der Signatur des Applets um implements Runnable 2 Hinzuf gen einer Instanzvariablen die den Thread des Applet enth lt 3 Reduktion der start Methode so da sie au er dem Start des Threads keine weiteren Threads enth lt 4 Hinzuf gen der run Methode die den eigentlichen Code enth lt den das Applet ausf hren soll Bsp Ein Applet zur A
95. er Anfang ist schwer public void paint Graphics g Oval mit Farbe yellow g setColor Color yellow qg fillOval 10 10 330 100 Roter Rahmen da Java keine Linienbreite kennt wird die Linienbreite durrch 4 Ovale die sich um Pixelbreite unterscheiden simuliert g setColor Color red rawOval 10 10 330 100 rawOval 9 9 332 102 rawOval 8 8 334 104 rawOval 7 7 336 106 etColor Color black etFont f rawString this spruch 40 70 r r Q aaa annaaada Die zugeh rige HTML Datei AllerAnfangApplet html umfa t lt HTML gt lt HEAD gt lt TITEL gt Hallo lt TITL lt BODY gt lt CENTER gt lt APPLET CODE AllerAnfangApplet class WIDTH 350 HEIGHT 125 gt lt APPLET gt lt CENTER gt lt BODY gt lt HEAD gt lt HTML gt 7 Fl Vv In einem Browser f hrt das zu der folgenden Darstellung 111 Objektorientierte Programmierung wissensbasierter Systeme yix Netscape Hallo rn A Java Applets zeichnen sich durch berschreiben der paint Methode selbst Wie wird die paint Methode aufgerufen Es gibt drei verschiedene Methoden zum Neuzeichnen eines Applet public void paint Graphics g Sie zeichnet tats chlich die Grafik des Applets in den Zeichenbereich Sie wird immer aufgerufen wenn ein Applet neu gezeichnet werden mu Das in der paint
96. ereinfachte Varianle von SGML zu schaffen Das Arbeitsergebnis dieser Gruppe ist XML XML ist ebenso wie SGML eine Metasprache f r das Definieren von Dokument Typen d h XML ist der Oberbegriff f r die Regeln die Syntax die angewendet werden wenn ein neuer Dokument Typ definiert wird Das zuk nftige HTML hat XML als Grundlage Grunds tzlich k nnen XML Datentypen berall da zum Einsatz kommen wo es Bedarf f r Datentausch gibt 21 bezieht sich auf die in ISO 1986 standardisierte SGML Standard Generalized Markup Language 22 Standardisierungsorganisation f r das Web 73 Objektorientierte Programmierung wissensbasierter Systeme 4 1 3 HTML Grundlagen HTML Dokumente sind einfache Textdateien die mit jedem beliebigen Texteditor erstellt werden k nnen Damit sie von Web Browsern optisch ansprechend dargestellt werden k nnen enthalten sie besondere Befehle die sog Tags oder Marken Sie beginnen mit einer ffnenden spitzen Klammer lt und enden mit einer schlie enden spitzen Klammer gt Dazwischen stehen der name der Marke und oft noch zus tzliche Optionen Viele Marken haben Blockcharakter d h Sie markieren einen Textbereich wie berschriften Titel spezielle Abs tze Solche Bl cke werden mit einer Endemarke abgeschlossen Sie sehen bis auf den Schr gstrich als erstes Zeichen genau so aus wie die Marke selbst Bsp lt HTML gt und lt HTML gt Diese Marken kennzeichnen die datei als HTML Seite lt HEAD gt
97. erwaltung werden die Aufgaben zwischen Client und Server aufgeteilt Beispiele sind Entwicklungsumgebungen die sowohl auf lokale als auch entfernte Datenbanken zugreifen k nnen Die verteilte Datenverwaltung geht tief in Theorie und Konzept verteilter Datenbanken ein Bei der kooperativen Verarbeitung findet die Datenhaltung Server seitig statt Repr sentationsaufgaben werden vom Client wahrgenommen und die Applikations Funktionsschicht wird zwischen Server und Client aufgeteilt Bei der entfernten Verarbeitung wird die Datenhaltung vom Server wahrgenommen Die Verarbeitung findet Client lastig statt d h der Client bernimmt die Anwendungs und Repr sentationsaufgaben Die Anwendungslogik kann somit vollkommen auf der Seite vom Browser d h vom Client ausgef hrt werden Ein solches Programm das innerhalb vom Browser ausgef hrt wird ist ein Applet Ein besondere Rolle spielt hier die Programmiersprache Java In Java geschriebene Programme k nnen in einen maschinenunabh ngigen Zwischencode bersetzt und Server seitig abgelegt werden Wenn eine HTML Seite auf ein Java Programm ein sog Applet 82 Objektorientierte Programmierung wissensbasierter Systeme verweist dann wird es zum Client bertragen und dort mit einem entsprechenden Interpreter ausgef hrt So steht nichts mehr im Wege auf dem Client Animationen ablaufen zu lassen Eingabefelder zu berpr fen oder auch Datenbank Anweisungen SOL aufzurufen Eine besondere Rol
98. ete verwenden kann Es mu nur die entsprechende Wissensbasis ausgetauscht werden 1 2 1 Prozedurale Methoden zur Wissensrepr sentation Beim prozeduralen Ansatz wird Wissen in Form einer Abfolge von Anweisungen den Prozeduren gespeichert Im Unterschied zu nicht wissensbasierten Programmen mu der Aufruf einer Prozedur aber explizit der Kontrolle des Programms unterliegen Das bedeutet das Programm wei ber seine L sungsm glichkeiten Bescheid und wendet diese entsprechend den vorliegenden Problemstellungen an Objektorientierte Programmierung wissensbasierter Systeme 1 2 2 Objektbezogene graphische Beschreibung Semantische Netze Vereinbarungen zur graphischen Beschreibung Beschreibungssobjekte sind Konzepte Objekte Entit ten Entit tstypen und Beziehungen zwischen Konzepten Konzepte werden graphisch durch benannte Knoten dargestellt Bezie hungen zwischen Konzepten durch benannte Pfeile Bsp 1 Die einfache Gegebenheit Juergen wohnt in Regensburg l t sich durch folgendes semantisches Netz darstellen wohnt_in 2 Das folgende Netz stellt die Information dar da J rgen einen Wagen der gehobenen Mittelklasse f hrt wei er BMW Mittelklasse wei Abb 1 2 1 Ein einfaches semantisches Netz Von seiner Struktur her ist ein semantisches Netz ein gerichteter Graf mit den Konzepten als Knoten und Beziehungen als Kanten zwischen den Knoten Es gibt keine umfassende bereinkunft dar ber wie die
99. eter String url pe String url Driver driver Abb Methoden der Klasse java sql DriverManager Der Treibermanager bietet eine Methode getConnection an mit der die Verbindung zur DB hergestellt wird L dt man bspw den JDBC ODBC Treiber mit Class forName sun jdbc odbc JdbcOdbcDriver dann kann eine Verbindung mit Hilfe des Connection Objekts bspw so aufgebaut werden Connection conn DriverManager getConnection jdbc odbc database user password Die Verbindung wird mit speziellen Optionen parametrisiert u a mit dem Treiber der die Datenquelle anspricht Datenquellen sind durch eine besondere URL mit folgendem Format qualifiziert jdbc Subprotokoll1 4 Datenquellennam Die Methode public static Connection String url String user String password erwartet bis zu Paramter Pflichtparameter Anmeldename und Pa wort arameter i S isReaddOnly getCatalog tring catalog setAutoClose oolean autoClose getAutoClose SQLWarning b boolean autoCommit int level 33 Die statische Methode getDrivers liefert eine Aufz hlung der angemeldeten Treiber 34 F r ODBC Datenquellen ist das Subprotokoll mit odbc anzugeben 87 Objektorientierte Programmierung wissensbasierter Systeme getTransactionlsolation int Abb java sql Connection Methoden und Konstanten Die TransactionIsolation Konstanten werden in
100. ezeichnet werden Ein Stapel ist eine geordnete Menge von Scheiben Jede Scheibe befindet sich in genau einem Stapel Auf einem Podest k nnen sich mehrere Stapel befinden die der Gr e nach geordnet sind 3 Ein Turm besteht aus drei Podesten Die Scheiben auf den Podesten sind in Untermengen aufgeteilt die als Stapel bezeichnet werden wobei sich wie in 2 mehrere Stapel auf einem Pfeiler befinden k nnen Die Struktur eines Stapels ist jedoch jetzt rekursiv Ein Stapel besteht aus einer Scheibe der untersten Scheibe des physikalischen Stapels und je nach H he des Stapels null oder einem Stapel 17 nach einer Vorlage von Torsten Brinda in LOG IN 20 2000 Heft 5 46 Objektorientierte Programmierung wissensbasierter Systeme _ Scheibe besteht_aus 4 hnlich wie in 3 au er dass nur ein Stapel miteinem Podest assoziiert ist besteht_aus Die Vererbung Spezialisierung bzw Generalisierung stellt eine Verallgemeinerung von Eigenschaften dar Eine Generalisierung generalization ist eine Beziehung zwischen dem Allgemeinen und dem Speziellen in der Objekte des speziellen Typs der Subklasse durch Elemente des allgemeinen Typs der Oberklassse ersetzt werden k nnen Grafisch wird eine Generalisierung als durchgezogene Linle mit einer unausgef llten auf die Oberklasse zeigenden Pfeilspitze wiedergegeben z B Supertyp N Subtyp_1 Subtyp_2 Abb 47 Objektorientierte Programmierung wissensb
101. fe von Programmen des logischen in einen physischen Entwurf 18 Booch Grady u a Das UML Benutzerhandbuch Addison Wesley Bonn 1999 Seite 123 66 Objektorientierte Programmierung wissensbasierter Systeme Fachhochschule persistent name Name adresse String telefon Number studentHinzufuegen hat studentStreichen studentErmitteln 1 alleStudentenErmitteln fachbereichHinzufuegen fachbereichStreichen fachbereichErmitteln alleFachbereicheErmitteln Mitglied Student i Besucht gt persistent name Name studentID Number Abb Modellieren eines logischen Datenbankschemas Vorlesung persistent lehrt Bsp Modellierung eines Datenbankschemas fiir eine Fachhochschule Fachbereich persistent 0 1 1 gt dozentHinzufuegen 1 dozentStreichen dozentErmitteln alleDozentenErmitteln ZustaendigFuer 0 1 1 Dekan Dozent persistent name Name vorlesungsID 67 Objektorientierte Programmierung wissensbasierter Systeme 2 Die Modellierung eines physischen Datenbankschemas Das Modellieren einer physischen Datenbank umfa t Identifikation der Klassen die das logische Datenbankschema bilden Wahl einer Strategie zur Abbildung dieser Klassen auf Tabbellen Erstellen eines Komponentendiagramms mit den als Tabellen stereotypisierten Tabellen zur Visualisierung und Dokumentation Bsp Modellieren der physischen Datenbank FH db
102. formationen aus dem World Wide Web www HTTP ist ein objektorientiertes Protokoll zur einfachen bertragung von Hypertext Dokumenten zwischen Client und Server Client Programme die HTTP benutzen werden in der Regel als Web Browser Server Programme als Web Server bezeichnet Der Browser schickt an den Server die Aufforderung eine bestimmte HTML Seite zu bertragen Falls er in dieser Seite weitere Verweise z B auf Bilder entdeckt schickt er weitere bertragungsw nsche hinterher Das Besorgen der gew nschten Dokumente erfolgt ber ein einheitliches Adre schema dem Uniform Resource Locator URL durch den Internet Standort und die Art der zu bertragenden Information identifiziert werden Der URL besteht im wesentlichen aus zwei Teilen Er wird mit der Bezeichnung des Ubettragungsprotokolls eingeleitet z B http Danach folgt mit zwei vorangestellten der Name des Internet Rechners auf dem die gew nschte Information gespeichert ist Wird eine bestimmte Datei in danem bestimmten Verzeichnis referenziert dann werden noch Verzeichnisname und Dateiname angef gt Es gibt Str mungen und Tendenzen die dazu f hren da Ende der Neunziger Jahre Standards entstehen die ber die Beschr nkungen von HTML hinausgehen Die hohe Komplexit t von SGML verhinderte da SGML zum Standard im Web wurde Beim World Wide Web Consortium w3C 2 wurde daher eine Arbeitsgruppe eingerichtet die sich die Aufgabe gestellt hat eine v
103. ge Brettsituation Das Vorzeichen der Zahlenwerte dr ckt aus f r welchen der beiden Spieler die Situation g nstig ist Ein Spieler hat somit das Ziel den Zahlenwert zu maximieren Maximizer der andere ihn zu minimieren Minimizer Der MiniMax Algorithmus baut einen Spielbaum bei einer bestimmten Ebene auf und addiert zu jedem Blatt mit Hilfe eines Situations Analyser einen Zahlenwert Maximiere Minimiere Maximiere 2 7 1 8 Der MiniMax Algorithmus beginnt seine Analyse eine Ebene ber den Bl ttern Befindet er sich in einer Minimisierer Ebene ordnet er dem Knoten das Minimum der Bewertungen seiner Kinder zu In einer Maximierer Ebene wird das Maximum bestimmt Nachdem das f r alle Knoten dieser Ebene erledigt ist nimmt er die Bewertung eine Eben h her vor Bei dem dann dem Root Knoten 15 Objektorientierte Programmierung wissensbasierter Systeme zugeordneten Wert eintspricht die Bewertung der Brettsituation die der Spieler im schlechtesten Fall erreichen kann Da der Situations Analyzer eine sehr rechenaufwendige Aufgabe darstellt sollte man berlegen ob er berhaupt f r jedes Blatt aufgerufen werden mu Der Alpha Beta Algorithmus zeigt dass dies nicht n tig ist 1 2 3 Logikorientierte Methode der Wissensrepr sentation Aufbauend auf der Theorie der formalen Logik steht die Pr dikatenlogik erster Stufe das bekannteste Kalk l zur Darstellung von logischen Sachverhalten dar Ein Beispiel f r eine Formel diese
104. gemeinen Konzept in Verbindung stehen Dies ist brigens eine Eigenschaft semantischer Netze die im menschl Ged chtnis analog behandelt wird Die Begriffe semantische Netze Vererbungshierarchien etc stammen alle aus dem Zusammenhang ber die Informationsspeicherung im menschlichen Gehirn Psychologen benutzen semantische Netze als Ged chtnisprotokoll Die Psychologen Coats Parkin haben bspw solche einfachen Ged chtnisprotokolle beschrieben Modellierung mit Hilfe semantischer Netze Die Modellierung mit Hilfe eines semantischen Netzes besteht aus zwei Teilen 2 vgl Coats R B und Parkin A Computer Modells in the Social Sciences 1977 11 Objektorientierte Programmierung wissensbasierter Systeme Der eine Teil enth lt die Wissensbasis mit Konzepten und Beziehungen zwischen den Konzepten Das menschl Ged chtnis enth lt eine gro e Anzahl solcher Konzepte z B auto haus freiheit Viele Bestandteile solcher Wissensstrukturen sind allen Menschen gemein Manche sind aber nur spezifisch f r bestimmte Individuen So d rfen sich etwa die Wissensstrukturen eines Informatikers und eines beliebigen Durchschnittsmenschen ber Hunde nicht unterscheiden wohl aber ber Computer bzw Software Der andere Teil des Modells ist der Interpretationsproze der die Informationen in der Wissensbasis benutzt und verarbeitet Solche kognitiven Prozesse sind die Aufnahme von Information und die Reorganisation des Ged chtnisses Aufn
105. getMessage n it is important to rollback or commit at the end of the day and not leave the connection dangling public void stop if m_ctx null try System out println Closing the applet sql m_ctx ROLLBACK or if you prefer sql m_ctx COMMIT m_ctx close catch SQLException exn finally m_ctx null Provide a main entry point so this works both as an applet and as an application public static void main String args AppletFrame f new AppletFrame new AppletMain 600 350 100 Objektorientierte Programmierung wissensbasierter Systeme 5 Veteilte Objektarchitekturen 5 1 Konzept der Applets 5 1 1 Beschreibung des Konzepts Applets sind Programme die in der Regel nicht als eigener Proze auf dem Rechner iniziiert werden und dort laufen sondern innerhalb eines Web Browsers ausgef hrt werden Zur Ausf hrung eines Applets ist es demnach n tig das Applet in einem HTML Dokument39 einzubetten In diesem HTML Dokument werden dem javafahigen Browser die Informationen mitgeteilt die er zur Ausf hrung des Applets ben tigt Der Browser l dt die Klassendatei und f hrt das Applet automatisch aus Aus der Sicht des Programmierers ist das Applet eine Klasse die von der Applet Klasse abgeleitet wird 5 1 1 1 Aufgaben zur Erl uterung des Konzepts 1 Aufgabe Erstelle ein Applet das in einem Fenster den Text Herzli
106. gramm mit einfacher Numerierung 56 Objektorientierte Programmierung wissensbasierter Systeme 2 2 5 Zustandsdiagramme Ein Zustandsdiagramm zeigt einen Automaten der aus Zust nden Zustands berg ngen Transitionen Ereignissen und Aktivit ten besteht Bei Zustandsdiagrammen steht das nach Ereignissen geordnete Verhalten eines Objekts im Vordergrund Zust nde werden symbolisch ber Rechtecke mit abgerundeten Ecken dargestellt Zustandsvariablen Aktivit ten Durch das Eintreffen von Ereignisssen kann ein anderer Zustand erreicht werden was durch Pfeile angedeutet wird Die Pfeile haben eine Beschriftung f r das ausl sende Ereignis und stellen berg nge dar In den Zust nden werden Operationen mit einer gewissen Zeitdauer ausgef hrt die Aktivit t genannt werden Im Gegensatz dazu wird die Zeitdauer von Aktionen mit Null angenommen Aktionen sind Operationen die an berg ngen ausgef hrt werden Angezeigt werden Aktionen durch einen Schr gstrich vor dem Namen Selbstverst ndlich k nnen berg nge auch an Bedingungen die in eckigen Klammern stehen gekn pft werden Start KennwortEingabe Zustandsname Kennwort String Ereignis Argument Bedingung Aktion Variable Typ Initialwert entry Echo ausschalten entry Aktion do Zeicheneingabe do Aktivit t exit Echo einschalten exit Aktion Abb Symbole im Zustandsdiagramm Die W rter entry do exit sind reserviert entry gibt das an was geschieht wenn
107. h lt 1 Das Erstellen eines Applets Zum Erstellen eines Applet mu immer eine Subklasse der Klasse Applet46 erzeugt werden Java setzt voraus da eine Applet Subklasse public deklariert wurde Erkennt Java ein Applet auf einer Web Seite dann wird die Applet Ausgangsklasse und die Hilfsklasse die diese erste Klasse evtl benutzt ber das Netz geladen Java erstellt eine Instanz dieser Klasse alle systembezogenenen Methoden werden an diese Instanz geschickt Mehrere Applets auf der gleichen oder auf unterschiedlichen Seiten verwenden andere Instanzen so da sich jedes Applet auf dem gleichen System evtl anders verh lt 2 Applet Methoden Applets k nnen zahlreiche unterschiedliche Aktivit ten umfassen die verschiedenen wichtigen Ereignissen im Lebenszyklus eines Applet entsprechen z B Initialisieren Zeichnen Mausereignisse Jeder Aktivit t ist eine entsprechende Methode zugeordnet d h Falls eine Ereignis stattfindet ruft der Browser oder ein java hnliches Werkzeug diese spezifische Methode auf Zum Reagieren auf solche Ereignisse sind bestimmte Verhaltensweisen vorzusehen Das geschieht durch berschreiben der jeweiligen Methode in der Applet Subklasse Unterschiedliche Applet Verhalten bedeutet Jeweils andere Methoden m ssen berschieben werden Die folgenden Methoden bestimmen den Lebenszyklus eines Applet 46 Alle Applets m ssen java applet Applet in die Datei mit der Definition der Applet Klasse importier
108. h Anfrage engl request genannt 75 Objektorientierte Programmierung wissensbasierter Systeme Der Server antwortet mit Statuszeile einem Header mit Infos ber sich selbst und dem Inhalt Der Web Browser mu sich also um eine Antwort vom Web Server k mmern Eine vom Microsoft WEB Server generierte Anwort kann etwa so aussehen HTTP 1 0 200 OK Server Micosoft PWS 2 0 Date Sat 09 May 1998 09 52 32 GMT Content Typ text html Accept Ranges bytes Last Modified Sat 09 May 1998 09 52 22 GMT Content Length 27 Hier kommt die HTML Seite Die Antwort ist wieder durch eine Leerzeile getrennt Der Header vom HTTP setzt sich aus drei Teilen zusammen dem General Header dazu geh rt etwa Date Response Header dazu geh rt Server und Entity Header Content Length und Content Type Jedes Feld im Header bestheht aus einem Namen gefolgt von einem Doppelpunkt Dann folgt der Wert Die erste Zeile wird Statuszeile genannt und beinhaltet die Version des Protokolls und den Statuscode Der Stauscode macht eine Aussage ber das Ergebnis der Anfrage Er besteht aus einer Zahl mit 3 Ziffern General Header Fields Zu jeder bermittelten Nachricht gibt es abfragbare Felder sowohl f r den Client als auch f r den Server Zu diesen geh ren Cache Control Connection Date Pragma Tranfer Encoding Upgrade und Via Das Datum kann in 3 verschieden Formaten gesendet werden Felder im Response Header Der Response Header erlaubt de
109. hien in einem komplexen System sind seine Klassenstruktur is a Hierarchie und seine Objektstruktur part of Hierarchie Vererbung ist die wichtigste Konsequenz der is_a Hierarchie Grunds tzlich definiert die Vererbung eine Beziehung zwischen Klassen wobei eine Klasse die Unterklasse Subklasse Struktur oder Verhalten das in einer bzw mehreren Oberklassen f r einfache bzw mehrfache Vererbung definiert ist bernimmt Weiter n tzliche Elemente des Objektmodells sind Typisierung Typisierung erzwingt die Objektklasse so da Objekte verschiedener Typen nicht oder zumindest nur unter sehr eingeschr nkten Bedingungen ausgetauscht werden k nnen Nebenl ufigkeit Nebenl ufigkeit ist das Attribut das ein aktives Attribut von einem nicht aktiven Objekt unterscheidet Persistenz Persistenz ist die Eigenschaft eines Objekts durch die seine Existenz eine bestimmte Zeit berdauern kann d h das Objekt existiert weiter nachdem sein Erzeuger schon nicht mehr existiert 2 1 2 Klassen und Objekte Was ist ein Objekt 11 Geheimnisse einer Abstraktion 31 Objektorientierte Programmierung wissensbasierter Systeme Ein Objekt hat einen Status ein Verhalten und eine Identit t Die Struktur und das Verhalten hnlicher Objekte sind in ihrer gemeinsamen Klasse definiert Die Begriffe Instanz und Objekt sind austauschbar Der Status eines Objekts umfa t alle normalerweise statischen Eigenschaften des Ob
110. ie Ausgabe von Sound 5 1 8 Applets in Archiven 5 2 Konzept des Networking 5 2 1 Networking mit URLs 5 2 2 Kommunikation mit einem CGI Skript 5 2 3 5 2 4 5 2 5 5 3 5 4 5 4 1 5 4 2 5 4 3 5 4 4 5 4 5 Objektorientierte Programmierung wissensbasierter Systeme Kommunikation ber Sockets bzw Datagramms Kommunikation ber CORBA Kommunikation ber RMI Konzept der Servlets Java Server Pages JSP Was sind Java Server Pages Skript Elemente Entsprechende XML Tags Direktiven Aktionen Objektorientierte Programmierung wissensbasierter Systeme 1 Beschreibung und Pr sentation von Wissen Intelligenz erfordert Wissen Ohne Wissen gibt es keine Intelligenz Wissen ist in der Regel sehr umfangreich schwer zu charakterisieren und ndert sich dauernd Diese Eigenschaften beeinflussen weitgehend die Beschreibung von Wissen z B in einem Rechensystem Wissen ist die in einem System Computer Mensch Bibliothek usw gespeicherte Information Dabei kann Wissen folgende Eigenschaften besitzen Wissen wird allgemein f r wahr gehalten Wissen kann falsch sein Allgemein f r wahr gehaltenes Wissen kann sich als falsch herausstellen Wissen kann Widerspr che umfassen Wissen kann somit als Informations Ressource aufgefasst werden In der Literartur gibt es keine anerkannte Definition f r Wissensverarbeitung Die fogende Abbildung Informationsverwaltung Aufbereiten der Information f r dauerhafte Speicherung in
111. ie URL einer Sound Datei oder die Kombination von Verzeichnis URL und Dateinamen angegeben werden Die bergabe der URLs geschieht ber die Applet Methoden public URL getCodeBase public URL getDocumentbase Die Methoden liefern eine URL des Verzeichnisses aus dem das Applet gestartet wurde bzw in dem die aktuelle HTML Seite liegt Der Nachteil dieser Vorgehensweise ist da die Sound Datei bei jedem Aufruf neu geladen werden mu public getAudioClip URL url String name Hier wird ein Objekt der Klasse AudioClip beschafft das dann abgespielt werden kann AudioClip stellt drei Methoden zur Verf gung public void play startet die zuvor geladene Sound Datei und spielt sie genau einmal ab public void loop startet die zuvor geladene Sound Datei und spielt den Sound in einer Endlosschleife immer wieder ab public void stop Dar ber kann die zuvor mit loop iniziierte Schleife beendet werden Bsp import java net import java applet public class PR33602 public static void main String args if args length gt 1 try URL url new URL args 0 AudioClip clip Applet newAudioClip url clip play try 54 Das JDK 1 2 erm glicht die Soundausgabe in Applets und Applikationen Fr here Versionen gestatten Soundausgabe nur f r Applets Die Ausgabe war auf Sound beschr nkt die im AU Format stammt aus der Sun Welt und legt ein Sample im Format 8 Bit Mono Sampling Rate
112. ie mit einem Interpreter arbeiten nennt man Skript 61 Sockets wurden Anfang der 80er Jahre f r die Programmiersprache C entwickelt und mit Berkeley UNIX 4 1 4 2 allgemein eingef hrt 62 Diese Adressen werden von der IANA Internet Assigned Numb er Authority vergeben Die IANA ist der zentrale Koordinator f r die IP Adressen Domain Namen MIME Typen und viele andere Parameter u a a Portnummern 139 Objektorientierte Programmierung wissensbasierter Systeme Sockets aus der Sicht einer Client bzw Server Anwendung werden durch die beiden Klassen Socket und ServerSocket repr sentiert StreamSockets Ein Stream baut eine feste Verbindung zu einem Rechner auf Das besondere ist Die Verbindung bleibt f r die Dauer der bertragung bestehen Bsp 1 Ein einfacher Server der alles nachplappert was der Client sendet MultiPlapperServer java Einfacher Server der nachplappert was der Client sendet import java io import java net public class PlapperServer Auswahl von einem Port ausserhabl des Bereichs 1 bis 1024 static final int PORT 8080 public static void main String args throws IOException ServerSocket fuer einen bestimmten Port ServerSocket s new ServerSocket PORT System out println Start s try Blockbildung bis eine Verbindung hergestellt ist Socket socket s accept accept blockiert solange bis sich ein Client bei der Serveranwendung anmel
113. ift TimesRoman fett in 12 Punkt Gr e zugewiesen Das neue Objekt wird anschlie end der Instanzvariablen f zugewiesen und ist so der Methode paint zug nglich public void paint Graphics g Mitteilung Die Schrift zur Anzeige von Text befindet sich in der Instanzvariablen f g setFont f Mitteilung Die Farbe fuer die Ausgabe ist gelb g setColor Color yellow 105 Objektorientierte Programmierung wissensbasierter Systeme Die glebe Farbe dient zum Fuellen eines Rahmens fuer den Text der aus einem Rechteck mit abgerundeten Ecken besteht g fillRoundRect 0 0 225 30 10 10 Mitteilung die Farbe fuer Textausgaben ist eine Instanz der Klasse Color fuer die Farbe rot g setColor Color red Mitteilung Text wird in festgelegter Schrift und Farbe bei den x y Koordinaten 5 25 ausgegeben g drawString Herzlich Willkommen in der Java Welt 5 25 Die Klassen Font und Color werden ber die folgenden import Anweisungen bereitgestellt import java awt Graphics import java awt Font import java awt Color Daf r kann man auch import java awt schreiben 2 Kompiliere die Datei WillkommenApplet java in eine class Datei 3 Ausf hrung des Applet z B ber den Aufruf appletviewer willkommenApplet html 3 Aufgabe Zeichnen von 100 verschieden eingef rbten Rechtecken in ein Applet Fenster zeichn Rechteck import java ap
114. ignung sowohl f r manuelle als auch werkzeuggest tzte Erstellung Das Metamodell Die UML wird formal in einem Metamodell beschrieben Dabei werden die Elemente der UML selbst benutzt um das Metamodell zu beschreiben Ziele sind Beschreibung der Semantik der UML Bereitstellung einer formalen Basis Unterst tzung bei der Erstellung von Tools Definition eines Austauschformats f r Modelle Modellierung Die UML ist eine grafische Notation f r diverse objektorientierte Modelle Analyse Modell Use Case Diagramme Statisches Modell Klassen und ihre Beziehungen Dynamisches Modell Sequenzdiagramme Kolloborations Diagramme Zustandsdiagramme Aktivit ts diagramme Diagrammtypen Die Notation der UML umfa t Diagramme f r die Darstellung verschiedener Ansichten auf das System Die Diagramme sind vergleichbar mit Baupl nen Use Case Gesch ftsprozesse allgemeine Einsatz Anforderung m glichkeiten Festlegung Erstellung bergabe das wichtigste Diagramm der UML Erstellung Interaktionsdiagramm Zeigt den Nachrichtenflu8 und damit die Anforderung Zusammenarbeit der Objekte im zeitlichen Festlegung Erstellung bergabe Zeitliche Aufrufstruktur mit wenigen Klasse On Kollaborationsdiagramm Zeitliche Aufrufstruktur mit wenigen Nachrichten Package Diagramm Groborientierung in welchem Modul welche Erstellung Klasse zu finden ist Aufteilung in Unterprojekte Bibliotheken bersetzungsei
115. iner Anwendung in ein Applet explizit angegeben werden da der Standard Layoutmanager f r ein Applet das FlowLayout ist Umwandeln eines Applet Codes in eine Anwendung Eine main Methode mu in die Anwendung eingebracht werden public static void main String args Erzeuge einen Rahmen Frame fuer die Anwendung Frame meinFenster new Frame Erzeuge eine Instanz meineApplikation new O Fuege die aktuellen Applikation zu dem Frame meinfenster add Center meineApplikation Erweitere das Fenster auf die gewuenschte Groess und mache das Fenster sichtbar meinFenster resize 200 200 meinFenster show Rufe die Methoden auf meineApplikation init meineApplikation start Schlie lich besitzen Applets weder eine Titelzeile noch Men leisten Sollten diese in einer Anwendung die in ein Applet konvertiert werden soll vorkommen m ssen sie gel scht werden Ein Titel kann f r die HTML Seite mit dem lt TITLE gt Tag erzeugt werden Men s m ssen durch andere GUI Komponenten Schaltfl chen o modelliert werden 115 Objektorientierte Programmierung wissensbasierter Systeme 5 1 3 Methoden zur Ereignisbehandlung von Applets 5 1 3 1 Event Handling unter JDK 1 1 Ein Applet kann auch auf Ereignisse wie Mausbewegungen reagieren F r soche Ereignisse z B Dr cken der Maustaste stellt Java Ereignisbehandlungs Methoden des JDK 1 0 bzw JDK 1 1
116. iner Webseite 104 Objektorientierte Programmierung wissensbasierter Systeme WillkommenApplet java WillkommenApplet class WillkommenApplet html Abb Die Komponenten von WillkommenApplet 5 Ausf hrung des Applet mit einem javaf higen Web Browser bzw dem Appletviewer z B mit dem Aufruf appletviewer WillkommenApplet html Das Resultat m te so aussehen SEHE Viewer WillkommenA P Ea Applet Herzlich Willkommen in der Java VYelt Applet started Abb Darstellung des Fensters mit dem Appletviewer In einem Browser w rde zus tzlich der Text rund um das Applet Mein Java Applet sagt gezeigt werden 2 Aufgabe Ver ndern von Schrift und Farbe f r den Text Herzlich Willkommen in der Java Welt L sungsschritte 1 Erweitere die Datei mit dem Namen WillkommenApplet java mit Hilfe eines Dateiaufbereites Editor Die erste Erweiterung soll die Schrift ver ndern in der der Text ausgegeben wird Es wird ein Objekt der Klasse java awt Font ber folgende Anweisung erzeugt Font f new Font TimesRoman Font BOLD 12 Objekte der Klasse Font dienen zum Bereitstellen verschiedener Schriftarten f r die Methode drawString und repr sentieren den Namen den Stil und die Gr e einer Schrift Mit einem spezifischen Objekt der Klasse Font kann man eine Schrift aufrufen die sich von der standardm ig in Applets benutzten Schrift unterscheidet Dem Font Objekt wird hier die Schr
117. ing args try Calculator c Calculator Naming lookup rmi localhost CalculatorService System out println c sub 4 3 System out println c add 4 5 System out println c mul 3 6 System out println c div 9 3 catch MalformedURLException murle System out println System out println MalformedURLException System out p rintln murle j catch RemoteException re System out println System out println Remote System out pri catch System out System out System out catch System out System out System out ntln re NotBoundException nbe rintln ntln NotBou ntln nbe P P P nd ri ri java lang Arithmetic println println java lang println ae Exception Exception Exception ae ArithmeticException 6 Start im 1 Konsolenfenster aus dem Verzeichnis in dem sich die Klassen befinden rmiregistry 145 Objektorientierte Programmierung wissensbasierter Systeme 5 3 Konzept der Servlets Das Java Server API dient hnlich CGI zur Server seitigen Programmausf hrung Offiziell werden diese Anwendungen als Servlet bezeichnet Im Gegensatz zur Erstellung eines eigenst ndigen Servers dienen Servlets dazu die Funktionalit t eines bestehenden Servers zu erweitern Ein Java Servlet hnelt einem CGI Skript weil es serverseitige Aufgaben bernimmt ist aber auch mi
118. intWriter new BufferedWriter new OutputStreamWriter socket getOutputStream true for int i 0 i lt 10 itt aus printlin Wie sterben i String str ein readLine System out println str aus println ENDE finally System out println Schliessen socket close 141 Objektorientierte Programmierung wissensbasierter Systeme 5 2 4 Kommunikation mit Hilfe von CORBA CORBA Common Object Request Object Architecture ist ein Standard zur Integration von Anwendungen und Entwicklung verteilter Systeme CORBA dient dazu Anwendungen in einer heterogenen verteilten Umgebung zu integrieren Eine Client Server Kommunikation kann n Java auch ber CORBA erfolgen Hierzu bietet SunSoft einen komplett in Java implementierten Object Request Broker an Ein Object Request Broker dient als Vermittler Postverteiler zwischen Objekten Zur Object Management Architecture OMA der Object Management Group OMG 3 geh rt auch eine Schnittstellen Definitionssprache IDL Java berstellt die Angaben in der Schnittstellensprache ber idl tojava exe in Java Quellcode Ein einfaches Beispiel 1 Die Angaben in der IDL befinden sich in der Datei HalloApp idl module HalloApp interface Hallo string sageHallo 2 Aufruf von idltojava exe in folgender Form idltojava HalloApp idl Im Unterverzeichnis HalloApp wurden folgende Dateien erzeugt Hallo java HalloH
119. ise aus der Klasse Frame oder Dialog abgeleitet werden Dialog erlaubt modale Dialoge und verhindert das Ver ndern der Fenstergr e durch den Anwender Im Gegensatz zum Frame kann ein Dialog Fenster keine Men leiste erzeugen und dem Fenster kein Icon zuordnen 51 Modale Dialaloge verhindern die Interaktion des Anwenders mit anderen Fenstern der Anwendung bis zum Schlie en des Dialogfensters 52 Falls ein Fenster unter Windows minimiert wird zeigt es ein Icon an Mit Hilfe eines Doppelklicks auf das Icon kann eine urspr ngliche Gr e des Fensters wiederhergestellt werden Mit Hlife der Methode public 122 Objektorientierte Programmierung wissensbasierter Systeme Zuordnen eines Layoutmanagers Es wird ber die Methode public void setLayout LayoutManager mgr der Klasse Container realisiert Java stellt f nf Layoutmanager bereit FlowLayout BorderLayout GridLayout GridBagLayout und CardLayout Neben den F higkeiten eines Layoutmanagers Bildschirm Schachteln von Layoutmanagern Dazu wird an die Stelle die das Sublayout erhalten soll einfach ein Objekt der Klasse Panel eingef gt das einen eigenen Layoutmanager erh lt Dieses Panel kann mit Dialogelementen best ckt werden die entsprechend dem zugeordneten Sublayout formatiert werden z B import java awt import java awt event public class PR14171 extends Frame public PR14171 bestimmt in der Regel die Reihenfolge der Aufrufe von der
120. ispiels gibt es eine zusammengesetzte Entscheidung Die erste Entscheidung betrifft den Kaffee Sollte es keinen Kaffee geben gelangt man zur zweiten Entscheidung die durch eine Entscheidungsraute markiert ist 62 Objektorientierte Programmierung wissensbasierter Systeme Start Bedingung _Entscheidungsaktivit t i v af y Bestimme kein Kaffee keine Cola Getr nk Cola gefunden Kaffee gefunden Synchronisationsbalken Kaffeepulver in Beh lter mit Wasser Cola B chsen Filter einf llen auff llen holen Aktivit t Filter in Maschine einsetzen Maschine anschalten Maschine anschalten Kaffee filtern Licht geht aus Kaffee Einschenken Abb Aktivit tsdiagramm Mit Aktivit tsdiagrammen kann auch die Visualisierung von Rollen in Angriff genommen werden Zu diesem Zweck spaltet man das Diagramm in parallele Bahnen auf die man Schwimmbahnen nennt Jede Schwimmbahn zeigt oben den Namen einer Rolle und pr sentiert und pr sentiert die Aktivit ten der einzelnen Rolle 63 Objektorientierte Programmierung wissensbasierter Systeme 2 2 7 Package Diagramm Package Diagramme dienen zur Strukturierung der verschiedenen Darstellungen Damit werden Gruppen von Diagrammen oder Elementen zusammengefa t Textverarbeitung 77777007 Rechtschreibung N Abb Beispiel f r ein Package Diagramm Ein Package Diagramm besteht im wesentlichen aus Packages dargestel
121. java sql Connection als Integer mit folgenden Werten definiert Transactionlsolation Konstantenname TRANSACTION NONE EEE TRANSACTION READ UNCOMMITTED TRANSACTION READ COMMITTES TRANSACTION REPEATABLE READ TRANSACTION SERIALIZABLE 4 3 4 Datenbankabfragen Abfragen ber das Statement Objekt F r Abfragen ist ein Statement Objekt mit der Methode createStatement gt anzulegen z B Statement stmt conn createStatement SQL Anweisungen ohne Parameter werden normalerweise ber das Statement Objekt ausgef hrt Wird das gleiche Statement mehrfach ausgef hrt lohnt es sich ein PreparedStatement zu konstruieren In JDBC gibt es drei Typen von Statement Objekten zur Interaktion mit SQL Statement PreparedStatement CallableStatement Ausf hren von SQL Anweisungen Zum Auslesen von Informationen benutzt man SELECT befehle aus SQL Zur Angabe der SQL Befehle dient die execute Methode des Statement Interface executeQuery benutzt man f r Abfragen executeUpdate bei UPDATE und DELETE z B ResultSet rset stmt executeQuery select Hello World from dual 35 public Statement createStatement throws SQLException 36 Beim Pr paredStatement Objekt bereitet das Anwendungsprogramm ein SQL Statement mit der java sql Connection prepeareStatement Methode vor Eine PreparedSatetement Methode nimmt eine SQL Zeichenkette die an das zugrundeliegende DBMS weitergegeben wird Das DBMS f hrt
122. jekts zusammen mit den aktuellen normalerweise dynamischen Werten dieser Eigenschaften Eine Eigenschaft ist eine unverwechselbare Charakteristik eine Qualit t oder ein Merkmal das zur Einzigartigkeit des Objekts beitr gt Eigenschaften sind normalerweise statisch und haben einen Wert Dieser Wert kann eine einfache Zahl oder eine anderes Objekt einbeziehen Objekte werden verwendet und verwenden selbst wieder Objekte Das Verhalten eines Objekts ist die Art und Weise wie ein Objekt agiert und reagiert in Form von Status nderungen und der bergabe von Nachrichten Eine Operation Nachricht Methode 3 ist die Aktion die ein Objekt auf einem anderen Objekt ausf hrt um eine Reaktion zu erhalten In rein objektorientierten Sprachen z B Smalltalk spricht man davon da ein Objekt einem anderen Objekt eine Nachricht bergibt In C spricht man davon da ein Objekt die Elementfunktion Methode eines anderen Objekts aufruft Eine Operation ist ein Service das eine Klasse ihren Klienten bietet Normalerweise f hrt ein Klient etwa f nf Arten von Operationen f r ein Objekt aus Modifizierer Ein Operator der den Status eines Objekts ver ndert Selektor Eine Operation die auf ein Objekt ohne Status nderung zugreift Iterator Eine Operation die auf Teile des Objekts in wohl definierter Reihenfolge zugreift Konstruktor Eine Operation die ein Objekt erzeugt und oder seinen Status initialisiert Destruktor Ein
123. kale Klasse kann aber auf alle Instanzmerkmale der erzeugenden Klasse zugreifen Eine Variante lokale Klassen sind anonyme Klassen Sie werden ebenfalls lokal zu einer anderen Klasse erzeugt kommen aber ohne Klassennamen aus Dazu werden sie bei der bergabe eines Objekts an eine Methode oder als R ckgabewert einer Methode innerhalb einer einzigen Anwendung definiert und instanziert Damit einer anonymen Klasse berhaupt eine sinnvolle Aufgabe zugef hrt werden kann mu sie aus einer anderen Klasse abgeleitet sein oder ein bestehendes Interface implementieren Bsp ActionListener Interface f r die bernahme eines Textfeld Inhalts in ein Textfeld zur Ausgabe Falls das Textfeld f r die Ausgabe den im Textfeld f r die Eingabe angegebenen Text wiedergeben soll mu ein ActionListener eine zus tzlich innere anonyme Klasse mit der Methode public void actionPerformed ActionEvent a definiert werden Diese Methode umfa t Aufrufe der Methoden getText und setText der Klasse TextField Dar ber kann in das Eingabetextfeld eingegebener Text in das Ausgabefeld ausgegeben werden Da die Methode actionPerformed der anonymen inneren Klasse auf eingabeTextFeld bzw ausgabeTextFeld zugreift ist au erhalb von main anzugeben private static TextField eingabeTextFeld new TextField 20 private static TextField ausgabeTextFeld new TextField 20 Zum Schlie en des Fensters wird ber eine anonyme innere Kla
124. kmale die sie von Kollaborationsdiagrammen unterscheiden 1 die Objektlebenslinie senkrechte gestrichelte Linie 2 Kontrollfokus langes schmales Rechteck Kollaborationsdiagramme haben zwei Merkmale die sie von Sequenzdiagrammen unterscheiden 1 Ein Objektdiagramm zeigt Objekte und die Beziehungen untereinander Ein Kollaborationsdiagramm ist eine Erweiterung des Objektdiagramms Es zeigt neben den Assoziationen zwische Objekten auch die Nachrichten Darstellung neben der Assoziationslinie durch einen Pfeil die diese einander senden 2 Zur Kennzeichnung der zeitlichen Anordnung schreibt man eine Nummer als Pr fix vor die Nachricht beginnend mit der Nummer 1 monoton wachsend f r jede weitere Nachricht f r den Kontrollfluss In einem Kollaborationsdiagramm werden verwendete Objekte als kleines Sinnbild icon dargestellt Wie in einem Sequenzdiagramm zeigen Pfeile die Nachrichten der vorgegebenen Anwendungsf lle an Auftragserfassungsfenster Objekt 1 bereiteVor Nachricht Sequenznummer Auftrag gt 5 erfordertNachbestellung 2 f r jede Auftragsposition bereiteVor nachbestellungErforderlich 3 imLagerVorhanden pruefe Selbstdelegation 4 imLagerVorhanden entferne S Ne Auftragsposition Lagerartikel 7 imLagerVorhanden lt lt new gt gt 6 erfordertNachbestellung lt lt new gt gt Lieferartikel Nachbestellartikel Abb Kollaborationsdia
125. kommenApplet g drawString Herzlich Willkommen in der Java Welt 5 25 Abb Klassendiagramm zu WillkommenApplet Die Klasse WillkommenApplet l t sich grafisch als rechteckiges Symbol darstellen Die paint Methode wird ohne formale Parameter beschrieben ihre Implementierung wird durch die beigefiigte Notiz gezeigt Die unmittelbare Superklasse wird im Quelltext direkt in der extends Klausel angegeben extends java applet Applet bestimmt das die angegebene Applet Klasse von der Applet Klasse des Abstract Windowing Toolkit AWT abgeleitet ist Der andere Teil der Klassendefinition enth lt das Schl sselwort pub1 i c mit der Bedeutung Die Klasse ist nach dem Laden f r das gesamte Java System verf gbar Applets m ssen public deklariert werden Die folgende Abbildung zeigt die Beziehungen der Klasse WillkommenApplet zu ihren unmittelbaren Nachbarn Applet WillkommenApplet 3 Abb Die unmittelbare Umgebung von Will kommenApplet Die gerichtete Linie mit der unausgef llten Pfeilspitze von WillkommenApplet zu Applet repr sentiert eine Generalisierung d h WillkommenApplet ist eine Unterklasse von Applet Der gestrichelte Pfeil repr sentiert eine Abh ngigkeitbeziehung WillkommenApplet verwendet Graphics Ein eigenes vom Benutzer erstelltes Applet berschreibt gew hnlich Methoden die in der Superklasse Applet definiert sind Diese Methoden bernehmen Aufgaben zur Initialisierung des A
126. l hierarchisch geordnet sein z B 12 Objektorientierte Programmierung wissensbasierter Systeme fehlerhaftes Ger t Fehler im Fehler im elektr System mech System defekter defekte abgenuzte lockere Schalter Dr hte Zahnr der Schrauben Abb 1 2 4 Hierarchische Ordnung bei der Darstellung von OAW Tripeln Die Objekte in diesem Baum sind statisch Eine dynamische Instanz dieser Hierarchie kann sich von Fall zu Fall ndern Der Vorgang bei dem die spezifischen Werte der in der statischen Wissensbank gespeicherten Attribute festgelegt werden wird als Instanzierung bezeichnet Suchverfahren in Probleml sungs Zustandsgraphen Semantische Netze Allgemein beschreiben semantische Netze Problem L sungszust nde und bedienen sich dabei der grafischen Darstellung Knoten beschreiben einen Problem L sungszustand Verbindungen zwischen den Knoten beschreiben die berg nge von einem Problem L sungszustand zum anderen Anhand solcher Graphen semantischer Netze werden h ufig Algorithmen erkl rt die in der Wissensverarbeitung h ufig angewendet werden Die Probleml sungsverfahren bestehen in der Regel aus den folgenden 3 Schritten 1 Formulierung des Problems durch Festlegen von Start Ziel und den erlaubten Aktionen Dabei wird eine sinnvolle Abstraktion der realen Welt vorgenommen 2 Suche Es wird eine Folge von Aktionen gesucht die vom Start zum Ziel f hren 3 Ausf hrung Es wird die Aktionenfolge die man als E
127. le spielt hier die Programmiersprache Java In Java geschriebene Programme k nnen in einen maschinenunabh ngigen Zwischencode bersetzt und Server seitig abgelegt werden Wenn eine HTML Seite auf ein Java Programm ein sog Applet verweist dann wird es ggf zum Client bertragen und dort mit einem entsprechenden Interpreter ausgef hrt Einen geeigneten Satz von Funktionen f r den Datenbankzugriff unter Java enth lt die JDBC Java Database Connectivity Schnittstelle JDBC ist die Spezifikation einer Schnittstelle zwischen Client Anwendung und SQL JDBC identifiziert auch eine Datenbank anhand eines URL z B jdbc oracle oci7 rfhs8012_ora3 83 Objektorientierte Programmierung wissensbasierter Systeme 4 3 Die Verbindung zur Datenbank ber JDBC 4 3 1 Zugriff auf eine relationale Datenbank mit JDBC JDBC steht f r Java Database Connectivity und umfa t zur Interaktion mit Datenquellen relationale Datenbankobjekte und Methoden Die JDBC APIs sind Teil der Enterprise APIs die von JavaSoft spezifiziert wurden und somit Bestandteil der Java Virtual Machine VM sind JDBC Designer haben die API auf das X Open SQL Call Level Interface CLI aufgebaut Auch ODBC basiert auf X Open SQL CLI JDBC definiert API Objekte und Methoden zur Kommunikation mit einer Datenbank Ein Java Programm baut zun chst eine Verbindung zur Datenbank auf erstellt ein Statement Objekt gibt SQL Statements an das zugrundeliegende Datenbankverwaltungssyst
128. let implements Runnable Instanzvariable Position vom Zentrum des schwingenden Pendels int x y double thetaMax double 0 35 double thetaMin double 0 35 Die initiale Position vom Pendel double theta double 0 double wechsel double 0 01 int xStart 150 yStart 20 Radius des Pendels double r double 200 Durchmesser des Balls ine d 2 0 Thread faden int xAlt yAlt Image backgroundlmage Graphics backgroundGraphics Methoden public void init setBackground Color white backgroundlImage createImage this size width this size height backgroundGraphics backgroundlmage getGraphics public void start if faden null 131 Objektorientierte Programmierung wissensbasierter Systeme faden new Thread faden start public void stop if faden null faden stop faden null public void run while true x xStart int y yStart int if theta gt theta wechsel wechsel theta wechsel repaint try Thread sleep catch InterruptedEx this r Math sin theta r Math cos theta Max theta lt thetaMin E 10 ception e public void update Graphics g paint g public void paint Gra backgroundGraphics s backgroundGraphics d background
129. likationen herangezogen werden Dazu setzt man den CLASSPATH auf das Archiv und startet das Programm z B javac HalloWelt java jar cf Hallowelt jar HalloWelt class set CLASSPATH HalloWelt jar del HalloWelt class java HalloWelt Die Applikation bezieht dann alle Klassen aus dem Archiv Diese Methode eignet sich besonders um Applikationen auf anderen rechnern zu installieren Es ist nichts anderes zu tu als das jar File auf dem Rechner zu kopieren und vor dem Programmstart den CLASSPATH zu setzen 55 Man kann auch andere Komprimierer verwenden die das zip Format benutzen z B das freie Paket von InfoZip das die Programme zip und unzip enth lt Unter Unix und Windows sieht dann die Komprimierung so aus zip archive jar class Der Nachteil solcher Komprimierer ist Zum Unterschied zu jar wird keine Manifest Datei erzeugt die alle Informationen ber Klassen enth lt 135 Objektorientierte Programmierung wissensbasierter Systeme 5 2 Konzept des Networking Das Konzept des Networking beruht auf dem Client Server Modell Beim Networking sind meistens zwei Prozesse beteiligt Der Client Proze der die Kommunikation zwischen Prozessen initiiert Der Server Proze der vom Client Proze zur Ausf hrung bestimmter Dienste ben tigt wird Es k nnen auch mehrere Client als auch mehere Server Prozesse an der Kommunikation beteiligt sein Die Kommunikation zwischen Prozessen mu nicht zwangsl ufig ber ein physis
130. lles ggf gegliedert in numerierte Einzelpunkte Ausnahmen Fehlersituationen Beschreibung der Ausnahme und Fehlersituationen die im Rahmen des anwendungsfalles auftreten k nnen Variationen Abweichungen und Ausnahmen zum Normalablauf und Beschreibung der alternativen Abl ufe f r diese F lle Regeln Gesch ftsregeln fachliche Abh ngigkeiten etc die im Rahmen des Ablaufs von Bedeutung sind Abb Beispielstruktur f r einen Anwendungsfall Akteure Ein Akteur ist eine au erhalb des Systems liegende Klasse die an der in einem Anwendungsfall beschriebenen Interaktion mit dem System beteiligt ist Akteure sind bspw die Anwender des Systems Wichtig sind vor allem die Rollen die die Anwender im Zusammenhang mit dem Anwendungsfall einnehmen Akteure beschreiben die Rollen der am Anwendungsfall Beteiligten Diese Rollen k nnen generalisiert und spezialisiert werden Ein einzelner Akteur kann viele Anwendungsf lle ausf hren ein Anwendungsfall kann ber verschiedene Akteure ausgef hrt werden Anwendungsfalldiagramme Es zeigt die Beziehungen zwischen Akteuren und Anwendungsf llen Bsp Anwendungsfalldiagramm f r den Gesch ftsproze Zeitschriftenumlauf in einem Unternehmen 39 Objektorientierte Programmierung wissensbasierter Systeme Zeitschrift registrieren Zeitschrift auswerten SO Umlaufzettel erstellen Zeitschrift aktivieren Zeitschriftenumlauf Abb Anwendungsfalldiagramm zum Gesch ftspro
131. lt durch gro e Rechtecke mit kleinem Rechteck links oben und Abh ngigkeiten den gestrichelten Pfeilen Eine Abh ngigkeit gibt an Bei einer nderung des Packages an der Pfeilspitze mu das Package am anderen Ende der gestrichelten Linie evtl ge ndert und neu bersetz werden Packages k nnen weitere Packages enthalten 2 2 8 Implementierungsdiagramme Implementierungsdiagramme zeigen Aspekte der Implementierung Diese umfassen die Codestruktur und die Struktur des Systems zur Ausf hrungszeit Es gibt zwei Formen Komponentendiagramm Einsatzdiagramm Deploymentdiagramm 1 Komponentendiagramm Das Komponentendiagramm zeigt die Abh ngigkeit unter den Softwarekomponenten d h die Abh ngigkeiten zwischen Quellcode Bin rcodekomponenten und ausf hrbaren Programmen Einige dieser Komponenten existieren nur w hrend des bersetzungsvorgangs einige nur w hrend des Linkens andere zur Ausf hrungszeit und wieder andere die ganze Zeit ber Im Komponentendiagramm haben die Darstellungen Typencharakter Objektorientierte Programmierung wissensbasierter Systeme WillkommenApplet java WillkommenApplet class WillkommenApplet html Abb Komponentendiagramm 2 Einsatzdiagramm Ein Einsatzdiagramm deployment diagram zeigt die Konfiguration der im Proze befindlichen Knoten zur Laufzeit sowie der auf ihnen existierenden Komponenten Knoten Quader stellen eine Hardware oder Verarbeitungseinheit dar Unter den Konten
132. lu der internen Verarbeitung Sofern mehrere ausgehende Transitionen vorliegen sind diese durch definierte Bedingungen boolsche Ausdr cke zu unterscheiden Ein Pfeil repr sentiert den bergang von einer Aktivit t zur n chsten Transitionen k nnen synchronisiert und geteilt werden Au erdem lassen sich Verzweigungs und Entscheidungspunkte definieren Es gibt 2 M glichkeiten einen Entscheidungspunkt darzustellen z B Abb 60 Objektorientierte Programmierung wissensbasierter Systeme Manchmal gabelt ein Aktivit ts berganf in zwei getrennte Pfade die zur gleichen Zeit d h nebenl ufig ablaufen und dann wieder zusammen kommen z B trainieren entspannen Abb Die Gabelung in zwei nebenl ufige Pfade bestimmt die senkrecht zum Aktivit ts bergang fette durchgezogene Linie Der entscheidende Unterschied zu blichen Ablaufdiagrammen besteht in der Handhabung paralleler Prozesse F r parallel laufende Aktivit ts Pfade gilt da ihre Reihenfolge irrelevant ist Sie k nnen nacheinander oder gleichzeitig ablaufen Jeder Aktivit t wird au erdem eindeutig ein Objekt bzw eine Klasse zugeordnet Aktivit tsdiagramme sind somit geeignet unterschiedliche Arten von Abl ufen darzustellen Sie k nnen die fachlichen Zusammenh nge und Abh ngigkeiten die sich hinter einem Anwendungsfall verbergen im Gegensatz zum Sequenzdiagramm vollst ndig beschreiben Ein Aktivit tsdiagramm kann sogar anwendungsfall
133. m 2 2 9 Schema Modellierung relationaler Datenbanken 3 Objektorientierte Programmierung mit Java Objektorientierte Programmierung wissensbasierter Systeme 4 Objektorientierte Wissensrepr sentation im Internet 4 1 Kommunikations und Dokumentationsnetze 4 1 1 Vernetztes Wissen 4 1 2 Internet WWW mit HTML XML 4 1 3 HTML Grundlagen 4 1 4 Arbeitsweise eines Web Servers 4 2 _ Client Server und Internet Intranet 4 2 1 Grundlagen 4 2 2 Grundkonzepte und Anwendungen 4 3 Die Verbindung zur Datenbank ber JDBC 4 3 1 Zugriff auf eine relationale DB mit JDBC 4 3 2 Datenbanktreiber f r den Zugriff 4 3 3 Verbindungen zur DB 4 3 4 Datenbankabfragen 4 3 5 Hinzuf gen von Elementen zu einer DB 4 3 6 Metadaten 4 3 7 Ausnahmen bei JDBC 4 3 8 JDBC Programmierung 4 3 8 1 Anwendungen Applets mit JDBC 4 3 8 2 Anwendungen Applets mit Embedded SQL SQLJ 5 Verteilte Objektarchitekturen 5 1 Konzept der Applets 5 1 1 Beschreibung des Konzepts 5 1 1 1 Aufgaben und Erl uterung des Konzepts 5 1 1 2 Lebenszyklus von Applets 5 1 1 3 HTML Tags f r den Einsatz von Applets 5 1 2 Applets und Anwendungen 5 1 3 Methoden zur Ereignisbehandlung in Applets 5 1 3 1 Event Handling inter JDK 1 0 5 1 3 2 Ereignisbehandlung unter grafischen Benutzerfl chen 5 1 3 3 Anwendung lokaler Klassen zur Ereignisbehandlung 5 1 3 4 Dialoge 5 1 4 Multithreading f hige Applet 5 1 5 Animation in Applets 5 1 6 Laden und Anzeigen von Bildern 5 1 7 D
134. m server die bermittlung zus tzlicher Infos die nicht in der Statuszeile kodiert sind Die Felder geben Auskunft ber den Server M glich sind Age Location Proxy Authenticate Retry After Server Vary Warning WWW Authenticate Entity Header Fields Ein Entity ist eine Info die auf Grund einer Abfrage gesendet wird Das Entity besteht aus Metainformationen Entity Header und der Nachricht selbst berliefert im Entity Body Die Metainformationen die in einem der Entity Header Felder bermittelt werden sind etwa Infos ber die Blockl nge und wann sie zuletzt ge ndert wurde Ist kein Entity Body definiert so liefern die Felder Infos ber die Ressourcen ohne sie wirklich im Entity Body zu senden Allow Content Base Content Encoding Content Language Content Length Content Location Content MDS Content Range Content Type ETag Expires Last Modified Der Dateiinhalt und der Content Type HTTP nutzt die Intermedia Types im Content Type Dieser Content Type gibt den Datentyp des bermittelten Dateistroms an Jede ber HTTP 1 1 bermittelte Nachricht sollte einen Header mit Content Type enthalten Ist dieser Typ nicht gegeben so versucht der Client anhand der Endung der URL oder durch Betrachtung des Dateistroms herauszufinden um was f r einen Typ es sich handelt Bleibt dies unklar dann wird ihm der Typ application octet stream zugewiesen MIME Wenn eine Seite vom Server zum Browser geschickt wird dann erkennt de
135. me visualisieren die Lebensdauer von Objekten gestrichelte Linie die die Existenz eines Objekts w hrend eines Zeitraums darstellt Die Zeitachse verl uft von oben nach unten Objekte sind als Rechtecke am oberen Rand von gestrichelten Lebens Linien dargestellt Am linken Rand k nnen noch Kommentare stehen die Aktivit t von Objekten Der Focus of Control das langezogene Rechteck gibt an wo eine Aktivit t ausgef ht wird Ist ein Objekt ohne Aktivit t vorhanden wird dies durch eine gestrichelte Linie angezeigt Objekte werden durch einen Pfeil auf das Rechteck erzeugt ein L schen wird durch ein Kreuz dargestellt Nachrichtenaustauch zwischen Objekten beschriftete Pfeile ber den Pfeilen stehen Operationen die ausgef hrt werden In eckigen Klammern k nnen Bedingungen angegeben werden wann die Operation ausgef hrt wird Ruft das Objekt eine Operation von sich selbst auf dann zeigt der Pfeil auf die Lebenslinie zur ck Eine Nachricht kann einfach 2 gt synchron gt oder asynchron halbe Pfeilspitze sein Verwendet ein Objekt eine synchrone Nachricht dann wartet es bevor es mit seiner Arbeit fortf hrt auf eine Antwort Sendet es eine asynchrone Nachricht so wartet es keine Antwort ab bevor es seine Arbeit wieder aufnimmt Das Diagramm zeigt in senkrechter Richtung den Zeitablauf an Es beginnt oben und schreitet nach unten fort Das Sequenzdiagramm ist zweidimensional In der Rechts Links Dimensio
136. mm gibt auf dem Textbildschirm Hello World aus You need to import the java sql package to use JDBC import java sql We import java io to be able to read from the command line import java io class JdbcCheckup public static void main String args throws SQLException IOException 38 Bookmarks in ODBC 90 Objektorientierte Programmierung wissensbasierter Systeme Load the Oracle JDBC driver try Class forName oracle jdbc driver OracleDriver Class forName sun jdbc odbc JdbcOdbcDriver catch Exception e System out println Fehler e getMessage n DriverManager registerDriver new oracle jdbc driver OracleDriver Prompt the user for connect information System out println Please enter information to test connection to the database String user String password String database user readEntry user int slash_index user indexOf if slash_index 1 password user substring slash_index 1 user user substring 0 slash_index else password readEntry password database readEntry database a TNSNAME entry System out print Connecting to the database System out flush System out println Connecting Connection conn DriverManager getConnection jdbc odbc database user password Create a statement Statement stmt conn createStat
137. mport java awt import java awt event Top Level Klassen Deklaration des Applets public class MausDownPunkteApplet extends java applet Applet Variablen Deklarationen private int mausX mausY private boolean mausKlick false Methoden die ueberschrieben werden public void init setBackground Color yellow addMouseListener new MouseAdapter public void mouseClicked MouseEvent e mausX e getX mausY e getY repaint public boolean mouseDown Event e int x int y mausX x mausY y mausKlick true repaint return true ee Ausgabemethode public void paint Graphics g g setColor Color blue if mausKlick g fillOval mausX mausY 20 20 mausKlick false public void update Graphics g paint g Eine berschriebene update Methode kann den Flimmereffekt erheblich senken 117 Objektorientierte Programmierung wissensbasierter Systeme 5 1 3 2 Ereignisbehandlung unter grafischen Benutzeroberfl chen Die Reaktion auf Nachrichten z B Mausklick Tastatureingabe Ver nderungen an Gr e und Lage der Fenster erfolgt in speziellen Ereignisempf ngern EventListeners die das zum Ereignis passende Empf nger Interface implementieren Damit ein Ereignisempf nger Nachrichten einer bestimmten Ereignisquelle erh lt mu er sich bei der Quelle registrieren lassen d h Es mu eine spezielle Event Klasse geschrieb
138. n Die gut aufbereiteten und vollst ndigen Indexe f r die Dokumente k nnen dabei nicht additiv in einen Gesamtindex einflie en F r jedes Dokument mu eine Untermenge ausgew hlt werden die den Inhalt f r den Gesamtindex repr sentiert Werkzeuge f r den Wissenspool Das Ergebnis einer gelungenen Wissensbereitstellung mu eine Mischung aus Dokumentation Nachschlagwerk Werbebrosch re und Lernprogramm sein F r diese Aufgabe gibt es kein umfassendes standardisiertes Werkzeug Vorhandene Dokumentationswerkzeuge etwa f r die objektorientierte Analyse f r objektorientiertes Design f r Datenw rterbucher data dictionaries oder Object Browser decken jeweils nur einen speziellen Teil des Geschehens ab Sie k nnen evtl nach Umformen ihrere Ausgaben als Zulieferer f r den Wissenspool genutzt werden 71 Objektorientierte Programmierung wissensbasierter Systeme Herk mmliche grafische Textsysteme bieten sich als Entwurfs und Erfassungswerkzeuge an wenn sie die Bildung eines Strukturbaums f r die Anordnung der Dokumente die Trennung der Schlagworte nach einem Gesmat und Detailindex das Trennen des Inhaltsverzeichnisses als gesondert markiertes Element des Strukturbaums mit automatischer Querverbindung das Trennen der Querverweise aus dem Text erm glichen Vorliegende Hilfesysteme z B die des Office Packets K nnen als Modell f r die Vorgehensweise dienen wenn eine Weiterentwicklung f r die Informations
139. n Microsoft Word Dokument oder application vnd ms exel f r ein Excel Dokument 25 Sonst greift meistens ein Active X Control Microsoft oder ein Plugin Netscape ein 71 Objektorientierte Programmierung wissensbasierter Systeme 4 2 Client Server und Internet Intranet 4 2 1 Grundlagen Grundlage der Client Server Architektur ist eine Verteilung zwischen verschiedenen Systemen und Systemteilen Die Internet Technologie 6 ist eine Hardware und Systemstruktur kombiniert mit einheitlichen Protokollen und Pr sentationsformaten Sie repr sentiert eine geschickte Art der Praktizierung von Client Server Architekturen Lokale Server Datenbanksystem Datenbeschaffung Oberfl che Fachfunktion Oberfl che Fachfunktion Fachfunktion LAN der Zentrale Datenbeschaffung Fachfunktion Servicefunktion Datenbanksystem Fachfunktion Abb Aufgabenverteilung auf verschiedenen Schichten Pr sentation Funktionen Datenbeschaffung Datenbank Services des Client Server Modells Die Abb zeigt die Verteilung der Aufgaben auf verschiedene Ebenen Die Pr sentationsebene bernimmt die Darstellung der Information gegen ber dem Benutzer klassische Frontend Bearbeitung Die Funktionsebene umfa t die fachlichen Funktionen unabh ngig von Darstellung und Speicherung Die Datenbeschaffungsebene umfa t die Speicherung der Daten auf den erforderlichen Medien mit den entsprechenden Systemen Die Service Ebene stellt Werte und Funktion
140. n Pr dikate so beschrieben praedikat Term Ein Term kann eine Konstante eine Variable eine beliebig geschachtelte Struktur oder eine Liste sein Die syntaktischen Elementarformen von Prolog sind Terme Jede Verkn pfung von Termen ergibt wiederum Terme Diese rekursive Definition erm glicht da Prolog den Term als einzige syntaktische Form kennt Zusammengesetzte Terme hei en Strukturen Variable beginnen mit einem Gro buchstaben Ausgenommen davon ist die anonyme Variable Sie ist durch das Symbol _ gekennzeichnet und definiert eine Variable deren Wert nicht von Belang ist Konstanten sind Zahlen oder Zeichenketten die mit Kleinbuchstaben beginnen oder in Anf hrungszeichen eingeschlossen sind Der lexikalische Geltungsbereich von Variablennamen ist eine Klausel Der gleiche Name der in 2 Klauseln auftritt bezeichnet 2 verschiedene Variable Jedes Auftreten einer Variable in derselben Klausel bezeichnet die gleiche Variable Konstante dagegen verhalten sich anders Die gleiche Konstante bezeichnet immer das gleiche Objekt in jeder beliebigen Klausel d h im ganzen Programm Bsp 7 A fachhochschule sind Konstanten Was Wie Kopf Rest sind Variable 22 Objektorientierte Programmierung wissensbasierter Systeme 1 2 4 Constraints Constraints eignen sich besonders zur Darstellung von Randbedingungen die die L sung des Problems auf jeden Fall erf llen mu Ein Beispiel daf r ist der Wunsch eines Lehrers bei der
141. n der Autoren eine Reihe von Aufgaben und Ziele verfolgen Bereitstellung einer universellen Beschreibungssprache f r alle Arten objektorientierter Softwaresysteme Vereinigung der bekanntesten Beschreibungsnotationen Setzen des Schwerpunkts auf die Produkte des Software Engineerings und nicht auf den Proze Hintergrund Zur Einordnung der UML ist eine Betrachtung des Entstehungshintergrunds und der beteiligten Personen interessant die OMT stellte zu Anfang einen Gro teil der grundlegenden Notationen die UML wird der OMG als Antwort auf einen Aufruf zur Erstellung einer standardisierten objektorientierten Entwurfsmethode vorgelegt Einfl sse von Ada und C sind unverkennbar Richtlinien bei der Entwicklung der UML Bei der Entwicklung der haupts chlich graphischen Notation sollten u a folgende Prinzipien erf llt werden 15 Object Oriented Software Engineering OOSE 36 Objektorientierte Programmierung wissensbasierter Systeme Einfachheit Verwendung weniger Konzepte und Symbole Priorisierung Einfache Modellierung h ufiger Probleme mehr Aufwand bei ungew hnlichen Situationen Konsistenz Verwendung gleicher Konzepte in allen Bereichen der Notation Orthogonalit t Verwendung unterschiedlicher Notation f r unterschiedliche Konzepte Schichtenarchitektur Erweiterbarkeit der Notation um fortgeschrittene Konzepte Stabilit t Adaption bekannter Konzepte und Notationen Druck und Zeichenbarkeit E
142. n vom Pendel double theta double 0 double wechsel double 0 01 int xStart 150 yStart 20 Radius des Pendels double r double 200 Durchmesser des Balls int d 20 Thread faden int xAlt yAlt Methoden public void init setBackground Color white public void start if faden null faden new Thread this faden start public void stop if faden null faden stop faden null public void run while true x xStart int r Math sin theta y yStart int r Math cos theta if theta gt thetaMax theta lt thetaMin wechsel wechsel theta wechsel repaint try Thread sleep 10 catch InterruptedException e public void update Graphics g 130 Objektorientierte Programmierung wissensbasierter Systeme g setColor Color Yellow g drawLine xStart yStart xAlt yAlt g illOval xAlt d 2 yAlt d 2 d d g setColor Color blue g drawLine xStart yStart x y g setColor Color red qg fillOval x d 2 y d 2 d d paint g public void paint Graphics g xAlt x yAlt y 2 Double Buffering Mit double buffering wird eine zweite Oberfl che geschaffen in der alles vorgezeichnet und dann auf einmal in die Zeichnungsoberfl che des Applet ausgegeben wird import java awt public class Pendel extends java applet App
143. n werden Objekte angeordnet I I Darstellung der Rekursion Manchmal hat ein Objekt eine Operation die sich selbst aufruft Diese wird als Rekursion bezeichnet 52 Objektorientierte Programmierung wissensbasierter Systeme Bsp Ein Objekt ist meinTaschenrechner und eine seine Operationen rechnet Zinsen aus Zur berechnung der Zinseszinsen mu die Zinsberechnungsopeartion das Objekt mehrmals selbst aufrufen meinTaschenrechner zinsen Die in den Anwendungsf llen beschriebenen Objektinteraktionen k nnen in Sequenzdiagrammen verfeinert werden F r jeden Anwendungsfall k nnen ein oder mehrere Sequenzdiagramm e konstruiert werden Ein Sequenzdiagramm kann entweder eine Instanz ein einzelnes Szenario eines Anwendungsfalls zeigen oder es kann generisch sein und alle Szenarios eines Anwendungsfalls verk rpern Generische Sequenzdiagramme bieten oft Gelegenheit if Anweisungen oder while Schleifen darzustellen 33 Objektorientierte Programmierung wissensbasierter Systeme 1 Bsp Sequenzdiagramm f r einen einfachen Anwendungsfall der folgendes Verhalten zeigt das Auftragserfassungsfenster sendet eine Nachricht bereiteVor an einen Auftrag Der Auftrag sendet dann bereiteVor an jede Auftragsposition des Auftrags Jede Auftragsposition pr ft den angegebenen Lagerartikel Wenn die Pr fung wahr liefert l scht die Auftragsposition die entsprechende Menge von Lagerartikel aus dem Lage
144. nd der Modellierung als Begriffe eingesetzt werden Stereotypen werden gew hnlich als Text zwischen franz sischen Anf hrungszeichen dargestellt sie k nnen aber auch durch die Definition eines Sinnbilds f r den Stereotypen definiert werden Zur Vereinfachung definiert die UML einen Satz von Kern Stereotypes die dieg ngigen F lle abdecken 2 2 2 Anwendungsfall und Anwendungsfalldiagramme Anwendungsfall Ein Anwendungsfall use case ist eine typische Interaktion ein typischer Arbeitsablauf zwischen einem Benutzer und einem Computersystem Zusammenh nge zwischen Anwendungsf llen k nnen in einem Anwendungsfalldiagramm dargestellt werden Ein Anwendungsfall wird grafisch durch eine Ellipse dargestellt die den Namen des Anwendungsfalls tr gt Zu jeder Ellipse existiert ein Text z B stichwortartige Beschreibungen der den Anwendungsfall genauer beschreibt Akteure 16 Vgl G nther Wahl UML kompakt OBJEKTspektrum 2 1998 38 Objektorientierte Programmierung wissensbasierter Systeme Am Anwednugsfall beteiligte Akteure Rollen Vorbedingungen Zustand des Systems bevor der Anwendungsfall eintrat Nachbedingungen Zustand des Systems nachdem der Anwendungsfall erfolgreich durchlaufen wurde Invarianten Bedingungen die im Rahmen des Anwendungsfalles stets erf llt sein m ssen Nicht funktionale Anforderungen Zusicherungen die f r Design und Realisierung wichtig sind Ablaufbeschreibung Beschreibung des Anwendungsfa
145. ne weitere Fehlerbeschreibung die den XOPEN SQL Status beschrieben in der SQL Spezifikation angibt eine Ganzzahl die vom Datenbanktreiber kommt String reason String SOLState getNextException _____ SOLExepion O SQLWarnings Warnungen k nnen ermittelt werden ber die Funktionen getWarnings der Klassen Connection ResultSet und Statement Werden die Meldungen nicht geholt dann werden sie durch die nachfolgenden Operationen mit Connection ResultSet oder Statement berschrieben Warnings werden an das Objekt das die Warning verurscht angeh ngt Die berpr fung auf Warnungen erfolgt mit der Methode getWarning die f r alle Objekte verf gbar ist OOS QEWarming SQLWarning 0 getNextWarning SQLWarning SQLWarning w void 93 Objektorientierte Programmierung wissensbasierter Systeme Data Truncation Das ist ein spezieller Typ einer SQL Warnung Sie wird immer dann erzeugt wenn Daten w hrend Schreib Lese Operationen verlorengingen Mit instanceof DataTruncation kann dann gepr ft werden ob es sich um eine DataTruncation handelt 94 Objektorientierte Programmierung wissensbasierter Systeme 4 3 8 JDBC Programmierung 4 3 8 1 Anwendungen Applets mit JDBC This sample applet just selects Hello World and the date from the database E7 Import the JDBC classes import java sql Import the java classes used in applets import java awt import java io
146. necting using the connect properties resource n m_ctx Oracle getConnection getClass connect properties else output append Connecting using the PARAMeters in the HTML file n output append User user to url n DriverManager registerDriver new OracleDriver m_ctx Oracle getConnection url user password output append Connected n catch SQLException exn output append A SQL exception occurred t texn getMessage n else output append Re using connection n Perform the work public void actionPerformed ActionEvent ev String command ev getActionCommand try if command equals query int numRecords 0 Emplter ecur Clear the output area output setText 98 Objektorientierte Programmierung wissensbasierter Systeme String x query_name_field getText if x null x equals x equals Execute the query output append Executing SELECT FROM EMP n sql m_ctx ecur SELECT FROM EMP while ecur next output append ecur empno ecur ename ecur job s ecur sal n numRecordst else output append Executing SELECT FROM EMP WHERE ENAME NH query_name_field getText
147. nftsysteme m ssen die Wege daf r ffnen Die Vernetzung des Wissens und der Funktionen in der dezentralen Welt verlangt ein neues Denken in der Wissensbereitstellung Die neuen Methoden und Techniken der grafischen Oberfl chen und des Internet spielen den Vorreiter die Dokumentation als Spiegel des Wissens ist dabei ein wesentlicher Bestandteil Ziel ist die Bereitstellung von vernetztem Wissen in einem Wissenspool In Ans tzen ist dies heute im Internet durch die letzten Entwicklungen HTML Java XML sichtbar Die Implementierung erfolgt vorzugsweise als Rechnernetz das Online Abfrage und Pflege erlaubt z B im World Wide Web denn bei der gegenw rtigen Vernetzung des Wissens ist eine papiergest tzte Dokumentation nicht mehr beherrschbar Das gilt sowohl f r die Pflege als auch die gezielte Suche in einer immer wachsenden Informationsflut Aktuell erforderlich ist der Aufbau einer Online Wissensvermittlung die mehr sein mu als ein Handbuch auf dem Bildschirm Es bietet sich der Aufbau eines internen Kommunikatrions und Dokumentationsnetztes Intranet an das auf kompatiblem Internet Standards HTML Java XML basiert Funktionen Objekte OO Methoden Werkzeuge x usammenh nge Schnittstellen Metastrukturen Strategien Strukturen Abb Zusammenstellung von vernetztem Wissen in einem Wissenspool Bedienung Nutzung Sprachen 70 Objektorientierte Programmierung wissensbasierter Systeme Voraussetzung O
148. ng columnName String columnName String columnName String columnName Java sql Numeric String ColumnName String columnName String columnName String columnName String ColumnName ResultSetMetaData Methoden des Interface java sql ResultSet Alle Methoden k nnen eine SQLException in dem Fall ausl en das etwas mit der DB nicht stimmt Meistens geben SQL Anweisungen mit Daten gef llte Tabellen zur ck Bei JDBC kann das Programm nur eine Datenzeile zum aktuellen Bearbeitungszeitpunkt sehen Das Programm verwendet zum Erreichen der n chsten Zeile die next Methode JDBC besitzt keine Methoden um im ResultSet zur ckzugehen oder eine bestimmte Position aufzusuchen Falls ein Programm Zugriff auf eine Zeile besitzt kann es ber den Positionsindex 1 f r die erste Spalte 2 f r die zweite Splate usw oder den Spaltennamen auf Feldwerte der Tabellenspalten zu gelangen Die wichtigsten Methoden sind executeQuery executeUpdate und execute Falls ein Statement Objekt mit einem SQL Statement erzeugt wird dann nimmt xecuteQuery einen SQL String an Sie gibt die SQL Zeichenkette ber den Treibermanager an die zugrundeliegende Datenquelle weiter und bekommt das ResultSet f r das Anwendungsprogramm executeQuery gibt nur ein ResultSet zur ck In den F llen in denen mehr als ein Result Set erhalten wird sollte execute verwendet werden Bsp Check zur berpr fung einer JDBC Installation Das JDBC Progra
149. nheiten 37 Objektorientierte Programmierung wissensbasierter Systeme Zustandsdiagramm Darstellung des dynamischen Verhaltens Anforderung Festlegung Erstellung bergabe Aktivit tsdiagramm Bei parallelen Prozessen und anderer Festlegung Parallelit t Gesch ftsprozesse Erstellung Implementierungsdiagramm Besonders f r die Darstellung von verteilten Anforderung Anwendungen und Komponenten allgemein Festlegung Darstellung von Implementierungs einheiten Erstellung bersetzungseinheiten ausf hrbare bergabe Programme Hardwarestruktur Komponentendiagramm Zusammenh nge der Software GE Deployment Diagramm Hardwareaufbau Im E Abb Einsatzgebiete und Eigenschaften der verschiedenen UML Diagramme Jedes der Diagramme besitzt zahlreiche Stilelemente mit verschiedenen Beschriftungsarten bergeordnete Konzepte Als globale Konzepte sind in der UML verf gbar Packages Packages erlauben es als allgemeines Notationselement alle Arten von Diagrammen und Modellen zusammenzufassen Zwischen Packages k nnen Abh ngigkeiten bestehen so da bspw eine Package auf eine andere zugreift Au erdem lassen sich Packages schachteln Der Name einer Package kann zur Unterscheidung der Herkunft einer Klasse oder eines anderen Elements dienen Stereotypes Sie bieten einen Mechanismus zur Kategorisierung jeglicher Elemente in der UML Beispiele sind z B Interface Handler Exception u a welche oft w hre
150. nzeige von Datum und Uhrzeit jede Sekunde wird aktualisiert Nach den bisher vorliegenden Erkenntnissen m te das zugeh rige Applet folgende Gestalt haben import java awt Graphics import java awt Font import java util Date Top Level Deklaration des Applets public class DigitalUhr extends java applet Applet Variablen Deklaration Font einFont new Font TimesRoman Font BOLD 24 124 Objektorientierte Programmierung wissensbasierter Systeme Date datun Eigene Methoden Methoden die ueberschrieben werden public void start Ausfuehrung des Applet while true datum new Date repaint Aufruf der repaint Methode try Thread sleep 1000 Pause von 1000 Millisekunden catch InterruptedException e Optional aber sehr wahrscheinlich die Ausgabemethode public void paint Graphics g g setFont einFont Setzen des aktuellen Font g drawString datum toString 10 50 Ausgabe Datum Da paint wiederholt mit jeweils dem aktuellen Wert von datum aufgerufen wird wird die Zeichenkette jede Sekund zur Ausgabe des neuen Datums aufgerufen In der start Methode nimmt die while Schleife alle Systemressourcen f r sich in Anspruch einschl der Anzeige am Bildschirm Deshalb funktioniert die digitale Uhr nicht Au erdem kann das Applet nicht gestoppt werden da die stop Methode nicht aufgerufen werden kann Die
151. ommenApplet Die Beziehung zwischen ImageObserver und Component ist eine Schnittstelle ImageObserver wird von Component implementiert willkommenApplet arbeitet mit den Klassen Applet und Graphics unmittelbar zusammen Diese beiden Klassen bilden lediglich einen kleinen Ausschnitt aus der Bibliothek mit vordefinierten Java Klassen Die Verwaltung dieser Klassen und Schnittstellen organisiert Java in mehreren verschiedenen Paketen Das Wurzelpaket in der Java Umgebung hei t java In dieses Paket sind mehrere weitere Pakete geschachtelt die wiederum andere Pakete Schnittstellen und Klassen enthalten Object existiert im Paket Lang Panel Container Component existieren im Paket awt und die Klasse Applet im Paket applet Die Schnittstelle ImageObserver existiert im Paket image das liegt wiederum im Paket awt qualifizierter Name java awt ImageObserver Die Paketstruktur44 kann in einem Klassendiagramm visualisiert werden 42 public void drawOval int x int y int width int height x y gibt die Koordinaten der oberen linken Ecke des die Ellipse umschreibenden Rechtecks mit der H he height und der Breite width am 43 public void drawRect int x int y int width int height bestimmt die obere linke Ecke des Rechtecks width height legen Breite und H he des Rechtecks fest 44 Pakete werden in der UML als Akten mit Reitern dargestellt Die gestrichelten Pfeile repr sentieren die Abh ngigkeiten zwischen den Paketen 103
152. plet import java awt public class RechteckeAppl3 extends Applet ng Instanzvariable nt appletHoehe nt appletBreite nt rechteckHoehe nt rechteckBreite nt rechteckTop nt rechteckLinks olor rechteckFarbe int anzRechtecke 100 Methoden public void init setBackground Color lightGray Q H H H H H HN Dimension groesse getSize appletHoeh groesse height appletBreite groesse width repaint public void paint Graphics g setBackground Color white g setColor Color black g drawRect 0 0 appletBreite 1 appletHoehe 1 for int i 0 i lt anzRechtecke itt rechteckTop bestimmeZufallszahl appletHoehe 45 Diese Anweisung stellt alle Klassen des Pakets java awt zur Verfiigung 106 Objektorientierte Programmierung wissensbasierter Systeme rechteckLinks bestimmeZufallszahl appletBreite rechteckHoeh bestimmeZufallszahl appletHoeh rechteckTop rechteckBreite bestimmeZufallszahl appletBreit rechteckLinks rechteckFarbe new Color bestimmeZufallszahl 255 bestimmeZufallszahl 255 bestimmeZufallszahl 255 g setColor rechteckFarbe g fillRect rechteckLinks rechteckTop rechteckBreite l rechteckHoeh Tes private int bestimmeZufallszahl int bereich double ausgangsgroesse ausgangsgroesse Math random return int ausgangsgroesse bereich 4 Aufgabe Entwickl
153. pplet vor der Ausf hrung public void start zur Reaktion auf Mauseingaben zum Anhalten des Applet public void stop und zu Aufr umungsarbeiten public void destroy wenn das Applet beendet wird Eine dieser Methoden ist paint die sich um die Anzeige des Applet in einer Webseite k mmert Die paint Methode besitzt ein einziges Argument eine Instanz der Klasse Graphics Die Klasse Graphics stellt Verhaltensweisen zur Darstellung von Schriften Farben zum Zeichnen von Linier 1 von Ellipsen 4l bublic void drawLine int xl int yl int x2 int y2 x1 y1 bestimmt den Anfangspunkt x2 y2 bestimmt den Endpunkt der Linie 102 Objektorientierte Programmierung wissensbasierter Systeme bzw Kreisen 2 von Rechtecken 3 und anderen Formen zur Verf gung In der paint Methode wurde hier der String Herzlich Willkommen in der Java Welt bei den x y Koordinaten 5 25 ausgegeben Der Ursprung des Koordinatensystems liegt in der linken oberen Ecke des Darstellungsbereichs Der String wird in einer defaultm ig festgelegten Schrift und Farbe angezeigt Die Untersuchung der Java Bibliotheken zu Applet und Graphics zeigt Die beiden Klassen sind Teil einer gr eren Hierarchie Verfolgt man die von Applet erweiterten und implementierten Klassen dann kann man das folgende Klassendiagramm erhalten ImageObserver Container Panel Pt in Applet A WillkommenApplet Abb Vererbungshierarchie von Willk
154. pr ft amp amp Transitionsschleife alle Positionen verf gbar em Er in Pr fung freigegeben Position Auslieferung SR a Dr Aktivit t Alle Positionen gepr ft amp amp Position erhalten Transition ausge Ba einige Positionen nicht auf jorfen erhalten j liefert K Lager Positionen erhalten einige Positionen nicht auf Lager Abb Zustandsdiagramm 59 Objektorientierte Programmierung wissensbasierter Systeme 2 2 6 Aktivit tsdiagramme Elemente der Aktivit tsdiagramme Ein Aktivit tsdiagramm ist ein erweitertes Zustandsdiagramm Ein Zustandsdiagramm zeigt die Zust nde eines Objekts und stellt die Aktivit ten als Pfeile dar die diese Zust nde verbinden Das Aktivit tendiagramm hebt besonders die Aktivit ten hervor Aktivit t 1 Aktivit t 2 Das zentrale Symbol ist die Aktivit t activity Die Interpretation dieses Begriffs ist abh ngig von der Perspektive aus der man ein Diagramm zeichnet In einem konzeptionellem Diagramm ist eine Aktivit t eine von Mensch oder Maschine durchzuf hrender Aufgabe In Diagrammen aus Spezifikations oder Implementierungsperspektive ist eine Aktivit t eine Methode einer Klasse Eine Aktivit t ist ein einzelner Schritt in einem Verarbeitungsablauf Jede Aktivit t wird als Rechteck mit abgerundeten Ecken dargestellt Angesto en wird sie durch eine eingehende Transition ihr folgt mindestens eine ausgehende Transition Die ausgehende Transition implementiert den Absch
155. r Sonst ist die Menge der Lagerartikel unter die Bestellgrenze gefallen und der Lagerartikel fordert eine neue Lieferung an lt lt new gt gt gt Nachbestellartikel vorhanden lt lt new gt gt h Let Erzeugung i N Auftrags erfassungsfenster Auftrag Auftragsposition Lagerartikel Objekt Iteration bereite Vor I gt fiir Mlle Auftragspositionen i i A i i i bereiteVor Nachricht mooo i vorhanden priife Bedingung vorhanden 4 entnehmen i nachzubestellen nachbestellungNotwendig Selbsdelegation a nachzubestellen Abb Sequenzdiagramm mit Auftr gen 54 Objektorientierte Programmierung wissensbasierter Systeme 2 Bsp Ablauf des Use Cases Neue Vorlesung anbieten Bibliothek Terminkalender gabe Vorlesungsverzeichnis I 1 entleihen Buch Abb Sequenzdiagramm Neue Vorlesung anbieten 3 Bsp Lebenszyklus eines Applet A paint Browser schliesst destroy N 4 Browser Abb Lebenszyklus eines Applets 55 Objektorientierte Programmierung wissensbasierter Systeme 2 Kollaborationsdiagramme Ein Kollaborationsdiagramm ist ein Interaktionsdiagramm bei denen die strukturelle Organisation der Objekte im Vordergrund steht die Nachrichten senden bzw empfangen Sequenz und Kollaborationsdiagramme sind isomorph so dass man das eine in das andere umwandeln kann Sequenzdiagramme haben zwei Mer
156. r Anfrager den Typ der verschickten Datei und kann sie passend anzeigen Der Hinweis auf den Datentyp kommt vom Server mit einer Mitteilung die sich MIME nennt Der Server kann den Datentyp feststellen in dem er in die Datei schaut die ersten Bytes untersucht und daraus ein Prognose erstellt Er kann aber auch einfach ber die Dateiendung gehen Die L sung mit Dateiendungen wird oft bei Implementierungen von Webservern angewendet Der Client mu anhand des MIME Typs das 24 MIME Multipurpose Internet Mail Extension wurde urspr nglich f r E Mail zum Versenden bin rer Daten entwickelt 76 Objektorientierte Programmierung wissensbasierter Systeme passende Anzeigeprogramm finden In der Regel kann der Browser die Datei direkt anzeigen wenn es etwa eine HTML Textseite oder Grafik ist 5 Jeder MIME Typ besteht aus 2 H lften einer Kategorie und einem Datentyp Wichtige Kategorien sind text audio image video application Bsp text html Das ist der Standardtyp f r Webseiten text plain Textdatei die nicht vom Browser interpretiert wird image Die Dateitypen f r Grafikformate z B image gif image jpeg f r GIF und JPEG audio Sound Dateien z B audio basic oder audio x wav video Darstellbare Bewegbilder wie video mgep oder video quicktime application Dazu z hlen in der Regel Bin rdateien die von anderen Programmen gelesen oder ausgef hrt werden etwa application pdf f r eine PDF Datei application msword f r ei
157. r Pr sentation ist VX person X A X eva A X adam gt AY person Y A mutter _von X Y Jede Person ausgenommen Adam und Eva hat mindestens eine Mutter Eine Formel der Pr dikatenlogik erster Stufe setzt sich aus folgenden elementaren Zeichensymbolen zusammen Konstantensymbole z B adam eva 10 Variablensymbole mit Gro buchstaben beginnende Zeichenfolgen Funktionssymbole zur Darstellung n rer Funktionen hier durch mit Kleinbuchstaben beginnende Zeichenfolgen dargestellt z B mutter_von Pr dikatensymbole zur Darstellung n rer Pr dikate z B person Junktoren A V gt Quantoren Klammern oder Kommas als Hilfssymbole Zeichen f r Gleichheit Die Pr dikatenlogik erster Stufe ist zwar eine sehr ausdrucksvolle Logik eignet sich aber leider nicht zur Implementierung So nehmen bspw Formelmanipulationen sehr viel Rechenzeit in Anspruch Aus diesen Grunde werden meistens sehr stark reduzierte Teilsysteme in der Praxis verwendet 1 2 3 1 Einfache Fakten Regel Systeme Fakten haben die Form y c c mit einem Pr dikatensymbol y und Konstantensymbolen c Z B mensch juergen vater hans maria gerade 2 teiler 2 4 Regeln sind Implikationen folgender Form Owl AV AV gt Wo fp yes W Pr dikatensymbole t f Variablen Konstantensymbole 3 Funktionen mit n Konstanten oder Variablensymbolen 16 Objektorientierte Programmierung wissensbasierter System
158. r_von X Y Der Beweis konnte nur durch die Zuordnung Y juergen bzw X christian gelingen Man spricht von Instanziierung der Variablen Prolog gibt an durch welche Bin dung der Variablen der Beweis gelungen ist X christian Y juergen Prolog durchsucht Fakten und Regeln immer von links nach rechts Da links das Ergebnis und rechts die Konjunktion von Ursachen steht liegt eine r ckw rtsver kettende Kontrollstruktur vor Aufgabe Zu welchem Ergebnis f hrt die Anfrage 2 p X an das folgende Prolog Programm p X q X 1 Regel q X p X 2 Regel g a Fakt Die Anfrage f hrt zu keinem Ergebnis sondern zu einer Endlosschleife Begr ndung Um p X zu beweisen ist q X zu beweisen 1 Regel q X k nnte mit X a bewiesen werden zuerst wird hier immer die Regel q X p X aufgerufen dh Um q X zu 21 Objektorientierte Programmierung wissensbasierter Systeme beweisen ist wieder p X zu beweisen Das Programm erreicht also wegen dieser Anordnung und dem vorgegebenen in Prolog fest implementierten Ablauf von oben nach unten von links nach rechts nie den Kandi daten q a und ger t in eine Endlosschleife Nach welcher nderung im vorstehenden Programm kann ein korrekter Ablauf er zwungen werden p X q X ala Q X p X Fakten Regeln Anfragen bestehen aus Pr dikaten das sind logische Funktionen die immer nur die Werte wahr und falsch annehmen k nnen In Prolog werde
159. rekt oder ber den Umweg eines Speichers erfolgen Sender Kanal Empfanger Schema Sender und Empf nger stehen zeitgleich miteinander in Verbindung Bei dem Kanal kann es sich um ein direktes Gespr ch ein Telefonat ein Chat eine Wissenskonferenz oder hnliches handeln Sender Speicher Empf nger Schema Abb Sender Speicher Empf nger Schema Der Sender produziert seine Dokumente f r einen Speicher Aus diesem Speicher k nnen ein oder mehrere Empf nger je nach Bedarf Dokumente abrufen Dokumente stellen die kleinsten Einheiten des Wissensspeichers dar Die Speicher m ssen die einzelnen Dokumente in einer Form aufbewahren die eine Speicherung ber einen gr eren Zeitraum gestattet und M glichkeiten zur Verf gung stellen gezielt nach bestimmten Dokumenten zu suchen Bsp f r solche Speicher sind Bibliotheken das Internet die Massenmedien der Buchhandel usw Die Kommunikation des Senders bzw des Empf ngers mit dem Speicher erfolgt ber Netze Bei den Netzen handelt es sich um ein elektronisches Netz wie das Vertriebsnetz eines Verlags oder die Fernleihe der Universit tsbibliothek oder allg das Internet Verfahren zur Beschreibung von Wissen 1 Logische Verfahren Die Wissensbasis wird durch Ausdr cke der formalen Logik pr sentiert In der logischen Programmierung wird Wissen in der Form logischer Ausdr cke z B Fakten Regeln beschrieben Die Ausdr cke werden als Axiome in die Wissensbasis aufgenomm
160. rgebnis der Suche erhalten hat Schritt f r Schritt abgearbeitet Semantische Netze geben durch ihre grafische Repr sentation bei der Suche nach der L sung wertvolle Hilfestellellungen Bsp Das folgende semantische Netz kann man als Graphen bezeichnen mit Startknoten S und dem ZielKnoten Z der eine Stra enkarte beschreibt Die Knoten stellen St dte dar die Verbindungen Stra en und die an den Verbindungsstrecken angegebenen Zahlen Link Labels Kosten die eine Ben tzung dieser Verbindung verursacht 13 Objektorientierte Programmierung wissensbasierter Systeme Q 2 OO Abb Stra enkarte als semantisches Netz dargestellt Die St dte entsprechen den Knoten die Verbindungen den Stra en und die Link Labels den Kosten Die einfachste Methode einen Weg vom Start zum Ziel zu finden ist das Betrachten aller m glichen Wege Wege die in Schleifen f hren werden nicht beachtet F r den angegebenen Graphen lassen sich alle m glichen Pfade als Baum darstellen R D Abb Der Suchbaum f r das Stra enkartenproblem Jeder Knoten beschreibt einen Pfad der vom Start Knoten ausgeht Methoden zum Bestimmen der m glichen L sungswege Suchverfahren sind Blinde Suche Tiefensuche depth first search Breitensuche breadth first search nicht deterministische Suche 14 Objektorientierte Programmierung wissensbasierter Systeme Heuristisch informierte Suche Hill Climbing Best First Search Optimale Netzsuche Briti
161. richtet in manchen F llen kann es auch zweiseitig gerichtet sein Als Bestandteil eines Link kann ein Objekt eine der folgenden Rollen bernehmen Aktor Ein Objekt das Operationen auf anderen Objekten ausf hren kann auf dem aber andere Objekte keine Operationen durchf hren k nnen Server Ein Objekt das niemals Operationen auf anderen Objekten durchf hrt Es wird immer von anderen Objekten verwendet Im infornationstechnischen Sprachgebrauch hei en Dinge Objekte Rechner die eine Dienstleistung erbringen Server Die Dienstleistung wird erbrachr f r einen Client Klient Kunde der selbst Rechner oder Objekt sein kann Agent Ein Objekt das auf anderen Objekten Operationen ausf hren kann und mit dem andere Objekte Operationen ausf hren k nnen Ein Agent wird normalerweise erzeugt um Aufgaben f r einen Aktor oder einen anderen Agenten zu bernehmen Damit Objekt A Client an Objekt B die durch einen Link verbunden sind eine Nachricht senden kann mu B auf irgendeine Art und Weise f r A sichtbar sein Es gibt vier M glichkeiten wie ein Objekt f r ein anderes Sichtbar gemacht werden kann Das Supplier Objekt ist global f r den Client Das Supplier Objekt ist ein Parameter einer Operation eines Client Das Supplier Objekt ist Teil des Client Objekts Das Supplier Objekt ist ein lokal deklariertes Objekt in einer Operation des Client Falls ein Objekt ber einen Link eine Nachricht
162. s Netz das Farben von Automobilen beschreibt Autos sind in der Regel nicht gleichzeitig wei und schwarz Auto ist hier demnach kein Konzept sondern die Instanz eines Konzepts Eine Instanz verk rpert ein konkretes Individuum einer Klasse Das vorstehende Netz mu also so richtig beschrieben werden 10 Objektorientierte Programmierung wissensbasierter Systeme instanz_von z B hat an ist wei schwarz Abb 1 2 3 Ein semantisches Netz das die Farben verschiedener Automobile unterscheiden kann instanz_von z B hat ist Konzepte sollten allgemeine Eigenschaften von allen oder den meisten Instanzen eines Konzepts beschreiben Instanzknoten sollten nur Eigenschaften individueller Objekte beschreiben Eine der Hauptvorteile diese Repr sentationsschemas liegt in seiner Flexibilit t Neue Knoten und Glieder k nnen nach Bedarf definiert werden Vererbung Vererbung inheritance ist ein weiteres Merkmal semantischer Netze Die Vererbung von Eigenschaften ist eine Folge der ist_ein Relation und bedeutet Alle Einzelf lle einer Klasse erben s mtliche Eigenschaften der bergeordneten Klasse denen sie angeh ren Bsp In auto ist_ein fahrzeug und fahrzeug hat raeder erbt der Knoten auto die Eigenschaft hat raeder von fahrzeug Der Vererbungsmechanismus bewirkt sparsames Umgehen mit Speicherplatz Es m ssen nicht alle Fakten explizit gespeichert werden sondern nur diejenigen die mit dem all
163. sh Museum Procedure Branch and Bound Search mit Absch tzung der Restkosten Branch and Bound Search mit Eliminierung l ngerer Doppelwege A Algorithmus Spielb ume Spielb ume und die zugeh rigen Algorithmen erm glichen es auf Rechnern eine bestimmte Art von Strategie Spielen zu spielen Bei den Spielen handelt es sich um Zweipersonenspiele bei denen beide Spieler vollst ndig wissen welche Z ge gemacht wurden und welche noch m glich sind Bsp daf r sind Dame und Schach Kartenspiele oder Backgammon bei denen der Zufall eine Rolle spielt geh ren nicht dazu Die folgende Abbildung zeigt einen Spielbaum bei dem die Spieler bei jedem Zug zwischen zwei m glichen Z gen w hlen k nnen Die Nodes in einem Spielbaum repr sentieren die Brettsituationen die Links stehen f r die erlaubten Z ge die zu neuen Brettsituationen f hren Aktuelle Brettsituation Modifizierte Brettsituation Modifizierte Brettsituation Abb Spielbaum Nodes repr sentieren Brettsituationen Links g ltige Z ge F r ein komplexes System ist es jedoch nicht m glich den vollst ndigen Spielbaum aufzubauen F r Schach werden dazu 10 Z ge n tig Ein Situations Analyzer bewertet ob eine Brettsituation gut oder schlecht ist Die Bewertung ist in dem R ckgabewert enthalten der abh ngig von der Brettsituation durch einen Zahlenwert ausdr ckt wie gut eine bestimmte Situation ist Hohe Zahlenwerte Absolutbetrag stehen dabei f r eine g nsti
164. sql Numeric java sql Types java sql DataTruncation Dem Programmierer gibt JDBC Funktionen f r den Aufbau von Verbindungen zum Lesen oder Aufbau von Datens tzen zur Datenbank Zus tzlich k nnen Tabellen aktualisiert und Prozeduren auf der Server Seite ausgef hrt werden Die folgenden Schritte sind f r den Zugriff auf eine relationale Datenbank mit JDBC n tig 1 Installieren der JOBC Datenbank Treiber 2 Ein e Verbindung zur Datenbank ber den entsprechenden JDBC Treiber 3 Eine SQL Anweisung erzeugen 4 Ausf hren der SQL Anweisung 5 Das Ergbenis der Anweisung holen 6 Schlie en der Datenbankverbindung 31 F r objektorientierte DB liegt noch kein fertiges Konzept vor Mit JDBC 2 Treibern ist jedoch der bergang zum SQL3 Standard geschaffen in dem objektorientierte Konzepte eine gr ere Rolle spielen 84 Objektorientierte Programmierung wissensbasierter Systeme Das bearbeiten von Daten einer Datenbank durch ein Java Programm umfasst im Rahmen der JDBC Schnittstelle H getConnection i Initialisieren und Allokieren eretesutemen H prepareCall g fprepareStatement Le executeUpdate I Bearbeiten on Anwet sungen a executeQuery Callable Statement Prepared Statement se a getMoreResults z Verarbeitung Resultat E getResultSet g getstringd g getFloat m Deallokieren Bereinigen Abb JDBC Objekte Methoden Abl
165. sse ein WindowAdapter eine Art WindowListener mit der Methode public void windowClosing WindowEvent e definiert und an den Frame eingekettet Wird der Frame geschlossen dann wird diese Methode aufgerufen die ber System exit 0 die Applikation beendet Eine Adapterklasse implementiert ein Interface mit mehreren Mehoden und erlaubt es somit abgeleiteten Klassen nur noch die Methoden zu berlagern die tats chlich von Interesse sind Passende Adapterklasssen stellt das Paket java awt event bereit z B FocusAdapter KeyAdapter MouseAdapter MouseMotionAdapter ComponentAdapter ContainerAdapter Window Adapter Die Registrierung erfolgt mit der Methode addWindowListener die in den Klassen Dialog und Frame zur Verf gung steht 119 Objektorientierte Programmierung wissensbasierter Systeme Bsp Textfeldbearbeitung mit ActionListener Interface und Window Adapter import java lang import java awt import java awt event ass EchoMitBeno extends Object public cl Einlesen und Ausgeben von Zeichenketten ueber Benutzeroberflaech ingabeTextFeld new TextField 20 TextField ausgabeTextFeld new TextField 20 eine grafisch static TextField private private static public static void main String args Frame nster new Frame Echo fenster addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit
166. t einem Java Applet vergleichbar Nur agiert ein Servlet nicht in einem Web Browser sondern auf einem Web Server Es besitzt keine grafische Oberfl che da auf der Server Maschine auf der das Servlet l uft niemand mit ihm agiert Seine Clients sind in der Regel Web Browser Sie k nnen ber einen Link im anzuzeigenden HTML Code HTTP Requests stellen Das Servlet nimmt die Client Anfragen entgegen und beantwortet sie Das Servlet wird entweder beim Start des Web Servers geladen oder bei seinem ersten Client Aufruf geladen und gestartet und bleibt dann im Speicher Dort wartet es auf Anfragen von Clients z B HTTP GET Requests um diese zu bearbeiten F r diese Bearbeitung stehen alle Features von Java zur Verf gung Ergebnisse werden dann den Clients zugesandt Beendet werden Servlets in der Regel nie Gr nde f r das Beenden eines Servlets k nnen bspw ein Shutdown des Web Servers oder das Compilieren einer neuen Version sein Zur Entwicklung und zum Test von Servlets ben tigt man einen Servlet f higen Webserver bzw einen Servlet Container Apache Tomcat Tomcat ist die offizielle Referenzimplementierung Tomcat kann zum Testen der Servlets und Java Server Pages sowohl als stand alone Applikkation eingesetzt oder als Erg nzung zum Apache Server eingebunden werden Download und Installation Der Tomcat Server liegt unter http jakarta apache org tomcat als komprimiertes Archiv zum Laden bereit Nach dem Auspacken liegen
167. t oracle jdbc driver OracleDriver import oracle sqlj runtime Oracle Event handling classes import java awt event ActionEvent import java awt event ActionListener public class AppletMain extends AppletUI implements ActionListener Declare a named iterator with several columns from the EMP table sql public static iterator EmplIter String empno String ename String job String sal String comm Applet initialization private DefaultContext m_ctx null public void init Create the User Interfac super init Activate the buttons Query_button addActionListener this Query_button setActionCommand query Delete_button addActionListener this Delete_button setActionCommand delete Open a connection to the database if m_ctx null Connect to the database String url null String user null String password null 97 Objektorientierte Programmierung wissensbasierter Systeme try url getParameter sqlj url user getParameter sqlj user getParameter sqlj password password catch NullPointerException exn permit to call as an application try if url null url equals user null user equals password null password equals I the connect properties are not passed as parameters from the HTML file we pull them out of the connnect properties resourc output append Con
168. ter Systeme 1 3 2 Dokumente Da fr her Menschen die einzigen Systeme waren die Wissen verarbeitet haben sind bis heute die meisten Dokumente in einer f r den Menschen lesbaren Form gespeichert Durch das Aufkommen der maschinellen Wissensverarbeitung wird es notwendig Anforderungen und F higkeiten des Rechners bei der Wissensspeicherung zu ber cksichtigen 29 Objektorientierte Programmierung wissensbasierter Systeme 2 Objektorientierte Systementwicklung Bei der objektorientierten Systementwicklung werden die Entwicklungsphasen Analyse objektorientierte Analyse OOA Entwurf objektorientiertes Design OOD Realisierung d h Programmierung OOP unterschieden Die objektorientierte Analyse legt die gr te Gewichtung auf die Erzeugung von Modellen der realen Welt In der Software Entwicklung gibt es mehrere Ans tze f r ein Modell Die beiden h ufigsten sind die algorithmische und die objektorientierte Perspektive Alsorithmische Perspektive Bei diesem Ansatz ist der Hauptbestandteil jeder Software die Prozedur oder Funktion Diese Sicht veranla t die Entwickler sich auf Fragen der Steuerung und der Zerlegung gro er Algorithmen in kleine stepwise refinement zu Konzentrieren Objektorientierte Perspektive Bei diesem Ansatz ist der Hauptbestandteil jedes Softwaresystems das Objekt oder die Klasse Ein Objekt ist im Rahmen dieses Ansatzes etwas was im allgemeinen aus dem Vokabular des Problems bzw oder L sungsber
169. ts dieses Anwenderkreises gehen nicht direkt ans Netz sondern beauftragen ihren Proxy ber die schnelle lokale Verbindung eine oder mehrere Informationsseiten zu beschaffen Der Proxy holt sich die Seite speichert sie in einem lokalen Cache Speicher und liefert sie an den lokal anfordernden Client aus 79 Objektorientierte Programmierung wissensbasierter Systeme HTML der Seitenbeschreibungssprache des Web verpackt werden Das geschieht mit Hilfe von Programmen die Daten aus der Datenbank auslesen und aus den so gewonnenen Informationen HTML Dokumente erzeugen Die zugeh rigen Programme laufen auf dem Web Server von dem auch die statischen Dokumente geladen werden 80 Objektorientierte Programmierung wissensbasierter Systeme Oberfl chenobjekte Fachobjekte Fachobjekte Fachobjekte Pe 2 Fachobjekte Abb Aufbau und Kommunikation der Objekte im Internet 4 2 2 Grundkonzepte der Verteilung von Anwendungen Typischerweise werden Applikationen in 3 Aufgabenbereiche unterteilt Datenhaltung Anwendung slogik und Pr sentation Diese 3 Aufgabenbereiche m ssen nicht auf einem Rechner oder von einem Proze wahrgenommen werden sondern k nnen auf mehrere Rechner bzw Prozesse verteilt sein Pr sentation Pr sentation Pr sentation Pr sentation Pr sentation Steuerung Steuerung Steuerung Steuerung Anwendung Anwendung Anwendung Datenverw Steuerung Anwendung Anwendung Anwendung Datenverw D
170. ts vom Applet Neben den Parametern des Applet Tag k nnen auch Parameter an das Applet selbst bergeben werden Jeder Parameter kann durch ein lt PARAM gt Tag ber zwei Attribute f r Name name und Wert value festgelegt werden Das lt PARAM gt Tag steht zwischen einem 6ffnenden und schlie enden lt APPLET gt Tag Die Parameter werden beim Laden an das Applet weitergereicht Innerhalb des Applets k nnen sie mit der Methode public String getParameter String name abgefragt werden import java applet import java awt public class GraphApplet extends Applet int x0 xN yO YN double xmin xmax ymin ymax int appletHoehe appletBreite public void init Wie gro ist das Applet Dimension groesse getSize appletHoeh groesse height appletBreit groesse width x0 0 xN appletBreite 1l y0 0 yN appletHoehe 1 10 0 10 0 1 0 xmin xmax ymin 50 Pfadname in dem sich die Klassen befinden 113 Objektorientierte Programmierung wissensbasierter Systeme ymax 1 0 public void paint Graphics g double xl yl x2 y2 ine in Jla J2 Achsen g drawLine 0 appletHoehe 2 appletBreite appletHoehe 2 g drawLine appletBreite 2 0 appletBreite 2 appletHoehe g drawRect 0 0 appletBreite 1 appletHoehe 1 Kurve jl yWert 0 for i 0 i lt appletBreite i 32 yWert itl g drawLine i j1 itl j2 jl 32
171. uelle Grenzen gesetzt werden und zwar unter Bezugnahme auf die Perspektive des Betrachters Das zentrale Problem beim objektorientierten Design st die Entscheidung f r das richtige Ma an Abstraktion im richtigen 10 eine der fundamentalen Methoden zur Bew ltigung von Komplexit t 30 Objektorientierte Programmierung wissensbasierter Systeme Bereich Die Abstraktion eines Objekts soll den Entscheidungen bzgl einer Implementierung vorausgehen Kapselung Die Kapselung ist der Proze der Aufgliederung der Elemente einer Abstraktion die die Struktur und das Verhalten repr sentieren Die Abstraktion konzentriert sich auf das beobachtbare Verhalten eines Objekts die Kapselung konzentriert sich auf die Implementierung die dieses Verhalten schlie lich realisiert So sind nach der Implementierung lokale Daten des Objekts nach au en nicht sichtbar und k nnen nur durch das Objekt selbst durch Ausf hrung von Funktionen behandelt werden Das entspricht den Prinzipien des Information Hiding und der Modularisierung Modularit t Modularitat ist die Eigenschaft eines Systems das in eine Menge von in sich geschlossenen und lose gekoppelten Moduln zerlegt wird In objektorientierten Programmiersprachen bilden Klasse und Objekt die logische Struktur eines Systems die zur physikalische Realisierung des Systems in Modulen angeordnet sind Hierarchie ist eine Rangfolge oder Anordnung von Abstraktionen Die beiden wichtigsten Hierarc
172. wege eines bergreifenden Wissenspools n tig ist 4 1 2 Internet WWW mit HTML XML Internet Dienste erm glichen die Kommunikation mit anderen Internet Teilnehmern die Nutzung von Informationsressourcen im Internet und das Anbieten von Informationen ber das Internet Der Internet Dienst dem das Internet das exponentielle Wachstum verdankt ist das World Wide Web WWW Die Idee des World Wide Web WWW oder einfach nur Web ist Anfang 1989 am CERN entstanden Ausl ser waren Schwierigkeiten beim Auffinden relevanter Informationen im Internet in Hard und Software Zur L sung des Problems wurde ein auf der Client Server Architektur aufbauendes hypertext basiertes System vorgeschlagen Hypertext wird dabei als Weg verstanden Informationen derart miteinander zu verkn pfen da sich der Benutzer nach eigenem Belieben durch die Informationen bewegen kann Die Verkn pfungen erscheinen dabei als Knoten in einem verwobenen Netz N Me B Joan Abb Struktur des World Wide Web Eine verteilte Hypermedia Anwendung kann als Netz angesehen werden dessen Knoten Text Grafik Ton darstellen Verbindungen Links kennzeichnen die Beziehungen zwischen den Knoten 20 europ isches Zentrum f r Teilchenphysik bei Genf 72 Objektorientierte Programmierung wissensbasierter Systeme und werden von der Systemsoftware verwaltet Die m glichen Verbindungen werden im Dokument Fenster an der entsprechenden Stelle gekennzeichnet Der Benutzer
173. wird bertragen und im Browser dargestellt Der Aufrufer einer URL merkt keinen Unterschied zwischen erstellten also dynamischen und statischen Seiten 5 2 3 Kommunikation ber Sockets und Datagramms Socket streambasierte Schnittstelle zur Kommunikation zweier Rechner in einem TCP IP Netz Das bertragen von Daten ber eine Socket Verbindung hnelt dem Zugriff auf eine Datei Zun chst wird eine Verbindung aufgebaut dann werden Daten gelesen oder geschrieben Schlie lich wird die Verbindung wieder abgebaut Werden Rechner verbunden so implementiert jeder Rechner einen Socket Derjenige der Daten empf ngt Client ffnet eine Socket Verbindung zum Horchen und derjenige der sendet ffnet eine Verbindung zum Senden Server Damit der Empf nger den Sender auch h ren kann mu dieser durch eine eindeutige Adresse als Server ausgemacht werden Er bekommt also eine IP Adresse im Netz und eine ebenso eindeutige Port Adresse Der Port ist so etwas wie eine Zimmernummer Die Adresse bleibt dieselbe aber in jedem Zimmer sitzt einer und macht seine Aufgaben F r jeden Dienst Service den ein Server bereitstellt gibt es einen Port Eine Port Nummer ist eine 16 Bit Zahl und in die Gruppen System und Benutzer eingeteilt 60 Oft wird die Bezeichnung CGI Skript verwendet Die Unterscheidung Skript oder Programm ist in CGI schwammig Eine compilierte Quelldatei wird blicherweise als Programm bezeichnet Programme d
174. xplicit constructor in order to declare the 143 Objektorientierte Programmierung wissensbasierter Systeme RemoteException exception public CalculatorImpl throws java rmi RemoteException super public long add long a long b throws java rmi RemoteException return a b public long sub long a long b throws java rmi RemoteException return a b public long mul long a long b throws java rmi RemoteException return a b public long div long a long b throws java rmi RemoteException return a b 3 Generieren von Stub und Skeleton class files aus den Implementierungsklassen Stubs und Skeletons werden erzeugt mit dem RMI Compiler rmic rmic CalculatorImpl 4 Server CalculatorServer import java rmi Naming public class CalculatorServer public CalculatorServer try Calculator c new CalculatorImpl Naming rebind rmi localhost 1099 CalculatorService c catch Exception e System out println Trouble e public static void main String args new CalculatorServer 5 Client CalculatorClient import java rmi Naming import java rmi RemoteException import java net MalformedURLException 144 Objektorientierte Programmierung wissensbasierter Systeme import java rmi NotBound public class CalculatorClient Exception public static void main Str
175. ze Zeitschriftenumlauf Zu dem vorliegenden Anwendungsfalldiagramm geh ren die Anwendungsf lle Makierte Artikel registrieren Ablauf 1 Zeitschriftenexemplar ausw hlen 2 Titel Autor en Schlagworte und Kurzbezeichnung des zu registrierenden Artikels eingeben 3 Speichern Anmerkungen Zeitschriftenexemplar Gemeint sind hier der Name der Zeitschrift und die Angabe der Heft Nr oder des Erscheinungsdatums Umlaufzettel erstellen 1 Aus der Liste der abonierten Zeitschriften eine ausw hlen 2 Schaltfl che Drucken bet tigen Die Verbindungstypen Benutzt uses und Erweitert extends Man benutzt die lt lt Erweitert gt gt Beziehung extends relationship bei Anwendungsf llen die einem anderen Anwendungsfall hnlich sind aber noch ein wenig mehr bewerkstelligen Gezeigt werden spezielle Fehler und Ausnahmesituationen spezielle Abweichungen oder Erweiterungen des Standardfalls Der Pfeil zeigt von der Variante zum Standardanwendungsfall Die lt lt Benutzt gt gt Beziehung uses Relationship wird verwendet wenn ein Verhaltensanteil in verschiedenen Anwendungsf llen gleich ist Mit der lt lt uses gt gt Beziehung wird das gleiche St ck Anwendungsfallbeschreibung das in verschiedenen Anwendungsf llen vorkommt in eine andere Anwendungsfallbeschreibung eingebunden Ein Pfeil zeigt auf den mitbenutzten Anwendungsfall 40 Objektorientierte Programmierung wissensbasierter Systeme
176. zw einem passenden Regelkopf Die 1 Regel ist an die vorliegende Regel angepa t wenn X durch liesel X liesel Y durch juergen Y juergen ersetzt wird Diesen Vorgang nennt man in Prolog Unifikation Unifikation hei t Pr fen ob Literale zusammenpassen praedikat_1 praedikat_2 Abb Unifikation zweier Pr dikate Etwas vereinfacht besteht Unifikation aus 3 Pr fungen 1 Passen die Pr dikate praedikat_1 praedikat_2 2 Stimmen die Anzahl der Terme berein 3 Passen Terme paarweise Wenn eine Anfrage beantwortet werden soll wird in der Wissensbasis Prolog Programm nach einem Faktum bzw dem Kopf einer Regel gesucht das bzw der mit der Anfrage unifiziert verschmilzt Anfrage und Klauselkopf unifizieren wenn die der Unifikation zugrundeliegenden 19 Objektorientierte Programmierung wissensbasierter Systeme Pr fungen ergeben Es ist m glich Variablen so zu ersetzen da die teiden Ausdr cke gleich werden Die 1 Regel im vorliegenden Beispiel verweist im Regelrumpf auf weitere Teilziele die erf llt sein m ssen Es gilt zun chst das Teilziel kind_von juergen liesel zu beweisen Prolog durchsucht zu diesem Zweck wieder die Wissenbasis vom Anfang bis zum Ende und st t dabei auf den 2 Fakt Ein Fakt ist immer wahr das Teilziel ist erf llt Es folgt die Realisierung des weiteren Teilziels frau liesel Prolog durchsucht die Wissensbasis vom Anfang bis zum Ende und findet eine Best tigung des T
Download Pdf Manuals
Related Search
Related Contents
STIHL HS 86 R, HS 86 T Modecom MC-C1 Cameleon D R I V E R ` S M A N U A L Samsung SMART CAMERA NX20 Uživatelská přiručka V7 Professional Sleeve 12" Home User Guide - Broadland Housing Group User Manual - BrandsMart USA Reliable Sewquiet 4000 User's Manual Handbuch - INSYS icom Copyright © All rights reserved.
Failed to retrieve file