7dfa55cee936be3661ad3b91a7842f8a.ppt
- Количество слайдов: 97
Softwarekrise “Weichware” und kein zu nehmen (nicht) ernst Ende ? Hans-Jürgen Hoffmann TU Darmstadt 9. Januar 2004 Vortrag bei Firma H. -J. Hoffmann, 9. Jan. 2004 Programmiersprachen und Übersetzer © 2004 H. -J. Hoffmann 1
Wie fing alles an ? • Es war einmal. . . • Computer brauchen Programme • Programme brauchen Programmierer - oder vornehmer: Software-Ingenieure - 1968 1973 1997 Donald Knuth (1968): The Art of Computer Programming Und was ist mit Computer Science ? H. -J. Hoffmann, 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-Shop-Gewerbe oder Informations-Technologie IT H. -J. Hoffmann, 9. Jan. 2004 4
Ü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 5
Ü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 6
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, Visual. Works/Visual. Age, 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 7
I believe that many of the systems we build today in Java would be better built in Smalltalk and Gemstone. Martin Fowler, 2003 vo n Turm e atz für d cht ? Ers i lon in S Baby et: E. Samm Jean 1969 n 1982 2004 ++ Java is a lightly-statically-typed, simple version of Smalltalk Und nach 2004 ? Noch besseres ? with the syntax of the 'C' family. Chi. Mu Corporation, 2000 H. -J. Hoffmann, 9. Jan. 2004 8
Mit Programmiersprachen zu Objekten - IIa Ein erster Denkanstoß: Über “Objektorientiertheit” und Umfang einer Sprachspezifikation. Wittgenstein: Was sich rein imperativ überhaupt sagen läßt, • Algol 60 CACM 6 (1963), 1 - 17 (!) läßt 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 (Ada 95) - wer hat sich schon ans Zählen 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 • Visual. Basic (fand ich nicht, schätzungsweise) über 500 Seiten • C# ECMA Standard, 2 nd edition, 2002, 490 Seiten • Ist(u. a. ) Komplexität die 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 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 12
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 Ja, z. B. Smalltalk • Gibt es das ? H. -J. Hoffmann, 9. Jan. 2004 13
Ü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 14
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. 4 GL-Lösungen / “Open source”-Ansatz • Qualitätsanforderung (insbesondere in sicherheitskritischen Anwendungen) H. -J. Hoffmann, 9. Jan. 2004 15
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, 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 16
H. -J. Hoffmann, 9. Jan. 2004 17
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) Immer wieder viel versprochen ! Inferenz (z. B. F. L. Bauer et al. ) (modifizierendes) Wiederverwenden Und eingehalten ? 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 18
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 19
J. J. Garrett: The Elements of User Experience; 2003, New Riders • Betrachtet wird WWW als Software. Schnittstelle und als • Hypertext-System. Starke Betonung der Benutzungsanforderungen ! H. -J. Hoffmann, 9. Jan. 2004 20
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 21
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 22
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 23
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 zt ! terstüt un H. -J. Hoffmann, 9. Jan. 2004 24
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 25
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 - Web. Sphere® MQ family -. . . • (Schlagworte überall dabei) H. -J. Hoffmann, 9. Jan. 2004 26
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 27
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_. html mit interessanten Vergleichsdaten (Stand Mai 2002) und Bemerkungen wie: “. . . Visual. Age Smalltalk has. . . expressive power written in itself and yet is very close in overall productivity to. . . 4 GL`s” H. -J. Hoffmann, 9. Jan. 2004 28
4 GL ge isual A V IBM´s or <== at Gener Man entschuldige die schlechte Qualität. 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 n lliarde Mi kt eitpun , Z Bezug aum der ( itr und Ze ar) g unkl un Schätz H. -J. Hoffmann, 9. Jan. 2004 30
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 ? } bis zu ¾ der • Validierung, Zertifizierung (à la TÜV) Entwicklungs • Wartung ? kosten ! • Versionskontrolle / Evolution ? • 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 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 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 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 ? tzt bis zu hä n , man sc Übrigens ntwicklungskoste E ! 5 % der 4 eraktion” t H. -J. Hoffmann, 9. Jan. 2004 in die “In gehen 33
Ein Einschub Haben Sie schon einmal http: //www. siemens. de/index. jsp anzusehen versucht: • bei Net. Scape 4. 78 => Fehlanzeige ! • bei Internet Explorer => (wenn’s 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/readstep 2. html Alles nur Beispiele ! H. -J. Hoffmann, 9. Jan. 2004 34
das ann man K n? noch lese den ! der 6. 0 zu la t Rea uch, Acroba Vers iter ! r ging’s we lglos, Hie er erfo (letztlich ab 6. 0 bei da Acrobat icht lädt) indows 95 n W H. -J. Hoffmann, 9. Jan. 2004 35
Test bei http: //www. Web. Site. Optimization. com/ Microsoft SAP Total objects Total images Total CSS Total size Total script HTML size Images size Script size CSS size A A A W A - W W G A A G W Westernacher Web. Site. Optimization Acrobat TUD PÜ e. Bay Web. de TUD Inf W W A W W - A G W - W W W A W W - H. -J. Hoffmann, 9. Jan. 2004 W G G W W G - - G A G - - G G W W - - W A G Gratulation G - W Warnung A Achtung 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 speed or cost or performance; it will be a question of complexity Jan Baan, SAP competitor, ~1999 International Space Station 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 Visual. Studio. Net, Microsoft Developer Network Journal, issue 27 ) H. -J. Hoffmann, 9. Jan. 2004 38
Und, schließlich, was halten Sie von dieser Aussage ? NZZ, 31. 12. 2003 H. -J. Hoffmann, 9. Jan. 2004 39
Es gibt keine Ausrede ! Wilfred J. Hansen: User engineering principles for interactive systems; Fall Joint Computer Conference, vol. 39, 1971 (!), page 528 Man entschuldige die schlechte Qualität. H. -J. Hoffmann, 9. Jan. 2004 40
Interaktion wo man hinschaut ! II 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 ? H. -J. Hoffmann, 9. Jan. 2004 41
H. -J. Hoffmann, 9. Jan. 2004 42
Interaktion wo man hinschaut ! III 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 ! H. -J. Hoffmann, 9. Jan. 2004 43
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 E-commerce shopping Finding company “About us” info Investor relation area PR area Subscribing to E-mail Average 45 % 56 % 63 % 70 % 73 % 78 % 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 ! IIIa 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 !! ) H. -J. Hoffmann, 9. Jan. 2004 45
H. -J. Hoffmann, 9. Jan. 2004 46
http: //www-3. ibm. com/ibm/easy/eou_ext. nsf/Publish/650 10. Nov. 2003 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/show. Pattern. php? pattern. ID=corporate http: //time-tripper. com/uipatterns/index. php? page=Toplevel_Navigation http: //www. designpattern. lu. unisi. ch/index. htm H. -J. Hoffmann, 9. Jan. 2004 <== ACM-SIGWEB ! 48
Interaktion wo man hinschaut ! V 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 H. -J. Hoffmann, 9. Jan. 2004 49
H. -J. Hoffmann, 9. Jan. 2004 50
Ü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 51
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 52
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 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 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 55
In einer seriösen IT-Firma geht es so sicher nicht zu. Oder ? H. -J. Hoffmann, 9. Jan. 2004 56
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 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 orientation and allows poor discipline (. . . ). This is manifested ammierung Of in many ways. gr methods and primiro course, not everything is an object, particularly -classes, ne te OO P mei en konsequ everyit, um introspection and thotive types. This, along , with r messy h übe "final” classes, nke ! micexceptions die Geleg nhewith lltalk! Dafrustrating. . . ” at se damnednchecked e make working S Java very Ma b Ich nutzforward, gierestep ma hentwo stepszu propa one n. back - Ryan Davis: e. Java. zu sp c u z http: //www. zenspider. com/Languages/Java/index. html Wahl da ige z eina lot of. . . frustrations of C++, but doesn't go far enough in my “Java fixes 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
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 59
Entwurfsmuster aller Art I Schematisierte Beschreibung bewährter Entwurfseinheiten, was gehört dazu — nach Gamma et al. — (u. a. ): • • • Implementierung Bezeichung / Name • Möglichkeit der Implement. Problem / Zielsetzung (!) (in C++ oder Smalltalk) Motivation • bekannte Verwendung (!) Anwendbarkeit • Beziehung zu anderen Struktur (!) Mustern angesprochene Klassen usw. In welchem Wissensgebiet Art des Zusammenwirkens erreichtes Ziel / Zielabwägung gibt es dies nicht ? Beispiel aus Projektplanung H. -J. Hoffmann, 9. Jan. 2004 60
Entwurfsmuster aller Art II Aus Serge Demeyer et al. : Object-oriented reengineering patterns; Morgan Kaufman Publ, 2003 ging leider nicht größer ! H. -J. Hoffmann, 9. Jan. 2004 61
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 62
Qualität im Vordergrund (? ) - II Model driven architecture® • Initiative der OMG • Modell, Metamodell, Modelltransformation • Ziel, evolutionäre Änderungen werden stets im Modell / Spezifikation vollzogen • Ziel, Implementierung folgt aus. Transformation, automatisch (? ) • Generierend ? Aspektorientiert ? H. -J. Hoffmann, 9. Jan. 2004 63
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 Neuester “hype” (Fort(Ein alter Traum : ) • Test vs. Validation vs. Verifikation schritt in die richtige MSIL ? ), Komplexität Richtung==> UNCOL • 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 practices 2003 -03 -16 UML is UNCOL Upcoming release of UML 2 will generate interest in "model driven architecture" or 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 J 2 EE, 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
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 66
Prentice-Hall 1996 H. -J. Hoffmann, 9. Jan. 2004 67
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 68
http: //www-3. ibm. com/ibm/easy/eou_ext. nsf/Publish/650 10. Nov. 2003 ilt G uc a hie h !!! r H. -J. Hoffmann, 9. Jan. 2004 69
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 70
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 H. -J. Hoffmann, 9. Jan. 2004 71
Smaller, More Evolvable Software: An Introduction to the Demeter Method Karl J. Lieberherr ”: alton s/ in “Orig mework m Northeastern meter etc. tialks/fra University / De über /demeter g ortraof earch College Computer Science V einem. edu/res n ien voccs. neu ol lieber@ccs. neu. edu/www. ccs. neu. edu/home/lieber Hier F //www. p: t htt o. D. pp ubs/L
Qualität 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 repräsentieren dabei einzelne Softwareobjekte, z. B. Klassen oder Packages, und die Kanten des Graphen verdeutlichen Beziehungen zwischen diesen Softwareobjekten, z. B. Vererbungsbeziehungen oder Methodenaufrufe. Zusätzlich werden weitere Eigenschaften der Softwareobjekte 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 73
Qualität 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 Bildschirm-Arbeitsfläche Aufrufbeziehungen unter Komponenten Ludger Martin, Diss. TUD PÜ, 2003, siehe http: //www. notamusica. de/index. php? id=2 aus 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
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 Momente Künstler beim WWW-Entwurf ? H. -J. Hoffmann, 9. Jan. 2004 77
Und, immer in Erinnerung behalten: Qualität kostet ! Qualität 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 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 80
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 81
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 82
Versuch einer Zusammenfassung I • • • Über was habe ich nicht gesprochen ? “Hartware” (hardware). . . Hoffentlich nicht in “Denglisch” und Die Kostenfrage (kaum) “Abkürzungskauderwelsch”. . . 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/W 98/Dellen/ (Gegenüberstellung 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 —. . . ; Addison-Wesley, 1995 • Sherman R. Alpern et al. : The design patterns Smalltalk companion; Addison-Wesley, 1998 • Jacob Nielsen 14 -tägige 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 seriösen IT-Firma geht es so sicher nicht zu. Oder ? H. -J. Hoffmann, 9. Jan. 2004 86
Dank für die Einladung, bei Ihnen zu sprechen H. -J. Hoffmann, 9. Jan. 2004 87
Kontakt Univ. -Prof. em. Dr. -Ing. Hans-Jürgen Hoffmann Technische Universität Darmstadt Fachbereich Informatik Fachgebiet Programmiersprachen und Übersetzer Wilhelminenstr. 7, 64283 Darmstadt Tel 06151 -163410 Sekr. Tel. 06151 -166230, Fax 06151 -166229 E-Post: HJHoffmann@ACM. org (u. a. ) H. -J. Hoffmann, 9. Jan. 2004 88
Falls in einer Diskussion erwünscht Material dazu H. -J. Hoffmann, 9. Jan. 2004 89
Warum eigentlich nicht Smalltalk? • Interpretierend ? • Fehlende Typisierung ! • Dynamische Typisierung ? • Mehrfaches Erben ? • Nicht aktuell ? • Stabil ? • Kein Support ? • Erfahrene Programmierer ? Falsch ! (wie Java) Falsch, OO ist getypt ! Ist das bei OO wirklich fehl am Platz ? Notwendig ? Naja ! Da sind Sie nicht auf dem Laufenden ! Entschieden “Ja” ! Nicht schlechter / nicht besser ! Stimmt, die fehlen, leider ! Also, ruhig weiter mit Java ! (Raucher hören auch nicht auf !) H. -J. Hoffmann, 9. Jan. 2004 90
Warum eigentlich nicht Smalltalk? • Unterschiede zu Java (syntaktisch), siehe: http: //www. chimu. com/publications/ Java. Smalltalk. Syntax. 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, 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/roadshow 2003/ downloads/Georg. Heeg-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. htm American Express Bell Atlantic BMW Chrysler Deutsche Bahn AG Deutsche Bank Disney Ericsson Radio Systems Federal Reserve Board Fed. Ex 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 H. -J. Hoffmann, 9. Jan. 2004 Wells Fargo 93
H. -J. Hoffmann, 9. Jan. 2004 94
H. -J. Hoffmann, 9. Jan. 2004 95
Ist d as e in “Sm ==> allta lker ”? H. -J. Hoffmann, 9. Jan. 2004 96
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 H. -J. Hoffmann, 9. Jan. 2004 97


