Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

H.-J. Hoffmann, 9. Jan. 20041 “Weichware” (nicht) ernst zu nehmen Hans-Jürgen Hoffmann 9. Januar 2004 Vortrag bei Firma © 2004 H.-J. Hoffmann TU Darmstadt.

Ähnliche Präsentationen


Präsentation zum Thema: "H.-J. Hoffmann, 9. Jan. 20041 “Weichware” (nicht) ernst zu nehmen Hans-Jürgen Hoffmann 9. Januar 2004 Vortrag bei Firma © 2004 H.-J. Hoffmann TU Darmstadt."—  Präsentation transkript:

1 H.-J. Hoffmann, 9. Jan. 20041 “Weichware” (nicht) ernst zu nehmen Hans-Jürgen Hoffmann 9. Januar 2004 Vortrag bei Firma © 2004 H.-J. Hoffmann TU Darmstadt Programmiersprachen und Übersetzer Softwarekrise und kein Ende ?

2 H.-J. Hoffmann, 9. Jan. 20042 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

3 H.-J. Hoffmann, 9. Jan. 20043

4 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.

5 H.-J. Hoffmann, 9. Jan. 20045 Ü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

6 H.-J. Hoffmann, 9. Jan. 20046 Ü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

7 H.-J. Hoffmann, 9. Jan. 20047 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 ??? ?

8 H.-J. Hoffmann, 9. Jan. 20048 1982 Jean E. Sammet: 1969 Und nach 2004 ? Noch besseres ? I believe that many of the systems we build today in Java would be better built in Smalltalk and Gemstone. Martin Fowler, 2003 Java is a lightly-statically-typed, simple version of Smalltalk with the syntax of the 'C' family. ChiMu Corporation, 2000 Ersatz für den Turm von Babylon in Sicht ? 2004 ++

9 H.-J. Hoffmann, 9. Jan. 20049 Mit Programmiersprachen zu Objekten - IIa Ein erster Denkanstoß: Über “Objektorientiertheit” und Umfang 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...

10 H.-J. Hoffmann, 9. Jan. 200410 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 Seiten neuer, 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ät noch beherrscht ?

11 H.-J. Hoffmann, 9. Jan. 200411

12 H.-J. Hoffmann, 9. Jan. 200412 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

13 H.-J. Hoffmann, 9. Jan. 200413 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

14 H.-J. Hoffmann, 9. Jan. 200414 Ü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

15 H.-J. Hoffmann, 9. Jan. 200415 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)

16 H.-J. Hoffmann, 9. Jan. 200416 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)

17 H.-J. Hoffmann, 9. Jan. 200417

18 H.-J. Hoffmann, 9. Jan. 200418 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 ?

19 H.-J. Hoffmann, 9. Jan. 200419 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

20 H.-J. Hoffmann, 9. Jan. 200420 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 !

21 H.-J. Hoffmann, 9. Jan. 200421 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

22 H.-J. Hoffmann, 9. Jan. 200422 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”,...

23 H.-J. Hoffmann, 9. Jan. 200423 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 ?

24 H.-J. Hoffmann, 9. Jan. 200424 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 !

25 H.-J. Hoffmann, 9. Jan. 200425 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)

26 H.-J. Hoffmann, 9. Jan. 200426 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)

27 H.-J. Hoffmann, 9. Jan. 200427 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 ?

