Kein Folientitel - h-j-hoffmann.de

Kein Folientitel - h-j-hoffmann.de

Softwarekrise Weichware und ernst kein zu Ende ? (nicht) nehmen Hans-Jrgen Hoffmann TU Darmstadt 9. Januar 2004 Vortrag bei Firma H.-J. Hoffmann, 9. Jan. 2004 Programmiersprach en und bersetzer

2004 H.-J. Hoffmann 1 Wie fing alles an ? Es war einmal ... Computer brauchen Programme Programme brauchen Programmierer - oder vornehmer: Software-Ingenieure - 196 8 197 3 199 7 Donald Knuth (1968):

The Art of Computer Programming Und was ist mit Computer H.-J. Hoffmann, Science ? 9. Jan. 2004 Oktober 1968 2 H.-J. Hoffmann, 9. Jan. 2004 3 Wie fing alles an ? Es war einmal ... Computer brauchen Programme Programme brauchen Programmierer - oder vornehmer:

Software-Ingenieure - z.B. * Computer-ShopGewerbe oder InformationsTechnologie IT H.-J. Hoffmann, 9. Jan. 2004 4 ber was will ich (ernster) reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte

H.-J. Hoffmann, 9. Jan. 2004 5 ber was werde ich jetzt reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 6 Mit Programmiersprachen zu Objekten -I Was ist unter dem Begriff Objekt zu verstehen ? OO die bliche Abkrzung fr 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 Anstze ! OO bei Lisp, OO bei Prolog, OO bei ??? ? H.-J. Hoffmann, 9. Jan. 2004 7 I believe that many of the systems we build today in Java would be better built in Smalltalk and Gemstone. Martin Fowler, 2003 en d

r f l on Ersatz y b a B n o v m r Tu ? t h c i S in

t: e m m a S Jean E. 1969 198 2 + 2004 + Java is a lightly-statically-typed, simple version of Und nach 2004 ? Noch besseres Smalltalk with the syntax of the 'C' family. ChiMu H.-J. Hoffmann, 9. Jan. 2004 Corporation, 2000

? 8 Mit Programmiersprachen zu Objekten - IIa Ein erster Denkansto: ber Objektorientiertheit und Umfang einer Sprachspezifikation . Wittgenstein: Was sich rein imperativ berhaupt sagen lt, Algol 60 CACM 6 (1963), 1 - 17 (!) lt sich klar sagen ... 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 H.-J. Hoffmann, 9. Jan. 2004 9 Mit Programmiersprachen zu Objekten - IIb Ein erster Denkansto: ber Objektorientiertheit und Umfang einer Sprachspezifikation objektorientiert, aber hybrid Ada (Ada95) - wer hat sich schon ans Zhlen gemacht ? >1000 Seiten C++ Stroustrup 1986, 330 Seiten

neuer, Stroustrup 1997 - 2000, >1000 Seiten Java Gosling 1996 / 2000, 544 Seiten bzw. Flanagan um 450 Seiten VisualBasic (fand ich nicht, schtzungsweise) ber 500 Seiten C# ECMA Standard, 2nd edition, 2002, 490 Seiten (u.a.) Ist die Komplexitt noch beherrscht ? H.-J. Hoffmann, 9. Jan. 2004 10 H.-J. Hoffmann, 9. Jan. 2004 11

