Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vergleich objektorientierter Programmiersprachen (OOP) mit Skriptsprachen von Autorensystemen zur Erstellung multimedialer Software Probevorlesung Technische.

Ähnliche Präsentationen


Präsentation zum Thema: "Vergleich objektorientierter Programmiersprachen (OOP) mit Skriptsprachen von Autorensystemen zur Erstellung multimedialer Software Probevorlesung Technische."—  Präsentation transkript:

1 Vergleich objektorientierter Programmiersprachen (OOP) mit Skriptsprachen von Autorensystemen zur Erstellung multimedialer Software Probevorlesung Technische Fachhochschule Berlin University of Applied Sciences

2 Vorüberlegungen Vorgehen:
Matrix - Anforderungen der gestellten Aufgabe Beispiel einer Anwendung / Vergleich der Lösungen Bildet das Ergebnis eine Entscheidungsgrundlage? Rahmenbedingungen betrachten Abstraktion und Eingrenzung

3 Gliederung Vergleich objektorientierter Programmiersprachen (OOP) mit Skriptsprachen von Autorensystemen zur Erstellung multimedialer Software

4 Programmiersprachen (Auswahl)
Imperative Programmiersprachen Objektorientierte Programmiersprachen Deklarative Programmiersprachen Die ersten Computer wurden hardwarenah, d. h. in Maschinensprache programmiert. Jedes Bit einer Lösungsvorschrift mußte einzeln in den Computer eingegeben werden. Dies erfolgte meistens über eine Schalterleiste. Während der letzten Jahrzehnte wurde eine Vielzahl von Programmiersprachen entwickelt und es kommen stetig neue hinzu. Bei jeder neuen Entwicklung fließen Erfahrungen aus anderen Programmiersprachen ein. Es gibt verschiedene Konzepte für Programmiersprachen, die auch als "Programmier-Paradigmen" bezeichnet werden:

5 Anwendungsgebiete Fortran Proz. mathematisch-technische Probleme
Algol 60 Proz. mathematisch wissenschaftliche Probleme Cobol Proz. (Oo.) kaufmännische Probleme Lisp Funk. Symbol-Manipulation Basic Proz. kleinere mathematische Probleme Simula 67 Proz. Math.-tech.-wissenschaftl. Probleme und Simulationen Pascal Proz Math.-tech und kaufmännische Probleme C Proz. Systemnahe Programmierung Modula-2 Proz. (Oo.) Math.-tech und kaufmännische Probleme Prolog Prädikativ Anwendungen mit symbolischen Formeln Ada Proz. (Oo.) Echtzeitanwendungen SQL Deklarativ Datenbankanwendungen Smalltalk-80 Oo. Anwendungs- und Systemsoftware C++ Proz. (Oo.) Anwendungs- und Systemsoftware Eiffel Oo. Umfangreiche Softwaresysteme Java Oo. Anwendungen in vernetzten und heterogenen Umgebungen

6 Skriptsprachen Ursprünglich mit kleinem Sprachumfang
Zugeschnitten auf ein spezielles Aufgabengebiet Multimedia-Präsentation Webanwendungen Skriptsprachen werden nicht kompiliert Die Bezeichnung leitet sich vom lateinischen Wort imperare (dt. befehlen) ab. Bei den imperativen Programmiersprachen ist das Programm strukturiert in Befehle (auch als Anweisungen bezeichnet) und Daten, die mit diesen Anweisungen manipuliert werden. Diese Programmiersprachen lehnen sich an die Algorithmen an. Die Anweisungen des Algorithmus werden in Programmanweisungen implementiert. Anweisungsfolgen fasst man zu Unterprogrammen zusammen. Die Unterprogramme werden in einigen imperativen Programmiersprachen in Form von Prozeduren programmiert. Deshalb benutzt man den Begriff prozedurale Programmiersprache synonym.

7 Compiler Programme in einer höheren Programmiersprache können vom Prozessor nicht ausgeführt werden. Es wird ein Übersetzer benötigt, der aus dem Quellcode Maschinencode erzeugt. Die elektronische Niederschrift eines Programms in einer höheren Programmiersprache wird als Quellcode bezeichnet. Sie ist die Quelle für die Übersetzung in den Maschinencode. Zu Beginn der Entwicklung von höheren Programmiersprachen war es notwendig, ein Programm komplett zu schreiben. Identische Programmteile aus anderen Programmen, die Verwendung finden sollten, mußten erneut eingegeben und übersetzt werden. Mit dem Bibliothekskonzept wurde es möglich, Programmteile in externe Dateien auszulagern, um diese bei Bedarf in die eigenen Programme zu integrieren. Bibliotheken haben in der Programmierung eine große Bedeutung aus der Sicht der Wiederverwendbarkeit von Programmteilen und der Strukturierung der Programme.