28 H.-J. Hoffmann, 9. Jan. 200428 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: “... VisualAge Smalltalk has... expressive power written in itself and yet is very close in overall productivity to... 4GL`s”

29 H.-J. Hoffmann, 9. Jan. 200429 <== IBM´s Visual Age Generator 4GL Man entschuldige die schlechte Qualität.

30 H.-J. Hoffmann, 9. Jan. 200430 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 Milliarden (Bezug, Zeitpunkt und Zeitraum der Schätzung unklar)

31 H.-J. Hoffmann, 9. Jan. 200431 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 !

32 H.-J. Hoffmann, 9. Jan. 200432 Ü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

33 H.-J. Hoffmann, 9. Jan. 200433 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” !

34 H.-J. Hoffmann, 9. Jan. 200434 Haben Sie schon einmal http://www.siemens.de/index.jsp anzusehen versucht: bei NetScape 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/readstep2.html Alles nur Beispiele ! Ein Einschub

35 H.-J. Hoffmann, 9. Jan. 200435 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 ?

36 H.-J. Hoffmann, 9. Jan. 200436 Test bei http://www.WebSiteOptimization.com/ Total objects A W W - W W G G W Total images A W W - W W G - W Total CSS - G - - - G - - G Total size A A W A W A G - A Total script A A W - - G - - - HTML size A G A G A G G G G Images size W W W W W W G G W Script size A W W - W W - - W CSS size - W - - - A - - G Microsoft Westernacher WebSiteOptimization SAP Acrobat TUD PÜ eBay Web.de TUD Inf G Gratulation W Warnung A Achtung

37 H.-J. Hoffmann, 9. Jan. 200437 Was halten Sie von diesem Motto ?

38 H.-J. Hoffmann, 9. Jan. 200438 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 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 ? International Space Station

39 H.-J. Hoffmann, 9. Jan. 200439 Und, schließlich, was halten Sie von dieser Aussage ? NZZ, 31.12.2003

40 H.-J. Hoffmann, 9. Jan. 200440 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.

41 H.-J. Hoffmann, 9. Jan. 200441 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

42 H.-J. Hoffmann, 9. Jan. 200442

43 H.-J. Hoffmann, 9. Jan. 200443 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

44 H.-J. Hoffmann, 9. Jan. 200444 http://www.useit.com/alertbox/20031124.html Extranet, 159 websites Success rate defined by users’ ability to accomp- lish 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, errorprone- ness as important than success rate (!) Alertbox has 10 million page views per year !

45 H.-J. Hoffmann, 9. Jan. 200445 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

46 H.-J. Hoffmann, 9. Jan. 200446

47 H.-J. Hoffmann, 9. Jan. 200447 http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/650 10. Nov. 2003

48 H.-J. Hoffmann, 9. Jan. 200448 Ein Interaktions- muster als Beispiel: “Corporate site”, Einstieg über Menü links Interaktion wo man hinschaut ! IV 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 <== ACM-SIGWEB !

49 H.-J. Hoffmann, 9. Jan. 200449 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

50 H.-J. Hoffmann, 9. Jan. 200450

51 H.-J. Hoffmann, 9. Jan. 200451 Ü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

52 H.-J. Hoffmann, 9. Jan. 200452 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” !

53 H.-J. Hoffmann, 9. Jan. 200453 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 ==>

54 H.-J. Hoffmann, 9. Jan. 200454 Es ist nicht nur die Softwarekrise ? Nein! Es ist auch eine Gestaltungskrise !

55 H.-J. Hoffmann, 9. Jan. 200455 Ü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

56 H.-J. Hoffmann, 9. Jan. 200456 In einer seriösen IT-Firma geht es so sicher nicht zu. Oder ?

57 H.-J. Hoffmann, 9. Jan. 200457 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 ?)

58 H.-J. Hoffmann, 9. Jan. 200458 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 back http://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 !

59 H.-J. Hoffmann, 9. Jan. 200459 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 ?)

60 H.-J. Hoffmann, 9. Jan. 200460 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 Wissensgebiet gibt es dies nicht ? Beispiel aus Projektplanung

61 H.-J. Hoffmann, 9. Jan. 200461 Entwurfsmuster aller Art II Aus Serge Demeyer et al.: Object-oriented reengineering patterns; Morgan Kaufman Publ, 2003 ging leider nicht größer !

62 H.-J. Hoffmann, 9. Jan. 200462 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 ?)

63 H.-J. Hoffmann, 9. Jan. 200463 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 ausTransformation, automatisch (?) Generierend ? Aspektorientiert ?

64 H.-J. Hoffmann, 9. Jan. 200464 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

65 H.-J. Hoffmann, 9. Jan. 200465 short notesshort notes, journal software, systems, engineering practices 2003-03-16 UML is UNCOL Upcoming release of UML 2 will generate interest inUML 2 "model driven architecture" or MDA. MDA has to be one of the most ambitious ideas fromMDA 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/ ?

66 H.-J. Hoffmann, 9. Jan. 200466 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 ?...

67 H.-J. Hoffmann, 9. Jan. 200467 Prentice-Hall 1996

68 H.-J. Hoffmann, 9. Jan. 200468 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 ?...

69 H.-J. Hoffmann, 9. Jan. 200469 http://www-3.ibm.com/ibm/easy/eou_ext.nsf/Publish/650 10. Nov. 2003 Gilt auch hier !!!

70 H.-J. Hoffmann, 9. Jan. 200470 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) !

71 H.-J. Hoffmann, 9. Jan. 200471 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

72 Smaller, More Evolvable Software: An Introduction to the Demeter Method Karl J. Lieberherr Northeastern University College of Computer Science lieber@ccs.neu.edu/www.ccs.neu.edu/home/lieber Hier Folien von einem Vortrag über Demeter etc. im “Originalton”: http://www.ccs.neu.edu/research/demeter/talks/frameworks/ ubs/LoD.ppt

73 H.-J. Hoffmann, 9. Jan. 200473 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 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 ?

74 H.-J. Hoffmann, 9. Jan. 200474 Qualität lt. Deussen: ”... die Objekte einer Klasse liegen eng beieinander...”

75 H.-J. Hoffmann, 9. Jan. 200475 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 Aufrufbeziehungen unter Komponenten

76 H.-J. Hoffmann, 9. Jan. 200476 Es ist nicht nur die Softwarekrise ? Nein! Es ist auch eine Gestaltungskrise ! Und wer ist meist vergessen ? Der Endbenutzer

77 H.-J. Hoffmann, 9. Jan. 200477 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 ?

78 H.-J. Hoffmann, 9. Jan. 200478 Und, immer in Erinnerung behalten: Qualität kostet ! Qualität braucht Infrastruktur

79 H.-J. Hoffmann, 9. Jan. 200479

80 H.-J. Hoffmann, 9. Jan. 200480 Ü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

81 H.-J. Hoffmann, 9. Jan. 200481 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

82 H.-J. Hoffmann, 9. Jan. 200482 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)

83 H.-J. Hoffmann, 9. Jan. 200483 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”

84 H.-J. Hoffmann, 9. Jan. 200484 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/ (Gegenüberstellung von C++ / Java zu Smalltalk)

85 H.-J. Hoffmann, 9. Jan. 200485 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/...

86 H.-J. Hoffmann, 9. Jan. 200486 In einer seriösen IT-Firma geht es so sicher nicht zu. Oder ?

87 H.-J. Hoffmann, 9. Jan. 200487 Dank für die Einladung, bei Ihnen zu sprechen

88 H.-J. Hoffmann, 9. Jan. 200488 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.)

89 H.-J. Hoffmann, 9. Jan. 200489 Falls in einer Diskussion erwünscht Material dazu

90 H.-J. Hoffmann, 9. Jan. 200490 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 !)

91 H.-J. Hoffmann, 9. Jan. 200491 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, 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

92 H.-J. Hoffmann, 9. Jan. 200492 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/

93 H.-J. Hoffmann, 9. Jan. 200493 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 HondaIBM Corporation Lucent TechnologiesMitsubishi Morgan Stanley MotorolaNavy Research Laboratory SAP Siemens Information Systems Silicon Graphics Swedish Tax Administration Texas Instruments UPS US MilitaryVolkswagen Beetle Wells Fargo

94 H.-J. Hoffmann, 9. Jan. 200494

95 H.-J. Hoffmann, 9. Jan. 200495

96 H.-J. Hoffmann, 9. Jan. 200496 Ist das ein ==> “Smalltalker” ?

97 H.-J. Hoffmann, 9. Jan. 200497 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


Herunterladen ppt "H.-J. Hoffmann, 9. Jan. 20041 “Weichware” (nicht) ernst zu nehmen Hans-Jürgen Hoffmann 9. Januar 2004 Vortrag bei Firma © 2004 H.-J. Hoffmann TU Darmstadt."

Ähnliche Präsentationen


Google-Anzeigen