Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Smalltalk für Quereinsteiger
Clemens Hoffmann IT-Berater
2
Wen spricht der Vortrag an?
Entwickler mit Programmiererfahrung in C++ oder Java auf dem Weg zu neuen Ufern Projektleiter, die Alternativen zu bestehenden Entwicklungssystemen kennenlernen möchten Neugierige Menschen, die wissen wollen, was Smalltalk eigentlich ist
3
Was spricht der Vortrag an
Was ist Smalltalk VisualWorks 5i, Philosophie, Architektur Wie arbeite ich mit Smalltalk Werkzeuge, Design, Teams Was habe ich für ein Umfeld Schnittstellen, Web, Verteilte Systeme
4
Wie startet man eine Revolution
5
VisualWorks - Historie
Entstanden im XEROX PARC 1972 Going Public 1981 Gründung Firma Georg Heeg 1987 Gründung ParcPlace Systems 1988 ObjectWorks 1990 Parc Alan Kay Daniel H. H. Ingalles Adele Goldberg Peter Deutsch Glen Grasner ParcPlace Adele Goldberg VisualWorks 1992 Cincom übernimmt VisualWorks 1999
6
VisualWorks - Definition
VisualWorks ist wie eine Skriptsprache mächtig hoch skalierbar extrem stabil objektorientiert ohne die gängigen Einschränkungen Performanz Komplexität Unübersichtlichkeit Wartbarkeit
7
VisualWorks - Philosophie
Keine Typen Automatische Speicherverwaltung Reflexivität Das Verhalten (die Menge der verfügbaren Methoden) definiert ein Objekt. Nicht mehr referenzierte Objekte werden automatisch abgeräumt Smalltalk ist in Smalltalk geschrieben Klasse, Methode, Werkzeuge, Compiler, ...
8
VisualWorks - Philosophie
Alles ist ein Objekt “Lebende“ Objekte Jede Komponente im einem VisualWorks System ist ein Objekt, das mit anderen Objekten interagiert. Alle Objekte im System “leben“ in einem gemeinsamen Objektraum. Dieser Raum wird als Image gespeichert und existiert nach einem Neustart des Images exakt so weiter, wie er gespeichert wurde
9
VisualWorks - Philosophie
Uniformität Erweiterbarkeit Wissensbasis Uniformer Zugriff auf alle Konstrukte im Image. Alle Klassen können in sich erweitert werden Der gesamte Sourcecode des Systems kann direkt eingesehen werden.
10
Laufzeitumgebung und Anwendung
Java - Architektur Werkzeuge Bibliothek in Ver- zeichnisstruktur und jar-Dateien Laufzeitumgebung und Anwendung VM VM VM VM VM VM Windows Linux Macintosh Sun IBM HP
11
VisualWorks - Architektur
Image Werkzeuge Anwendung(en) Bibliothek VM Windows Linux Macintosh Sun IBM HP
12
Werkzeuge - PackageBrowser
Kategorien Klassenliste Protokolliste Methodenliste Klassendefinition
13
Programmierzyklus - Java
Source *.java Binärcode *.class kompilieren Laufzeit- oder Logikfehler Kompilierfehler Binärcode *.class Binärcode *.class Binärcode *.class Binärcode *.class Laufzeit- umgebung Laden und testen
14
Programmierzyklus - VW
Klassendefinition Methodendefinition Class Erstellen Syntaxfehler CompiledMethod Speichern Syntaxfehler Es kann jederzeit getestet werden Image Instant kompiliert und verfügbar
15
Design Use-Cases Anforderungs- analyse Use-Case-Diagramm
System- analyse Klassendiagramme Aktivitätsdiagramme Design Klassendiagramme Sequenzdiagramme Implementierung Quellcode Anwendung(en) Test Testprotokolle
16
Smalltalk (VisualWorks)
Design Smalltalk (VisualWorks) und UML Anforderungsanalyse Systemanalyse Design Implementierung Test Roundtrip
17
Design Keine explizite Trennung zwischen Design und Implementierung
Iterative (experimentelle) Implementierung Verfeinerung von Design nach Realisierung einfache Refaktorisierung (automatisiert mit RefactoringBrowser) direkt testbar (SUnit-Test)
18
Teams - Java Entwickler Werkzeuge Bibliothek in Ver- zeichnisstruktur
und jar-Dateien Versionsverwaltung (SourceSave, PVCS, CVS, RCS, ...) VM Laufzeitumgebung Entwickler Werkzeuge VM Laufzeitumgebung
19
Teams - VisualWorks Entwickler export ChangeSet Image VM import export
Parcels import VM
20
Teams - VisualWorks Entwickler Image VM StORE-Repository Oracle DB2
MS-SQL PostgreSQL Access Entwickler Image VM
21
Betriebssystemschnittstelle
22
Datenbankenschnittstellen
Java VisualWorks SUN JDO Toplink ObjectLens GLORP OR-Mapping JDBC Datenbank- schnittstelle EXDI Database Database
23
Web - Basisdienste HTTP Client FTP Client IMAP Client IMAP Mailbox
POP3 Client POP3 Mailbox SMTP Client URI / URL Support XML Support
24
Web - Smalltalk ServerPages
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <% values := OrderedCollection new. count := (request anyParameterValueAt: 'count') asNumber. 1 to: count do: [:i | values add: i factorial]. %> <html> <head> <title>Computed factorials</title> <meta http-equiv="Content-Type" content="text/html; charset=iso "> </head> <body> List of all factorials up to <%=count%> <p> <% values do: [:item | response write: item key printString. response write: '! = '. response write: item value printString. response write: '<br>‘. Response cr]. %> </body> </html>
25
Web - Smalltalk ServerPages
26
Web - Smalltalk ServerPages
27
Web - Smalltalk ServerPages
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " taglib uri="file:formel.tld" prefix="formel" %> <html> <head> <title>Computed factorials</title> <meta http-equiv="Content-Type" content="text/html; charset=iso "> </head> <body> List of all factorials up to <formel:getParameterValue parameter="count" /> <p> <formel:factorial parameter="count" /> </body> </html>
28
Web - Smalltalk ServerPages
29
Web - Smalltalk ServerPages
30
Web - Smalltalk Servlets
doPost: aServletRequest response: aServletResponse HTTPServlet ToyzInput service: aServletRequest response: aServletResponse HTTP Request (POST) VisualWave ApplicationServer Web Server Marty Hall: Core Servlets and JavaServer Pages
31
Web - Application Server
Web Server (Apache, IIS, ...) HTTP Request Fast CGI CGI ISAPI HTTP Request VisualWave ApplicationServer TinyHTTP Server
32
VisualWorks als Web-Services Client
UDDI Request WSDL Response SOAP Request SOAP Response UDDI Server SOAP Server
33
Distribution - CORBA - RMI
Java VisualWorks IBM Component Broker Borland VisiBroker IONA OrbixWeb ORBacus ... CORBA Distributed Smalltalk (DST) CORBA Basic Object Adaptor Portable Object Adaptor Smalltalk to Smalltalk Kommunikation OpenTalk CORBA Java to Java Kommunikation RMI Remote Browsing Remote Debugging Remote Development
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.