8 Interpreter Längere Laufzeit des Programms
Unterstützung bei der interaktiven Programmentwicklung Plattformunabhängigkeit Compiler und Interpreter unterscheiden sich in folgenden drei Aspekten: Laufzeit des Programms Kompilierte Programme haben eine geringere Laufzeit als interpretierte Programme. Kompilierte Programme liegen in Maschinencode vor und können vom Prozessor sofort ausgeführt werden. Demgegenüber übersetzt ein Interpreter jede Anweisung erst zur Laufzeit und führt sie unmittelbar danach aus. Unterstützung bei der interaktiven Programmentwicklung Für das Übersetzen eines Quellcodes mittels Compiler muss dieser komplett korrekt erstellt sein. Die Arbeitsweise des Interpreters ermöglicht hingegen die Abarbeitung von Programmfragmenten und ist insofern eine Unterstützung für die Programmentwickler, die bereits die Funktionalität von Programmteilen testen können. Plattformunabhängigkeit Kompilierte Programme sind Maschinencode, der nur auf einem bestimmten Prozessortyp mit dem entsprechenden Betriebssystem lauffähig ist. Sie sind nicht plattformunabhängig. Interpretierte Programme können auf verschiedenen Plattformen abgearbeitet werden, wenn der entsprechende Interpreter integriert ist.

9 Multimedia-Anwendung
Abstraktionsebenen Multimedia-Anwendung Abstraktion von der Hardware Abstraktion von der Anwendung Framework oder Bibliothek System-Software Gerätetreiber Multimedia-Hardware-Geräte

10 Anforderungen an Programmiersprachen zur Erstellung multimedialer Software
Effiziente Verarbeitung großer Datenmengen Spezifizierung von Zeitanforderungen Mechanismen zur Handhabung von Ausnahmesituationen Synchrone Darstellung mehrerer Medien Wiederverwendbarkeit durch Modularisierungskonzept Erweiterbarkeit und Wartbarkeit durch Modularisierung, Kapselung, Abstraktion und Hierachiebildung Förderung von robusten Programmen in Entwurf und Entwicklung

11 Objektorientierung Daten und Anweisungen werden als Einheit betrachtet
Objekte kommunizieren miteinander (Senden und Empfangen von Botschaften) Ermöglicht paralleles programmieren und testen. Unterstützung bei der Programmierung komplexer Aufgaben Wiederverwendbarkeit von Programmcode Erweiterbarkeit bestehender Programme Die Qualitätssicherung bei der Softwareerstellung ist mit den imperativen Programmiersprachen nur mit hohem Programmieraufwand zu erreichen. Um Forderungen wie Wiederverwendbarkeit von Programmcode, Unterstützung bei der Programmierung komplexer Aufgaben, Erweiterbarkeit bestehender Programme, Sicherheit gegen Datenmanipulationen effizient umzusetzen, wurde ein neues Programmierkonzept entwickelt: die objektorientierte Programmierung. In der objektorientierten Programmierung werden Daten und die Anweisungen, mit denen diese manipuliert werden können, als Einheit betrachtet. Diese Sichtweise entspricht der des Menschen, der in seiner Umwelt Objekte in ihrer Einheit von Zustand und Verhalten wahrnimmt. Die verschiedenen Objekte kommunizieren miteinander, indem sie Botschaften senden und empfangen. Eine Botschaft ist die Aufforderung an ein Objekt eine bestimmte Anweisung auszuführen. Der objektorientierte Ansatz ermöglicht es, Objekte parallel zu programmieren und zu testen. Objekte können wie Bausteine zur Erweiterung von Programmen dienen bzw. in anderen Programmen wiederverwendet werden.

12 Beispiel Punktezähler
Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Erzeugen einer Instanz der Klasse xy Objekt / Instanz Instanz Variable: Punktzahl Vorlage / Klasse Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Beim Erstellen einer Klasse definieren Sie alle Eigenschaften (die Merkmale) und Methoden (das Verhalten) der von der Klasse erzeugten Objekte genau so, wie Sie auch in der Realität Objekte definieren würden. Eine Person zum Beispiel weist bestimmte Eigenschaften auf, wie Geschlecht, Größe und Haarfarbe, und verfügt über Methoden wie Sprechen, Gehen und Werfen. In diesem Beispiel könnte man den Begriff der Person als eine Klasse und das einzelne Individuum als ein Objekt oder eine Instanz dieser Klasse bezeichnen.

