Navigation überspringen

Objektorientierte Softwareentwicklung

Überblick

Das E-Learning dient der Einführung und Vertiefung einer beliebigen Objektorientierten Sprache. Es enthält Übungen und Lösungen zu den fundamentalen Aspekten:

Einführung (einfach weiterlesen)

Klassen, Objekte

Grundgerüst einer Klasse (Modell, M)

Benutzeroberflächen (View, V)

Ereignissteuerung (Controller, C)

Methoden, Kontrollstrukturen

Assoziationen (HAT-Beziehungen)

Vererbung (IST-EINE-Beziehung)

Datenbankanbindung

Fehlersuche, Debugging

Hilfsmittel:

Begriffe

Informationsblätter

Weiterführende Themen:

Mobile Apps

Projekte

Einführung: Hello World

Aufgabe:
Erzeugen und Testen Sie den Quellcode für die "Hello World!"-Anwendung in vier Programmiersprachen.

PHP

Erzeugen Sie folgende View mit Hilfe der Programmiersprache PHP.

Hallo Welt, View, PHP

Java

Erzeugen Sie folgende View mit Hilfe der Programmiersprache Java.

Hallo Welt, View (im Dialogfenster), Java

Javascript

Erzeugen Sie folgende View mit Hilfe der Programmiersprache Javascript.

Hallo Welt, View, Javascript

Python

Erzeugen Sie folgende View mit Hilfe der Programmiersprache Python.

Hallo Welt, View, Python

Objektorientierte Softwareentwicklung im Unterricht

Egal welche objektorientierte Sprache Sie lernen, die Ähnlichkeiten im Quellcode, die Prinzipien und Konzepte sind auffallend ähnlich bzw. sogar identisch. Lernen Sie deshalb die fundamentalen Aspekte der objektorientierten Programmierung, dann können Sie sich gegebenenfalls schnell umorientieren.

Objektorientierte Programmiersprachen:

  • JAVA
     → explizite und implizite Typisierung, nutzt Compiler
  • C++ 
     → explizite Typisierung, nutzt Compiler
  • C# 
     → dynamisch, explizite und implizite Typisierung, nutzt Compiler
  • Ruby 
     → dynamische Typisierung, nutzt Interpreter
  • Python
     → dynamische und implizite Typisierung, nutzt Interpreter
  • PHP
     → dynamische und implizite Typisierung, nutzt Interpreter
  • JQuery (JavaScript)
     → dynamische Typisierung, nutzt Interpreter
  • ...

Aufgabe: Begriffe klären.
Klären Sie die Begriffe dynamische, explizite und implizite Typisierung. Recherchieren Sie anschließend die Funktionsweise eines Compilers und eines Interpreters. Wo liegen die Unterschiede?

Fundamentale Aspekte und Konzepte Objektorientierter Softwareentwicklung
Prinzipien der Objektorientierung

Aufgabe: Begriffe klären und auswendig lernen.
Klären Sie alle Objektorientierten Prinzipien. Am Ende des Kurses angelangt, sollten Sie für jedes Prinzip ein praktisches Beispiel parat haben.

Hinweis: Das funktioniert nur unter der Voraussetzung, dass Sie die Prinzipien vorab auswendig lernen.

Zyklische Softwareentwicklung
Ein endloser Kreislauf der Ausgestaltung und Optimierung von Anwendungen digitaler Endgeräte.

Softwarentwicklungszyklus

Aufgabe: SE-Zyklus studieren.
Lernen Sie den Entwicklungsprozess kennen. Drucken Sie das folgende Dokument aus und füllen Sie die Lücken aus.

Softwarentwicklung (PDF)

 

Lücken-Aktivität: Prinzipien Objektorientierter Programmierung

Zusammenfassend zu den oben aufgeführten Erläuterungen lesen Sie den Abschnitt unten und tragen Sie die fehlenden Begriffe ein. 

