Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld

Ähnliche Präsentationen


Präsentation zum Thema: "Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld"—  Präsentation transkript:

1 Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld
Entwicklung Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld

2 Nicht zentrales Thema unserer Vorlesung
Nur soweit, um als Anwender mit den Entwicklern über verteilte Systeme reden zu können. Aber die Grenze - wer macht was - verschiebt sich.

3 Hausbau hat viele Ähnlichkeiten mit der Software-Erstellung,
erfordert viel mehr Traditionen, Muster, Erfahrung,… Das Haus kann der zukünftige Benutzer während des Baus sehen und seine Benutzbarkeit abschätzen. Wie die Software benutzt wird, weiß der zukünftige Benutzer häufig erst, wenn sie fertig gebaut ist.

4 Entwicklungsschritte
nur die wichtigsten, klassisch Was soll das System leisten? Struktur grob entwerfen (Architektur) Welche Teile existieren? Welche Teile neu hergestellen? entwerfen programmieren (lassen) testen System zusammenfügen System testen Missbrauch des Systems möglich? System in Betrieb nehmen System betreiben Fehler korrigieren

5 Entwicklungsschritte
nur die wichtigsten, klassisch Was soll das System leisten? Struktur grob entwerfen (Architektur) Welche Teile existieren? Welche Teile neu hergestellen? entwerfen programmieren (lassen) testen System zusammenfügen System testen Missbrauch des Systems möglich? System in Betrieb nehmen System betreiben Fehler korrigieren Beschreibungen

6 Zusammenarbeit Was soll das System leisten?
Benutzer Entwickler Was soll das System leisten? Struktur grob entwerfen (Architektur) Welche Teile existieren? Welche Teile neu hergestellen? entwerfen programmieren (lassen) testen System zusammenfügen System testen Missbrauch des Systems möglich? System in Betrieb nehmen System betreiben Fehler korrigieren Diese Arbeitsteilung ist den Software-Entwicklern sehr recht (und wäre es auch den Hausbauern).

7 Pflichtenheft Schon die Bezeichnung offentbart eine etwas einseitige Sicht. (auch Sollkonzept, Fachfeinkonzept oder fachliche Spezifikation) vertraglich bindende, detaillierte Beschreibung einer zu erfüllenden Leistung, zum Beispiel … zur Erstellung eines Computerprogramms. Lt. DIN umfasst das Pflichtenheft die "vom Auftragnehmer erarbeiteten Realisierungsvorhaben aufgrund der Umsetzung des vom Auftraggeber vorgegebenen Lastenhefts." Die Inhalte des zuvor ausgearbeiteten Lastenhefts (auch grobes Pflichtenheft genannt) sind nun präzisiert, vollständig und nachvollziehbar sowie mit technischen Festlegungen der Betriebs- und Wartungsumgebung verknüpft. Das Pflichtenheft wird vom Auftragnehmer (Entwicklungsabteilung/-firma) formuliert und vom Auftraggeber bestätigt. Im Gegensatz zum technischen Design (auch technische Spezifikation - Wie wird es umgesetzt?) beschreibt das Pflichtenheft die geplante Leistung als "Black Box". Entsprechend enthält es in der Regel nicht die Lösung der Probleme (hier der Implementierungsprobleme). (aus Wikipedia)

8 Architektur Teile identifizieren („Komponenten“)
Ihre Funktion festlegen Was muss von außen zugreifbar sein ? („Schnittstellen“) Was nicht ? Am besten unsichtbar bleiben. („information hiding“) Man braucht Heuristiken (Erfahrung) Muster ("zu Papier gebrachte" Erfahrung) Mögliche Änderungen voraussehen nicht nur: nicht ansprechbar sondern: nicht beschrieben

