1/25
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Was sind die Schitte eines Software-Entlicklungsprozesses?
Anforderungsanalyse
Design & Spezifikation
Implementierung
Verifikation und Validierung
Was für Vorgehensmethoden gibt es für Software-Entwicklung?
Wasserfallmodell
iterative Modell
agile Modell
Was ist das Ziel der Anforderungsanalyse?
sammeln, dokumentieren und strukturieren der Anforderungen an eine Software-Lösung
Was sind die zwei groben Kategorien von Anforderungen?
funktionale Anforderungen
nicht-funktionale Anforderungen
Was ist das Ziel der Design und Spezifikations Schrittes?
Spezifizieren, wie eine Software-Lösung umgesetzt werden soll
Welche Aspekte gehören zur Spezifikation?
Softwarearchitektur beschreibt die Struktur des Programs in Komponenten und deren Zusammenspiel
Datenmodell beschriebt Entitäten und deren Beziehungen
Integration in bestehende Umgebung
weitere Randbedingungen
Was ist das Ziel der Implementierung?
Umsetzung der Software-Lösung
Welche Aktivitäten beinhaltet die Implementierung?
analysieren
programmieren
debuggen
kommunizieren
Was ist das Ziel der Verifikation und Validierung?
Testen der Software-Lösung
Was für Techniken zur Verifikation und Validierung gibt es?
Software und System Tests
Integration Tests
Unit Tests
Was ist der Unterschied zwischen Blackbox und Whitebox bei der Verifikation und Validierung?
Whitebox:
nur I/O Sichtbar
Interna verborgen
Software und System Tests
Blackbox:
Bestandteile/Module/Teile testen
Programmverhalten während Laufzeit
Was ist eine Programmiersprache?
formale Sprache zur Entwicklung von Programmen
Was sind die zwei Arten von Programmiersprachen?
Assemblersprachen
maschinenorientiert
höhere Sprachen
problemorientiert
Was sind die Eigenschaften, mit denen man Programmiersprachen einteilen kann?
Problemparadigma
Typensystem
Speichermanagement
Einsatzgebiet
Was für Typensysteme existieren?
statisch vs dynamisch
Typen zu Compiler- oder Laufzeit geprüft
explizit vs implizit
müssen Typen deklariert werden oder werden sie abgeleitet
strikt vs schwach
können Typen soch ändern
kann man Typen mischen
nominal vs strukturell
werden komplexe Typen nur anhand Namen verglichen oder anhand Struktur
Was sind gängige Programmierparadigmen?
abstrakt
abstrakte Programmierstrukturen zur Kontrolle des Programmierflusses
prozedural
Programm in kleinere Prozeduren aufgeteilt
objektorientiert
Daten und Funktionen in Objekte zusammengefasst
Was sind vielgebrauchte Programmiersprachen und deren Eigenschaften?

Wie sieht das mentale Modell, um Probleme algorithmisch zu lösen aus?
Programmieren ist ein Handwerk
Programmiersprachen sind Werkzeuge
mentale Modell unabhängig von Programmiersprache
unterschiedliche Programmiersprachen sind mehr oder weniger gut für bestimmte Einsatzzwecke
Was ist ein Compiler?
übersetzt Hochsprache in Maschinsprache
Was sind die Eigenschaften eines Compilers?
sind Programme
müssen für eine Quell-Sprache geschieben werden
unterstützen oft mehrere Zielsprachen
können resultierenden Code auch optimieren
Wie ist ein Compiler aufgebaut?

Was für Compilerarten gibt es?
Source-to-Source Compiler
übersetzt Quellsprache in Zielsprache
Bytecode Compiler
übersetzt Quellsprache in Maschinensprache einer virtuellen Maschine, aka Bytecode
Just-In-Time (JIT) Compiler
verschieben Kompilierung in Laufzeit
Was für Arten der Programmausführung gibt es?

Was sind Programm(ier)fehler (Bugs)?
Abweichungen von Laufzeitverhalten von gewünschten Sollzustand
Was für Programmierfehler gibt es?
Syntaxfehler
Laufzeitfehler
Logikfehler
Was ist eine Exception?
Datentype, welcher Informationen über Fehlerzustand bzw Ausnahmesituation umfasst