Upload
berlin-wollenhaupt
View
107
Download
2
Embed Size (px)
Citation preview
H.-J. Hoffmann, 9. Jan. 2004 1
“Weichware”(nicht) ernst zu nehmen
Hans-Jürgen Hoffmann
9. Januar 2004Vortrag bei Firma
© 2004 H.-J. Hoffmann
TU Darmstadt
Programmiersprachenund Übersetzer
Softwarekriseund kein Ende ?
H.-J. Hoffmann, 9. Jan. 2004 2
Wie fing alles an ?
• Es war einmal ...• Computer brauchen
Programme• Programme brauchen
Programmierer- oder vornehmer: Software-Ingenieure -
Donald Knuth (1968):The Art of Computer Programming
Und was ist mit Computer Science ?
Oktober 1968
1968
1973
1997
H.-J. Hoffmann, 9. Jan. 2004 3
H.-J. Hoffmann, 9. Jan. 2004 4
Wie fing alles an ?
• Es war einmal ...• Computer brauchen
Programme• Programme brauchen
Programmierer- oder vornehmer: Software-Ingenieure -
Computer-Shop-Gewerbe
oder
Informations-Technologie IT
*z.B.
H.-J. Hoffmann, 9. Jan. 2004 5
Über was will ich (ernster) reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 6
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 7
Mit Programmiersprachen zu Objekten - I
Was ist unter dem Begriff Objekt zu verstehen ?OO die übliche Abkürzung für “objektorientiert” / ”object oriented”
• Cobol, Fortran, PL/I, ... - schon objektorientiert ? Nein !
• Algol 60, Simula 67, Basic, Pascal, Algol 68, Modula, Ada, C, Oberon, u.a. ... - Wurzeln !
• Simula 67, Smalltalk 80, CLOS, C++, Objective-C, Eiffel, Java, VisualWorks/VisualAge, VB, C#, S#, u.a. ...
- suchet, so werdet Ihr finden !• Skriptsprachen (JCL ... Perl ... Python ... JScript ... S# ...)
OO in Reinkultur ? / Hybride Ansätze !OO bei Lisp, OO bei Prolog, OO bei ??? ?
H.-J. Hoffmann, 9. Jan. 2004 8
1982
Jean E. Sammet:
1969
Und nach 2004 ? Noch besseres ?
I believe that many of the systems we build today in Java would bebetter built in Smalltalk and Gemstone. Martin Fowler, 2003
Java is a lightly-statically-typed, simple version of Smalltalkwith the syntax of the 'C' family. ChiMu
Corporation, 2000
Ersatz für den
Turm von Babylon
in Sicht ?
2004 ++
H.-J. Hoffmann, 9. Jan. 2004 9
Mit Programmiersprachen zu Objekten - IIa
Ein erster Denkanstoß: Über “Objektorientiertheit” undUmfang einer Sprachspezifikation .
rein imperativ• Algol 60 CACM 6 (1963), 1 - 17 (!)
• PL/I IBM Handbuch 1965+, 161 Seiten
• Pascal Wirth 1973, Pascal Report, 34 Seiten
• C Ritchie 1968, C Ref. Manual, 31 Seiten
objektorientiert• Smalltalk -> reines OO
Goldberg 1983, 585 Seiten / Brauer 2003, 300 Seiten /viele, kaum mehr als 12 Seiten (letztere ohne Klassenbeschreibungen)
• (u.a., z.B. Eiffel, Beta, CLOS ...) -> reines OO
Wittgenstein: Was sichüberhaupt sagen läßt,läßt sich klar sagen ...
H.-J. Hoffmann, 9. Jan. 2004 10
Mit Programmiersprachen zu Objekten - IIb
Ein erster Denkanstoß: Über “Objektorientiertheit” und Umfang einer Sprachspezifikation
objektorientiert, aber hybrid• Ada (Ada95) - wer hat sich schon ans Zählen gemacht ? >1000 Seiten
• C++ Stroustrup 1986, 330 Seitenneuer, Stroustrup 1997 - 2000, >1000 Seiten
• Java Gosling 1996 / 2000, 544 Seiten bzw.Flanagan um 450 Seiten
• VisualBasic (fand ich nicht, schätzungsweise) über 500 Seiten
• C# ECMA Standard, 2nd edition, 2002, 490 Seiten
• (u.a.)Ist die Komplexitätnoch beherrscht ?
H.-J. Hoffmann, 9. Jan. 2004 11
H.-J. Hoffmann, 9. Jan. 2004 12
Mit Programmiersprachen zu Objekten - IIIa
Der zweite Denkanstoß: Modellierung für OO
• Realität <=> OO-Modellierung ?• Objekte der Realität stehen in Beziehungen zueinander,
statisch beschreibend, dynamisch durch Kommunikation• Die Realität (die “Welt”) ist Änderungen unterworfen • Beobachtung/Feststellung: Meist fehlende Struktur ! (leider)
• Überlegenheit der OO-Modellierung(und nachfolgend entsprechend reine OO-Programmierung !)
• Formale Modellierung, “Spezifikationssprache”• “Universal Modelling Language”, UML, u.a.• Visuell-unterstützte Modellierung
H.-J. Hoffmann, 9. Jan. 2004 13
Mit Programmiersprachen zu Objekten - IIIb
Der zweite Denkanstoß: Modellierung für OO
• Voll-integrierte Entwicklungswerkzeuge (insbesondere,wenn interaktive Nutzung ansteht und Evolution zu erwarten ist):
• Spezifikationssprache und Programmiersprache als Einheit,robust, erweiterbar
+ Integriertes Entwicklungs- und Ablaufsystem+ Leistungsfähige, integrierte Basisumgebung /
Klassenhierarchie für Systemklassen+ Nahtlos integrierbare Anwendungsumgebung / -klassen+ Offen für Bilden von Rahmenprogrammen und Komponenten• Gibt es das ?
Ja, z.B. Smalltalk
H.-J. Hoffmann, 9. Jan. 2004 14
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 15
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - I
Wegwerfprogramme / Standardprogramme / hoch- und höchstfordernde Anwendungsprogramme
• Alleinprogrammierer (wenig ausgebildet, arbeitet für sich)
• Alleinprogrammierer (ausgebildet, arbeitet im Auftrag) • Programmieren in überschaubarer Gruppe• Programmieren in nicht überschaubarer Gruppe,
Globalisierung der Programmentwicklung• Die sog. 4GL-Lösungen / “Open source”-Ansatz• Qualitätsanforderung
(insbesondere in sicherheitskritischen Anwendungen)
H.-J. Hoffmann, 9. Jan. 2004 16
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - IIa
• Wasserfallmodell von W.W. Royce, 1970• Spriralmodell von B.W. Boehm et al., 1984• Prototyp (von was ?)
• Vormachen (z. B. B. Myer’s Peridot), Inferenz (z.B. F.L. Bauer et al.)
• (modifizierendes) Wiederverwenden• Wiederverwenden, wie von OO angeboten• Extreme programming• Generative Programmierung, Aspect-oriented development• Verordnete Modelle (z.B. V-Modell, ...)
• Komponenten und auswählendes Zusammensetzen(deployment)
H.-J. Hoffmann, 9. Jan. 2004 17
H.-J. Hoffmann, 9. Jan. 2004 18
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - IIb
• Wasserfallmodell von W.W. Royce, 1970• Spiralmodell von B.W. Boehm et al., 1984• Vormachen (z.B. B. Myer’s Peridot)
• Inferenz (z.B. F.L. Bauer et al.)
• (modifizierendes) Wiederverwenden• Wiederverwenden, wie von OO angeboten• Extreme programming,
generative Programmierung, aspect-oriented development
• Verordnete Modelle (z.B. V-Modell, ...)
• “Komponenten” und auswählendes Zusammensetzen(deployment)
Immer wieder viel versprochen !
Und eingehalten ?
H.-J. Hoffmann, 9. Jan. 2004 19
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - IIIa
Entwurf von WWW-Anwendungen
• Prototyp (von was ?)
• Evolutionär Anpassen an neue/geänderte Anforderungen(tägliches Brot ?)
• (klar strukturiertes) Entwurfsvorgehen bei Einschluß der interaktiven Benutzungssituation auf dem WWW,z.B. J.J. Garrett, 2003
• Sicherstellen von Konsistenz durch konsequentes Anwenden von Gestaltungsregeln,z.B. P. Beyer & M.W. Vaughan, 2003
H.-J. Hoffmann, 9. Jan. 2004 20
J.J. Garrett: The Elements of User Experience; 2003,New Riders
• Betrachtet wird WWW als Software-Schnittstelle und als
• Hypertext-System.
Starke Betonung der Benutzungsanforde-rungen !
H.-J. Hoffmann, 9. Jan. 2004 21
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - IIIb
Entwurf von WWW-Anwendungen
• Prototyp (von was ?)
• Evolutionär Anpassen an neue/geänderte Anforderungen(tägliches Brot ?)
• (klar strukturiertes) Entwurfsvorgehen bei Einschluß der interaktiven Benutzungssituation auf dem WWW,z.B. J.J. Garrett, 2003
• Sicherstellen von Konsistenz durch konsequentes Anwenden von Gestaltungsregeln,z.B. P. Beier & M.W. Vaughan
H.-J. Hoffmann, 9. Jan. 2004 22
B. Beier, M.W. Vaughan: Man entschuldige die schlechte
Qualität. The Bull’s Eye: A Framework for Web Application User Interface Design Guidelines; Proc. CHI 2003, 489 - 496
“Schemata”,“Schablonen”,“Muster”, ...
H.-J. Hoffmann, 9. Jan. 2004 23
Entwurfsparadigmen, darüberhinaus- vom Wasserfall
zu den evolutionären Komponenten - V
• “Programmierumgebung” zur Entwurfsunterstützung- allgemein -
• “Programmierumgebung” zur Entwurfsunterstützung- speziell, an verwendetes Paradigma gekoppelt -
• “Programmierumgebung” zur Entwurfsunterstützung- von A bis O, vom Beginn bis zum Ende
• Produktivität ?• Validierung, Zertifizierung (à la TÜV)
• Wartung ?• Versionskontrolle / Evolution ?• Software als globales Produkt ! Rechte und
Pflichten ?
H.-J. Hoffmann, 9. Jan. 2004 24
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - Vb
“Programmierumgebung” zur Entwurfsunterstützung
- von A bis O, vom Beginn bis zum Ende -• Gibt es das ?• Als Beispiele:
- Analyst- ...
Visuell
unterstützt !
H.-J. Hoffmann, 9. Jan. 2004 25
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - Vc
“Programmierumgebung” zur Entwurfsunterstützung
- von A bis O, vom Beginn bis zum Ende -• Gibt es das ?• Als Beispiele:
- Analyst- Software through Pictures
- ...
Architecture Component
Development™ (ACD)
H.-J. Hoffmann, 9. Jan. 2004 26
Entwurfsparadigmen- vom Wasserfall
zu den evolutionären Komponenten - Vd
“Programmierumgebung” zur Entwurfsunterstützung- von A bis O, vom Beginn bis zum Ende -
• Gibt es das ?• Als Beispiele:
- Analyst- Software through Pictures- WebSphere® MQ family
- ...• (Schlagworte überall dabei)
H.-J. Hoffmann, 9. Jan. 2004 27
Entwurfsparadigmen, darüberhinaus- vom Wasserfall
zu den evolutionären Komponenten - VI
• “Programmierumgebung” zur Entwurfsunterstützung- allgemein -
• “Programmierumgebung” zur Entwurfsunterstützung- speziell, an verwendetes Paradigma gekoppelt -
• “Programmierumgebung” zur Entwurfsunterstützung- von A bis O, vom Beginn bis zum Ende
• Produktivität ?• Validierung, Zertifizierung (à la TÜV)
• Wartung ?• Versionskontrolle / Evolution ?• Software als globales Produkt ! Rechte und
Pflichten ?
H.-J. Hoffmann, 9. Jan. 2004 28
Produktivität ?
• Welches Maß ?- Lines of code- Halstead measure- Function points (u.a. Funktionalität ausgedrückt in einem “logical source statement” )- u.a.
• Eine Studie von Ed Klimas http://www.lineaengineering.com/Resources/
Productivity_/productivity_.htmlmit interessanten Vergleichsdaten (Stand Mai 2002) und Bemerkungen wie: “... VisualAge Smalltalk has ... expressive power written in itself and yet is very close in overall productivity to ... 4GL`s”
H.-J. Hoffmann, 9. Jan. 2004 29
<== IBM´s Visual
Age G
enerator
4GL
Man entschuldige die schlechte Qualität.
H.-J. Hoffmann, 9. Jan. 2004 30
Status
– 80% of IT projects are late,over budget,lack essential functionality,or are never delivered
– 28% of IT projects just flat failrepresenting more than $81 Billion in losses
Milliarden
(Bezug,
Zeitpunkt und
Zeitraum der
Schätzung
unklar)
H.-J. Hoffmann, 9. Jan. 2004 31
Entwurfsparadigmen, darüberhinaus- vom Wasserfall
zu den evolutionären Komponenten - VI
• “Programmierumgebung” zur Entwurfsunterstützung- allgemein -
• “Programmierumgebung” zur Entwurfsunterstützung- speziell, an verwendetes Paradigma gekoppelt -
• “Programmierumgebung” zur Entwurfsunterstützung- von A bis O, vom Beginn bis zum Ende
• Produktivität ?• Validierung, Zertifizierung (à la TÜV)
• Wartung ?• Versionskontrolle / Evolution ?• Software als globales Produkt ! Rechte und
Pflichten ?
} bis zu ¾ der Entwicklungs- kosten !
H.-J. Hoffmann, 9. Jan. 2004 32
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 33
Welche Anwendung wird nicht interaktiv betrieben ?
Einmal so in Raum gestellt: Keine !
• Benutzer / Bediener (/ einer in der Freizeit / ein Spieler)
• Gebrauchstauglichkeit• Wer kennt und hält sich an ISO 9241 (bzw. EN
29241 und DIN 66234) ? (leider - wie oft bei Normen - nicht voll aktuell -)
• Und was machen trotzdem viele Entwickler daraus ?
Interaktion wo man hinschaut ! I
Übrigens, man schätzt bis zu
45 % der Entwicklungskosten
gehen in die “Interaktion” !
H.-J. Hoffmann, 9. Jan. 2004 34
Haben Sie schon einmalhttp://www.siemens.de/index.jspanzusehen versucht:• bei NetScape 4.78 => Fehlanzeige !• bei Internet Explorer => (wenn’s kommt) Flimmerkasten !
Oderhttp://cms.lufthansa.com/fly/de/de/index
Oderhttp://reiseauskunft.bahn.de/bin/query.exe/d
Oderhttp://www.adobe.de/products/acrobat/readstep2.html
Alles nur Beispiele !
Ein Einschub
H.-J. Hoffmann, 9. Jan. 2004 35
Hier ging’s
weiter !(letztlich aber
erfolglos, da Acrobat
6.0 bei
Windows 95 nicht
lädt)
Versuch, Acrobat Reader 6.0 zu
laden !
Kann man das
noch lesen ?
H.-J. Hoffmann, 9. Jan. 2004 36
Test bei http://www.WebSiteOptimization.com/
Total objects A W W - W W G G WTotal images A W W - W W G - WTotal CSS - G - - - G - - GTotal size A A W A W A G - ATotal script A A W - - G - - -HTML size A G A G A G G G GImages size W W W W W W G G WScript size A W W - W W - - WCSS size - W - - - A - - G
Microsoft Westernacher WebSiteOptimization SAP Acrobat TUD PÜ eBay Web.de TUD Inf
G GratulationW WarnungA Achtung
H.-J. Hoffmann, 9. Jan. 2004 37
Was halten Sie von diesem Motto ?
H.-J. Hoffmann, 9. Jan. 2004 38
Leonardo da Vinci, 1452 - 1519Simplicity is the ultimate sophistication
Friedrich Schiller, 1759 - 1805Einfachheit ist das Resultat der Reife
Bill Raduchel, ~1999 ( Chief Strategy Officer, Sun Microsystems )
The challenge over the next 20 years will not be speed
or cost or performance; it will be a question of complexity
Jan Baan, SAP competitor, ~1999 Our enemy is complexity, and it’s our goal to kill it
Dave Moss, Manager Quality Programs ISS, Wardrop, 2001
Keep it simple( in recognition of VisualStudio.Net, Microsoft Developer Network Journal,
issue 27 )
Und was halten Sie von diesen Zitaten ?
InternationalSpace Station
H.-J. Hoffmann, 9. Jan. 2004 39
Und, schließlich, was halten Sie von dieser Aussage ?
NZZ, 31.12.2003
H.-J. Hoffmann, 9. Jan. 2004 40
Es gibt keine Ausrede !
Wilfred J.Hansen: User engineering principlesfor interactive systems;Fall Joint ComputerConference, vol. 39,1971 (!), page 528
Man entschuldige die schlechte Qualität.
H.-J. Hoffmann, 9. Jan. 2004 41
Interaktiv betriebene Anwendungen
• Geschulte Personen als Benutzer / Bediener • Und die Masse der “Laien” als ernste Endbenutzer?• Stress ! Frustration ! Demotivation !
Ständige Überraschung !
• Plattformunabhängigkeit / Ausfallsicherheit• 24 Stunden, täglich
• Gestaltungsrichtlinien(wieder gefragt: Wer kennt sie und hält sich dran ?)
• Verantwortungsvolle Software-Abnahme, gibt es die ?
Interaktion wo man hinschaut ! II
H.-J. Hoffmann, 9. Jan. 2004 42
H.-J. Hoffmann, 9. Jan. 2004 43
Internet / WWW als (große) interaktive Anwendung
Kommt noch jemand daran vorbei ? Niemand !
• Als Benutzer werden Eigeninteressen verfolgt• Aber als Bediener ist es ein Job
• Gebrauchstauglichkeit ? Jacob Nielsen, 24. Nov. 2003
• Internet als Telekommikationseinrichtung (siehe später)
• Interkulturell
Eine ungeheuere Herausforderung für Entwickler !
Interaktion wo man hinschaut ! III
H.-J. Hoffmann, 9. Jan. 2004 44
http://www.useit.com/alertbox/20031124.html
Extranet, 159 websites• Success rate defined by
users’ ability to accomp-lish task
• Task Success rateWeb-based application 45 %E-commerce shopping 56 %Finding company 63 %“About us” info 70 %Investor relation area 70 %PR area 73 %Subscribing to E-mail 78 %
Average 65 %
Intranet• Measured success rate
75 %• (it is expected that)
users are trained (?)• (it is their job, hence)
users should be happy (!)• Time-on-task,
errorprone-ness as important than success rate (!)
Alertbox has10 million page views per year !
H.-J. Hoffmann, 9. Jan. 2004 45
Internet / WWW als (große) interaktive Anwendung
Kommt noch jemand daran vorbei ? Niemand !
• Als Benutzer werden Eigeninteressen verfolgt• Aber als Bediener ist es ein Job
• Gebrauchstauglichkeit ?
• Internet als Kommunikationseinrichtung (siehe später)
• Interkulturell
Eine ungeheuere Herausforderung für Entwickler !(und doch wagt sich fast jeder daran !! )
Interaktion wo man hinschaut ! IIIa
H.-J. Hoffmann, 9. Jan. 2004 46
H.-J. Hoffmann, 9. Jan. 2004 47
http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/650 10. Nov. 2003
H.-J. Hoffmann, 9. Jan. 2004 48
Ein Interaktions-muster alsBeispiel:“Corporatesite” ,Einstieg
überMenü links
Interaktion wo man hinschaut ! IV
siehehttp://www.welie.com/patterns/showPattern.php?patternID=corporate
http://time-tripper.com/uipatterns/index.php?page=Toplevel_Navigation
http://www.designpattern.lu.unisi.ch/index.htm <== ACM-SIGWEB !
H.-J. Hoffmann, 9. Jan. 2004 49
Telekommunikation nicht vergessen !
Man wird angerufen / angeschrieben !Man ist aber nicht vorbereitet !
Man will garnicht angerufen / angeschrieben werden !
• Ort und Zeit überspringen
• Mobiltelefon / elektronische Post, überall— mit WWW-Anwendung ! —
• Eine Glosse darüber hätte ich gerne gezeigt(vielleicht bleibt am Schluß noch Zeit, erinnern Sie mich bitte dran)
James Orwell: 1984
Interaktion wo man hinschaut ! V
H.-J. Hoffmann, 9. Jan. 2004 50
H.-J. Hoffmann, 9. Jan. 2004 51
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 52
Gibt es (immer noch) die Software-Krise ? I
Antworten wir einmal mit “Nein”! Was wurde verbessert ?
• Wissenschaftliche Beschäftigung mit der Problematik, Übernahme in die praktische Arbeit (?)
• Verwenden von Standard-Software• Prinzip “less is more” findet immer mehr Anhänger• Ausbildungsstand höher• Nicht endendes (endend wollendes) Krisengerede
kommt ins Gerede• Verständnis für ein Motto “Software für den
Menschen” !
H.-J. Hoffmann, 9. Jan. 2004 53
Gibt es (immer noch) die Software-Krise ? II
Antworten wir einmal mit “ja”! Was könnten Gründe sein ?
• Wer kein Bastler ist, soll den ersten Stein werfen !• Mangelnde Abstimmung zwischen Auftraggeber und
Auftragnehmer• Sich verschiebende Zielvorgabe während einer Software-
Entwicklung bzw. während des Einsatzes(oft weder durch Auftraggeber noch Auftragnehmer zu vertreten, z.B. staatliche Einwirkung)
• Die “Genies” ! Und die “Möchte-gern-Genies” !• (Weiter) steigende Kosten verhindern Abhilfe• Ausbildungsmängel, boomende Software-Industrie• Und insbesondere bei interaktiven Anwendungen ==>
H.-J. Hoffmann, 9. Jan. 2004 54
Es ist nicht nur die Softwarekrise ?
Nein! Es ist auch eineGestaltungskrise !
H.-J. Hoffmann, 9. Jan. 2004 55
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 56
In einer seriösenIT-Firma geht esso sicher nicht zu.Oder ?
H.-J. Hoffmann, 9. Jan. 2004 57
Qualität im Vordergrund (?) - Ia
• Spezifikation vor Implementierung— und über Lebensdauer nachgetragen ? —
• Projektbegleitung durch unabhängige Experten, Validierung durch eine Art TÜV
• ISO 9000 / Gestaltungs-Knowhow• Geeignete Strukturvisualisierung — “geeignet” ?
— • Konsequente OO-Programmierung• Test vs. Validation vs. Verifikation• Entwurfsmuster aller Art• Model driven architecture ?• Komponententechnologie (bis hin zu .NET ?)
H.-J. Hoffmann, 9. Jan. 2004 58
Konsequente OO-Programmierung
• C++ / Java / C# / ... <== Mehr oder weniger hybrid• Smalltalk / Eiffel / Beta / CLOS ... OO in Reinkultur z.B.
- Tony Weddle: Java Allows Poor Discipline http://www.whysmalltalk.com/articles/weddle/javadiscipline.htm“... my main problem with Java is that it can't support true object orienta-tion and allows poor discipline (...). This is manifested in many ways. Of course, not everything is an object, particularly classes, methods and primi-tive types. This, along with "final” classes, very messy introspection and tho-se damned checked exceptions make working with Java very frustrating ...”- Ryan Davis: Java two steps forward, one step backhttp://www.zenspider.com/Languages/Java/index.html“Java fixes a lot of ... frustrations of C++, but doesn't go far enough in my opinion. They didn't take enough from Smalltalk, even though they took quite a bit from it.”- Jeffrey D. Panici: Smalltalk is More Object-Oriented than Java http://www.whysmalltalk.com/articles/panici/smalloojava.htm
Man bat mich, über konsequente OO-Programmierung
zu spechen. Ich nutze die Gelegenheit, um meine
einzige Wahl dazu zu propagieren. Smalltalk! Danke !
H.-J. Hoffmann, 9. Jan. 2004 59
Qualität im Vordergrund (?) - Ib
• Spezifikation vor Implementierung— und über Lebensdauer nachgetragen ? —
• Projektbegleitung durch unabhängige Experten, Validierung durch eine Art TÜV
• ISO 9000 / Gestaltungs-Knowhow• Geeignete Strukturvisualisierung — “geeignet” ?
—• Konsequente OO-Programmierung• Test vs. Validation vs. Verifikation• Entwurfsmuster aller Art• Model driven architecture ?• Komponententechnologie (bis hin zu .NET ?)
H.-J. Hoffmann, 9. Jan. 2004 60
Entwurfsmuster aller Art I
Schematisierte Beschreibung bewährter Entwurfseinheiten,
was gehört dazu — nach Gamma et al. — (u.a.):
• Bezeichung / Name• Problem / Zielsetzung (!)• Motivation• Anwendbarkeit• Struktur (!)• angesprochene Klassen usw.• Art des Zusammenwirkens• erreichtes Ziel / Zielabwägung
• Implementierung• Möglichkeit der Implement. (in C++ oder Smalltalk)• bekannte Verwendung (!)• Beziehung zu anderen Mustern
In welchem Wissensgebietgibt es dies nicht ?Beispiel aus Projektplanung
H.-J. Hoffmann, 9. Jan. 2004 61
Entwurfsmuster aller Art II
AusSerge Demeyer et al.:Object-orientedreengineering patterns;Morgan Kaufman Publ,2003
ging leider nicht größer !
H.-J. Hoffmann, 9. Jan. 2004 62
Qualität im Vordergrund (?) - Ic
• Spezifikation vor Implementierung— und über Lebensdauer nachgetragen ? —
• Projektbegleitung durch unabhängige Experten, Validierung durch eine Art TÜV
• ISO 9000 / Gestaltungs-Knowhow• Geeignete Strukturvisualisierung — “geeignet” ?
— • Konsequente OO-Programmierung• Test vs. Validation vs. Verifikation• Entwurfsmuster aller Art• Model driven architecture ?• Komponententechnologie (bis hin zu .NET ?)
H.-J. Hoffmann, 9. Jan. 2004 63
Qualität im Vordergrund (?) - II
Model driven architecture®
• Initiative der OMG• Modell, Metamodell,
Modelltransformation• Ziel, evolutionäre
Änderungen werdenstets im Modell /Spezifikation vollzogen
• Ziel, Implementierungfolgt ausTransformation,automatisch (?)
• Generierend ? Aspektorientiert ?
H.-J. Hoffmann, 9. Jan. 2004 64
Qualität im Vordergrund (?) - Id
• Spezifikation vor Implementierung— und über Lebensdauer nachgetragen ? —
• Projektbegleitung durch unabhängige Experten, Validierung durch eine Art TÜV
• ISO 9000 / Gestaltungs-Knowhow• Geeignete Strukturvisualisierung — “geeignet” ?
—• Konsequente OO-Programmierung• Test vs. Validation vs. Verifikation• Entwurfsmuster aller Art• Model driven architecture ?• Komponententechnologie (bis hin zu .NET ?)
Neuester “hype” (Fort-schritt in die richtige Richtung ?), Komplexität beherrscht ?
(Ein alter Traum :)MSIL ==> UNCOL
H.-J. Hoffmann, 9. Jan. 2004 65
short notes, journal software, systems, engineering practices2003-03-16 UML is UNCOLUpcoming release of UML 2 will generate interest in
"model driven architecture" or MDA.MDA has to be one of the most ambitious ideas fromsoftware engineering. It envisions development process ascreation and refinement of models expressed in UML.Architects will provide UML models as input to new toolsthat support UML 2, and the tools will generate code forimplementation technologies like J2EE, or .NET. In otherwords, UML 2 and its tools are programming languages andtheir compilers taken to higher level of abstraction to bridgethe gap between business and IT. Right model meansquality software. UML is UNCOL.
Aus: http://notes.antville.org/stories/321170/
?
H.-J. Hoffmann, 9. Jan. 2004 66
Qualität im Vordergrund (?) - III
• Stehen “Gütekriterien” zur Verfügung ? Ja ! z.B.• Fehlende allgemeine Akzeptanz von Gütekriterien für
(- insbesondere - interaktiv gebrauchte) Software• “Individualität” insbesondere bei interaktiven Anwendungen• Zu komplexe Strukturen (selbst IBM warnt, siehe
später !)
• Mangelnde Konsequenz, einen OO-Ansatz integriert durchzuhalten
• ...• Hilft Konzentration auf “große” Entwickler ?• ...
H.-J. Hoffmann, 9. Jan. 2004 67
Prentice-Hall1996
H.-J. Hoffmann, 9. Jan. 2004 68
Qualität im Vordergrund (?) - IIIa
• Stehen “Gütekriterien” zur Verfügung ?• Fehlende allgemeine Akzeptanz von Gütekriterien für
(- insbesondere - interaktiv gebrauchte) Software• “Individualität” insbesondere bei interaktiven
Anwendungen• Zu komplexe Strukturen (selbst IBM warnt, )
• Mangelnde Konsequenz, einen OO-Ansatz integriert durchzuhalten
• ...• Hilft Konzentration auf “große” Entwickler ?• ...
H.-J. Hoffmann, 9. Jan. 2004 69
http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/650 10. Nov. 2003
Gilt auch hier !!
!
H.-J. Hoffmann, 9. Jan. 2004 70
Qualität im Vordergrund (?) - IIIa
• Stehen “Gütekriterien” zur Verfügung ?• Fehlende allgemeine Akzeptanz von Gütekriterien für
(- insbesondere - interaktiv gebrauchte) Software• “Individualität” insbesondere bei interaktiven
Anwendungen• Zu komplexe Strukturen• Mangelnde Konsequenz, einen OO-Ansatz rein und
integriert durchzuhalten
• Hilft Konzentration auf “große” Entwickler ?• Anregungen (Beispiele) !
H.-J. Hoffmann, 9. Jan. 2004 71
Qualität im Vordergrund - III
Prof. Dr. Karl Lieberherr, Northwestern University, Boston, (u.a.), siehe http://www.ccs.neu.edu/research/demeter/ bzw.http://www.ccs.neu.edu/home/lieber/demeter.html ” ´Do not talk to strangers`:Within a method, messages can only be sent to the following objects:
1. A parameter of the method, including the enclosing object (this or self); 1.1. For pragmatic reasons: a global object; 2. An immediate part object (computed or stored): 2.1 An object that a method called on the enclosing object returns,
including attributes of the enclosing object; 2.2 An element of a collection which is an attribute of the enclosing object; 3. An object created within the method.”
Literaturhinweis: K. Lieberherr: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns; PWS Publishing Company, ISBN: 0-534-94602-X, 1996
Smaller, More Evolvable Software: An Introduction to the
Demeter MethodKarl J. Lieberherr
Northeastern University
College of Computer Science
[email protected]/www.ccs.neu.edu/home/lieberHier Folien von einem Vortrag über Demeter etc. im
“Originalton”:
http://www
.ccs.neu.e
du/researc
h/demeter/
talks/
frameworks
/ubs/LoD.p
pt
H.-J. Hoffmann, 9. Jan. 2004 73
Qualität im Vordergrund - V
Prof. Dr. Oliver Deussen, Univ. Konstanz (u.a.), siehehttp://www.cgmi.inf.uni-konstanz.de/members/deussen.html
Die Struktur von objektorientierten Softwaresystemen kann mit Hilfe von Graphen visualisiert werden. Die Knoten des Graphen repräsentieren dabei einzelne Soft-wareobjekte, z.B. Klassen oder Packages, und die Kanten des Graphen verdeut-lichen Beziehungen zwischen diesen Softwareobjekten, z.B. Vererbungsbeziehungen oder Methodenaufrufe. Zusätzlich werden weitere Eigenschaften der Softwareob-jekte auf visuelle Attribute des Graphen abgebildet.
Zweck: “Beurteilung der Qualität von Software und deren Ver-änderung im Lebenszyklus” (Computerzeitung, 17. Nov. 2003)
Beispiele siehe nächste Folie !.
Was halten Sie von visueller Unterstützung ?
H.-J. Hoffmann, 9. Jan. 2004 74
Qualität lt. Deussen:”... die Objekte einer Klasseliegen eng beieinander ...”
H.-J. Hoffmann, 9. Jan. 2004 75
aus Ludger Martin, Diss. TUD PÜ, 2003, siehe http://www.notamusica.de/index.php?id=2
Visualisierung von Komponenten, z.B.
simulierte Visualisierung auf der Bildschirm-Arbeitsfläche
Aufrufbeziehungenunter Komponenten
H.-J. Hoffmann, 9. Jan. 2004 76
Es ist nicht nur die Softwarekrise ?
Nein! Es ist auch eineGestaltungskrise !
Und wer ist meist vergessen ?
Der Endbenutzer
H.-J. Hoffmann, 9. Jan. 2004 77
Qualität im Vordergrund - VI
Was halten Sie von visueller Unterstützung ?• Zeichnung die Sprache des Ingenieurs
auch des Software-Ingenieurs ? - Mathematik dabei nicht vergessen! -
• Programmablaufplan, Struktogramm, ..., für OO z.B.A. Wasserman´s Software through pictures (um 1990), ..., UML, ...
• Vereinheitlichung• Technisches Zeichnen als Lehrstoff • Integration mit Entwicklungswerkzeugen, drag-and-
drop
Kognitionswissenschaftliche MomenteKünstler beim WWW-Entwurf ?
H.-J. Hoffmann, 9. Jan. 2004 78
Und, immer in Erinnerung behalten:
Qualität kostet !
Qualität braucht Infrastruktur
H.-J. Hoffmann, 9. Jan. 2004 79
H.-J. Hoffmann, 9. Jan. 2004 80
Über was werde ich jetzt reden ?
• Mit Programmiersprachen zu Objekten
• Entwurfsparadigmen - vom Wasserfall
zu den evolutionären Komponenten -
• Interaktion wo man hinschaut !
• Gibt es (immer noch) die Software-Krise ?
• Qualität im Vordergrund (?)
• Retrospektive, nochmals Objekte
H.-J. Hoffmann, 9. Jan. 2004 81
Retrospektive, nochmals Objekte I
• Identität / Individualität• Eigenschaften / zusammengenommen als
Zustand (einschl. Festlegen des Anfangszustand)
• Handlungsmöglichkeiten aus sich heraus• Handlungsmöglichkeiten als Reaktion auf
äußeren Einfluß• Klassenbildung• Gemeinsamkeiten von Klassen, Hierarchiebildung
(als einfaches oder mehrfaches Erben - wie auch immer -)
• Klasse ebenfalls als Objekt, Metaklassen• Selbstreflexion / sprachliche Erweiterbarkeit
H.-J. Hoffmann, 9. Jan. 2004 82
Retrospektive, nochmals Objekte II
• OO in Reinkultur <=> hybrider Ansatz• Dynamik <=> Statik• Kapselung von Daten und Verhalten von Daten• Faktorieren von Eigenschaften in Erbgängen• Polymorphie• Austausch von Objekten mit der Außenwelt• OO eingebaut in Rahmenprogrammen,
in Entwurfsmustern, in Komponenten• Effektivität der Software-Entwicklung /
Effizienz bei der Programmausführung(man erinnere sich an früher
Gezeigtes)
H.-J. Hoffmann, 9. Jan. 2004 83
Versuch einer Zusammenfassung I
Über was habe ich nicht gesprochen ?
• “Hartware” (hardware)• ...• Die Kostenfrage (kaum)
• ...• Ausbildung / Weiterbildung• ...• Ist die “Weichware” aus dem Kindesalter
hinaus, aus dem “Handwerk” ? Erwachsen ?• Allgegenwart• Sicherheit / Privatheit
Hoffentlich nicht in“Denglisch” und“Abkürzungskauderwelsch”
H.-J. Hoffmann, 9. Jan. 2004 84
Versuch einer Zusammenfassung IIa
Wenn Sie mit mir nicht zufrieden waren,was kann ich empfehlen ?
• Ernst-Erich Doberkat; Das siebte Buch - Objektorientierung mit C++; Teubner-Verlag, 2000 (wer es gelesen hat, wird die Wiener Hofzwerge nicht mehr vergessen)
• Um 50 Folien zum Thema“Software Engineering Aspects of OO Programming”von Barbara Dellen, University of Calgary, siehehttp://sern.ucalgary.ca/courses/cpsc/451/W98/Dellen/(Gegenüberstellung von C++ / Java zu Smalltalk)
H.-J. Hoffmann, 9. Jan. 2004 85
Versuch einer Zusammenfassung IIb
Wenn Sie mit mir nicht zufrieden sind,was kann ich empfehlen ?
• Eric Gamma et al.; Design patterns — ...; Addison-Wesley, 1995
• Sherman R. Alpern et al.: The design patterns Smalltalk companion; Addison-Wesley, 1998
• Jacob Nielsen 14-tägige Alertboxhttp://www.useit.com/alertbox/
über Benutzungsschnittstellen-Gestaltung
Und zum ruhigen Nachlesen:http://www.informatik.tu-darmstadt.de/PU/docs/ ...
H.-J. Hoffmann, 9. Jan. 2004 86
In einer seriösenIT-Firma geht esso sicher nicht zu.Oder ?
H.-J. Hoffmann, 9. Jan. 2004 87
Dank für die Einladung,bei Ihnen zu sprechen
H.-J. Hoffmann, 9. Jan. 2004 88
Kontakt
Univ.-Prof. em. Dr.-Ing. Hans-Jürgen Hoffmann
Technische Universität DarmstadtFachbereich Informatik
Fachgebiet Programmiersprachen und Übersetzer
Wilhelminenstr. 7, 64283 DarmstadtTel 06151-163410
Sekr. Tel. 06151-166230, Fax 06151-166229E-Post: [email protected] (u.a.)
H.-J. Hoffmann, 9. Jan. 2004 89
Falls in einer Diskussion erwünscht
Material dazu
H.-J. Hoffmann, 9. Jan. 2004 90
Warum eigentlich nicht Smalltalk?
• Interpretierend ? Falsch ! (wie Java)• Fehlende Typisierung ! Falsch, OO ist getypt !• Dynamische Typisierung ? Ist das bei OO
wirklich fehl am Platz ?• Mehrfaches Erben ? Notwendig ? Naja !• Nicht aktuell ? Da sind Sie nicht auf
dem Laufenden !• Stabil ? Entschieden “Ja” !• Kein Support ? Nicht schlechter / nicht
besser !• Erfahrene Programmierer ? Stimmt, die fehlen, leider !
Also, ruhig weiter mit Java ! (Raucher hören auch nicht auf !)
H.-J. Hoffmann, 9. Jan. 2004 91
Warum eigentlich nicht Smalltalk?
• Unterschiede zu Java (syntaktisch), siehe:http://www.chimu.com/publications/JavaSmalltalkSyntax.html
• Einige vergleichende Erklärungen und Beispiele, siehe:http://daitanmarks.sourceforge.net/or/squeak/squeak_tutorial-3.html
• Ein tabellarischer Vergleich mit C++ und Java, siehehttp://www.outbacksoftware.com/oo/oolangcomp.html
• Ein neu herausgekommenes Lehrbuch:Johannes Brauer: Grundkurs Smalltalk - Objektorientierung von Anfang an; 2003, Vieweg-Verlag
• Smalltalk & .NET, Smalltalk & mobile Anwendung, siehe (z.B.):
http://www.cincomsmalltalk.com/roadshow2003/downloads/GeorgHeeg-Roadshow.ppt
H.-J. Hoffmann, 9. Jan. 2004 92
Allen B. Davis – Executive Director - Smalltalk Industry Council (OOPSLA 2002): "Smalltalk is by far the best programming language available. The Family of C programming languages has been evolving toward Smalltalk-like functionality for the past 25 years. Java is the most Smalltalk-like of the C family, removing the direct pointer manipulation of C++ and adding fully integrated garbage collection. Smalltalk provides a simpler syntax, consistency between class and instance behavior, much higher productivity and easier maintainability. This makes it the logical next choice for current Java developers and the logical choice for businesses interested in reducing their total cost of ownership for software systems. Smalltalk is well supported by many vendors including Cincom and IBM”
mehr über STIC: http://www.stic.org/
H.-J. Hoffmann, 9. Jan. 2004 93
Firmen, die Smalltalk einsetzen (Auszug)
Siehe http://www.stic.org/companies/companies.htmAmerican Express Bell Atlantic BMW Chrysler Deutsche Bahn AG Deutsche Bank Disney Ericsson Radio Systems Federal Reserve Board FedEx Hewlett-Packard Honda IBM CorporationLucent Technologies Mitsubishi Morgan StanleyMotorola Navy Research Laboratory SAP Siemens Information Systems Silicon Graphics Swedish Tax Administration Texas Instruments UPS
US Military Volkswagen Beetle Wells Fargo
H.-J. Hoffmann, 9. Jan. 2004 94
H.-J. Hoffmann, 9. Jan. 2004 95
H.-J. Hoffmann, 9. Jan. 2004 96
Ist das ein ==>“Smalltalker” ?
H.-J. Hoffmann, 9. Jan. 2004 97
Visuelle Unterstützung beim Programmieren ?
• Wer programmiert ?• Was ist zu programmieren ? Umfang ?• Nicht alles, was sich “visual” nennt, ist das auch !• Nur Bilder oder auch Text ?• Piktogramme (icons) zum Wiedererkennen
(Wirtshausschilder)
unter vielem z.B. Programmablaufpläne, Struktogramme,semantische Netze, CAD, UML-(u.ä. )Graphiken,
drag-and-drop, Windows-desktop und “Geklicke” darauf
• siehe Jürgen F.H. Winkler: Visualisierung in der Software-Entwicklung; 20. GI-Jahrestagung, IFB 257, 1990, 40 - 68