9 Komponenten eines Systems
Schnittstelle zum Benutzer Wie werden die Datendem Benutzer präsentiert? Wie macht er seine Eingaben? Anwendungs“logik“ Welche Rolle spielen die Daten für ihn? Anwendungsprozesse (Workflow) Wie werden die Daten verarbeitet? Sitzungsverwaltung Wie werden („Bewegungs-“)Daten zwischengespeichert? Datenhaltung Wie werden („Stamm-“)Daten langfristig verwaltet?

10 Entwurfspraktiken sehr viel Erfahrung
so präzise wie möglich formulieren zeichnen Muster ("pattern")

11 Programmierung vorzugsweise mit Java wird nicht in Maschinensprache,
sondern in Zwischensprache ("ByteCode") übersetzt und durch „virtuelle Maschinen“ interpretiert. Drei „Plattformen“ Java Standard Edition (Java SE) Java Enterprise Edition (Java EE) Java Micro Edition (Java ME) Entwicklungswerkzeug ("IDE") ECLIPSE (Shareware IBM) Dadurch laufen Java-Programme langsamer als direkt übersetzte Programme.

12 Zusammenarbeit Was soll das System leisten?
Benutzer Entwickler Was soll das System leisten? Struktur grob entwerfen (Architektur) Welche Teile existieren? Welche Teile neu hergestellen? entwerfen programmieren (lassen) testen System zusammenfügen System testen Missbrauch des Systems möglich? System in Betrieb nehmen System betreiben Fehler korrigieren ? Dies ist den Software-Entwicklern sehr recht (und wäre es auch den Hausbauern).

13 Test von verteilten Systemen schwierig
Komponenten müssen in „gesicherter“ Umgebung laufen Umgebung für ihr Zusammenspiel? Komponenten sind möglicherweise an verschiedenen Orten mit unterschiedlich laufenden Uhren von verschiedenen Entwicklern beobachtet Nicht jede Situation ist rekonstruierbar. Und wie kann der Benutzer seinen Beitrag dazu leisten, wenn er den (tatsächlichen) Aufbau des Systems nicht kennt?

14 Missbrauch ("Bedrohungen IT-Sicherheit")
Computerviren, Trojaner und Würmer, die zusammengefasst als Malware bezeichnet werden Spoofing, Phishing, Pharming oder Vishing, wo eine falsche Identität vorgetäuscht wird Hacking, Cracking sowie andere Formen von Sabotage Spionage, z.B. in Form von Man in the Middle Angriffen, höhere Gewalt, z.B. in Form von Blitzschlag, Feuer oder Überschwemmung Social Engineering (s. folgende Folie) (aus Wikipedia)

15 Social Engineering Der Begriff Sozialkonstruktion bzw. englisch Social Engineering (auch Social Hacking) bezeichnet in der Soziologie das Erlangen vertraulicher Informationen durch Annäherung an Geheimnisträger mittels gesellschaftlicher Kontakte. Dieses Vorgehen wird von Geheimdiensten und Privatdetektiven seit langem praktiziert, der Begriff wird jedoch meist im Zusammenhang mit Computerkriminalität verwendet, da er hier das Gegenstück zum rein technischen Vorgehen (Engineering) beim Eindringen in fremde Systeme bildet. Beispiel: Herr Meier arbeitet in einer Firma, die ein neuartiges Produkt als Erste auf den Markt bringen will. Er arbeitet in der Entwicklungsabteilung an einem Computer. Um sich dem System gegenüber zu authentifizieren, benötigt man einen Account und das dazugehörige Passwort. Nun ruft eines Tages ein vermeintlicher Kollege aus einer anderen Filiale des Unternehmens an und bittet Herrn Meier, ihm seine Benutzerdaten zu geben, da er Wartungen am Server durchführen müsse. Zwar kennt Herr Meier den Anrufer nicht, aber durch die Art des Gesprächs vermittelt er den Eindruck, dass er zum Unternehmen gehört. (aus Wikipedia)

16 weitere Schritte, die Kooperation erfordern
Inbetriebnahme normaler Betrieb Fehlerbehandlung


Herunterladen ppt "Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld"

Ähnliche Präsentationen


Google-Anzeigen