Georg Heeg Objektorientierte Systeme Georg Heeg Objektorientierte Systeme

Georg Heeg - Objektorientierte Systeme Georg Heeg Objektorientierte Systeme Baroper Str. 337 D-44227 Dortmund Germany Tel: +49 -231 -97599 -0 Fax: +49 -231 -97599 -20 Email: info@heeg. de http: //www. heeg. de Georg Heeg Objektorientierte Systeme Mühlenstr. 19 D-06366 Köthen Germany Tel: +49 -3496 -214 328 Fax: +49 -3496 -214 712 Georg Heeg AG Objektorientierte Systeme Riedtlistr. 8 CH-8006 Zürich Switzerland Tel: +41 -1 -356 3311 Fax: +41 -1 -356 3312

Geschwindigkeit ist keine Hexerei Anpassung und Weiterentwicklung von Java- und Smalltalk-Servern Georg Heeg (Georg Heeg - Objektorientierte Systeme) Erfurt, 10. Oktober 2000

Georg Heeg - Objektorientierte Systeme Inhalt • • Georg Heeg – das Unternehmen Software-Trend: Java Software-Krise: Softwarekosten Objektorientiertes Programmieren Software-Krise: Änderungskosten Evolutionäre Software Weiterentwicklung von Internetservern

Georg Heeg - Objektorientierte Systeme Wir über uns. . . • gegründet 1987 mit Hauptsitz in Dortmund, seit 1996 in Zürich, seit 1999 in Köthen/Anhalt • Beratungs- und Schulungsunternehmen mit dem Schwerpunkt Smalltalk • Hotline Support, Wartung, Bug-Fixes • Entwicklung virtueller Maschinen für Visual. Works • Technologie- und Vertriebspartner von Anspruchsvolle Projekte unserer Kunden zum Erfolg führen!

Georg Heeg - Objektorientierte Systeme Georg Heeg in Köthen • Seit 1999 in Köthen • Qualifizierte Informatiker in Sachsen-Anhalt • Aktuelle Spezialität – Portierung von Visual. Works-Anwendungen nach 5 i – Verbesserung der Code-Qualität der portierten Anwendungen • Kunden in – – Frankfurt am Main Zürich Kalifornien. . .

Georg Heeg - Objektorientierte Systeme Trend Low-Tech Projektanforderungen • Dampfradio – Welche Röhre? • Transistor-Radio – Wieviele Transistoren? • Hifi-Radio – Tunertechnik (PLL), Ausstattung • Heute – Aussehen, Preis, Bedienbarkeit, (Digital-Radio)

Georg Heeg - Objektorientierte Systeme Projekte • Die Sicht von außen zählt! • Externe Sicht: – Fachfunktionalität – Integration, Interoperabilität – Distribution, Wartung • Interne Sicht: – Programmiersprache – Verwendete Standards – Werkzeuge

Georg Heeg - Objektorientierte Systeme Phänomen Java wird nicht als Technologie wahrgenommen „Die Technologie spielt heute keine Rolle mehr. Hauptsache es ist Java“

Georg Heeg - Objektorientierte Systeme Phänomen Java beeinflusst Projekte: Anforderungen, Entscheidung, Erwartungen Die Möglichkeiten von Java bestimmen die Anforderungen an Projekte

Georg Heeg - Objektorientierte Systeme Java Technologie JTS, JDK 1. 1. 8, Java Servlet, JMS, JRE 1. 2. 2, Java Media Framework, JDBC, Java IDL, JTA, JDK 1. 2. 2, BDK, Java 2 D, RMI-IIOP, JMAPI, Java Mail, JRE 1. 1. 8, JDNI, Java Server Pages, EJB, Java Help, COMM, Java Beans, Swing, RMI, JDK 1. 0. 2, Hot Spot, JMX, JCE, Info Bus, JSSE, JFC, Java 3 D, JAF, JAAS, Jini Technologien einschl. Standard Extension und Enterprise

Georg Heeg - Objektorientierte Systeme Java Technologie • Welche Teile der Java Technologie sind sinnvollerweise Teil der externen Sicht eines Projekts? • Alle Technologien, die folgende externe Qualitäten eines Projekts beeinflussen: – Integration, Interoperabilität – Distribution, Wartung

Georg Heeg - Objektorientierte Systeme Java Technologie • Durch Java bestimmte Projektanforderungen 1. Web-Server Anwendungen (Servlets) 2. Einfache Distribution (JAR) 3. Läuft im Web-Browser 4. Write once, run everywhere 5. Interoperabilität 6. Datenbankanbindung (JDBC) 7. Verteilte Architekturen (RMI, RMI-IIOP, Corba) 8. Application Server (EJB)

Wenn Java so dominant ist, warum dann Smalltalk?

Georg Heeg - Objektorientierte Systeme Gründe für Smalltalk • Projekte mit offenen oder unklaren Konzepten – Bedarf an Prototypen – Unvollständige Spezifikation und Modellierung – „Moving Targets“ • i-Business-Strategien – Flexibilität und Geschwindigkeit trennen den Erfolg vom Scheitern

Georg Heeg - Objektorientierte Systeme Schnelle Entwicklungszeiten • Smalltalk ist das beste System für objektorientierte Modellierung • Erfahrungsgemäß ist es bis zu 20 Mal schneller, in Smalltalk zu entwickeln und anzupassen als in Java oder C++

Georg Heeg - Objektorientierte Systeme Das Smalltalk Phänomen • Endbenutzer sagen: – „Diese Software leistet exakt das, was ich mir schon immer gewünscht habe. ” • Beispiel (neben vielen anderen) – Wahlberichterstattung von Infratest Dimap – Jede Wahl ein neues Projekt – Vorlaufzeit manchmal nur 10 Tage (Computerwoche 40/99, S. 71 -72)

Georg Heeg - Objektorientierte Systeme Cincom Smalltalk

Georg Heeg - Objektorientierte Systeme 1. Web-Anwendungen Visual. Wave • Ausgereifter Web-Anwendungsserver • Lastverteilung • Automatische HTML Generierung • Sessionverwaltung Wiki. Works • kostenfreier offener Web-Server mit Editiermöglichkeiten für alle

Georg Heeg - Objektorientierte Systeme 2. Einfache Distribution (JAR) • Parcels leisten dieselben Dienste – Transportieren Klassen, Methoden, statische Variablen – Abhängigkeiten zwischen Parcels – Automatisches Laden fehlender Parcels – Versionierung • Parcels leisten mehr JAR – Pre- und Post-Aktionen beim Laden – Dynamisches Laden und Entladen zu jeder Zeit – mit/ohne Source

Georg Heeg - Objektorientierte Systeme 3. Läuft im Web-Browser Visual. Works Plug. In liefert zeigt an • Plugin –VM –Plugin-Image lädt • Web-Server –HTML-Seite –Parcel

Georg Heeg - Objektorientierte Systeme 3. Läuft im Web-Browser <EMBED NAME="Visual. Works Calculator" SRC="Calculator. pcl" WIDTH="233" HEIGHT="245" ALIGN="BOTTOM" TYPE="application/x-visualworks-parcel" VWOPEN="Calculator. Example" PLUGINSPAGE="vwplugin-install. html">

Georg Heeg - Objektorientierte Systeme 4. Write once, run everywhere • Binäre Kompatibilität seit 1982 (ST 80) • Abstraktion von Plattform-Eigenarten – Dateisystem – Betriebssystemaufrufe – Benutzeroberfläche • Auswechselbares Look&Feel seit Visual. Works 1. 0 (1991)

Georg Heeg - Objektorientierte Systeme 4. Write once, run everywhere • Visual. Works 5 i. 1 VMs gibt es für – Win 95/98/NT/2000 – Apple Macintosh – Solaris – HP-UX – AIX – Tru 64 UNIX – SGI – Linux 86

Georg Heeg - Objektorientierte Systeme 5. Interoperabilität/Integration • DLL&C-Connect für alle Plattformen – Voraussetzung für COMConnect – Verwendet in Database. Connect • COMConnect für Windows-Plattformen – COM Clients – COM Server – z. B. SAP-Connect, Rose. Link • XML-Unterstützung – Hilfe-System, Sourcecode

Georg Heeg - Objektorientierte Systeme 6. Datenbankanbindungen(JDBC) • Anbindungen für – Oracle – Sybase – SQL Server – ODBC – Postgres/SQL – Gemstone/S • Low-Level-Schnittstellen wie JDBC • High-Level Objekt-Relationen-Mapper

Georg Heeg - Objektorientierte Systeme 7. Verteilte Architekturen DST (Distributed Smalltalk) • Erster Corba ORB (Entwickelt von HP)

