IOBP 1

Grundlagen der objektorientierten Programmierung. (IUBH-Fernstudium)

Grundlagen der objektorientierten Programmierung. (IUBH-Fernstudium)


Set of flashcards Details

Flashcards 106
Language Deutsch
Category Computer Science
Level University
Created / Updated 18.12.2015 / 27.08.2022
Weblink
https://card2brain.ch/box/iobp_1
Embed
<iframe src="https://card2brain.ch/box/iobp_1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Objektorientierung?

Die Objektorientierung ist ein Ansatz in der Softwaretechnik, welche die Erstellung, Weiterentwicklung und Watung von komplexen IT-Systemen unterstützt und vereinfacht. Das IT-System wird als das Zusammenspiel komplexer Objekte beschrieben.

Unterschiedliche Programmierkonzepte?

  • Maschinencode
  • Assemblercode
  • Imperative Programmierung
  • Strukturierte Programmierung
  • Objektorientierte Programmierung
  • Komponentenbasierte Programmierung
  • Modellgetriebene Entwicklung

Maschinencode?

  • Typische Elemente:
    • 1 und 0;
  • Einsatzgebiete:
    • Nur noch historisch, heute keine Verwendung mehr.

Assemblercode?

Typische Elemente:

  • movb $0x61; Prozessorbefehle und direktes Ansprechen von technischen Speicheradressen.

Einsatzgebiete:

  • Steuerung für elektronische Geräte, Reaktive Systeme, hardwarenahe Programmierung

Imperative Programmierung?

Typische Elemente:

  • WHILE, FOR, GOTO; Weiterentwicklung von Assemblercode, erlauben Schleifen und gezielte Sprünge

Einsatzgebiete:

  • Kleine Programme, zur Lösung einfacher Aufgaben.

Strukturierte Programmierung?

Typische Elemente:

  • Prozeduren; Strukturierung eines Programms ins Funktionen und Unterfunktionen (Prozeduren & Unterprozeduren)

Einsatzgebiete:

  • Einfache Webanwendungen, Technische Steuerkomponenten

Objektorientierte Programmierung?

Typische Elemente:

  • Klassen, Objekte, Beziehungen; ein Programm besteht aus koorperierenden Objekten

Einsatzgebiete:

  • Große und komplexe Softwaresysteme

Komponentenbasierte Entwicklung?

Typische Elemente:

  • Komponenten, Schnittstellen; Teile eines Systems werden zu Komponenten zusammengefasst, die bestimmte Aufgaben erfüllen.

Einsatzgebiete:

  • Wiederverwendung von bereits programmierten Funktionen. i.d.R. objektorientrierte Komponenten.

Modellgetriebene Entwicklung?

Typische Elemente:

  • Modelle, Code-Generatoren; Programmcode wird mit Hilfe von Code Generatoren automatisch aus Softwaremodellen erzeugt

Einsatzgebiete:

  • Wiederverwendung von einfach anpassbaren Querschnittsfunktionen (z.B. Login-Mechanismen), der generierte Code kann der Objektorientierung entsprechen.

Objekt?

Bestandteil eines Systems (objektoriert entwickelte Systeme bestehen fast ausschließlich aus Objekten),

Ein Objekt kann Attribute und Methoden enthalten.

Attribute?

Elemente von Objekten, welche zum Speichern von konkreten Werten verwendet werden. Attribute werden vor einem direkten Zugriff von anderen Objekt versteckt und geschützt. (Prinzip der Datenkapselung).

Methode?

Elemente von Objekten, mit denen Werte von Attributen erstellt, gelesen und verändert, sowie Berechnungen durchgeführt werden können. Methoden ermöglichen es Objekte aufzurufen und mit Attributen zu arbeiten.

Phasen des SW-Prozesses in einem objektorientierten Entwicklungsprozess?

  1. Objektorientierte Analyse (OOA)
  2. Objektorientiertes Design (OOD)
  3. Objekorientierte Programmierung (OOP)

