Georg Heeg - Objektorientierte Systeme Georg Heeg Objektorientierte Systeme Baroper Str. 337 D-44227...

Post on 05-Apr-2015

105 views 0 download

transcript

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me

Georg HeegObjektorientierte SystemeBaroper Str. 337D-44227 DortmundGermanyTel: +49-231-97599-0Fax: +49-231-97599-20

Email: info@heeg.dehttp://www.heeg.de

Georg Heeg AGObjektorientierte Systeme

Riedtlistr. 8CH-8006 Zürich

SwitzerlandTel: +41-1-356 3311Fax: +41-1-356 3312

Georg HeegObjektorientierte Systeme

Mühlenstr. 19D-06366 Köthen

GermanyTel: +49-3496-214 328Fax: +49-3496-214 712

Geschwindigkeit ist keine Hexerei-

Anpassung und Weiterentwicklung von Java- und Smalltalk-Servern

Georg HeegGeorg Heeg(Georg Heeg - Objektorientierte Systeme)(Georg Heeg - Objektorientierte Systeme)

ErfurtErfurt, 10. Oktober 2000, 10. Oktober 2000

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Inhalt

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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Wir über uns...

• gegründet 1987 mit Hauptsitz in Dortmund,seit 1996 in Zürich, seit 1999 in Köthen/Anhalt

• Beratungs- und Schulungsunternehmenmit dem Schwerpunkt Smalltalk

• Hotline Support, Wartung, Bug-Fixes

• Entwicklung virtueller Maschinen für VisualWorks

• Technologie- und Vertriebspartner von

Anspruchsvolle Projekte unserer Kundenzum Erfolg führen!

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Georg Heeg in Köthen

• Seit 1999 in Köthen• Qualifizierte Informatiker in Sachsen-Anhalt• Aktuelle Spezialität

– Portierung von VisualWorks-Anwendungen nach 5i– Verbesserung der Code-Qualität der portierten

Anwendungen

• Kunden in– Frankfurt am Main– Zürich– Kalifornien– ...

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Trend

Low-Tech Projektanforderungen

• Dampfradio– Welche Röhre?

• Transistor-Radio– Wieviele Transistoren?

• Hifi-Radio– Tunertechnik (PLL), Ausstattung

• Heute– Aussehen, Preis, Bedienbarkeit,

(Digital-Radio)

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Projekte

• Die Sicht von außen zählt!

• Externe Sicht:– Fachfunktionalität– Integration, Interoperabilität– Distribution, Wartung

• Interne Sicht:– Programmiersprache– Verwendete Standards– Werkzeuge

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Phänomen Java

Java wird nicht als Technologie wahrgenommen

„Die Technologie spielt heute keine Rolle mehr. Hauptsache es ist Java“

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Phänomen Java

Java beeinflusst Projekte: Anforderungen, Entscheidung, Erwartungen

Die Möglichkeiten von Java bestimmen die Anforderungen an Projekte

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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 2D, 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 3D, JAF, JAAS, JiniTechnologien einschl. Standard Extension und Enterprise

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Java Technologie

• Durch Java bestimmte Projektanforderungen1. 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?

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Schnelle Entwicklungszeiten

• Smalltalk ist das beste System für objektorientierteModellierung

• Erfahrungsgemäß ist es bis zu 20 Mal schneller, in Smalltalk zuentwickeln und anzupassen alsin Java oder C++

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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)

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Cincom Smalltalk

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 1. Web-Anwendungen

VisualWave

• Ausgereifter Web-Anwendungsserver

• Lastverteilung

• Automatische HTML Generierung

• Sessionverwaltung

WikiWorks

• kostenfreier offener Web-Server mit Editiermöglichkeiten für alle

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me

•Plugin–VM–Plugin-Image

3. Läuft im Web-Browser

VisualWorks PlugIn

•Web-Server–HTML-Seite–Parcel

liefert

lädtzeigt an

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 3. Läuft im Web-Browser

<EMBED

NAME="VisualWorks Calculator" SRC="Calculator.pcl"

WIDTH="233" HEIGHT="245" ALIGN="BOTTOM"

TYPE="application/x-visualworks-parcel"

VWOPEN="CalculatorExample" PLUGINSPAGE="vwplugin-install.html">

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 4. Write once, run everywhere

• Binäre Kompatibilität seit 1982 (ST80)

• Abstraktion von Plattform-Eigenarten– Dateisystem– Betriebssystemaufrufe– Benutzeroberfläche

• Auswechselbares Look&Feel seit VisualWorks 1.0 (1991)

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 4. Write once, run everywhere

• VisualWorks 5i.1 VMs gibt es für – Win 95/98/NT/2000– Apple Macintosh– Solaris– HP-UX– AIX– Tru64 UNIX– SGI– Linux 86

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 5. Interoperabilität/Integration

• DLL&C-Connect für alle Plattformen– Voraussetzung für COMConnect – Verwendet in DatabaseConnect

• COMConnect für Windows-Plattformen– COM Clients– COM Server– z.B. SAP-Connect, RoseLink

• XML-Unterstützung– Hilfe-System, Sourcecode

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 7. Verteilte Architekturen

DST (Distributed Smalltalk)

