33
Clemens Hoffmann IT-Berater Smalltalk für Quereinsteiger

Smalltalk für Quereinsteiger

  • Upload
    paniz

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Clemens Hoffmann IT-Berater. Smalltalk für Quereinsteiger. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Smalltalk für Quereinsteiger

Clemens Hoffmann

IT-Berater

Smalltalk für Quereinsteiger

Page 2: Smalltalk für Quereinsteiger

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

Page 3: Smalltalk für Quereinsteiger

Was spricht der Vortrag an

• Wie arbeite ich mit Smalltalk

Werkzeuge, Design, Teams

• Was habe ich für ein Umfeld

Schnittstellen, Web, Verteilte Systeme

• Was ist Smalltalk

VisualWorks 5i, Philosophie, Architektur

Page 4: Smalltalk für Quereinsteiger

Wie startet man eine Revolution

Page 5: Smalltalk für Quereinsteiger

VisualWorks - Historie

Entstanden im XEROX PARC1972

Gründung ParcPlace Systems1988

ObjectWorks1990

VisualWorks1992

Cincom übernimmt VisualWorks1999

Going Public1981

Gründung Firma Georg Heeg1987

Page 6: Smalltalk für Quereinsteiger

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

Page 7: Smalltalk für Quereinsteiger

VisualWorks - Philosophie

Keine Typen

Automatische Speicherverwaltung

ReflexivitätSmalltalk ist in Smalltalk geschrieben

Klasse, Methode, Werkzeuge, Compiler, ...

Nicht mehr referenzierte Objekte werden automatisch abgeräumt

Das Verhalten (die Menge der verfügbaren Methoden) definiert ein Objekt.

Page 8: Smalltalk für Quereinsteiger

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

Page 9: Smalltalk für Quereinsteiger

VisualWorks - Philosophie

Uniformität

Erweiterbarkeit

Wissensbasis

Alle Klassen können in sich erweitert werden

Uniformer Zugriff auf alle Konstrukte im Image.

Der gesamte Sourcecode des Systems kann direkt eingesehen werden.

Page 10: Smalltalk für Quereinsteiger

Java - Architektur

Windows Linux Macintosh Sun IBM HP

VM VM VM VM VM VM

Laufzeitumgebung und Anwendung

WerkzeugeBibliothek in Ver-zeichnisstruktur und jar-Dateien

Page 11: Smalltalk für Quereinsteiger

VisualWorks - Architektur

Windows Linux Macintosh Sun IBM HP

Werkzeuge

Bibliothek

Anwendung(en)

Image

VM

Page 12: Smalltalk für Quereinsteiger

Klassendefinition

Werkzeuge - PackageBrowser

Kategorien Klassenliste Protokolliste Methodenliste

Page 13: Smalltalk für Quereinsteiger

Binärcode*.class

kompilieren

Binärcode*.class

Programmierzyklus - Java

Source*.java

Binärcode*.class

Binärcode*.class

Binärcode*.class

Kompilierfehler

Laufzeit- oderLogikfehler

Laufzeit-umgebung Laden und testen

Page 14: Smalltalk für Quereinsteiger

Programmierzyklus - VW

Klassendefinition Methodendefinition

ClassErstellen

Syntaxfehler

CompiledMethodSpeichern

Syntaxfehler

ImageEs kann jederzeit g

etestet w

erden

Instant kompiliert und verfügbar

Page 15: Smalltalk für Quereinsteiger

Design

Anforderungs-analyse

Use-Cases

Use-Case-Diagramm

System-analyse

Klassendiagramme

SequenzdiagrammeDesign

Implementierung

Test

Klassendiagramme

Aktivitätsdiagramme

Quellcode

Anwendung(en)

Testprotokolle

Page 16: Smalltalk für Quereinsteiger

Design

Smalltalk (VisualWorks)und UML

AnforderungsanalyseSystemanalyseDesignImplementierungTestRoundtrip

Page 17: Smalltalk für Quereinsteiger

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)

Page 18: Smalltalk für Quereinsteiger

Teams - Java

Entwickler

VM

Werkzeuge

Laufzeitumgebung

Entwickler

VM

Werkzeuge

Laufzeitumgebung

Bibliothek in Ver-zeichnisstruktur und jar-Dateien

Versionsverwaltung (SourceSave,

PVCS,CVS, RCS,

...)

Page 19: Smalltalk für Quereinsteiger

Teams - VisualWorks

Entwickler

VM Image

Entwickler

VM Image

ChangeSetexport

impo

rt

Parcels

export

import

Page 20: Smalltalk für Quereinsteiger

Teams - VisualWorks

Entwickler

VM Image

Entwickler

VM Image

OracleDB2

MS-SQLPostgreSQL

Access

StORE-Repository

Page 21: Smalltalk für Quereinsteiger

Betriebssystemschnittstelle

*.h*.h*.h

Page 22: Smalltalk für Quereinsteiger

Datenbankenschnittstellen

Database

JDBC

SUN JDOToplink

Database

EXDI

ObjectLensGLORP

Datenbank-schnittstelle

OR-Mapping

VisualWorksJava

Page 23: Smalltalk für Quereinsteiger

Web - Basisdienste

• HTTP Client• FTP Client• IMAP Client• IMAP Mailbox• POP3 Client• POP3 Mailbox• SMTP Client• URI / URL Support• XML Support

Page 24: Smalltalk für Quereinsteiger

Web - Smalltalk ServerPages

<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<% 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-8859-1"></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>

Page 25: Smalltalk für Quereinsteiger

Web - Smalltalk ServerPages

Page 26: Smalltalk für Quereinsteiger

Web - Smalltalk ServerPages

Page 27: Smalltalk für Quereinsteiger

<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@ taglib uri="file:formel.tld" prefix="formel" %>

<html><head><title>Computed factorials</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>List of all factorials up to <formel:getParameterValue parameter="count" /> <p><formel:factorial parameter="count" /><p></body></html>

Web - Smalltalk ServerPages

Page 28: Smalltalk für Quereinsteiger

Web - Smalltalk ServerPages

Page 29: Smalltalk für Quereinsteiger

Web - Smalltalk ServerPages

Page 30: Smalltalk für Quereinsteiger

Web - Smalltalk Servlets

VisualWave ApplicationServer

HTTPServlet

Web Server

HTTP Request(POST)

ToyzInput

service: aServletRequest response: aServletResponse

doPost: aServletRequest response: aServletResponse

Marty Hall: Core Servlets and JavaServer Pages

Page 31: Smalltalk für Quereinsteiger

Web - Application Server

VisualWave ApplicationServer

TinyHTTPServer

HTTP Request

HTTP Request

CGI Fast CGI

Web Server(Apache, IIS, ...)

ISAPI

Page 32: Smalltalk für Quereinsteiger

Web-Services

VisualWorks als Web-Services Client

UDDIServer

SOAPServer

UDDIRequest

WSDLResponse

SOAPRequest

SOAPResponse

Page 33: Smalltalk für Quereinsteiger

Smalltalk to SmalltalkKommunikation

OpenTalk

Distributed Smalltalk(DST)

CORBAIBM Component BrokerBorland VisiBrokerIONA OrbixWebORBacus ...

CORBA

Distribution - CORBA - RMI

Java VisualWorks

Portable Object Adaptor

Basic Object Adaptor

Java to Java Kommunikation

RMI Remote Browsing Remote DebuggingRemote Development

CORBA