13 Vererbung und Kapselung
Objekt / Instanz Vorlage / Klasse Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Bonus erhöhe um 500 Erzeugen einer Instanz der Klasse xy Objekt / Instanz Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl vererben Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Beim Erstellen einer Klasse definieren Sie alle Eigenschaften (die Merkmale) und Methoden (das Verhalten) der von der Klasse erzeugten Objekte genau so, wie Sie auch in der Realität Objekte definieren würden. Eine Person zum Beispiel weist bestimmte Eigenschaften auf, wie Geschlecht, Größe und Haarfarbe, und verfügt über Methoden wie Sprechen, Gehen und Werfen. In diesem Beispiel könnte man den Begriff der Person als eine Klasse und das einzelne Individuum als ein Objekt oder eine Instanz dieser Klasse bezeichnen. Objekt / Instanz Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Super Klasse

14 Multimedia-Anwendung
Abstraktionsebenen Multimedia-Anwendung Anwendungsgenerator Abstraktion von der Hardware Abstraktion von der Anwendung Framework oder Bibliothek System-Software Gerätetreiber Multimedia-Hardware-Geräte

15 Macromedia Director und Lingo
Umfangreiche Funktionalitäten und Einsatzbereiche Skriptsprache Lingo ist teilweise objekt- und ereignisorientiert Wurde häufig verändert z.B. Punktsyntax ab Version 7 Befehle können in drei Gruppen eingeteilt werden: Core-Lingo Net-Lingo Xtra-Lingo Behaviour Library mit Lingo-Prozeduren Grundgedanke der Objektorientierung wird unterstützt

16 Lingo Begriffe Klassischer Begriff Lingo Begriff
Super Klasse, Basis Klasse Vorgängerskript Ancestor (=Ahne) Klasse Übergeordnetes Skript, Parent script (=Eltern) Instanz Untergeordnetes Objekt, Object, Instanz Instanz Variable, Attribut Eigenschaftsvariable, Property Methode Prozedur, Methode Wie jede andere Skriptsprache verfügt auch ActionScript über eigene Syntaxregeln, reserviert Schlüsselwörter, stellt Operatoren bereit und ermöglicht Ihnen, Informationen mithilfe von Variablen zu speichern und abzurufen. ActionScript beinhaltet integrierte Objekte und Funktionen, die sich durch selbst erstellte Objekte und Funktionen ergänzen lassen. Syntax und Stil der ActionScript-Sprache sind stark an JavaScript angelehnt. Flash MX ist in der Lage, ActionScript-Skripts zu verarbeiten, die in früheren Flash-Versionen geschrieben wurden.

17 Gemeinsamkeiten Lingo-Java
Erstellung neuer Instanzen mit „new“ Wird eine Instanz mit „new“ angelegt, wird eine Referenz (Speicheradresse) auf diese Instanz zurückgegeben Methoden und Eigenschaftsvariablen (Properties) Einfachvererbung Automatische Speicherreservierung Verdecken von Methoden

18 Unterschiede Lingo-Java
Keine Klassenvariablen Keine echte Kapselung Keine Interfaces Vererbung funktioniert auf Instanz Basis, nicht auf Klassenbasis Vererbung ist dynamisch Basis Klassen müssen keine Parent Skripte sein (auch Xtra, Sprites...) Keine abstrakten Klassen Kein Überladen Parent Skripte erben nicht automatisch von einer Basis Klasse Keine Klassenbibliothek

19 Zusammenfassung Programmiersprachen wurden für unterschiedliche Probleme entwickelt Programmiersprachen entwickeln sich neuen Anforderungen gemäß weiter Skriptsprachen werden nicht kompiliert Multimedia-Anwendungen stellen spezifische Anforderungen Anforderungen einer Multimedia-Anwendung lassen sich gut durch objektorientierte Programmierung realisieren Autorensysteme sind Anwendungsgeneratoren mit integrierten Skriptsprachen spezialisiert auf die Erstellung von Multimedia-Anwendungen Integrierte Skriptsprachen in Autorensystemen unterstützen in Teilen die Umsetzung von objektorientierten Konzepten Der Vergleich von Lingo und Java ergab Gemeinsamkeiten und Unterschiede

20 Vielen Dank für Ihre Aufmerksamkeit!
Literatur Allenson et al.: Director 8.5 Studio Steinmetz, R.: Multimedia-Technologie Goll, J. et al: Java als erste Programmiersprache Balzert, H.: Lehrbuch Grundlagen der Informatik Poetzsch-Heffter, A.: Konzepte objektorientierter Programmierung Rechenberg, Pomberger: Informatik Handbuch Online-Quellen Grundlagen der Programmierung I und II: VFH Studienmodul, TFH Berlin Autorensysteme: VFH Studienmodul, TFH Berlin Dipl.-Kommunikationswirt Stefan Müller


Herunterladen ppt "Vergleich objektorientierter Programmiersprachen (OOP) mit Skriptsprachen von Autorensystemen zur Erstellung multimedialer Software Probevorlesung Technische."

Ähnliche Präsentationen


Google-Anzeigen