Objekorientierte Analyse?

Ziel ist das umfassende Verständnis dessen was entwickelt werden soll. Es wird ein fachliches Modell gebaut, welches als Grundlage für das Design, sowie für die Kommunikation zwischen Auftraggeber und Auftragnehmer dient.

objektorientiertes Design?

Aufbauend auf dem Analysemodell auf der OOA wird das technische Design des Systems erstellt, auf dessen Grundlage die Entwickler das System implementieren sollen. Diese Aufgabe wird vom Systemarchitekten übernommen.

Objekorientierte Programmierung?

Auf Basis des Systemdesigns aus dem OOD wird von den Entwicklern der Quellcode, also das eigentliche System implementiert. Wird sich nicht an die Vorgaben gehalten, kann geschehen dass das System nicht wie gewünscht arbeitet.

Qualitätsziele die sich durch die Objektorientierung einfach erreichen lassen?

  • einfache Erweiterbarkeit
  • bessere Testbarkeit
  • bessere Wartbarkeit.

Kapselung in der Objektorientierung?

Objekte werden für abgeschlossene Funktionen und Aufgaben erstellt und über Schnittstellen miteinander verknüpft.

Dies erleichtert später die Erweiterung und Wartbarkeit, da bei der Qualitätssicherung nur die betroffenen Objekte, also Teile des Systems, getestet werden müssen und nicht das gesamte System.

Klasse?

Liefert die Struktur, welche zur Bildung eines digitalen Objekts benötigt wird. Objekte die aus der gleichen Klasse erzeugt werden haben die gleiche Struktur, also dieselben Attribute und Methoden. Klassen dienen gewissermaßen als Vorlage.

Analysemodell?

Ist das Ergebnis der objektorientierten Analyse und dient als Grundlage zur Kommunikation zwischen Entwicklern und Auftraggeber, bzw. Nutzern des Systems. Es legt fest was ein System später tun soll.

Identifikation von Klassen bei der OOA?

  1.  Alle Hauptwörter der Aufgabenstellung werden als Kaandidaten für Klassen markiert.
  2.  Dann wird geprüft, ob die markierten Hauptwörter ...
    1.  ... durch weiter Hauptwörter beschrieben werden können.
    2.  .. Beziehungen oder Abhängigkeiten zu anderen Hauptwörtern haben.
    3.  Trifft eine der beiden Aussagen zu, wird das Hauptwort als Klasse modelliert.
  3. Wird das Hauptwort verwendet um ein anderes zu beschreiben wird es als Attribut der Klasse modelliert.
  4. Alle verbleibenden Wörter, die weder Klasse noch Attribut sind, werden auf Relevanz überprüft und ggf. von der Liste der Kandidaten für Klassen gestrichen.

Attribute?

Attribute sind satische Elemente von Klassen und werden zum Speichern von konktreten Werten verwendet. Sie sind also freie Speicherplätze innnerhalb eines Objekts. Zusammengefasst beschreiben die Werte aller Attribute den Zusatnd eines Objekts.

Eigenschaften eines Attributs?

  1. Name
    • Name des Attributs
  2. Datentyp
    • Legt fest, wie die Werte zu dem Attribute aussehen, also ob es Zahlen oder Zeichen oder Daten sind (Date, String, Integer)
  3. Konstanten (ja / nein)
    • Legt fest ob der Wert des Attributs geändert werden darf oder nicht.
  4. Defaultwert
    • Legt einen voreingestellten Attributwert fest.

 

Methoden?

Methoden sind dynamische Elemente von Klassen, mit denen  über enthaltene Algorithmen, Anweisungen und Abarbeitungsvorschriften, Werte erstellt, berechnet, verändert und gelöscht werden können. Die Ergebnisse können in Attributen der Klasse oder in neu erzeugten Objekten gespeichert werden. Methoden beschreiben also dass Verhallten von Objekten.

