Georg Heeg Objektorientierte Systeme Baroper Str. 337 D Dortmund

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Blue J.
Facility Management mit Microsoft Office Visio 2003
Basis-Architekturen für Web-Anwendungen
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Datenbankzugriff im WWW (Kommerzielle Systeme)
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Java: Objektorientierte Programmierung
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
PinK Plattform für intelligente Kollaborationsportale Dr. Joachim Quantz, e.V. Berlin, 13. September 2005.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Das Java-Hamstermodell
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Georg Heeg - OOP Georg Heeg Objektorientierte Systeme Baroper Str. 337 D Dortmund Tel: Fax:
Georg Heeg eK Baroper Str. 337 D Dortmund
Georg Heeg eK Baroper Str. 337 D Dortmund Tel: Fax: Georg Heeg AG Riedtlistr.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Smalltalk für Quereinsteiger
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke.
Software Engineering WS 2009
Spezifikation von Anforderungen
Plattformunabhängige Programmiersprache
© InLoox GmbH InLoox now! Produktpräsentation Die schlüsselfertige Online-Projektplattform in der Cloud.
Einführung in die Programmiersprache Java
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
MIS Planner for Basel II Inhalte und Nutzen. digit - Dienstleistungs- und Ingenieurgesellschaft für Informationstechnik mbH, Schöneweibergasse 8-10,
„Buy and Make“ anstelle von „Make or Buy“
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Basiswissen für Partner und interessierte Kunden Technologie.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Wasserfallmodell und Einzelbegriffe
Management- und Web Services- Architekturen
SPODAT - Blick nach vorn
Ispirer Systems Präsentation des Unternehmens Copyright (c) Ispirer Systems Ltd. Alle Rechte vorbehalten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Enterprise Achitect (Sparx Systems) Marius Rudolf
Datenanbindung in Webapplikationen
Einführung in Web Services Web Services in der Praxis
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
Quellen: Internet INTRANET Ausarbeitung von Sven Strasser und Sascha Aufderheide im Modul Netzwerktechnik, Klasse INBS Mai 2003.
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Objektorientierung.
Untersuchungen zur Erstellung eines
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Software Engineering Grundlagen
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
XML Die “E-Lance Economy” oder die “Digital Economy” stellt neue Anforderungen an Funktionalität im Netz. XML wurde vom World Wide Web Consortium (W3C)
Präsentiert von Philipp Duffner Die Build-To-Integrate-Server-Ansätze von IBM WebSphere, Sun One und Microsoft.net Biztalk in Zeiten des Collaborative.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Ziel - Konzept - Realisierung 28. August 2003 Ursula Jutzi.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Georg Heeg Objektorientierte Systeme Baroper Str. 337 D-44227 Dortmund Germany Tel: +49-231-97599-0 Fax: +49-231-97599-20 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 Email: info@heeg.de http://www.heeg.de

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

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

Anspruchsvolle Projekte unserer Kunden 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 VisualWorks Technologie- und Vertriebspartner von Anspruchsvolle Projekte unserer Kunden zum Erfolg führen!

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

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

Projekte Die Sicht von außen zählt! Externe Sicht: Interne Sicht: Fachfunktionalität Integration, Interoperabilität Distribution, Wartung Interne Sicht: Programmiersprache Verwendete Standards Werkzeuge

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

Phänomen Java Java beeinflusst Projekte: Anforderungen, Entscheidung, Erwartungen Die Möglichkeiten von Java bestimmen die Anforderungen an Projekte

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, Jini Technologien einschl. Standard Extension und Enterprise

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

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?

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

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++ This is a reiteration of the informationvia messages.

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)

Cincom Smalltalk

1. Web-Anwendungen VisualWave Ausgereifter Web-Anwendungsserver Lastverteilung Automatische HTML Generierung Sessionverwaltung WikiWorks kostenfreier offener Web-Server mit Editiermöglichkeiten für alle

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

3. Läuft im Web-Browser VisualWorks PlugIn Web-Server HTML-Seite liefert Web-Server HTML-Seite Parcel zeigt an lädt Plugin VM Plugin-Image

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">

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)

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

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

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

7. Verteilte Architekturen DST (Distributed Smalltalk) Erster Corba ORB (Entwickelt von HP)

8. Application Server (EJB) Opentalk derzeit in beta Frameworks für verschiedene Protokolle Gemstone/S  EJB mit Persistenz

VisualWorks 5i Neu in VisualWorks 5i Name-Spaces StORE XML Microsoft SQL-Server Erweiterte Parcels

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.

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

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

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.

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

Modellieren in der guten alten Zeit Patient Formular 1:1 Zahnarzt Phänomene Modell Akte Person

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

Objektorientiertes Modellieren Begriff Klasse 1:1 Gesichtspunkt des Fach-gebiets Erkennen, Definieren Instanz Phänomen Modell Objekt „Die Welt“

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

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.

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.

Was ist für Johannes wichtig?

Was ist für Johannes wichtig? MALEN

Über Bleistifte und Kugelschreiber Der objektorientierte (und Johannes) Gesichtspunkt: Bleistift = etwas zum Schreiben und Malen Kugelschreiber = etwas zum Schreiben und Malen

Klassenhierarchie Pen draw Pencil draw BallPen draw

Johannes (Smalltalk) Boy hand (Instanzvariable) Irgendwo in der Klasse Boy steht: hand := Mommy givePen. ... hand draw

Johannes (Java) Boy private pen hand; (Instanzvariable) Irgendwo in der Klasse Boy steht: hand = Mommy.givePen(); ... hand.draw()

Die Softwarekrise (heute) 60 % bis 80 % der Softwarekosten sind Änderungskosten

Ä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

Was ist für Johannes wichtig?

Was ist für Johannes wichtig? ZIEHEN

Über Bollerwagen Der objektorientierte (und Johannes) Gesichtspunkt : Bollerwagen = etwas zum Ziehen (und drin Sitzen)

Klassenhierarchie Vehicle sitIn Wagon pull Car makeNoise Trabi Van lookOut

Johannes (Smalltalk) Boy hand (Instanzvariable) Irgendwo in der Klasse Boy steht: hand := Daddy getWagon. ... hand pull

? ? ? Johannes (Java) Boy private 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() ? ?

Ä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. $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ €

Ä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. $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ € $ €

Was ist Software? In Java In Smalltalk Software ist ein Programm, das gestartet wird In Smalltalk Software ist ein System, das verändert wird

Weiterentwicklung von Software

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)

Zusammenfassung Zufriedene Benutzer Geschwindigkeit ist keine Hexerei Finden angemessener Begrifflichkeit Ständige Weiterentwicklung Erfüllen der Anforderungen Zufriedene Benutzer

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

Diskussion

Georg Heeg Objektorientierte Systeme Baroper Str. 337 D-44227 Dortmund Germany Tel: +49-231-97599-0 Fax: +49-231-97599-20 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 Email: info@heeg.de http://www.heeg.de