update to local git repo

This commit is contained in:
fzzinchemical
2025-07-02 13:08:03 +02:00
commit 269b8a31ba
136 changed files with 12257 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

46
Semester 3/BESYST/Aufgaben.md Executable file
View File

@@ -0,0 +1,46 @@
# Übungsblatt 1
<ol type="a">
<li>Worin besteht der Unterschied zwischen System- und Benutzermodus? Erläutern Sie, inwiefern die Tatsache, zwei unterschiedliche Modi zu haben, beim Entwurf eines Betriebssystems hilfreich ist.</li>
<li>Befehle, die den Zugriff auf Ein-/Ausgabegerate betreffen, sind in der Regel privilegiert, können also nur im Systemmodus ausgeführt werden, aber nicht im Benutzermodus. Geben Sie einen Grund dafür an, warum diese Anweisungen privilegiert sind.</li>
<li>Welche der folgenden Befehle (bzw. Aktivitäten) sollten nur im Systemmodus erlaubt sein? Geben Sie ggf. eine kurze Begründung an.</li>
<li>Für einen Programmierer sieht ein Systemaufruf genauso aus wie der Aufruf einer Bibliotheksfunktion. Ist es für den Programmierer wichtig zu wissen, wann eine Bibliotheksfunktion einen Systemaufruf ausführt? Falls ja, unter welchen Umständen und warum?</li>
<li>Moderne Betriebssysteme entkoppeln den (logischen) Adressraum eines Prozesses vom physischen Adressraum des Hauptspeichers. Geben Sie (mindestens) zwei Vorteile dieses Vorgehens an.</li>
</ol>
- Beim Systemmodus wird direkt auf die Hardware zugegriffen und commandiert, während beim Benutzermodus eine Abstraktionsschicht vorhanden ist, welche auf Softwareebene arbeitet.
- Ein und Ausgabegeräte befinden sich nicht auf der Software-Ebene, somit können diese nicht durch eine reine Anwendung des Benutzermodusses verwendet werden. Es werden Driver benötigt um an die Ein- und Ausgabegeräte zu kommen.
I. Sperren aller Unterbrechungen, (Benutzermodus)
II. Lesen der aktuellen Uhrzeit, (Benutzermodus)
III. Setzen der aktuellen Uhrzeit, (Systemmodus)
IV. Ändern der Speicherabbildungs-Tabellen. (Systemmodus)
- Hardware verhält sich nicht wie reine Software, daher kann beim falschen Anwenden von den genannten Bibliotheksfunktionen die Hardware zunichtegehen. Es sollte somit klar sein, dass alle Schritte gut überlegt wurden bevor man die Software deployed.
- KP
# Übungsblatt 2
a) Bereit, Berechnet, Blockiert
b) ![[Pasted image 20231101115012.png]]
c)
a) IO Anforderung
b) Dispatcher entzieht Prozessor
d)
mehrere Threads pro Prozess (1)
privater Thread (2)
- Offene Dateien (1)
- Tabelle zur Abbildung von logischen auf physische Adressen (1)
- Priorität für den CPU-Scheduler (2)
- Datenregister des Prozessors (2)
- Programmcode (1)
- Befehlszähler (1)
- Kellerzeiger (1)
- Lokale Variable einer Funktion bzw. Methode (1)
e) KP
f) KP
## Java Implementierung

16
Semester 3/BESYST/BESYST.md Executable file
View File

@@ -0,0 +1,16 @@
# Lehrinhalte
Lehrinhalte gegeben aus dem Modulhandbuch:
- Einführung: Aufgabenstellung, Zielsetzung, Historischer Überblick, Arten des Dialogbetriebs
- Kommunikation und Synchronisation: Prozesse, Threads, Semaphoren, Monitore, Message Passing, Remote Procedure Call
- Deadlocks
- Ressourcenverwaltung: Prozess- und Betriebsmittelsteuerung, Scheduling-Algorithmen, Swapping und Buddy-System, Paging-Prinzip, Paging-Algorithmen, Paging-Modellierung und Designprobleme, Segmentierung
- Dateisysteme: Benutzersicht, Implementierung, Sicherheit und Schutz
# Betriebssysteme
Was ist ein Betriebssystem?
Ein Betriebssystem ist die Erweiterung der Hardware und ihre Abstraktion, welche Betriebsmittel verwaltet.
Was versteht man unter Veredelung der Hardware?
Die Hardware muss billig schnell und zuverlässig sein. Dadurch wird diese auf das notwendige beschränkt und schwierig zu Programmieren.
Das Betriebssystem stellt komplexe Funktionen bereit. Wieso?
Es wird die Programmierung erheblich vereinfacht, weil kein zusätzlicher Boilerplate benötigt wird.

View File

@@ -0,0 +1,7 @@
- Einführung: Aufgabenstellung, Zielsetzung, Historischer Überblick, Arten des Dialogbetriebs
- Kommunikation und Synchronisation: Prozesse, Threads, Semaphoren, Monitore, Message Passing, Remote
Procedure Call
- Deadlocks
- Ressourcenverwaltung: Prozess- und Betriebsmittelsteuerung, Scheduling-Algorithmen, Swapping und Buddy-
- System, Paging-Prinzip, Paging-Algorithmen, Paging-Modellierung und Designprobleme, Segmentierung
- Dateisysteme: Benutzersicht, Implementierung, Sicherheit und Schutz

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

61
Semester 3/ELMESS/Aufgaben.md Executable file
View File

@@ -0,0 +1,61 @@
## Grundlagen, Einheiten und Ausgleichskurven Teil 1
### A1)
$$
\begin{align}
a)\\
\omega &= 120 \frac{U}{min} = 2 Hz \\
M &= 20Nm\\
P &= M \cdot \omega = 4\pi Hz \frac{1}{s} \cdot 20Nm = \pi \cdot 80W\\
E_p &= 3600s \cdot P = 288 \pi kJs\\
b)\\
\text{falsch}\\
\end{align}
$$
### A2
a) Herz $\frac{1}{s}$
b) Früher: 1 Meter Platinstab als Maßeinheit für den Meter, heute Lichtgeschwindigkeit. Früher zu ungenau augrund der verformbarkeit des Platins
c) Elementarladung eines Elektrons $e$, Avogadro-Konstante $N_a$
d) Dies ist in SI Grundeinheiten
$$
[m = \frac{c}{\Delta v}]\\
[kg = \frac {h \Delta v}{c²}]
\rightarrow[\rho = \frac{kg}{m²}=\frac{\frac{h \Delta v}{c²}}{(\frac{c}{\Delta v})²}=\frac{h\Delta v^3}{c⁴}]
$$
### A3
a) Einheiten mit den Naturkonstanten
$$
[J = \frac{h}{c²}]
[V = \frac{W}{A}= \frac{h\cdot\Delta v\cdot e}{c²}]
[H=\frac{kg\cdot m²}{A²\cdot s²}=\frac{h\cdot\Delta v}{c^4}]
$$
$$
\begin{align}
m &= 8000 kg\\
h &= 80m\\
E &= m\cdot g\cdot h = 6284kJ\\
E_{el} &= \frac{E}{3600s} = 1.794kWh\\
\end{align}
$$
### A4
$$
\begin{align}
q_v=10.8\frac{m³}{h}\\
\Delta p = 200\ \text{mbar}\\
a)\\
P = 10.8\frac{m³}{h}\cdot 200mbar
P = 600W
E_{elek}= 36kWh
\end{align}
$$
## Grundlagen, Einheiten und Ausgleichskurven Teil 2
a) Welchen Wert zeigt ein Drehspulinstrument bzw. ein Digitalmultimeter im "DC"-Modus an, wenn die Spannung
𝑢 𝑡 = 5V ⋅ sin 4𝜋𝑡 anliegt? Hinweis: Integration über eine Periode, also z. B. von einer Nullstelle zur nächsten.
b) Beim AS-i - Bus (Aktuator-Sensor-Interface) werden Signale in Form von Strompulsen der Form i 𝑥 = 𝐼0 sin2 𝑥
übertragen. Welchen Strom-Mittelwert hat ein solcher Puls? Hinweis: Erst mit Hilfe der Additionstheoreme zeigen,
dass sin2 𝑥 = 1
2 1
2 cos 2𝑥.

BIN
Semester 3/ELMESS/DieRechnung.pdf Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,32 @@
## Berechnungen Operationsverstärker
- $I_p = I_n = 0$
- $U_n = U_p$ mit $U_n - U_p = 0$ und umgekehrt
- $I_p = I_n = 0$
- Maschen aufstellen
- Knoten aufstellen
- Gleichung nach $U_a$ umstellen
- Lösen durch Einsetzen der vorher bestimmten Gleichungen
## Berechnung der Abweichung
### Eine Abweichung
- Bestimme den Mittelwert
- $\overline{x}=\frac{1}{N}\sum_{i=1}^{N}x_i$
- Bestimme die statistische Abweichung
- $S_x=\sqrt{\frac{1}{N-1}\sum_{i=1}^{N}(x_i-\overline{x})²}$
- Bestimme die Streuung
- $\Delta x=\frac{1}{\sqrt{N}}\cdot t_{N,\text{Sicherheit}\ \%}\cdot S_x$
- Wende das Fehlerfortpflanzungsgesetz an mit der vorgegebenen Unsicherheit und der berechneten Unsicherheit
- $\hat{x} = \overline{x}\pm\Delta x$
- $\Delta X=\sqrt{\sum_{i=1}^{N_{\text{Unsicherheit}}} \Delta x_i²}$
### mehrere Abweichungen
- Leite Partiell nach den Unsicherheiten ab
- $\Delta f_{x_i} = \frac{\partial f}{\partial x_i}\cdot \Delta x_i$
- Wende das Fehlerfortpflanzungsgesetz an
- $X = \overline{x}\pm\Delta X$
- $\Delta X=\sqrt{\sum_{i=1}^{N_{\text{Unsicherheit}}} \Delta f_{x_i}²}$
## Bildung Ausgleichs-Gerade
- Formel Ausgleichs-Gerade: $y(x)=\overline{y}+\frac{S_{xy}}{S_x²}(x-\overline{x})$
- Bestimme die Mittelwerte für x und für y
- Bestimme die statistische Abweichung für $S_x²$
- Bestimme die statistische Abweichung für $S_{x,y}$
- $S_{x,y}=\frac{1}{N-1}\sum_{i=1}^{N}((x_i-\overline{x})\cdot(y_i -\overline{y}))$
- In Gleichung einsetzen