Eigenschaften von Methoden?

  1.  Name
    • Name der Methoder (z.B. getName() )
  2. Parameter
    • Benötigte Objekte und Werte, die zur Abarbeitung der Methoder erforderlich sind. ( (Date geburtsdatum) (String name, String vorname) (Integer zahl1, Integer zahl2) )
  3. Rückgabewert
    • Angabe des Datentyps des Objekts, in dem das Ergebnis der Methode gespeichert wird. (Date, String, Integer)

Beziehungen?

Sie beschreiben Abhängigkeiten und Zusammenhänge zwischen Klassen. Wenn bei der Entwicklung Beziehungen zwischen Klassen definiert wurde, ermöglichen diese die Koorperation zwischen Objekten.

Mögliche Beziehungen?

  • hat / kennt
  • besteht aus
  • ist ein

Multiplizitäten?

Sind Mengenangaben bei Beziehungen zwischen Klassen. Sie können festlegen, wieviele Objekte einer Klasse, mit wievielen Objekten einer anderen Klasse in Beziehung stehen können.

Diese Angaben werden jeweils an das Ende und die Spitze notiert: Link von ".." steht die Untergrenzen, rechts davon die Obergrenze.

Unified Modelling Language (UML)?

Universelle grafische Modellierungssprache., umfasst 13 Diagrammtypen, mit denen unterschiedliche Aspekte eines Systems modelliert werden können.

Strukturdiagramme (UML)?

Mit ihnen werden Aufbau, Elemente, Zusammensetzung und Schnittstellen von Systemen modelliert.

z.B.:

  • Klassendiagramm (cld)
  • Komponentendiagramm
  • Kompositionsstrukturdiagramm
  • Objektdiagramm
  • Deploymentdiagramm
  • Paketdiagramm

Klassendiagramm?

Strukturdiagramm das zur Modellierung von Klassen inklusive deren Attributen, Methoden und Beziehungen eingesetzt wird.

Objektdiagramm?

Wird zu Modellierung von konkreten Objekten inklusive konkreten Attributwertden als Instanzen von Klassen eingesetzt.

Verhaltensdiagramme?

  • Aktivitätsdiagramm (acd)
  • Use-Case-Diagramm (ucd)
  • Zustandsautomat (smd)

Interaktionsdiagramme?

  • Sequenzdiagramm
  • Kommunikationsdiagramm
  • Timingdiagramm
  • Interaktionsübersichtdiagramm

Progammierung? (Implementierung?)

Tätigkeit mit dem Ziel Programmcode zu erstellen. Besteht aus drei verschiedenen Tätigkeiten:

  1. Produzieren von Programmcode
  2. Kompilieren (Übersetzen in Form die vom Rechenr ausgeführt werden kann.)
  3. Ausführen um zu sehen ob sich das System wie erwartet verhält.

Compiler?

Eine Software die Programmcode in einer Form übersetzt die von einem ausgeführt werden kann.

plattform unabhängige Programmiersprache?

Muss nicht für jedes Betriebssystem neu angepasst werden. Wird in einer speziellen Laufzeitumgebung ausgeführt, die installiert werden muss und nicht bereits Teil des betriebssystems ist.

Bytecode?

Die Form eines Java-Programms nachdem es kompiliert wurde, und somit bereit ist ausgeführt zu werden.

Java-Runtime (JRE)?

Besteht aus Java Virtual Machine (JVM) und der Java Klassenbibliothek.

JVM interpretiert den Bytecode und ist für starten und ausführen des Programms verantwortlich.

Die Java-Klassenbibliothek beinhaltet bereits programmierte Klassen, die so einfach wiederverwendet werden können.

Java Software Development Kit (SDK)?

Beinhaltet die JRE sowie einen Java-Compiler und weitere Hilfprogramme welche zur SOftwareentwicklung in Java benötigt werden.