Georg Heeg - Objektorientierte Systeme 8. Application Server (EJB) • Opentalk – derzeit in beta – Frameworks für verschiedene Protokolle • Gemstone/S EJB mit Persistenz

Georg Heeg - Objektorientierte Systeme Die Softwarekrise (10. 1968) • Die Kosten für Software übersteigen den geplanten Wert um ein Vielfaches – sofern die Software überhaupt fertiggestellt wird. • Termine können nur selten eingehalten werden. • Die Änderung existierender Programme ist zeitraubend und kostspielig.

Georg Heeg - Objektorientierte Systeme Bewältigung der Software-Krise Objektorientierte Programmierung 4. , 5. Generation-Sprachen 4 GL, 5 GL CASE Strukturierte Programmierung Normierte Programmierung Unterprogramme Prozeduren

Georg Heeg - Objektorientierte Systeme 1. Imperative Softwarewelt • Computerorientiert: Von-Neumann-Computer: Rechenwerk + Speicher => Prozedur + Datenstruktur • Die meisten Programmiersprachen haben: Anweisungen + Deklarationen • Analysemethoden beschreiben: Informationen + Funktionen

Georg Heeg - Objektorientierte Systeme 2. Funktionale und logische Softwarewelt • Mathematikorientiert • Deklarative Programmiersprachen: – Funktionales Programmieren: Lisp, Miranda – Logisches Programmieren: Prolog – Mengenorientiertes Programmieren: SETL • Keine Darstellung für Zeit, Dynamik wird durch Tricks realisiert.

Georg Heeg - Objektorientierte Systeme 3. Objektorientierte Softwarewelt • Wer ist verantwortlich? • Orientiert an den Begriffen der Anwendungsdisziplin • Begriffe werden direkt in Software abgebildet • „Modellieren statt Programmieren“

Georg Heeg - Objektorientierte Systeme Modellieren in der guten alten Zeit Patient 1: 1 Formular Zahnarzt Phänomene Person Modell Akte

Georg Heeg - Objektorientierte Systeme Traditionelle Software-Analyse Zustände Datenstrukturen Prozesse Prozeduren “link“ Phänomene Person Modell ausführbares Programm

Georg Heeg - Objektorientierte Systeme Objektorientiertes Modellieren Begriff Gesichtspunkt des Fachgebiets Erkennen, Definieren Phänomen „Die Welt“ 1: 1 Klasse Instanz Modell Objekt

Georg Heeg - Objektorientierte Systeme Objektorientiertes Modellieren • Der Gesichtspunkt bestimmt das Modell • „Das korrekte Modell” existiert nicht! • Für eine Anwendung gibt es nur – angemessene Modelle und – nicht angemessene Modelle

Georg Heeg - Objektorientierte Systeme Was ist das? • Ein zylindrischer Körper aus Holz mit etwa 20 cm Länge und 6 mm Durchmesser. • Im Zentrum des Zylinders ist eine Bohrung von 1 mm, die mit gepresstem Grafit gefüllt ist. • An einem Ende ist der Zylinder kegelförmig verjüngt. • Das Grafit kann auf andere Körper abgerieben werden.

Georg Heeg - Objektorientierte Systeme Was ist das? • Ein zylindrisches Plastikrohr mit etwa 20 cm Länge und 6 mm Durchmesser. • Im Inneren ist ein weiteres Plastikrohr mit 2 mm Durchmesser and einer Metallkugel an einem Ende. • Das innere Rohr ist mit viskoser Farbe gefüllt. • Die Farbe kann über die Kugel auf andere Medien übertragen werden.

Georg Heeg - Objektorientierte Systeme Was ist für Johannes wichtig?

Georg Heeg - Objektorientierte Systeme Was ist für Johannes wichtig? MALEN

Georg Heeg - Objektorientierte Systeme Über Bleistifte und Kugelschreiber • Der objektorientierte (und Johannes) Gesichtspunkt: – Bleistift = etwas zum Schreiben und Malen – Kugelschreiber = etwas zum Schreiben und Malen

Georg Heeg - Objektorientierte Systeme Klassenhierarchie Pen draw Pencil Ball. Pen draw

Georg Heeg - Objektorientierte Systeme Johannes (Smalltalk) Boy hand Irgendwo in der Klasse Boy steht: hand : = Mommy give. Pen. . hand draw (Instanzvariable)