Mit Programmiersprachen zu Objekten - IIIa Der zweite Denkansto: Modellierung fr OO Realitt <=> OO-Modellierung ? Objekte der Realitt stehen in Beziehungen zueinander, statisch beschreibend, dynamisch durch Kommunikation Die Realitt (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-untersttzte Modellierung H.-J. Hoffmann, 9. Jan. 2004 12

Mit Programmiersprachen zu Objekten - IIIb Der zweite Denkansto: Modellierung fr 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 + Leistungsfhige, integrierte Basisumgebung / Klassenhierarchie fr Systemklassen + Nahtlos integrierbare Anwendungsumgebung / -klassen + Offen fr Bilden von Rahmenprogrammen und Komponenten Gibt es das ? Ja, z.B. Smalltalk H.-J. Hoffmann, 9. Jan. 2004 13

ber was werde ich jetzt reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 14 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - I Wegwerfprogramme / Standardprogramme / hoch- und hchstfordernde Anwendungsprogramme

Alleinprogrammierer (wenig ausgebildet, arbeitet fr sich) Alleinprogrammierer (ausgebildet, arbeitet im Auftrag) Programmieren in berschaubarer Gruppe Programmieren in nicht berschaubarer Gruppe, Globalisierung der Programmentwicklung Die sog. 4GL-Lsungen / Open source-Ansatz Qualittsanforderung (insbesondere in sicherheitskritischen Anwendungen) H.-J. Hoffmann, 9. Jan. 2004 15 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - IIa

Wasserfallmodell von W.W. Royce, 1970 Spriralmodell von B.W. Boehm et al., 1984 Prototyp (von was ?) Vormachen (z. B. B. Myers 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 auswhlendes Zusammensetzen (deployment) H.-J. Hoffmann, 9. Jan. 2004 16 H.-J. Hoffmann, 9. Jan. 2004

17 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - IIb Wasserfallmodell von W.W. Royce, 1970 Spiralmodell von B.W. Boehm et al., 1984 Vormachen (z.B. B. Myers Peridot) Immer wieder Inferenz (z.B. F.L. Bauer et al.) viel (modifizierendes) Wiederverwenden versprochen ! Wiederverwenden, wie von OO angeboten Und

Extreme programming, eingehalten ? generative Programmierung, aspect-oriented development Verordnete Modelle (z.B. V-Modell, ...) Komponenten und auswhlendes Zusammensetzen (deployment) H.-J. Hoffmann, 9. Jan. 2004 18 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - IIIa Entwurf von WWW-Anwendungen Prototyp (von was ?) Evolutionr Anpassen an neue/genderte Anforderungen (tgliches 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 19 J.J. Garrett: The Elements of User Experience; 2003, New Riders Betrachtet wird WWW als SoftwareSchnittstelle und als HypertextSystem. Starke Betonung der H.-J. Hoffmann, 9. Jan. 2004

20 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - IIIb Entwurf von WWW-Anwendungen Prototyp (von was ?) Evolutionr Anpassen an neue/genderte Anforderungen (tgliches 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 21 B. Beier, M.W. Vaughan:

Man entschuldige die schlechte Qualitt. The Bulls Eye: A Framework for Web Application User Interface Design Guidelines; Proc. CHI 2003, Schemata, 489 - 496 Schablonen, Muster, ... H.-J. Hoffmann, 9. Jan. 2004 22 Entwurfsparadigmen, darberhinaus - vom Wasserfall zu den evolutionren Komponenten - V Programmierumgebung zur Entwurfsuntersttzung - allgemein Programmierumgebung zur Entwurfsuntersttzung

- speziell, an verwendetes Paradigma gekoppelt Programmierumgebung zur Entwurfsuntersttzung - von A bis O, vom Beginn bis zum Ende Produktivitt ? Validierung, Zertifizierung ( la TV) Wartung ? Versionskontrolle / Evolution ? Software als globales Produkt ! Rechte und Pflichten ? H.-J. Hoffmann, 9. Jan. 2004 23 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - Vb Programmierumgebung zur Entwurfsuntersttzung - von A bis O, vom Beginn bis zum Ende Gibt es das ? Als Beispiele: - Analyst - ... l Visuel tzt !

t s r e t n u H.-J. Hoffmann, 9. Jan. 2004 24 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - Vc Programmierumgebung zur Entwurfsuntersttzung - 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 25 Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten - Vd Programmierumgebung zur Entwurfsuntersttzung - 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 26

Entwurfsparadigmen, darberhinaus - vom Wasserfall zu den evolutionren Komponenten - VI Programmierumgebung zur Entwurfsuntersttzung - allgemein Programmierumgebung zur Entwurfsuntersttzung - speziell, an verwendetes Paradigma gekoppelt Programmierumgebung zur Entwurfsuntersttzung - von A bis O, vom Beginn bis zum Ende Produktivitt ? Validierung, Zertifizierung ( la TV) Wartung ? Versionskontrolle / Evolution ? Software als globales Produkt ! Rechte und Pflichten ? H.-J. Hoffmann, 9. Jan. 2004 27 Produktivitt ? Welches Ma ? - Lines of code - Halstead measure - Function points (u.a. Funktionalitt ausgedrckt in

einem logical source statement ) - u.a. Eine Studie von Ed Klimas http://www.lineaengineering.com/Resources/ Productivity_/productivity_.html mit 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 28 4GL <== Age ual s

i V s IBM tor a r e n Ge Man entschuldige die schlechte Qualitt. H.-J. Hoffmann, 9. Jan. 2004 29 Status 80% of IT projects are late, over budget, lack essential functionality, or are never delivered 28% of IT projects just flat fail

representing more than $81 Billion in losses en d r a i l l Mi g, (Bezu kt und n Zeitpu m der u Zeitra ng zu Scht H.-J. Hoffmann, 9. Jan. 2004 30

Entwurfsparadigmen, darberhinaus - vom Wasserfall zu den evolutionren Komponenten - VI Programmierumgebung zur Entwurfsuntersttzung - allgemein Programmierumgebung zur Entwurfsuntersttzung - speziell, an verwendetes Paradigma gekoppelt Programmierumgebung zur Entwurfsuntersttzung - von A bis O, vom Beginn bis zum Ende Produktivitt ? Validierung, Zertifizierung ( la TV) } bis zu der Wartung ? Entwicklungs Versionskontrolle / Evolution ? kosten ! Software als globales Produkt ! Rechte und Pflichten ? H.-J. Hoffmann, 9. Jan. 2004 31 ber was werde ich jetzt reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall

zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 32 Interaktion wo man hinschaut ! I Welche Anwendung wird nicht interaktiv betrieben ? Einmal so in Raum gestellt: Keine ! Benutzer / Bediener (/ einer in der Freizeit / ein Spieler) Gebrauchstauglichkeit Wer kennt und hlt 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 ? zu s i b t z t ch s n a m , en s t n s e

o g k i s r g b n k lu c i w t n E r ! n o i

t k 45 % de a r Inte e i d H.-J. Hoffmann, 9. Jan. 2004 33 n i gehen Ein Einschub Haben Sie schon einmal http://www.siemens.de/index.jsp anzusehen versucht: bei NetScape 4.78 => Fehlanzeige !

bei Internet Explorer => (wenns kommt) Flimmerkasten ! Oder http://cms.lufthansa.com/fly/de/de/index Oder http://reiseauskunft.bahn.de/bin/query.exe/d Oder http://www.adobe.de/products/acrobat/readstep2.html Alles nur Beispiele ! H.-J. Hoffmann, 9. Jan. 2004 34

da s n a m n n Ka n? noch lese 6.0 zu r e d a e R t a ro b Versuch, Ac laden !

Hier gings weiter ! be r (letztlich a Acrobat a d , s lo lg fo er 6.0 bei 5 nicht Windows 9 ldt) H.-J. Hoffmann, 9. Jan. 2004 35

Test bei http://www.WebSiteOptimization.com/ Microsoft Westernacher WebSiteOptimization SAP Acrobat eBay Web.de Inf Total objects Total images Total CSS Total size Total script HTML size Images size Script size CSS size

A A A A A W A - W W G A A G W W W W W W

W A W W - A G W - W W W A W W - H.-J. Hoffmann, 9. Jan. 2004 W

W G A G G W W AG TUD P TUD G G G G G - G G G

- Gratulation W Warnung A Achtung W W G A G W W G 36 Was halten Sie von diesem Motto ? H.-J. Hoffmann, 9. Jan. 2004 37

Und was halten Sie von diesen Zitaten ? Leonardo da Vinci, 1452 - 1519 Simplicity is the ultimate sophistication Friedrich Schiller, 1759 - 1805 Einfachheit ist das Resultat der Reife Bill Raduchel, ~1999 ( Chief Strategy Officer, Sun Microsystems ) The challenge over the next 20 years will not be International speed Space Station or cost or performance; it will be a question of complexity Jan Baan, SAP competitor, ~1999 Our enemy is complexity, and its our goal to kill it Dave Moss, Manager Quality Programs

ISS, Wardrop, 38 H.-J. Hoffmann, 9. Jan. 2004 2001 Und, schlielich, was halten Sie von dieser Aussage ? H.-J. Hoffmann, 9. Jan. 2004 NZZ, 31.12.2003 39 Es gibt keine Ausrede ! Wilfred J.Hansen: User engineering principles

for interactive systems; Fall Joint Computer Conference, vol. 39, 1971 (!), page 528 H.-J. Hoffmann, 9. Jan. 2004 Man entschuldige die schlechte Qualitt. 40 Interaktion wo man hinschaut ! Interaktiv betriebene Anwendungen Geschulte Personen als Benutzer / Bediener Und die Masse der Laien als ernste Endbenutzer? Stress ! Frustration ! Demotivation ! Stndige berraschung ! Plattformunabhngigkeit / Ausfallsicherheit 24 Stunden, tglich Gestaltungsrichtlinien (wieder gefragt: Wer kennt sie und hlt sich dran ?)

Verantwortungsvolle Software-Abnahme, gibt es die ? H.-J. Hoffmann, 9. Jan. 2004 41 II H.-J. Hoffmann, 9. Jan. 2004 42 Interaktion wo man hinschaut ! Internet / WWW als (groe) 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 spter) Interkulturell Eine ungeheuere Herausforderung fr Entwickler ! H.-J. Hoffmann, 9. Jan. 2004 43 III http://www.useit.com/alertbox/20031124.html Extranet, 159 websites Success rate defined by users ability to accomplish task Task Success rate Web-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, errorproneness as important than success rate (!) Alertbox has 10 million page views per year ! H.-J. Hoffmann, 9. Jan. 2004 44 Interaktion wo man hinschaut ! Internet / WWW als (groe) 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 spter)

Interkulturell Eine ungeheuere Herausforderung fr Entwickler ! (und doch wagt sich fast jeder daran !! ) H.-J. Hoffmann, 9. Jan. 2004 45 IIIa H.-J. Hoffmann, 9. Jan. 2004 46 http://www-3.ibm.com/ibm/easy/eou_ext.nsf/ 10. Nov. 2003 Publish/650 H.-J. Hoffmann, 9. Jan. 2004 47 Interaktion wo man hinschaut !

IV Ein Interaktionsmuster als Beispiel: Corporate site , Einstieg ber Men links siehe http://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 SIGWEB ! H.-J. Hoffmann, 9. Jan. 2004 <== ACM48 Interaktion wo man hinschaut ! 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 darber htte ich gerne gezeigt (vielleicht bleibt am Schlu noch Zeit, erinnern Sie mich bitte dran) James Orwell: 1984 H.-J. Hoffmann, 9. Jan. 2004 49 V H.-J. Hoffmann, 9. Jan. 2004 50 ber was werde ich jetzt reden ?

Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 51 Gibt es (immer noch) die SoftwareKrise ? I Antworten wir einmal mit Nein! Was wurde verbessert ? Wissenschaftliche Beschftigung mit der Problematik, bernahme in die praktische Arbeit (?) Verwenden von Standard-Software Prinzip less is more findet immer mehr Anhnger Ausbildungsstand hher Nicht endendes (endend wollendes) Krisengerede kommt ins Gerede Verstndnis fr ein Motto Software fr den Menschen ! H.-J. Hoffmann, 9. Jan. 2004

52 Gibt es (immer noch) die SoftwareKrise ? II Antworten wir einmal mit ja! Was knnten Grnde sein ? Wer kein Bastler ist, soll den ersten Stein werfen ! Mangelnde Abstimmung zwischen Auftraggeber und Auftragnehmer Sich verschiebende Zielvorgabe whrend einer SoftwareEntwicklung bzw. whrend des Einsatzes (oft weder durch Auftraggeber noch Auftragnehmer zu vertreten, z.B. staatliche Einwirkung) Die Genies ! Und die Mchte-gern-Genies ! (Weiter) steigende Kosten verhindern Abhilfe Ausbildungsmngel, boomende Software-Industrie Und insbesondere bei interaktiven Anwendungen ==> H.-J. Hoffmann, 9. Jan. 2004

53 Es ist nicht nur die Softwarekrise ? Nein! Es ist auch eine Gestaltungskrise ! H.-J. Hoffmann, 9. Jan. 2004 54 ber was werde ich jetzt reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 55

In einer serisen IT-Firma geht es so sicher nicht zu. Oder ? H.-J. Hoffmann, 9. Jan. 2004 56 Qualitt im Vordergrund (?) - Ia Spezifikation vor Implementierung und ber Lebensdauer nachgetragen ? Projektbegleitung durch unabhngige Experten, Validierung durch eine Art TV 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 57 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 ing many run e i m m

ways. Of course, not everything is an object, particularly classes, a r r og P O O e t en with "final methods and primi-tive types.nThis, classes, very ualong e q n i e e s

m o k m r t, u exceptions betho-se i e , h messy introspection h and damned checked make n e! c e

i k g n m e l a t e a D G b ! e k n i l a Java veryh frustrating e d ...

llt a z t a u workingMwith m n S . c n I e er step back hen.two steps uforward, gione a p o r p

- Ryan Davis: zu specJava uz z a d l h a http://www.zenspider.com/Languages/Java/index.html einzige W 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 H.-J. Hoffmann, 9. Jan. 2004 58 Qualitt im Vordergrund (?) -

Ib Spezifikation vor Implementierung und ber Lebensdauer nachgetragen ? Projektbegleitung durch unabhngige Experten, Validierung durch eine Art TV 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 59 Entwurfsmuster aller Art

I Schematisierte Beschreibung bewhrter Entwurfseinheiten, was gehrt dazu nach Gamma et al. (u.a.): Implementierung Mglichkeit der Implement. Bezeichung / Name (in C++ oder Smalltalk) Problem / Zielsetzung (!) bekannte Verwendung (!) Motivation Beziehung zu anderen Anwendbarkeit Mustern

Struktur (!) angesprochene Klassen usw.In welchem Art des Zusammenwirkens Wissensgebiet gibt es dies nicht ? erreichtes Ziel / Zielabwgung Beispiel aus H.-J. Hoffmann, 9. Jan. 2004 60 Projektplanung Entwurfsmuster aller Art II Aus Serge Demeyer et al.: Object-oriented reengineering patterns; Morgan Kaufman Publ, 2003 ging leider nicht grer ! H.-J. Hoffmann, 9. Jan. 2004

61 Qualitt im Vordergrund (?) - Ic Spezifikation vor Implementierung und ber Lebensdauer nachgetragen ? Projektbegleitung durch unabhngige Experten, Validierung durch eine Art TV 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

62 Qualitt im Vordergrund (?) - II Model driven architecture Initiative der OMG Modell, Metamodell, Modelltransformation Ziel, evolutionre nderungen werden stets im Modell /

Spezifikation vollzogen Ziel, Implementierung folgt ausTransformation, automatisch (?) Generierend ? Aspektorientiert ? H.-J. Hoffmann, 9. Jan. 2004 63 Qualitt im Vordergrund (?) - Id Spezifikation vor Implementierung und ber Lebensdauer nachgetragen ? Projektbegleitung durch unabhngige Experten, Validierung durch eine Art TV ISO 9000 / Gestaltungs-Knowhow Geeignete Strukturvisualisierung geeignet ? Neuester hype

Konsequente OO-Programmierung (Ein alter Traum (Fort-schritt in die :) Test vs. Validation vs. Verifikationrichtige MSIL ==> Richtung ?), UNCOL Komplexitt Entwurfsmuster aller Art beherrscht ? Model driven architecture ? Komponententechnologie (bis hin zu .NET ?) H.-J. Hoffmann, 9. Jan. 2004 64 short notes, journal software, systems, engineering practice 2003-03-16 UML is UNCOL Upcoming release of UML 2 will generate interest in

"model driven architecture" or MDA. MDA has to be one of the most ambitious ideas from software engineering. It envisions development process as creation and refinement of models expressed in UML. Architects will provide UML models as input to new tools that support UML 2, and the tools will generate code for implementation technologies like J2EE, or .NET. In other words, UML 2 and its tools are programming languages and their compilers taken to higher level of abstraction to bridge the gap between business and IT. Right model means ? quality software. UML is UNCOL. Aus: http://notes.antville.org/stories/321170/ H.-J. Hoffmann, 9. Jan. 2004 65 Qualitt im Vordergrund (?) - III

Stehen Gtekriterien zur Verfgung ? Ja ! z.B. Fehlende allgemeine Akzeptanz von Gtekriterien fr (- insbesondere - interaktiv gebrauchte) Software Individualitt insbesondere bei interaktiven Anwendungen Zu komplexe Strukturen (selbst IBM warnt, siehe spter !) Mangelnde Konsequenz, einen OO-Ansatz integriert durchzuhalten ... Hilft Konzentration auf groe Entwickler ? ... H.-J. Hoffmann, 9. Jan. 2004 66 Prentice-Hall 1996 H.-J. Hoffmann, 9. Jan. 2004 67

Qualitt im Vordergrund (?) - IIIa Stehen Gtekriterien zur Verfgung ? Fehlende allgemeine Akzeptanz von Gtekriterien fr (- insbesondere - interaktiv gebrauchte) Software Individualitt insbesondere bei interaktiven Anwendungen Zu komplexe Strukturen (selbst IBM warnt, ) Mangelnde Konsequenz, einen OO-Ansatz integriert durchzuhalten ... Hilft Konzentration auf groe Entwickler ? ... H.-J. Hoffmann, 9. Jan. 2004 68

http://www-3.ibm.com/ibm/easy/eou_ext.nsf/ 10. Nov. 2003 Publish/650 !! ! r e i h h c u a t Gil H.-J. Hoffmann, 9. Jan. 2004 69 Qualitt im Vordergrund (?) -

IIIa Stehen Gtekriterien zur Verfgung ? Fehlende allgemeine Akzeptanz von Gtekriterien fr (- insbesondere - interaktiv gebrauchte) Software Individualitt insbesondere bei interaktiven Anwendungen Zu komplexe Strukturen Mangelnde Konsequenz, einen OO-Ansatz rein und integriert durchzuhalten Hilft Konzentration auf groe Entwickler ? Anregungen (Beispiele) ! H.-J. Hoffmann, 9. Jan. 2004 70 Qualitt 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 H.-J. Hoffmann, 9. Jan. 2004 71 Smaller, More Evolvable Software: An Introduction to the Demeter Method Karl J. Lieberherr c. im

t e r et e NortheasterneUniversity m e s/ k D r r o w b ame g r f a r /

t s Vorof Computer eScience alk t / m r e College et ein m e n d o / v rch ien a

l e o s F e r u/r n : d [email protected]/www.ccs.neu.edu/home/lieber o e t . l u a rigin cs.ne O w.c

w w / / http: D.ppt /Lo Qualitt im Vordergrund - V Prof. Dr. Oliver Deussen, Univ. Konstanz (u.a.), siehe http://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 reprsentieren dabei einzelne Softwareobjekte, z.B. Klassen oder Packages, und die Kanten des Graphen verdeut-lichen Beziehungen zwischen diesen Softwareobjekten, z.B. Vererbungsbeziehungen oder Methodenaufrufe. Zustzlich werden weitere Eigenschaften der Softwareob-jekte auf visuelle Attribute des Graphen abgebildet. Zweck: Beurteilung der Qualitt von Software und deren Ver-nderung im Lebenszyklus (Computerzeitung, 17. Nov. 2003)

Beispiele siehe nchste Folie !. Was halten Sie von visueller Untersttzung ? H.-J. Hoffmann, 9. Jan. 2004 73 Qualitt lt. Deussen: ... die Objekte einer Klasse liegen eng beieinander ... H.-J. Hoffmann, 9. Jan. 2004 74 Visualisierung von Komponenten, z.B. simulierte Visualisierung auf der

BildschirmArbeitsflche Aufrufbeziehung en unter Komponenten aus Ludger Martin, Diss. TUD P, 2003, siehe http://www.notamusica.de/index.php?id=2 H.-J. Hoffmann, 9. Jan. 2004 75 Es ist nicht nur die Softwarekrise ? Nein! Es ist auch eine Gestaltungskrise ! Und wer ist meist vergessen ? Der Endbenutzer H.-J. Hoffmann, 9. Jan. 2004 76

Qualitt im Vordergrund - VI Was halten Sie von visueller Untersttzung ? Zeichnung die Sprache des Ingenieurs auch des Software-Ingenieurs ? - Mathematik dabei nicht vergessen! - Programmablaufplan, Struktogramm, ..., fr OO z.B. A. Wassermans Software through pictures (um 1990), ..., UML, ... Vereinheitlichung Technisches Zeichnen als Lehrstoff Integration mit Entwicklungswerkzeugen, drag-anddrop Kognitionswissenschaftliche Momente Knstler beim WWW-Entwurf ? H.-J. Hoffmann, 9. Jan. 2004 77 Und, immer in Erinnerung

behalten: Qualitt kostet ! Qualitt braucht Infrastruktur H.-J. Hoffmann, 9. Jan. 2004 78 H.-J. Hoffmann, 9. Jan. 2004 79 ber was werde ich jetzt reden ? Mit Programmiersprachen zu Objekten Entwurfsparadigmen - vom Wasserfall zu den evolutionren Komponenten Interaktion wo man hinschaut ! Gibt es (immer noch) die Software-Krise ? Qualitt im Vordergrund (?) Retrospektive, nochmals Objekte H.-J. Hoffmann, 9. Jan. 2004 80

Retrospektive, nochmals Objekte Identitt / Individualitt Eigenschaften / zusammengenommen als Zustand (einschl. Festlegen des Anfangszustand) Handlungsmglichkeiten aus sich heraus Handlungsmglichkeiten als Reaktion auf ueren 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 81 I Retrospektive, nochmals Objekte

II OO in Reinkultur <=> hybrider Ansatz Dynamik <=> Statik Kapselung von Daten und Verhalten von Daten Faktorieren von Eigenschaften in Erbgngen Polymorphie Austausch von Objekten mit der Auenwelt OO eingebaut in Rahmenprogrammen, in Entwurfsmustern, in Komponenten Effektivitt der Software-Entwicklung / Effizienz bei der Programmausfhrung (man erinnere sich an frher Gezeigtes)

H.-J. Hoffmann, 9. Jan. 2004 82 Versuch einer Zusammenfassung I ber was habe ich nicht gesprochen ? Hartware (hardware) ... Hoffentlich nicht in Denglisch und Die Kostenfrage (kaum) Abkrzungskauderwels

... ch Ausbildung / Weiterbildung ... Ist die Weichware aus dem Kindesalter hinaus, aus dem Handwerk ? Erwachsen ? Allgegenwart Sicherheit / Privatheit H.-J. Hoffmann, 9. Jan. 2004 83 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, siehe

http://sern.ucalgary.ca/courses/cpsc/451/W98/Dellen/ (Gegenberstellung von C++ / Java zu Smalltalk) H.-J. Hoffmann, 9. Jan. 2004 84 Versuch einer Zusammenfassung IIb Wenn Sie mit mir nicht zufrieden sind, was kann ich empfehlen ? Eric Gamma et al.; Design patterns ...; AddisonWesley, 1995 Sherman R. Alpern et al.: The design patterns Smalltalk companion; Addison-Wesley, 1998 Jacob Nielsen 14-tgige Alertbox http://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 85

In einer serisen IT-Firma geht es so sicher nicht zu. Oder ? H.-J. Hoffmann, 9. Jan. 2004 86 Dank fr die Einladung, bei Ihnen zu sprechen H.-J. Hoffmann, 9. Jan. 2004 87 Kontakt Univ.-Prof. em. Dr.-Ing. Hans-Jrgen Hoffmann Technische Universitt Darmstadt Fachbereich Informatik

Fachgebiet Programmiersprachen und bersetzer Wilhelminenstr. 7, 64283 Darmstadt Tel 06151-163410 Sekr. Tel. 06151-166230, Fax 06151-166229 E-Post: [email protected] (u.a.) H.-J. Hoffmann, 9. Jan. 2004 88 Falls in einer Diskussion erwnscht Material dazu H.-J. Hoffmann, 9. Jan. 2004 89 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 hren auch nicht auf !) H.-J. Hoffmann, 9. Jan. 2004 90 Warum eigentlich nicht Smalltalk? Unterschiede zu Java (syntaktisch), siehe: http://www.chimu.com/publications/ JavaSmalltalkSyntax.html Einige vergleichende Erklrungen und Beispiele, siehe: http://daitanmarks.sourceforge.net/or/squeak/ squeak_tutorial-3.html

Ein tabellarischer Vergleich mit C++ und Java, siehe http://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 91 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 92 Firmen, die Smalltalk einsetzen (Auszug) Siehe http://www.stic.org/companies/companies.htm American Express Bell Atlantic

BMW Chrysler Deutsche Bahn AG Deutsche Bank Disney Ericsson Radio Systems Federal Reserve Board FedEx Hewlett-Packard Honda IBM Corporation Lucent Technologies Mitsubishi Morgan Stanley Motorola 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

93 H.-J. Hoffmann, 9. Jan. 2004 94 H.-J. Hoffmann, 9. Jan. 2004 95 Ist d a Sm s ein a llt a == > lker ? H.-J. Hoffmann, 9. Jan. 2004 96

Visuelle Untersttzung 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. Programmablaufplne, Struktogramme, semantische Netze, CAD, UML-(u.. )Graphiken, drag-and-drop, Windows-desktop und Geklicke darauf siehe Jrgen F.H. Winkler: Visualisierung in der SoftwareEntwicklung; 20. GI-Jahrestagung, IFB 257, 1990, 40 - 68 H.-J. Hoffmann, 9. Jan. 2004

97

Recently Viewed Presentations

  • Title of Talk - University of Richmond

    Title of Talk - University of Richmond

    Hall B: Software Utilization Gerard . Gilfoyle. University of Richmond. 12 GeV Upgrade Software Review Jefferson Lab. November 25-26, 2013
  • Reading Incentive Programs - casenex.com

    Reading Incentive Programs - casenex.com

    Reading Incentive Programs ... Accelerated Reader Book Adventure Book It Great Books Read Across America Read to Succeed Scholastic Reading Counts Reading Incentive Programs What does this this this topic have to do with our school? ... can check students'...
  • Color Theory - COURSES

    Color Theory - COURSES

    When used together with warm colors like yellow or red, blue can create high-impact, vibrant designs; for example, blue-yellow-red is a perfect color scheme for a superhero. The Meaning of Purple Purple combines the stability of blue and the energy...
  • Dionysos and Ariadne. University of Mississipi Collection

    Dionysos and Ariadne. University of Mississipi Collection

    Dionysus marriage with Ariadne, after she is deserted by Theseus. Nature of Dionysiac Religion Dionysus not only the god of wine. He is referred to as "blossom-bringer, fruit-bringer". Significance of his marriage to Ariadne (=very holy one). Ariadne was deserted...
  • Deploying ASP.NET Core Applications

    Deploying ASP.NET Core Applications

    Publishing to Linux with Docker. ASP.NET Core images on Docker Hub.NET Core images coming soon. New Docker for Windows/Mac Beta. Easily build, assemble and deploy Docker based apps
  • Dolor: Lorem Ipsum Consequetar lipsub dolor admenti

    Dolor: Lorem Ipsum Consequetar lipsub dolor admenti

    What does biodiversity mean to you? Let's draw a mind map! Page 5 Teacher Zone nature.ca/education Biodiversity Index A biodiversity index is a way of measuring biodiversity. Scientists use different biodiversity indices to measure diversity, and no single one will...
  • Diwygio TGAU Cymraeg Ail Iaith Mehefin 2016 Cymwysterau

    Diwygio TGAU Cymraeg Ail Iaith Mehefin 2016 Cymwysterau

    TGAU CymraegIaith, a safonwchCymraeg (IaithGyntaf ac Ail Iaith) eisioeswedieudiwygio. Cefndir. Background. Review of 14 -19 Qualifications. New qualifications introduced between 2015 and 2017. GCSE Welsh Language, and A level Welsh (First and Second Language)
  • What&#x27;s New in Windows Server 2016

    What's New in Windows Server 2016

    Bring Windows Server containers to the Docker ecosystem to expand the reach of both developer communities. Docker Engine. Docker Engine for Windows Server containers will be developed under the Docker open source project. Docker client. Windows customers will be able...