Title: Clemens Hoffmann
1Smalltalk für Quereinsteiger
- Clemens Hoffmann
- IT-Berater
2Wen 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
3Was spricht der Vortrag an
4Wie startet man eine Revolution
5VisualWorks - Historie
6VisualWorks - Definition
- VisualWorks ist wie eine Skriptsprache
- mächtig
- hoch skalierbar
- extrem stabil
- objektorientiert
7VisualWorks - Philosophie
Keine Typen Automatische Speicherverwaltung Re
flexivitä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, ...
8VisualWorks - 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
9VisualWorks - 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.
10Java - Architektur
Werkzeuge
Bibliothek in Ver- zeichnisstruktur und
jar-Dateien
Laufzeitumgebung und Anwendung
VM
VM
VM
VM
VM
VM
Windows
Linux
Macintosh
Sun
IBM
HP
11VisualWorks - Architektur
Image
Werkzeuge
Anwendung(en)
Bibliothek
VM
Windows
Linux
Macintosh
Sun
IBM
HP
12Werkzeuge - PackageBrowser
Kategorien Klassenliste
Protokolliste Methodenliste
Klassendefinition
13Programmierzyklus - Java
Source .java
Binärcode .class
Binärcode .class
Binärcode .class
Binärcode .class
14Programmierzyklus - VW
Klassendefinition
Methodendefinition
Es kann jederzeit getestet werden
Image
15Design
Anforderungs- analyse
Use-Cases
Use-Case-Diagramm
System- analyse
Klassendiagramme
Aktivitätsdiagramme
Klassendiagramme
Design
Sequenzdiagramme
Implementierung
Quellcode
Anwendung(en)
Test
Testprotokolle
16Design
Smalltalk (VisualWorks) und UML
17Design
Keine explizite Trennung zwischen Design und
Implementierung
Iterative (experimentelle) Implementierung
- Verfeinerung von Design nach Realisierung
- einfache Refaktorisierung (automatisiert mit
RefactoringBrowser)
- direkt testbar (SUnit-Test)
18Teams - Java
Entwickler
Werkzeuge
Bibliothek in Ver- zeichnisstruktur und
jar-Dateien Versionsverwaltung
(SourceSave, PVCS, CVS, RCS, ...)
VM
Laufzeitumgebung
Entwickler
Werkzeuge
VM
Laufzeitumgebung
19Teams - VisualWorks
Entwickler
export
ChangeSet
Image
VM
import
export
Entwickler
Image
Parcels
import
VM
20Teams - VisualWorks
Entwickler
Image
VM
StORE-Repository
Oracle DB2 MS-SQL PostgreSQL Access
Entwickler
Image
VM
21Betriebssystemschnittstelle
22Datenbankenschnittstellen
VisualWorks
Java
SUN JDO Toplink
ObjectLens GLORP
OR-Mapping
JDBC
EXDI
Datenbank- schnittstelle
Database
Database
23Web - Basisdienste
- HTTP Client
- FTP Client
- IMAP Client
- IMAP Mailbox
- POP3 Client
- POP3 Mailbox
- SMTP Client
- URI / URL Support
- XML Support
24Web - Smalltalk ServerPages
lt?xml version"1.0"?gt lt!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http//www.w3.org/TR/xhtml1/DTD/xhtml1-transition
al.dtd"gt lt values OrderedCollection
new. count (request anyParameterValueAt
'count') asNumber. 1 to count do i values
add i factorial. gt lthtmlgt ltheadgt lttitlegtComput
ed factorialslt/titlegt ltmeta http-equiv"Content-Ty
pe" content"text/html charsetiso-8859-1"gt lt/hea
dgt ltbodygt List of all factorials up to
ltcountgt ltpgt lt values do item response
write item key printString. response write '!
'. response write item value
printString. response write 'ltbrgt. Response
cr. gt lt/bodygt lt/htmlgt
25Web - Smalltalk ServerPages
26Web - Smalltalk ServerPages
27Web - Smalltalk ServerPages
lt?xml version"1.0"?gt lt!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http//www.w3.org/TR/xhtml1/DTD/xhtml1-transition
al.dtd"gt lt_at_ taglib uri"fileformel.tld"
prefix"formel" gt lthtmlgt ltheadgt lttitlegtComputed
factorialslt/titlegt ltmeta http-equiv"Content-Type"
content"text/html charsetiso-8859-1"gt lt/headgt
ltbodygt List of all factorials up to
ltformelgetParameterValue parameter"count" /gt
ltpgt ltformelfactorial parameter"count"
/gt ltpgt lt/bodygt lt/htmlgt
28Web - Smalltalk ServerPages
29Web - Smalltalk ServerPages
30Web - Smalltalk Servlets
doPost aServletRequest response
aServletResponse
HTTPServlet
ToyzInput
service aServletRequest response
aServletResponse
HTTP Request (POST)
Web Server
Marty Hall Core Servlets and JavaServer Pages
31Web - Application Server
Web Server (Apache, IIS, ...)
HTTP Request
Fast CGI
CGI
ISAPI
HTTP Request
TinyHTTP Server
32Web-Services
VisualWorks als Web-Services Client
SOAP Request
UDDI Server
SOAP Server
33Distribution - CORBA - RMI
Java
VisualWorks
Basic Object Adaptor
Portable Object Adaptor
CORBA
Remote Browsing Remote Debugging Remote
Development