Georg Heeg - Objektorientierte Systeme Johannes (Java) Boy private pen hand; Irgendwo in der Klasse Boy steht: hand = Mommy. give. Pen(); . . . hand. draw() (Instanzvariable)

Georg Heeg - Objektorientierte Systeme Die Softwarekrise (heute) 60 % bis 80 % der Softwarekosten sind Änderungskosten

Georg Heeg - Objektorientierte Systeme Änderungskosten (konventionell) Preis(Änderung) = Änderungsfaktor * Größe(Änderung) + Projektfaktor * Größe(Projekt) In den meisten Software-Lebenszyklen gilt: Projektfaktor >> 0 Daher dominiert die Projektgröße die Änderungskosten. Die Größe der Änderung spielt fast keine Rolle. Kunden verstehen dies nicht. $€$€$€$€$€$€$€$€$€$€

Nun entwickeln wir unsere Anwendung weiter

Georg Heeg - Objektorientierte Systeme Was ist für Johannes wichtig?

Georg Heeg - Objektorientierte Systeme Was ist für Johannes wichtig? ZIEHEN

Georg Heeg - Objektorientierte Systeme Über Bollerwagen • Der objektorientierte (und Johannes) Gesichtspunkt : – Bollerwagen = etwas zum Ziehen (und drin Sitzen)

Georg Heeg - Objektorientierte Systeme Klassenhierarchie Vehicle sit. In Wagon Car pull make. Noise Trabi Van make. Noise look. Out

Georg Heeg - Objektorientierte Systeme Johannes (Smalltalk) Boy hand Irgendwo in der Klasse Boy steht: hand : = Daddy get. Wagon. . hand pull (Instanzvariable)

Georg Heeg - Objektorientierte Systeme Johannes (Java) Boy ? private object hand; (Instanzvariable) Irgendwo in der Klasse Boy steht: hand = Daddy. give. Wagon(); . . . ((Wagon)hand). pull() ? Nun müssen wir noch das Bleistift-Beispiel anpassen (alle Vorkommen von „hand“ sind zu prüfen): ? ((Pen)hand). draw()

Georg Heeg - Objektorientierte Systeme Änderungskosten und Java Preis(Änderung) = Änderungsfaktor * Größe(Änderung) + Projektfaktor * Größe(Projekt) In Java gilt: Projektfaktor >> 0 Daher dominiert die Projektgröße die Änderungskosten. Die Größe der Änderung spielt fast keine Rolle. Kunden verstehen dies nicht. $€$€$€$€$€$€$€$€$€$€

Georg Heeg - Objektorientierte Systeme Änderungskosten und Smalltalk Preis(Änderung) = Änderungsfaktor * Größe(Änderung) + Projektfaktor * Größe(Projekt) In Smalltalk gilt: Projektfaktor = 0 Daher bestimmt die Größe der Änderung die Änderungskosten. Das verstehen die Kunden. $€$€$€$€$€$€$€$€$€$€

Georg Heeg - Objektorientierte Systeme Was ist Software? • In Java – Software ist ein Programm, das gestartet wird • In Smalltalk – Software ist ein System, das verändert wird

Georg Heeg - Objektorientierte Systeme Weiterentwicklung von Software

Georg Heeg - Objektorientierte Systeme Zusammenfassung • Geschwindigkeit ist keine Hexerei – Finden angemessener Begrifflichkeit – Ständige Weiterentwicklung – Erfüllen der Anforderungen Zufriedene Benutzer

Georg Heeg - Objektorientierte Systeme Sie erreichen mich Georg Heeg: georg@heeg. de http: //www-koethen. heeg. de oder in der Mühlenstr. 19, 06366 Köthen

Georg Heeg - Objektorientierte Systeme Diskussion

Georg Heeg - Objektorientierte Systeme Georg Heeg Objektorientierte Systeme Baroper Str. 337 D-44227 Dortmund Germany Tel: +49 -231 -97599 -0 Fax: +49 -231 -97599 -20 Email: info@heeg. de http: //www. heeg. de Georg Heeg Objektorientierte Systeme Mühlenstr. 19 D-06366 Köthen Germany Tel: +49 -3496 -214 328 Fax: +49 -3496 -214 712 Georg Heeg AG Objektorientierte Systeme Riedtlistr. 8 CH-8006 Zürich Switzerland Tel: +41 -1 -356 3311 Fax: +41 -1 -356 3312
- Slides: 61