BIN
Semester 3/ELMESS/Kochrezepte.pdf Executable file

Binary file not shown.

45
Semester 3/ELMESS/Labor_04.md Executable file
View File

@@ -0,0 +1,45 @@
5.3 Zeitkonstanten, Least Squares Parameteridentifikation
´´´matlab
scss
% Import necessary libraries
import numpy as np
from matplotlib import pyplot as plt
from scipy.optimize import curve_fit
% Load data from file
data = np.loadtxt('data.csv', delimiter=',')
% Define functions for plotting
def plot_time_series(x, y):
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Temperature (°C)')
ax.grid(True)
return fig, ax
% Define functions for fitting the curves
def fit_curve(x, y, t0, T0, Tb):
A = np.exp(-Tb * x / T0)
B = np.log(1 + (A / (1 - A)))
return A * np.exp(B * x / T0)
def fit_saturation(x, y, t0, T0, Tb):
def saturation(x, t0, T0, Tb):
return T0 + (Tb - T0) * np.exp(-x / t0)
return curve_fit(saturation, x, y, p0=[t0, T0, Tb])[0]
% Fit curves to data
fig1, ax1 = plot_time_series(data[:, 0], data[:, 1])
ax1.plot(fit_curve(data[:, 0], data[:, 1], t0=30, T0=25, Tb=10))
fig2, ax2 = plot_time_series(data[:, 0], data[:, 2])
ax2.plot(fit_saturation(data[:, 0], data[:, 2], t0=30, T0=25, Tb=10))
% Calculate difference between time constants
T_diff = np.abs(fit_curve(data[:, 0], data[:, 2], t0=30, T0=25, Tb=10)[0] - fit_saturation(data[:, 0], data[:, 2], t0=30, T0=25, Tb=10)[0])
% Print result
print('The difference between the time constants of the two sensors is:', T_diff)
´´´
5.4 Parameter B des NTC
EASY STUFF!!!

0
Semester 3/ELMESS/Untitled.md Executable file
View File

41
Semester 3/ELMESS/Vorlesung.md Executable file
View File

@@ -0,0 +1,41 @@
**Am 22.12 findet die Vorlesung in Person statt, dort wird dann die Klausurvorbereitung durchgeführt.**
# Einführung
- Einführung in Mat Lab selbst durchnehmen und erlernen, sowohl als installieren
- Gastvorlesung finden in dem Modul ebenfalls statt
- Labor wahrscheinlich einmal alle 3 Wochen
## Einleitung in die Messungen
- Distanzmessungen, Wärmemessungen, etc...
- Unterschiedliche Messgeräte (Kameras, Laser, etc...)
- In der Medizintechnik wird enorm viel gemessen
- Aufhebung, Interpretation und Umsetzung von Daten
## Was wird gemessen?
- Untersuchen und Beweisen (I +II)
- Prozessbezogenes Messen (III)
## Messen definition (?)
- **Messen heißt vergleichen**
- Messen ist das vergleichen von einer bekannten Größe mit einer vertrauten Sachlage in einer bekannten Einheit (SI, cga, usw...)
- Bei Messungen gehen pot. Informationen verloren, welche im Nachhinein ebenfalls betrachtet werden müssen
## OSZ (Folie: "Messen heißt vergleichen - Kette der Rückführung")
- je größer die Messgröße steigt, umso größer wird die Ungenauigkeit
Folgendes gilt bei einer RC-Schaltung (gilt nur bei den gegebenen Werten):
Es wurde an die Tafel eine begrenzte Funktion mit der Grenze 90% aufgezeichnet. Bei $x = \tau$ sind 63% und bei $t_{10} = 10\%$
$$
\begin{align}
t_{10} &= 10µs \pm 0.2µs(\Delta t_1) \\
t_{90} &= 80µs \pm 0.5µs(\Delta t_2)\\\\
t_r &= t_{90}-t{10} = 70µs\pm0.54µs\\
\Delta t_r &= \sqrt{\Delta t_1^2 + \Delta t_2^2}\\
\Rightarrow \Delta t_r &= 0.54µs
\end{align}
$$
# Vorlesung 03
- Wiederholung der Grundlagen zu GELEK2/WSTROM
- Komplexe Rechnungen von Kondensator und Spule
- Bode-Diagramm
- Hochpass-/Tiefpassfilter und Anwendungsbeispiel
- Es wird bei Parallelschaltungen konsequent mit der Impedanz gerechnet, weil sich dies so eingegliedert hat, trotz der Vereinfachung der Rechnungen durch das Einsetzen der Admittanz...(das ist btw. ein dummes Argument, weil man durch den Wechsel nichts neues Lernen müsste, die möglichen Fehler reduzieren würde und allg. weniger Zeit braucht)
- Widerstand kann bei bestimmten Frequenzen durchbrennen, weil dieser eine bestimmte Leistung nicht korrekt aufnehmen kann.