Objektorientierte Softwareentwicklung. Wie in allen Sprachen stehen unter anderem die Grundprinzipien der , Wiederverwendbarkeit, , Vererbung und im Vordergrund. Vor ein paar Jahren hat man noch unter den Fachkundigen eifrig diskutiert, ob die Objektorientierung ein Aspekt der Softwareentwicklung werden wird. Zwischenzeitlich können wir vermutlich guten Gewissens behaupten, dass objektorientiert entwickelte Software Systeme mehr Aussicht auf langfristigen Erfolg haben. Ein absoluter also. Die Mehrheit der Programmiersprachen besitzen zwischenzeitlich objektorientierte Nachfolger. So sind und auch objektorientierte Nachfolger der Programmiersprache C. ist dagegen der objektorientierte Nachfolger von PHP4. Andere Programmiersprachen sind noch relativ jung und sind schon von Beginn an objektorientiert. Dazu gehören u.a. die seit 1991 und 1995 existierenden Sprachen und Ruby. Alle genannten objektorientierten Sprachen sind auch imperativ und setzen ein weitere grundsätzliche Denkweise ( ) um. Sprachen enthalten vorgefertigte Strukturen, die für die Abarbeitung von und Wiederholungen genutzt werden können, außerdem sehen diese Sprachen vor Programmeinheiten (Module, Prozeduren) zu schaffen die in anderen Zusammenhängen werden können.

Warum ist das so? Nach dem Motto „Ordnung ist das halbe Leben“ wird konkreten Objekten zugeordnet, organisiert. Der Programmcode enthält die Beschreibung (Eigenschaften und Verhaltensweisen) dieser Objekte. Der Programmierer entscheidet dann, wie die Objekte untereinander beliebig sollen.

Objekte deren Eigenschaften und Verhaltensweisen die gleichen oder ähnliche Ausprägungen besitzen packt man in einem zusammen. Mit einer Klasse schafft sich der Programmierer Muster, also eine Art Vorlage, für eine ganze Menge von Objekten. Das Prinzip nennt sich Abstraktion.

Wenn sich Eigenschaften oder Verhaltensweisen von Objekten ändern, verändert oder erweitert der Programmierer den Quellcode. Bestenfalls hat jede Eigenschaft und Verhaltensweise seinen festen Platz. Um Redundanzen ( ) zu vermeiden, ist es zielführend Wiederholungen im Quellcode zu vermeiden. Damit wird die eines Systems langfristig sichergestellt.

Da wir Menschen im Prinzip von Kind auf intuitiv objektorientiert denken, fällt es uns in der Regel leicht dieses Prinzip in der Programmierung einzusetzen.

Alles auf dieser Welt sind Objekte (Dinge), Dinge die man getrennt betrachten oder aber auch Dinge die wir gruppieren oder zusammenfassen können, da sie gleich oder ähnlich sind.

Wir organisieren unseren Alltag ständig nach diesem Prinzip, stecken alles zusammen, was zusammen gehört! Damit fällt es uns relativ leicht den Überblick zu behalten. Stellen Sie sich doch die folgenden Fragen:

  • Woran erkennen Sie ein ?
  • Was haben alle gemeinsam?
  • Was unterscheidet ein Mensch vom ?
  • Wann ist ein Stück Land eine Insel?
  • Was macht eine Uhr zur Uhr?
  • Wie viele unterschiedliche Automaten kennen Sie?

Die Objektorientierung ist eine Art das sicherstellen soll, dass die Software , wartbar und sicher ist und über die Zeit hinweg auch bleibt. 

Enable JavaScript

Übersicht zur Leistungskontrolle "Objektorientierte Software- und Systementwicklung":

  1. Modellierung (UML): Grafische Darstellung komplexer Softwaresysteme anhand eines Anwendungsfalles (Beschreibung).
  2. Grundgerüst einer Modellklasse (Fachklasse): Quellcode anhand einer grafischen Benutzeroberfläche ableiten und implementieren.
  3. Verhaltensweisen/Methoden implementieren: Struktogramm erstellen.
  4. Verhaltensweisen/Methoden implementieren: Inhalt eines Struktogramms in Quellcode umsetzen.
  5. Verhaltensweisen/Methoden implementieren: Anhand eines Anwendungsfalles (Beschreibung, Tabelle) die Problemlösung in Quellcode umsetzen.
  6. Debugging: Syntax-Fehler in einem unbekannten, vorgegebenen Quellcode finden. 
  7. Theorie: Wahre Aussagen in Multiple-Choice-Aufgaben identifizieren.
  8. Theorie: Lückentext lösen.