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 “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 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

3 H.-J. Hoffmann, 9. Jan

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 Ü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 Ü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 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 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 ?

9 H.-J. Hoffmann, 9. Jan Mit Programmiersprachen zu Objekten - IIa Ein erster Denkanstoß: Über “Objektorientiertheit” und Umfang einer Sprachspezifikation. rein imperativ Algol 60 CACM 6 (1963), (!) 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 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 , >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

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

18 H.-J. Hoffmann, 9. Jan 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 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 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 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 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, “Schemata”, “Schablonen”, “Muster”,...

23 H.-J. Hoffmann, 9. Jan 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 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 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 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 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 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 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 <== IBM´s Visual Age Generator 4GL Man entschuldige die schlechte Qualität.

30 H.-J. Hoffmann, 9. Jan 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 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 Ü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 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 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 Haben Sie schon einmal anzusehen versucht: bei NetScape 4.78=> Fehlanzeige ! bei Internet Explorer=> (wenn’s kommt) Flimmerkasten ! Oder Oder Oder Alles nur Beispiele ! Ein Einschub

35 H.-J. Hoffmann, 9. Jan 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 Test bei 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 Was halten Sie von diesem Motto ?

38 H.-J. Hoffmann, 9. Jan Leonardo da Vinci, Simplicity is the ultimate sophistication Friedrich Schiller, 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 Und, schließlich, was halten Sie von dieser Aussage ? NZZ,

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

43 H.-J. Hoffmann, 9. Jan 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 Internet als Telekommikationseinrichtung (siehe später) Interkulturell Eine ungeheuere Herausforderung für Entwickler ! Interaktion wo man hinschaut ! III

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

47 H.-J. Hoffmann, 9. Jan Nov. 2003

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

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

51 H.-J. Hoffmann, 9. Jan Ü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 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 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 Es ist nicht nur die Softwarekrise ? Nein! Es ist auch eine Gestaltungskrise !

55 H.-J. Hoffmann, 9. Jan Ü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 In einer seriösen IT-Firma geht es so sicher nicht zu. Oder ?

57 H.-J. Hoffmann, 9. Jan 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 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 “... 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 “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 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 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 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 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 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 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 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 short notesshort notes, journal software, systems, engineering practices 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: ?

66 H.-J. Hoffmann, 9. Jan 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 Prentice-Hall 1996

68 H.-J. Hoffmann, 9. Jan 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 Nov Gilt auch hier !!!

70 H.-J. Hoffmann, 9. Jan 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 Qualität im Vordergrund - III Prof. Dr. Karl Lieberherr, Northwestern University, Boston, (u.a.), siehe bzw. ” ´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: X, 1996

72 Smaller, More Evolvable Software: An Introduction to the Demeter Method Karl J. Lieberherr Northeastern University College of Computer Science Hier Folien von einem Vortrag über Demeter etc. im “Originalton”: ubs/LoD.ppt

73 H.-J. Hoffmann, 9. Jan Qualität im Vordergrund - V Prof. Dr. Oliver Deussen, Univ. Konstanz (u.a.), siehe 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 Qualität lt. Deussen: ”... die Objekte einer Klasse liegen eng beieinander...”

75 H.-J. Hoffmann, 9. Jan aus Ludger Martin, Diss. TUD PÜ, 2003, siehe Visualisierung von Komponenten, z.B. simulierte Visualisierung auf der Bildschirm-Arbeitsfläche Aufrufbeziehungen unter Komponenten

76 H.-J. Hoffmann, 9. Jan 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 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 Und, immer in Erinnerung behalten: Qualität kostet ! Qualität braucht Infrastruktur

79 H.-J. Hoffmann, 9. Jan

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

85 H.-J. Hoffmann, 9. Jan 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 über Benutzungsschnittstellen-Gestaltung Und zum ruhigen Nachlesen:

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

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

88 H.-J. Hoffmann, 9. Jan Kontakt Univ.-Prof. em. Dr.-Ing. Hans-Jürgen Hoffmann Technische Universität Darmstadt Fachbereich Informatik Fachgebiet Programmiersprachen und Übersetzer Wilhelminenstr. 7, Darmstadt Tel Sekr. Tel , Fax E-Post: (u.a.)

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

90 H.-J. Hoffmann, 9. Jan 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 Warum eigentlich nicht Smalltalk? Unterschiede zu Java (syntaktisch), siehe: JavaSmalltalkSyntax.html Einige vergleichende Erklärungen und Beispiele, siehe: squeak_tutorial-3.html Ein tabellarischer Vergleich mit C++ und Java, siehe Ein neu herausgekommenes Lehrbuch: Johannes Brauer: Grundkurs Smalltalk - Objektorientierung von Anfang an; 2003, Vieweg-Verlag Smalltalk &.NET, Smalltalk & mobile Anwendung, siehe (z.B.) : downloads/GeorgHeeg-Roadshow.ppt

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

93 H.-J. Hoffmann, 9. Jan Firmen, die Smalltalk einsetzen (Auszug) Siehe 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

95 H.-J. Hoffmann, 9. Jan

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

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


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