• Erster Corba ORB (Entwickelt von HP)

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 8. Application Server (EJB)

• Opentalk– derzeit in beta– Frameworks für verschiedene Protokolle

• Gemstone/S EJB mit Persistenz

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Die Softwarekrise (10.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.

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Bewältigung der Software-Krise

Objektorientierte Programmierung

CASE

Strukturierte Programmierung

Normierte Programmierung

Unterprogramme

Prozeduren

4., 5. Generation-Sprachen4GL, 5GL

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 1. Imperative Softwarewelt

• Computerorientiert:Von-Neumann-Computer:

Rechenwerk + Speicher=> Prozedur + Datenstruktur

• Die meisten Programmiersprachen haben:Anweisungen + Deklarationen

• Analysemethoden beschreiben:Informationen + Funktionen

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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.

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 3. Objektorientierte Softwarewelt

• Wer ist verantwortlich?

• Orientiert an den Begriffen der Anwendungsdisziplin

• Begriffe werden direkt in Software abgebildet

• „Modellieren statt Programmieren“

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Modellieren in der guten alten Zeit

Person

Phänomene

Patient Formular

Akte

Modell

1:1

Zahnarzt

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Traditionelle Software-Analyse

Person

Phänomene

Zustände

Prozesse

Datenstrukturen

Prozeduren

“link“

ausführbaresProgramm

Modell

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Objektorientiertes Modellieren

„Die Welt“

Phänomen

Begriff Klasse

Objekt

Modell

1:1Gesichtspunktdes Fach-gebiets Erkennen,

DefinierenInstanz

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me 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.

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist das?

• Ein zylindrisches Plastikrohr mit etwa 20 cm Länge und 6 mm Durchmesser.

• Im Inneren ist ein weiteres Plastikrohr mit2 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.

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist für Johannes wichtig?

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist für Johannes wichtig?

MALEN

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Über Bleistifte und Kugelschreiber

• Der objektorientierte (und Johannes) Gesichtspunkt:– Bleistift = etwas zum Schreiben und Malen– Kugelschreiber = etwas zum Schreiben und Malen

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Klassenhierarchie

Pendraw

BallPendraw

Pencildraw

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Johannes (Smalltalk)

Boyhand (Instanzvariable)

Irgendwo in der Klasse Boy steht:

hand := Mommy givePen....hand draw

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Johannes (Java)

Boyprivate pen hand; (Instanzvariable)

Irgendwo in der Klasse Boy steht:

hand = Mommy.givePen();...hand.draw()

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Die Softwarekrise (heute)

60 % bis 80 %

der

Softwarekosten

sind

Änderungskosten

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Ä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

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist für Johannes wichtig?

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist für Johannes wichtig?

ZIEHEN

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Über Bollerwagen

• Der objektorientierte (und Johannes) Gesichtspunkt :– Bollerwagen = etwas zum Ziehen (und drin Sitzen)

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Klassenhierarchie

VehiclesitIn

CarmakeNoise

Wagonpull

VanlookOut

TrabimakeNoise

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Johannes (Smalltalk)

Boyhand (Instanzvariable)

Irgendwo in der Klasse Boy steht:

hand := Daddy getWagon....hand pull

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Johannes (Java)

Boyprivate object hand; (Instanzvariable)

Irgendwo in der Klasse Boy steht:

hand = Daddy.giveWagon();...((Wagon)hand).pull()

Nun müssen wir noch das Bleistift-Beispiel anpassen(alle Vorkommen von „hand“ sind zu prüfen):

((Pen)hand).draw()

?

?

?

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Ä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.

$ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ €

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Ä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.

$ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ €

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Was ist Software?

• In Java– Software ist ein Programm, das gestartet wird

• In Smalltalk– Software ist ein System, das verändert wird

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Weiterentwicklung von Software

Smalltalk JavaProgrammieren des neuenVerhaltens

Programmieren des neuenVerhaltens

- Hinzufügen neuer Typen

- Prüfung des gesamtenSystems auf korrekteNutzung der neuen Typen

- Stoppen desAnwendungsservers

Laden des Parcels Laden der JAR-Datei- Starten des Servers

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Zusammenfassung

• Geschwindigkeit ist keine Hexerei– Finden angemessener Begrifflichkeit– Ständige Weiterentwicklung– Erfüllen der Anforderungen

Zufriedene Benutzer

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Sie erreichen mich

Georg Heeg: georg@heeg.de

http://www-koethen.heeg.de

oder in der Mühlenstr. 19, 06366 Köthen

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me Diskussion

Geo

rg H

eeg

- O

bje

kto

rien

tier

te S

yste

me

Georg HeegObjektorientierte SystemeBaroper Str. 337D-44227 DortmundGermanyTel: +49-231-97599-0Fax: +49-231-97599-20

Email: info@heeg.dehttp://www.heeg.de

Georg Heeg AGObjektorientierte Systeme

Riedtlistr. 8CH-8006 Zürich

SwitzerlandTel: +41-1-356 3311Fax: +41-1-356 3312

Georg HeegObjektorientierte Systeme

Mühlenstr. 19D-06366 Köthen

GermanyTel: +49-3496-214 328Fax: +49-3496-214 712