Aspekte der Implementierung Flashcards

1
Q

Nennen Sie grundlegende Überlegungen für die Implementierung

A
  • Wahl der Programmiersprache
  • Etablierung eines Styleguides, Clean-Code Prinzipien
  • Dokumentation (davor, danach, laufend)
  • Refactoring
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In welche vier Sprachtypen lassen sich “Entwicklungssprachen” kategorisieren und was ist deren jeweiliger Anwendungsbereich?

A

Konfigurationssprachen: Zusammenfügen vorgegebener Komponenten

Toolkit/Applikationssprachen: Steuerung vorgegebener Komponenten in Toolkits/Anwendungen

Skript-/Batch-/Makrosprachen: Entwicklung wiederholender Tätigkeiten als Skripte

Programmiersprachen: Entwicklung komplexer Systeme

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Nenne drei Notationsformen für Programmiersprachen

A

Sprachlich : Rückgriff auf sprachliche Syntax und Grammatik
Formal : Rückgriff auf Symbole mit spezifischer Bedeutung, keine Ambiguitäten (C, C++, …)
Visuell (z.B. Unreal Blueprints)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie erreicht man lesbaren Quelltext (Clean Code)?

A
  • Namenskonventionen/Style-Guides
  • selbsterklärende Benennung von Variablen und Methoden
  • Methodennamen decken vollständige Tätigkeit ab
  • magische Zahlen durch Konstanten ersetzen
  • -> geringer Kommentarbedarf, da selbsterklärend
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Warum ist guter Quelltext wichtig?

A
  • das Programmierteam kann diesen ebenfalls nachvollziehen
  • geringe Komplexität reduziert den Aufwand sich reinzudenken
  • Wiederverwendbarkeit durch bessere Beschreibung
  • einfacheres Debugging
  • -> Entwicklungszeit verringert sich
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Zu welchem Zweck wird in der Software-Entwicklung dokumentiert?

A

Leser können effizient und effektiv Informationen extrahieren:

  • effizient: keine Wiederholung/Verwirrung
  • effektiv: notwendige Information ist vorhanden und aktuell

… Leser sind Entwickler, Designer, …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie kann die Aktualität der Dokumentation gewährleistet werden?

A

mit Dokumentationsgeneratoren (z.B. JavaDoc, Doxygen)
Quelltext wird mit besonderen Kommentaren annotiert (/** */)
–> Quelltextstruktur liefert Struktur der Dokumentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was versteht man unter Refactoring?

A

Veränderung eines Softwaresystems, wobei externes Verhalten unverändert bleibt,
aber Struktur/Lesbarkeit des Codes verbessert wird

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie kann man sicherstellen, dass nach dem Refactoring das externe Verhalten des Systems unverändert ist?

A
  • Schnittstelle bleibt konsistent
  • Testbedingungen und Testergebnis sind gleich –> automatische/systematische Tests im Test-Driven-Development
  • Vor-/Nachbedingungen gleich
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Nenne Indikatoren dafür, dass refactored werden sollte

A

“Code Smells”:

  • lange Methoden
  • doppelter/redundanter Code
  • zu viele Kommentare
  • lange Parameterlisten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Geben Sie Prinzipien guter Entwicklung an

A

DRY - Don’t Repeat Yourself
KISS - Keep it simple stupid
NIH - Not invented here –> frühzeitige Entscheidung für Neuentwicklung, obwohl Re-Use effizienter wäre
Premature Optimization : Vermeidung verfrühter Optimierung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly