Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | agna-heimbach |
View: | 105 times |
Download: | 0 times |
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: [email protected]://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: [email protected]
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: [email protected]://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