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

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

Blue J.
C Sharp (C#) Martin Saternus Senior Student Partner
Objektorientierung Auffassung der Software als eine Sammlung
Objektorientierte Datenbanken
Einführung in die Programmierung Zusammenfassung
Warum Objektorientierung?
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Virtuelle Fachhochschule Technische Fachhochschule Berlin University of Applied Sciences Nutzung von Internet und Multimedia für innovative Aus- und Weiterbildungs-
Ruby on Rails im Überblick
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Entwicklung der Programmiersprachen
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Agenda Einführung Haskell QuickCheck Zusammenfassung
Wieviel Programmieren-Können braucht man in der Mathematiklehre? Arbeitsgruppe MU&I Ak der GDM Dillingen2005, Ltg: Haftendorn Teilnehmer: Epkenhans, Martin.
Zhaohan Chen SS061 SIMULA-an Algol Based Simulation Language geschrieben von: Zhaohan Chen Betreuer: Prof. Dr. Rainer Manthey.
Objektorientierte Programmierung am Beispiel von Java
DVG Klassen und Objekte
Berliner Rahmenpläne Informatik für die Sekundarstufe I
Objektorientierte Modellierung
Technische Fachhochschule Berlin University of Applied Sciences Zur Entwicklung eines FAQ-Forums mit Benachrichtigungssystem für den Einsatz in Studienmodulen.
Entwurf und Realisierung einer digitalen Bibliothek zur Verwaltung von Notenhandschriften Dipl.-Ing. Temenushka Ignatova Datenbank- und Informationssysteme,
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Simple Programmierung
? Was ist Informatik? Was ist Informatik? Alexander Lange
Objektorientierte Programmierung
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Eine Präsentation von Peter Rasser
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
1.4 Objekte kommunizieren miteinander
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Objektorientierung.
Web-basierter Unterricht in der Computergraphik: Konzepte und Realisierung von interaktiven Online-Kursen Reinhard Klein, Frank Hanisch Wilhelm-Schickard.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Von Sven, Tobias und Philippe. Inhalt: 1.Geschichte 2.Grundkonzepte der Sprache 3.Anwendungsarten 4.Ähnliche Programmiersprachen 5.Konkrete Beispiele.
Multimedia in Java Thomas Witschel, Kerstin Steinert & Erik Reinhard.
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Gliederung Gliederung Einleitung Ziele und Zielgruppe
Geoinformation I Lutz Plümer
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Objektorientierte (OO) Programmierung
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Objektorientierte Programmierung Was ist das eigentlich ?
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
1 Eine Einführung in die objektorientierte Programmierung.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Objektorientierte Programmierung
Objektorientierte Programmierung
 Präsentation transkript:

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

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

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

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:

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

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.

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.

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.

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

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

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.

Beispiel Punktezähler 0009860 0007450 0003360 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.

Vererbung und Kapselung Objekt / Instanz Vorlage / Klasse Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl Bonus erhöhe um 500 0009860 Erzeugen einer Instanz der Klasse xy Objekt / Instanz Punktezähler Punktzahl erhöhe um 10 setze auf 0 ermittle Punktzahl 0007450 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 0003360 Super Klasse

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

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

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.

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

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

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

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 s.mueller@tfh-berlin.de www.tfh-berlin.de/smueller