Lektion 3: Software-Entwicklung Flashcards
Zur Entwicklung nativer Android-Apps stehen zwei Programmiersprachen zur Wahl, welche sind das?
Java und Kotlin
Java weist insbesondere die folgenden Eigenschaften auf. Welche?
- Einfachheit: Java ist vergleichsweise einfach zu erlernen, da die Programmiersprache nur aus wenigen Sprachkonstrukten besteht und auf komplexe Konzepte verzichtet.
- objektorientiert: Java ist eine vollständig objektorientierte Programmiersprache und verweigert den Aufruf von Prozeduren oder Unterprogrammen.
- verteilt: Mit Java können Anwendungen realisiert werden, die auf verteilte Ressourcen innerhalb einer gemeinsamen Netzstruktur zugreifen können.
- Sicherheit: Java stellt verschiedene Sicherheitsmechanismen zum Schutz vor unerlaubten Zugriffen bei der Nutzung verteilter Anwendungen über das Internet zur Verfügung.
- architekturneutral: Java-Anwendungen laufen auf allen Rechnerarchitekturen, die über ein Java-Laufzeitsystem verfügen.
Zur Erstellung und Anwendung eines Java-Programms werden folgende Werkzeuge benötigt, welche?
- Editor: zur Eingabe des Programmquellcodes;
- Compiler: zur Übersetzung des Programmquellcodes in eine Form, die von einem Computer ausgeführt werden kann;
- Laufzeitumgebung: die Java-Laufzeitumgebung (engl. Java Runtime Enviroment) zur weitgehend betriebssystemunabhängigen Programmausführung;
- Java-Bibliotheken: Die Programmierung mobiler Anwendungen für das Android-Betriebssystem erfordert die Einbindung zusätzlicher Java-Bibliotheken in die Laufzeitumgebung. Sie beinhalten spezielle Klassen für die Kommunikation mit der Hardware des entsprechenden Endgeräts und dem Android-Betriebssystem.
Für die Erstellung von nativen Android-Apps gibt es verschiedene Entwicklungsumgebungen. Es gibt zwei Entwicklungsumgebungen, welche?
App Inventor und Android Studio
Die Erstellung von mobilen Applikationen erfolgt in App Inventor in zwei Schritten. Nenne und beschreibe beide Schritte.
- Design Editor: Im ersten Schritt erfolgt die Gestaltung anhand der Browseranwendung im Design Editor. Per Drag & Drop lassen sich dazu die benötigten Steuerelemente, wie z. B. Schaltflächen, Textfelder oder Beschriftungen, auf der Benutzeroberfläche platzieren, anordnen, benennen und priorisieren (Kloss 2011, S. 59f.).
- Blocks Editor: Um ausführbare Algorithmen zu generieren, werden den Steuerelementen im zweiten Schritt Funktionen und Methoden zugewiesen und die Funktionsblöcke miteinander verbunden.
Zur Entwicklung nativer iOS-Apps stehen ebenfalls zwei Programmiersprachen zur Wahl, welche?
Objective-C und Swift
In einer separaten CSS-Datei, dem sogenannten Stylesheet, wird also die Darstellung bzw. das Aussehen des Dokuments einer Web-App festgelegt. Dazu gehören z. B. Layout, Typografie, Farben und auch verschiedene Darstellungen für unterschiedliche Ausgabemedien. Die strikte Trennung von Struktur (HTML) und Design (CSS) bietet dabei insbesondere zwei Vorteile, welche?
- Anpassungsfähigkeit: Durch die Trennung lässt sich das Layout besser an das jeweilige Ausgabegerät, aber auch an spezielle Benutzerbedürfnisse, beispielsweise eine spezielle Darstellung für Menschen mit einer Sehbehinderung, anpassen.
- Flexibilität: Designänderungen werden für alle HTML-Dokumente vorgenommen, ohne die Trennung müsste jedes HTML-Dokument einzeln angepasst werden. Soll die Webseite beispielsweise eine andere Hintergrundfarbe bekommen, dann muss diese Einstellung nicht in jedem einzelnen HTML-Dokument der Webseite vorgenommen werden, sondern nur einmalig in der entsprechenden CSS-Datei.
Sollen Anweisungen wiederholt ausgeführt werden, dann werden Schleifen eingesetzt. Bei einer Schleife werden die Anweisungen so lange wiederholt, wie die Schleifenbedingung gültig ist. Dabei wird zwischen verschiedenen Typen von Schleifen unterschieden. Einige häufig verwendete Typen sind welche?
- for-Schleife (zählgesteuerte Schleife): Bei einer for-Schleife handelt es sich um eine zählgesteuerte Schleife, bei der die Anweisungen so lange wiederholt werden, bis ein bestimmter Wert erreicht wird. So führt z. B. for (var i=0; i < 10; i++) { echo i; } den Code so lange aus, wie i kleiner als 10 ist (i < 10), und erhöht i bei jedem Durchgang um eins (i++). Mit { echo i; } wird der Wert der Variablen i ausgegeben.
- while-Schleife (bedingungsgesteuerte Schleife): Bei einer while-Schleife handelt es sich um eine bedingungsgesteuerte Schleife, bei der die Anweisungen so lange ausgeführt werden, wie eine bestimmte Bedingung erfüllt ist. So führt beispielsweise while (i != 1) { echo i; } den nachfolgenden Code wiederholt aus, so lange die Bedingung erfüllt ist. Man spricht hier auch von einer kopfgesteuerten Schleife, da die Abfrage der Bedingung vor der Ausführung der Anweisungen erfolgt.
- do-Schleife (bedingungsgesteuerte Schleife): Die do-Schleife ist ebenfalls bedingungsgesteuert und ähnelt der while-Schleife, mit dem Unterschied, dass hier die Überprüfung der Bedingung nach der Ausführung der Anweisungen erfolgt. Daher spricht man auch von einer fußgesteuerten Schleife, z. B. do { echo i; } until (i == 10);.
Ein Datenbanksystem, häufig auch einfach nur kurz als Datenbank bezeichnet, dient zur elektronischen Verwaltung von Daten und hat die Aufgabe, große Datenmengen widerspruchsfrei, effizient und dauerhaft zu speichern und bei Bedarf die benötigten Daten für die Anwendungen bereitzustellen. Datenbanken bestehen aus welchen zwei Komponenten?
dem Datenbankmanagementsystem (DBMS) zur Verwaltung der Daten und der eigentlichen Datenbank, die den Datenbestand enthält.
Was ist SQLite?
SQLite ist eine Bibliothek, die das Datenbanksystem enthält. Dabei handelt es sich um eine „embedded“-Datenbank. Das bedeutet, die Datenbank ist in die jeweilige Anwendung eingebunden und wird mit dieser ausgeliefert. Damit ist sie auch ausschließlich dieser einen Anwendung zugeordnet. Eine Besonderheit von SQLite ist, dass die Bibliothek mit nur wenigen Hundert Kilobyte sehr klein ist und eine SQLite-Datenbank nur aus einer einzigen Datei besteht. Daher wird SQLite nicht nur gerne für mobile Betriebssysteme, sondern auch z. B. in Browsern, unter anderem zur Verwaltung von Lesezeichen oder Cookies, eingesetzt
SQLite unterstützt insgesamt nur welche fünf Datentypen?
- Null: für Null-Werte.
- Integer: zur Speicherung einer vorzeichenbehafteten Ganzzahl, die je nach Größe des Werts in 1, 2, 3, 4, 6 oder 8 Byte gespeichert wird. Dieser Typ kann somit auch zum Speichern von Werten des Typs Boolean (true/false) genutzt werden. Integer entspricht dem Typ Long in Java.
- Real: zur Speicherung von Gleitkommazahlen mit doppelter Genauigkeit. In diesem Datentyp lässt sich aber auch der kleinere Datentyp Float speichern. Das entspricht dem Typ Double in Java.
- Text: zur Speicherung von Textzeichenfolgen. Text entspricht dem Typ String in Java.
- BLOB: Das Akronym steht für Binary Large Object. Mit diesem Datentyp lässt sich im Grunde alles speichern. BLOB wird z. B. häufig zur Speicherung von Dokumenten, Bildern oder Musik verwendet (z. B. JPG, MP3, MOV). Da SQLite nicht weiß, wie die Daten zu interpretieren sind, ist eine Suche, Filterung, Sortierung oder Gruppierung über eine Spalte des Datentyps BLOB allerdings nicht möglich. BLOB entspricht dem Typ Byte-Array (byte[]) in Java.
Was ist eine Standalone Application?
Als Standalone Application wird ein Gerät (Hardware oder Software) bezeichnet, das eigenständig, also ohne weitere Zusatzgeräte, seine Funktion erfüllen kann.
Was ist eine Dalvik-Datei?
Das Dalvik-Dateiformat mit der Dateierweiterung .dex ist eine ausführbare Datei, die für Android kompilierten (übersetzten) Code enthält.
Tag
Dieser englische Begriff kann mit Etikett oder Auszeichner übersetzt werden und ist eine Auszeichnung eines Datenbestandes mit zusätzlichen Informationen.
Launcher
.
Ein Launcher ist vergleichbar mit dem Desktop auf einem Computer. Im Launcher werden die Icons der Apps angezeigt
Die Software wird laut der Norm ISO/IEC 2382 (2015) in welche drei Kategorien unterteilt?
In System-, Unterstützungs- und Anwendungssoftware
Zur Entwicklung nativer Android-Apps stehen welche zwei Programmiersprachen zur Wahl?
Zur Entwicklung nativer Android-Apps stehen zwei Programmiersprachen zur Wahl: Java und Kotlin
Bei der Entwicklung von Web-Apps werden speziell für mobile Anwendungen entwickelte Java-Script-Bibliotheken, wie z. B. jQuery Mobile, eingesetzt. Wofür?
Beispielsweise gibt es auf mobilen Geräten mit Touchscreen keine Hover-Mausereignisse, dafür aber verschiedene Finger-Gesten, wie z. B. Wischen (swipe), Drehen (rotate), Spreizen (pinch). jQuery Mobile ist an diese Erfordernisse von mobilen Anwendungen angepasst und mit den meisten mobilen Betriebssystemen kompatibel.
Welche Entwicklungsumgebung (Softwaretools zur App-Erstellung) von Native-Apps wird bei iOS und welche bei Android genutzt?
iOS: X-Code
Android: App-Inventor, Android-Studio
Laut Norm ISO/IEC 2382 wird Software in welche drei Kategorien unterteilt?
Systemsoftware, Unterstützungssoftware und Anwendungssoftware
Wofür ist das Betriebssystem in Verbindung mit der Software zuständig?
Das Betriebssystem ist dabei ein zentraler Bestandteil der Systemsoftware. Es ist nicht nur die Basis für die verschiedenen möglichen Betriebsarten, sondern es steuert und überwacht auch die Ausführung der Anwendungs- und Unterstützungssoftware.
Was ist ein Kernel?
Der Kernel arbeitet im Hintergrund und ist das Kernprogramm des Betriebssystems. Er ist im Wesentlichen für die Vermittlung zwischen der Hard- und Software zuständig.