11
Semester 3/HMINF/Aufgaben.md Executable file
View File

@@ -0,0 +1,11 @@
Fourrier-Reihen:
https://people.math.carleton.ca/~angelo/calculus/Exercises-Fourier-Series.pdf
Fixpunktiteration:
https://www3.nd.edu/~zxu2/acms40390F15/Lec-2.2.pdf
Extrema:
Mathematik für Informatiker
https://mo.mathematik.uni-stuttgart.de/tests/klausuren.html
Lagrange Interpolation

View File

@@ -0,0 +1,99 @@
Kochrezepte erstellt (erstmal) anhand der Klausuraufgaben. (Bis Aufgabe 3)
**ACHTUNG: Die Vorgehensweise einiger dieser Kochrezepte entsprechen nur einem Pfad. Es ist durchaus möglich, dass eigentlich zur bearbeitung der Aufgaben eine Baumstruktur vorliegt. :(**
## Bestimmung des Taylorpolynoms
### Polynom einer Mehrparameterfunktion
Kochrezept für das Aufstellen eines Taylor-Polynoms 2.Grades einer Multiparameterfunktion mit 2 Parametern.
1. $f(x_0,y_0)$ bestimmen
2. 1. Ableitungmenge der Funktion $f(x,y)$ bestimmen
3. Nabla-Operator anhand $f'(x_0,y_0)$ bestimmen
4. 2. Ableitungsmenge der Funktion $f(x,y)$ bestimmen
5. Hesse-Form ($\underline{\underline{H}}_f$) anhand der Ableitungsmengen und $x_0, y_0$ bestimmen
6. Eintragen in den Taylor-Polynom
$$T_{n,(x_0,y_0)}(x,y) = f(x_0,y_0)+\nabla^T
\left(\begin{array}{r}
x-x_0\\
y-y_0
\end{array}\right)+\frac{1}{2!}
\left(\begin{array}{r}
x-x_0\\
y-y_0
\end{array}\right)^T
\underline{\underline{H}}_f
\left(\begin{array}{r}
x-x_0\\
y-y_0
\end{array}\right)^T$$
## Ermittlung der Lage und Art relativer Extremwerte von Funktionen
1. Notwendige Bedingung
1. 1. Ableitungsmenge bilden
2. $\nabla \neq \begin{pmatrix}0\\0\end{pmatrix}$
3. Nullsetzen der 1. Ableitungen und die Lösungsmengen von $x, y$ bestimmen
4. mögliche Extremastellen anhand der Kombinationen von $x$ und $y$ ermitteln
2. Hinreichende Bedingung
1. Aufstellen der Hesse-Form
2. Einsetzen der möglichen Extremastellen und anhand $h_{f11}$ und der Determinanten die Definitheit bestimmen
1. $h_{f11} > 0, \text{det}\ \underline{\underline{H}}_f > 0$ pos. definit rel. Minimum
2. $h_{f11} > 0, \text{det}\ \underline{\underline{H}}_f < 0$ indefinit, Sattelpunkt
3. $h_{f11} < 0, \text{det}\ \underline{\underline{H}}_f < 0$ indefinit, Sattelpunkt
4. $h_{f11} < 0, \text{det}\ \underline{\underline{H}}_f > 0$ neg. definit, rel. Maximum
## Gleichungslösung
### Fixpunktinteration
1. Funktion nach $x$ Lösen => $g(x)$
2. 1. Ableitung bilden und Steigung auswerten
3. Grenzwertbetrachtung
4. $|g'(x)|=L$
5. Aufstellen der Iterationsvorschrift
6. Ermitteln der Iterationsfolge
7. Fehlerabschätzung
$$|x_n-\tilde{x}| = \frac{L}{1-L}|x_n-x_{n-1}|$$
## Integrationsregeln
### Potenzregel
$$\int x^ndx = \frac{1}{n+1}x^{n+1}$$
### Faktorregel
$$\int c \cdot f(x)dx = c \cdot \int f(x)dx$$
### Summenregel
$$\int (f(x)+g(x))dx = \int f(x)dx + \int g(x)dx$$
### Partielle Integration
$$\int f'(x)g(x)dx = f(x)g(x)-\int f(x)g'(x)$$
### Integration durch Substitution
$$\int f(x)dx = \int f(\varphi(u)\cdot \varphi'(u)du$$
## Fourrier-Reihen
$$s_n(x) = \frac{a_0}{2}+\sum_{k=1}^{\infty}(a_k\cdot \cos(k\omega x) + b_k\cdot \sin(k\omega x))$$
$$a_0 = \frac{2}{T}\int f(x)dx$$
$$a_k = \frac{2}{T}\int f(x)\cdot \sin(k\omega x)dx$$
$$b_k = \frac{2}{T}\int f(x)\cdot \sin(k\omega x)dx$$
- Bestimmen, ob die Funktion gerade oder ungerade ist
- Wenn Fkt. gerade, dann ist $b_k = 0$
- Wenn Fkt. ungerade, dann ist $a_k = 0$
- Wenn beides nicht zutrifft müssen $a_k$ und $b_k$ bestimmt werden
- Bestimmung von $\omega, a_0$
- Bestimmung von $a_k$ und/oder $b_k$
- In die Formel einsetzen
## Kleinste Quadrate Methode
Benötigte Formeln:
$$
\begin{align}
\underline{\underline{G}}^T\underline{\underline{G}}\underline a = \underline{\underline{G}}^T\underline y && F = (\underline{y}- \underline{\underline{G}}\underline{a})^T(\underline{y}- \underline{\underline{G}}\underline{a}) \\ \underline{\underline{G}}\underline{a} = \underline{y}
&& \underline{a} = \underline{(\underline{G}}^T\underline{\underline{G}})^{-1}\underline{\underline{G}}^T\underline{y}
\end{align}
$$
- Überprüfung auf lineare Gleichung $\nabla_{\underline{a}}F(\underline{a}) = \underline{0}$
- Aufstellen von $\underline{\underline{G}}$ bspl. $\begin{pmatrix}1 &x_0\\1&x_1\end{pmatrix}$
- Quadrieren und Umkehren von $\underline{\underline{G}}$
- Gleichung nach $\underline{a}$ lösen und in Geradengleichung $a_0+a_1x$ einsetzen
## Matrizenoperationen
### Inverse Matrix
$$A^{⁻1} = \begin{pmatrix}
a & b\\
c & d
\end{pmatrix}^{-1}
=
\frac{1}{\text{det}\ A}\cdot
\begin{pmatrix}
d & -b\\
-c & a
\end{pmatrix}
$$

Binary file not shown.

0
Semester 3/HMINF/Untitled.md Executable file
View File

28
Semester 3/HMINF/Vorlesung.md Executable file
View File

@@ -0,0 +1,28 @@
1. Differentialrechnung für Funktionen mehrerer Variablen
1. Einführung
2. Eigenschaften des $\mathbb{R}^n$
1. Definition 7-1
2. Definition 7-2
3. Definition 7-3
3. Folgen im $\mathbb{R}^n$
1. Definition 7-4
2. Satz 7-1
3. Satz 7-2
4. Satz 7-3
5. Definition 7-5
6. Satz 7-4
4. Stetigkeit von Funktionen mehrerer Variablen
1. Definition 7-6
2. Satz 7-5
3. Satz 7-6
5. Richtungsableitung, partielle Ableitung
1. Definition 7-7
2. Definition 7-8
3. Satz 7-7
4. Definition 7-9
5. Definition 7-10
6. Definition 7-11
7. Satz 7-8
8. Satz 7-9
9. Satz 7-10
Bearbeitungsstand: 17.10.2023

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@@ -0,0 +1,53 @@
- Was waren die Auslöser der Software-Krise 1968?
- Verfügbare Methoden und Techniken sind der steigenden Komplexität der Softwaresysteme nicht gewachsen
- Es gab (und gibt) Defizite bei der Entwicklung im Team
- Regeln, Normen nicht existent, nicht bekannt oder ignoriert
- Zu welchen Konsequenzen kann eine fehlerhafte Software führen?
- Konventionalstrafen für zu späte und/oder fehlerhafte Software
- Kosten für Fehlersuche und Behebung
- Schaden für das Unternehmens-lmage
- Rechtliche Konsequenzen, Z.B. Schadenersatz
- Sachschäden
- Personenschäden
- Was lernen wir daraus?
- Fehlerbehandlung
- Software ist nicht Hardware
- Sicherheit
- Fehlertoleranz
- Verifikation
- Validierung
- Risikomanagement
- Welche Aktivitäten gehören zum fachlichen, technischen und methodischen Bereich der Softwaretechnik?
- Problem- und Systemanalyse
- Anforderungsspezifikation
- Systementwurf
- Softwarearchitektur
- Implementierung
- Integration und Test
- Qualitätssicherung
- Installation und Betrieb
- Wartung und Weiterentwicklung
- Welche Qualifikationen benötigt ein Software-Ingenieur?
- Primär
- Vorstellungskraft
- klares, strukturiertes Denken und Handeln
- Kommunikationsfähigkeit
- Teamfähigkeit
- Sekundär
- Techniken Ermittlung/Verwaltung von Anforderungen
- Programmiertechniken
- Entwurfsprinzipien
- Erstellung und Nutzung von Modellen/Spez. auf versch. Abstraktionsebenen
- Weniger wichtig sind:
- erlernte Programmiersprachen
- benutzte Betriebssysteme
- besuchte Kurse
- Warum gehört Dokumentation zur Software?
- Ist grundsätzlich wichtig, will trotzdem keiner machen
- Welche sind die wichtigsten Eigenschaften der Software?
- Was ist ein Softwaresystem?
- Documentation
- Software + Hardware
- Interfaces, die die Software mit der Hardware verbinden
- Nennen Sie ein paar Beispiele von Softwaresystemen und schätzen Sie ihre Komplexität ein
- Windows 10: Extremst groß, gleiche Codebase seit Vista

288
Semester 3/SWTECH/Vorlesung.md Executable file
View File

@@ -0,0 +1,288 @@
**Klausurtermine Mi: 07.02.2024, 28.03.2024, 9 Uhr, Raum 032a-c**
"Ich möchte nicht sehen was Sie nicht können, Ich möchte sehen was Sie können."
Vorlesung des 15. 16. fällt aus.
# Inhaltsverzeichnis
- [[#Klausur|Klausur]]
- [[#Labor|Labor]]
- [[#Inhalt|Inhalt]]
- [[#Software|Software]]
- [[#Softwaresystem|Softwaresystem]]
- [[#Keine Ahnung wohin damit|Keine Ahnung wohin damit]]
- [[#Entwicklungsprozess|Entwicklungsprozess]]
- [[#Entwicklungsprozess#Begriffe und Grundlegendes|Begriffe und Grundlegendes]]
- [[#Begriffe und Grundlegendes#Projektphasen|Projektphasen]]
- [[#Entwicklungsprozess#Aktivitäten / Phasen|Aktivitäten / Phasen]]
- [[#Aktivitäten / Phasen#Überblick|Überblick]]
- [[#Aktivitäten / Phasen#Entwurf|Entwurf]]
- [[#Entwurf#Grobentwurf|Grobentwurf]]
- [[#Entwurf#Feinentwurf|Feinentwurf]]
- [[#Aktivitäten / Phasen#Implementierung|Implementierung]]
- [[#Aktivitäten / Phasen#Phasenübergreifende Aspekte|Phasenübergreifende Aspekte]]
- [[#Phasenübergreifende Aspekte#Projektmanagement|Projektmanagement]]
- [[#Phasenübergreifende Aspekte#Projekt und Konfigurationsmanagement|Projekt und Konfigurationsmanagement]]
- [[#Vorgehensmodell|Vorgehensmodell]]
- [[#Wasserfallmodell / Phasen und Ergebnisse|Wasserfallmodell / Phasen und Ergebnisse]]
- [[#Wasserfall-Verbesserung|Wasserfall-Verbesserung]]
- [[#Wasserfall-Verbesserung#Iterativ / Inkrementell / Evolutionär|Iterativ / Inkrementell / Evolutionär]]
- [[#Projekt und Konfigurationsmanagement#Probleme:|Probleme:]]
- [[#Wasserfall-Verbesserung#Spiral-Modell|Spiral-Modell]]
- [[#Wasserfall-Verbesserung#Prototyping zur Unterstützung der Iteration|Prototyping zur Unterstützung der Iteration]]
- [[#Phasenübergreifende Aspekte#Experimentelle Prototypen|Experimentelle Prototypen]]
- [[#Phasenübergreifende Aspekte#Horizontal- vs. Vertikale Prototypen|Horizontal- vs. Vertikale Prototypen]]
- [[#Wasserfall-Verbesserung#Rational Unified Process (RUP)|Rational Unified Process (RUP)]]
- [[#Agile Vorgehensmodelle|Agile Vorgehensmodelle]]
- [[#Das V-Modell|Das V-Modell]]
# Vorlesungseinführung
[Discord Channel](discord.gg/AGQsZGwY2) , Aulis bleibt klassische Platform
Labor ist verpflichetend und wird bewertet (Raum 236 als Diskussionsraum)
Folien, die in den Vorlesungen nicht behandelt wurden müssen privat bearbeitet werden.
## Klausur
- Klausur ist bei mind. 50% bestanden, allerdings wird Zeitdruck in der Klausur simuliert ("Klausur ist sportlich"')
- 1 bei 90% "Ich gehe aber sowieso davon aus, dass Sie die 10% nicht bekommen.".(Big OOOF)
- DIN A4 doppelseitig beschrieben (Handschriftlich) als Formelsammlung kann mitgenommen werden.
- Strategie + Konzentration sind Schlüssel
- 20% Theorie, Kompetenzstufe 6
## Labor
- **Laborraum: I233**
- **Laboraufgaben am Labortag bis 23:55**
- Laboraufgaben sind skalierbar (wenn jemand austeigen sollte, werden die Aufgaben geringer)
- vergabe von Teamnoten und Kennzeichnung von Eigenleistung, bei bedarf kann die Benotung als Einzelperson erfolgen
## Inhalt
- Paradigmenvergleiche bei Programmiersprachen für unterschiedliche Kontexte.
- UML macht einen Comeback und muss gründlich durchegenommen werden anhand der UML Folien und von Beispielsweise bearbeitung von [UML Glasklar]()
- Literatur von vor 5 Jahren schon teilweise obsolet und daher nur als Grundlagen verwenden
- IEEE, ACM, GI, INCOSE, GfSE
# Vorlesung 01 (Einführung)
## Software
- Software altert teilweise schneller als Hardware
- "Wir machen etwas, was an den Rest passen muss"
- Wohin gehen die Wissensschnittstellen, welche Grenzen haben diese?
## Softwaresystem
- Software+ Hardware
- Software defakto überall
- Immer Architektur, durch bewusstes Design oder ausversehen entstanden
- Sinnvolle Architektur ist wichtig
## Keine Ahnung wohin damit
- UML ist nicht Mittel zum Zweck, sondern ein Tool um strukturellen Kontext
___
# Vorlesung 02 (Entwicklungsprozess)
- Wenn die Techniken der Softwareentwicklung nicht beherscht sind, dann ist jegliche Bewertung von Zeitaufwand, Personal etc nicht möglich.
- Abschluss der 1. Vorlesungsfolien
## Entwicklungsprozess
### Begriffe und Grundlegendes
- Prozess: Vorgehensweise zur Erstellung des Produkts
- Produkt: Resultat des Prozesses
- Projekt: Das gesamte Vorhaben als (Phasen-) Abfolge zum Erstellen des Produkts
#### Projektphasen
- Studien- und Planungsabschnitt (Vorstudie, Konzeption, Definition & Planung)
- Realisierungsabschnitt (Entwicklung, HW Fertigung)
- Betriebsabschnitt (Betrieb & Wartung, Entsorgung)
### Aktivitäten / Phasen
#### Überblick
#### Entwurf
- erstellen eines Systems, welches die Anforderungsanalyse entspricht
- Entwurf Abhängig von dem was gebraucht wird und welche Qualitätsmerkmale gefragt werden
##### Grobentwurf
- Lines & Boxes
- Kapselung notw. DIesnte
- Testen auf Anforderungen
##### Feinentwurf
- Wie wird konkret realisiert?
- Unit-test ist teil der Implementierung
#### Implementierung
- Entwurf dient als Grundlage
- Programming in the small vs. Programming in the large (Ground up und Top down)
- Integrations und Systemtest
#### Phasenübergreifende Aspekte
##### Projektmanagement
##### Projekt und Konfigurationsmanagement
- urspr. Lösen der steigenden Produktkomplexität
___
# Vorlesung 03 (Vorgehensmodelle)
## Vorgehensmodell
- Ziel: Geplant zu qual.hochw. Produkt
- Arbeits- aufteilung und vorgang
- 4Ws machen ihren come-back bei der Aufbereitung
## Wasserfallmodell / Phasen und Ergebnisse
- früher: stagewise model
- weiterentwicklung u.a. durch Royce
- Für das Verständnis des zusammenhangs und der Funktion von bspw. SCRUM ist das Verstehen von dem Modell wichtig
- Pflichtenheft vorhanden
- Wenn sauber bearbeitet wurde entstehen zwei Dokumente (Pflichtenheft und Anf.Spez.)
- sukzessive Entwicklung von Software, praktisch aber nicht wirklich umsetzbar
- Kunde kann Lastenheft innerhalb der Bearbeitungszeit überarbeiten etc.
- "Wartungsdefinition nicht so gut definiert"
- vollst. Durchführung der Phasen nicht immer sinnvoll
## Wasserfall-Verbesserung
- verbesserung durch interativ, inkrementelle Wiederholungen
### Iterativ / Inkrementell / Evolutionär
- Iterativ: Wiederholen
- Inkrement: Vergrößern
- Evolutionär:
- Kosten können nach jeder Iteration überprüft werden
- Agile hat nicht iterativ, inkrementelles Vorgehen **nicht** erfunden
###### Probleme:
- Prozess nicht wirklcih sichtbar
- schlechte Strukturierung kann enstehen
- Vertraglich gebunden
- "Safe ist grausam (zu komplex und nicht unbedingt agil)"
- Für reine Softwaresysteme
### Spiral-Modell
1. Analyse
2. Evaluierung
3. Realisierung
4. Planung
- Entwickeln mehrerer Prototypen $\rightarrow$ treibung durch Prototypentwicklung
### Prototyping zur Unterstützung der Iteration
- keine ad-hoc Vorgehensweise
##### Experimentelle Prototypen
- Nachweis der Machbarkeit
##### Horizontal- vs. Vertikale Prototypen
Horizontal: real. nur einer spez. Ebene
Vertikal:
### Rational Unified Process (RUP)
- Initial 1998 von Kruchten vorgestellt
- basiert auf UML
- "Zu kompliziert für reale Welt"
- RUP wird nicht abgefragt, trotzdem interessant
## Agile Vorgehensmodelle
- inkr. Ansatz aus vielen kleinen Iterationen
- **neu**: Am Ende jeder Iteration folgt ein Reviews und ggf. Re-Evaluation von Projektprioritäten
- "Agile kann man sich nicht nennen, Agile muss man sein" (cringe)
### Agiles entwickeln mit Scrum
![[Pasted image 20231102101622.png]]
### Das V-Modell
- defakto aus Militär
- Absolut viele unterschiedlichen Modelle (wie auf wiki. zu lesen)
- entgegensetzen von Implementation und Testens
![[Pasted image 20231102105704.png]]
- Benutzen eines Hybridmodelles hier sinnvoll, weil Anforderungsänderungen hier teilweise sehr teuer werden können.
# Vorlesung 04 (Anforderungsanalyse)
## Definition
Definiert nach IEE als die dok. Darstellung einer Beschaffenheit oder Fähigkeit, die von einem Benutzer oder Lösung eines Problems oder Erreichung eines Ziels benötigt wird oder die ein System oder Systemteil erfüllen oder besitzen muss, um einen Vertrag, eine Norm, eine Spezifikation oder andere, formell vorgegebene Dokumente zu erfüllen.
## Anforderungsanalyse - Grundlagen
- Pflichtenheft ist ein Vertragsdokument
## Lasten-/Pflichtenheft
- Lastenheft besch. Anf. aus Kundensicht
- Pflichtenheft besch. Anf. aus Lieferantensicht
- Vertragsgrundlage
- von allen am Projekt Beteiligten akzeptiert
## Arten von Anforderungen
![[Pasted image 20231102115045.png]]
## Eigenschaft einer Anforderung
### Inhalt
![[Pasted image 20231102115639.png]]
### Behandlung
![[Pasted image 20231102115326.png]]
## Schritte
### 3. Schritt
- Benutzer des Systems
- Rollen der Benutzer
### Akteure in UML
- Rolle, welche ein Benutzer im System spielt
- Beeinflusst Sys.
## 4. Schritt
- Fortschrittsequenz der Geschäftsprozesse
### 5. Schritt
- Anwendungsfälle deklarieren (Use-Cases)
- Anwendung von UML2 als gängige Notation
### 6. Schritt
- Anwendungsfälle zerlegen Geschäftsprozesse in Portionen, welche aus Sicht des Anwenders sinnvoll ist.
- Reihenfolge kann sich später ändern, daher ist eine Festlegung der Reihenfolge am Anfang unwichtig
### 7. Schritt
- Ausarbeitung der Anwendungsfälle (ins Detail gehend)
- Die Analyse kann als UML-, Text-, Diagrammentwurf beispielsweise erstellt werden (Schablonen ebenfalls)
Präsentiert wird dann Folie 44,45 und 46, welche eine Beispielschablone für die Bearbeitung des 7. Schrittes ist.klk
___
# Vorlesung 05 (Entwurf)
- festl. Architektur des Sys.
## Allgemeines
## Entwurfskriterien
- Kopplung:
- Maß für ene interne Beschaffenheit eines Entwurfs
- Koplung über eine Schnittstelle
- Ziel: lose/geringe Kopplung
- Fehlerbehebung ohne größeren Aufwand
- Kohäsion:
- Maß für die (funktionale) Bindung der Elemente innerhalb eines Bausteins
- Kohäsion bewertet den inneren Zusammenhalt
- Ziel: starke/hohe Kohäsion
- benötigte Infos und Ops zur Lösung in einem Baustei vorhanden
- Zulänglichkeit:
- Maß für Erfüllung der Anforderungen
- Ziel: überschaubare, einsichtige Zulänglichkeit
- Vollständigkeit
- Maß für vollständige Umsetzung der Anforderungen
- Ziel: Vollständigkeit in Bezug zur Aufgabe
- EInfachheit
- Maß für die Umsetzung von hinreichender Funktionalität mit angemessener Schnittstelle des Bausteins
- Ziel: KIS - keep it simple
## Entwurfsprinzipien
- Grundsatz, dem man seinem Handeln zugrunde legt
- Noch unabhängig von konkreten Methoden und Techniken
- Modelltypen
- deskriptiv
- präskriptiv
## Sichtweisen/Vorgehensweisen zum Entwurf
- Orientierung ist egal
## Heuristiken
- Aus Projektumfeld
- Anforderungen Hinterfragen
- Betrachtung Use-Cases
- Nach Feedback suchen
- Für den Entwurf
- KIS
- auf "richtige" Detailebene bleiben
- nicht übergeneralisieren
- so lokal wie möglich entwickeln
Off Topic stuff:
- Basiswissen-Softwaretest-Modul laut Matevska ein gutes Modul
- Informatik ist Denglisch at its peak
___
# Vorlesung 8
- Paper-Reviews können blind betrachtet werden um vorurteile etc beiseite zu schieben
- Review-sitzung soll zieloreintiert durchgezogen werden
- Nachbearbeitung kann zu wiederholung des Reviews führen
- Je komplexer die thematik, umso besser muss man in der Materie sein
- systematisches Vorgehen und kein ad hoc (spezifizierter Test und nicht über den Tellerrand schauend)
- Eigang von Unit lvl. aber auch komplex lvl.
Testfälle:
- Bei Tests Versionen etc. mit angeben (der Stubs beispielsweise)
- Reproduzierbarkeit des Tests ist eine grundlage für das gute Testen
- Womit wurde getestet?
- Beispiel Compilereinstellungen sind wichtig anzugeben weil unterschiedliche Ergebnisse rauskommen können
- Auf Testfälle kommt man anhand der Anforderungsdefinitionen, Systemspez. und allg. Richtlinien
Äquivalenzklassenbildung
- Auswahl an Eingabeparameter, bei denen eine keine unterschiedlichen Ausgaben herauskommen
___
# Vorlesung 9
Whitebox Test Folie 48-50 Prüfungsrelevant
# Vorlesung 10 Implementierung
- Dokumentation um zu Wissen was innerhalb geschieht
Compiler, Interpreter, Precompiler und Linker
Imperativ => Herrschen, Beherschen
OOP: Vererbung segen und Fluch