<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Softwareentwicklung on FISI Lernzettel</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/</link><description>Recent content in Softwareentwicklung on FISI Lernzettel</description><generator>Hugo</generator><language>de</language><atom:link href="https://hugo.globuklumbo.de/07_softwareentwicklung/index.xml" rel="self" type="application/rss+xml"/><item><title>Datenformate: XML, JSON, CSV</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/datenformate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/datenformate/</guid><description>&lt;h1 id="datenformate-xml-json-csv"&gt;Datenformate: XML, JSON, CSV&lt;a class="anchor" href="#datenformate-xml-json-csv"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Strukturierte Datenformate dienen dem &lt;strong&gt;Austausch und der Speicherung&lt;/strong&gt; von Daten zwischen Anwendungen, Systemen und Schnittstellen (APIs).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="csv--comma-separated-values"&gt;CSV – Comma-Separated Values&lt;a class="anchor" href="#csv--comma-separated-values"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Das &lt;strong&gt;einfachste&lt;/strong&gt; der drei Formate. Daten werden als &lt;strong&gt;Tabelle&lt;/strong&gt; in Textform gespeichert – Felder durch Trennzeichen getrennt.&lt;/p&gt;
&lt;h3 id="aufbau"&gt;Aufbau&lt;a class="anchor" href="#aufbau"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Vorname,Nachname,Alter,Stadt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Max,Mustermann,25,Berlin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Anna,Schmidt,32,München
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Tom,Meier,19,Hamburg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Erste Zeile:&lt;/strong&gt; oft die Spaltenüberschriften (Header)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trennzeichen:&lt;/strong&gt; Komma &lt;code&gt;,&lt;/code&gt; (standard), Semikolon &lt;code&gt;;&lt;/code&gt; (Deutschland, da Komma Dezimalzeichen), Tab &lt;code&gt;\t&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zeilenende:&lt;/strong&gt; Neue Zeile = neuer Datensatz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anführungszeichen:&lt;/strong&gt; Felder mit Komma oder Zeilenumbruch werden in &lt;code&gt;&amp;quot;...&amp;quot;&lt;/code&gt; eingeschlossen&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="eigenschaften"&gt;Eigenschaften&lt;a class="anchor" href="#eigenschaften"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Vorteile&lt;/th&gt;
					&lt;th&gt;Nachteile&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Sehr einfach &amp;amp; kompakt&lt;/td&gt;
					&lt;td&gt;Keine Hierarchien möglich&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Von allen Tabellenkalkulationen lesbar&lt;/td&gt;
					&lt;td&gt;Kein Standard für Sonderzeichen/Encoding&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Menschlich lesbar&lt;/td&gt;
					&lt;td&gt;Keine Datentypen (alles Text)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ideal für tabellarische Daten&lt;/td&gt;
					&lt;td&gt;Trennzeichen im Dateninhalt problematisch&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Typische Einsatzbereiche:&lt;/strong&gt; Datenbankexporte, Tabellenkalkulationen, einfache Datenübertragung, Log-Dateien.&lt;/p&gt;</description></item><item><title>Programmiergrundlagen: Pseudocode, Datentypen, Kontrollstrukturen</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/programmiergrundlagen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/programmiergrundlagen/</guid><description>&lt;h1 id="programmiergrundlagen-pseudocode-datentypen-kontrollstrukturen"&gt;Programmiergrundlagen: Pseudocode, Datentypen, Kontrollstrukturen&lt;a class="anchor" href="#programmiergrundlagen-pseudocode-datentypen-kontrollstrukturen"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Bevor Code in einer konkreten Programmiersprache geschrieben wird, wird ein Algorithmus oft zunächst als &lt;strong&gt;Pseudocode&lt;/strong&gt; oder &lt;strong&gt;Aktivitätsdiagramm&lt;/strong&gt; entworfen — sprachunabhängig und leicht verständlich.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="pseudocode"&gt;Pseudocode&lt;a class="anchor" href="#pseudocode"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pseudocode&lt;/strong&gt; beschreibt einen Algorithmus in strukturierter, umgangssprachlicher Form, ohne sich an die exakte Syntax einer Programmiersprache zu halten.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ALGORITHMUS Zahleneingabe
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; EINGABE zahl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; WENN zahl &amp;gt; 0 DANN
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; AUSGABE &amp;#34;positiv&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; SONST
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; AUSGABE &amp;#34;negativ oder null&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ENDE WENN
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ENDE ALGORITHMUS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="variablen-und-datentypen"&gt;Variablen und Datentypen&lt;a class="anchor" href="#variablen-und-datentypen"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Eine &lt;strong&gt;Variable&lt;/strong&gt; ist ein benannter Speicherplatz für einen Wert, der sich während der Programmausführung ändern kann.&lt;/p&gt;</description></item><item><title>Softwaredokumentation</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/softwaredokumentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/softwaredokumentation/</guid><description>&lt;h1 id="softwaredokumentation"&gt;Softwaredokumentation&lt;a class="anchor" href="#softwaredokumentation"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Eine gute Dokumentation ist genauso wichtig wie der Code selbst – sie ermöglicht &lt;strong&gt;Wartung, Erweiterung und Übergabe&lt;/strong&gt; von Software an andere Entwickler oder Anwender.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="arten-der-dokumentation"&gt;Arten der Dokumentation&lt;a class="anchor" href="#arten-der-dokumentation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Softwaredokumentation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ┌────────────┼────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ▼ ▼ ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Entwickler- Anwender- Technische
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dokumentation dokumentation Dokumentation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(intern) (extern) (Architektur)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="entwicklerdokumentation-interne-dokumentation"&gt;Entwicklerdokumentation (interne Dokumentation)&lt;a class="anchor" href="#entwicklerdokumentation-interne-dokumentation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Richtet sich an &lt;strong&gt;Entwickler&lt;/strong&gt;, die den Code warten, erweitern oder debuggen müssen.&lt;/p&gt;
&lt;h3 id="code-kommentare"&gt;Code-Kommentare&lt;a class="anchor" href="#code-kommentare"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6c7086;font-style:italic"&gt;# Einzeiliger Kommentar – kurze Erklärung einer Zeile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt; x &lt;span style="color:#89dceb;font-weight:bold"&gt;+&lt;/span&gt; &lt;span style="color:#fab387"&gt;1&lt;/span&gt; &lt;span style="color:#6c7086;font-style:italic"&gt;# Zähler erhöhen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;Mehrzeiliger Kommentar (Docstring):
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;Beschreibt eine Funktion oder Klasse ausführlich.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cba6f7"&gt;def&lt;/span&gt; &lt;span style="color:#89b4fa"&gt;berechne_mehrwertsteuer&lt;/span&gt;(netto: &lt;span style="color:#89dceb"&gt;float&lt;/span&gt;, steuersatz: &lt;span style="color:#89dceb"&gt;float&lt;/span&gt; &lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#fab387"&gt;0.19&lt;/span&gt;) &lt;span style="color:#89dceb;font-weight:bold"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#89dceb"&gt;float&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e3a1"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; Berechnet den Bruttobetrag inkl. Mehrwertsteuer.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; Parameter:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; netto (float): Nettobetrag in Euro
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; steuersatz (float): MwSt-Satz als Dezimalzahl (Standard: 0.19 = 19%)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; Rückgabe:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; float: Bruttobetrag in Euro
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; Beispiel:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; &amp;gt;&amp;gt;&amp;gt; berechne_mehrwertsteuer(100)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; 119.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e3a1"&gt; &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cba6f7"&gt;return&lt;/span&gt; netto &lt;span style="color:#89dceb;font-weight:bold"&gt;*&lt;/span&gt; (&lt;span style="color:#fab387"&gt;1&lt;/span&gt; &lt;span style="color:#89dceb;font-weight:bold"&gt;+&lt;/span&gt; steuersatz)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="was-gehört-in-einen-guten-kommentar"&gt;Was gehört in einen guten Kommentar?&lt;a class="anchor" href="#was-geh%c3%b6rt-in-einen-guten-kommentar"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Sinnvoll&lt;/th&gt;
					&lt;th&gt;Überflüssig&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Warum&lt;/strong&gt; etwas so gemacht wird&lt;/td&gt;
					&lt;td&gt;Was offensichtlich im Code steht&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Erklärung komplexer Algorithmen&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;x = x + 1 # x wird um 1 erhöht&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Dokumentation von Parametern/Rückgaben&lt;/td&gt;
					&lt;td&gt;Jede einzelne Zeile kommentieren&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Bekannte Einschränkungen / TODO&lt;/td&gt;
					&lt;td&gt;Veraltete Kommentare (schlimmer als keine!)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="changelog--versionierung"&gt;Changelog / Versionierung&lt;a class="anchor" href="#changelog--versionierung"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Dokumentiert &lt;strong&gt;was wann von wem geändert&lt;/strong&gt; wurde:&lt;/p&gt;</description></item><item><title>Testverfahren in der Softwareentwicklung</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/testverfahren/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/testverfahren/</guid><description>&lt;h1 id="testverfahren-in-der-softwareentwicklung"&gt;Testverfahren in der Softwareentwicklung&lt;a class="anchor" href="#testverfahren-in-der-softwareentwicklung"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Softwaretests&lt;/strong&gt; prüfen, ob ein Programm korrekt funktioniert. Sie helfen, Fehler frühzeitig zu finden und die Qualität zu sichern.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="übersicht-der-testarten"&gt;Übersicht der Testarten&lt;a class="anchor" href="#%c3%bcbersicht-der-testarten"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Softwaretests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ┌──────────────┼──────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ▼ ▼ ▼
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Whitebox- Blackbox- Greybox-
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Test Test Test
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (Code bekannt) (Code unbekannt) (teilweise bekannt)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="blackbox-test"&gt;Blackbox-Test&lt;a class="anchor" href="#blackbox-test"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Der Tester kennt den &lt;strong&gt;internen Code nicht&lt;/strong&gt; – er sieht nur Eingabe und Ausgabe (wie eine schwarze Box).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eingabe ──► [███████] ──► Ausgabe
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (Code
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; unbekannt)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Vorgehen:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>UML — Klassen-, Aktivitäts- und Sequenzdiagramm</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/uml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/uml/</guid><description>&lt;h1 id="uml--klassen--aktivitäts--und-sequenzdiagramm"&gt;UML – Klassen-, Aktivitäts- und Sequenzdiagramm&lt;a class="anchor" href="#uml--klassen--aktivit%c3%a4ts--und-sequenzdiagramm"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;&lt;abbr title="Unified Modeling Language" style="text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--color-link); cursor: help;"&gt;UML&lt;/abbr&gt; (Unified Modeling Language)&lt;/strong&gt; ist eine standardisierte Notation zur grafischen Modellierung von Software. Für die Prüfung sind drei Diagrammtypen besonders relevant: das &lt;strong&gt;Klassendiagramm&lt;/strong&gt; (statische Struktur), das &lt;strong&gt;Aktivitätsdiagramm&lt;/strong&gt; (Abläufe/Algorithmen) und das &lt;strong&gt;Sequenzdiagramm&lt;/strong&gt; (zeitlicher Nachrichtenaustausch zwischen Objekten).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="klassendiagramm"&gt;Klassendiagramm&lt;a class="anchor" href="#klassendiagramm"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Das &lt;strong&gt;Klassendiagramm&lt;/strong&gt; zeigt die &lt;strong&gt;statische Struktur&lt;/strong&gt; eines Systems: welche Klassen es gibt, welche Attribute/Methoden sie haben und wie sie zueinander in Beziehung stehen.&lt;/p&gt;</description></item><item><title>API-Authentifizierung</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/api-authentifizierung/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/api-authentifizierung/</guid><description>&lt;h1 id="api-authentifizierung"&gt;API-Authentifizierung&lt;a class="anchor" href="#api-authentifizierung"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Da &lt;strong&gt;&lt;abbr title="Application Programming Interface" style="text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--color-link); cursor: help;"&gt;API&lt;/abbr&gt;s&lt;/strong&gt; oft über das öffentliche Internet erreichbar sind und Zugriff auf sensible Daten oder Funktionen erlauben, muss jede Anfrage eindeutig einem berechtigten Aufrufer zugeordnet werden können. Die &lt;strong&gt;Authentifizierung&lt;/strong&gt; stellt fest, &lt;em&gt;wer&lt;/em&gt; eine Anfrage stellt, die anschließende &lt;strong&gt;Autorisierung&lt;/strong&gt; entscheidet, &lt;em&gt;was&lt;/em&gt; dieser Aufrufer tun darf.&lt;/p&gt;
&lt;h2 id="warum-apis-authentifizierung-brauchen"&gt;Warum APIs Authentifizierung brauchen&lt;a class="anchor" href="#warum-apis-authentifizierung-brauchen"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ohne Authentifizierungsmechanismus könnte jeder, der die URI einer API kennt, beliebige Daten abrufen, verändern oder löschen. Typische Ziele einer API-Authentifizierung:&lt;/p&gt;</description></item><item><title>PowerShell Grundlagen</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/powershell-grundlagen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/powershell-grundlagen/</guid><description>&lt;h1 id="powershell-grundlagen"&gt;PowerShell Grundlagen&lt;a class="anchor" href="#powershell-grundlagen"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;PowerShell&lt;/strong&gt; ist die von Microsoft entwickelte, objektorientierte Shell und Skriptsprache zur Automatisierung von Windows-Administrationsaufgaben. Anders als klassische Shells wie Bash, die Textausgaben zwischen Befehlen weiterreichen, arbeitet PowerShell mit &lt;strong&gt;strukturierten .NET-Objekten&lt;/strong&gt; — das macht die Weiterverarbeitung von Ergebnissen deutlich zuverlässiger als das Parsen von reinem Text.&lt;/p&gt;
&lt;h2 id="objekte-statt-text"&gt;Objekte statt Text&lt;a class="anchor" href="#objekte-statt-text"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Gibt ein Bash-Befehl eine Liste von Prozessen aus, ist das Ergebnis eine Zeichenkette, aus der bei Bedarf einzelne Werte (z. B. eine Prozess-ID) mühsam mit Textwerkzeugen herausgeschnitten werden müssen. Ein PowerShell-Cmdlet liefert stattdessen ein &lt;strong&gt;Objekt&lt;/strong&gt; mit klar benannten Eigenschaften (z. B. &lt;code&gt;Id&lt;/code&gt;, &lt;code&gt;ProcessName&lt;/code&gt;, &lt;code&gt;CPU&lt;/code&gt;), auf die direkt zugegriffen werden kann — ohne Textverarbeitung.&lt;/p&gt;</description></item><item><title>REST-API-Grundlagen</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/rest-api-grundlagen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/rest-api-grundlagen/</guid><description>&lt;h1 id="rest-api-grundlagen"&gt;REST-API-Grundlagen&lt;a class="anchor" href="#rest-api-grundlagen"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Eine &lt;strong&gt;&lt;abbr title="Application Programming Interface" style="text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--color-link); cursor: help;"&gt;API&lt;/abbr&gt;&lt;/strong&gt; (Application Programming Interface) ist eine Programmierschnittstelle, über die Anwendungen miteinander Daten austauschen und Funktionen aufrufen können, ohne die interne Implementierung des jeweils anderen Systems zu kennen. &lt;strong&gt;&lt;abbr title="Representational State Transfer" style="text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--color-link); cursor: help;"&gt;REST&lt;/abbr&gt;&lt;/strong&gt; (Representational State Transfer) ist der heute meistgenutzte Architekturstil, um solche Schnittstellen über &lt;abbr title="Hypertext Transfer Protocol" style="text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--color-link); cursor: help;"&gt;HTTP&lt;/abbr&gt; bereitzustellen — er bildet die Grundlage für den Großteil moderner Web- und Cloud-Anwendungen.&lt;/p&gt;</description></item><item><title>Shell-Scripting Grundlagen (Bash)</title><link>https://hugo.globuklumbo.de/07_softwareentwicklung/shell-scripting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hugo.globuklumbo.de/07_softwareentwicklung/shell-scripting/</guid><description>&lt;h1 id="shell-scripting-grundlagen-bash"&gt;Shell-Scripting Grundlagen (Bash)&lt;a class="anchor" href="#shell-scripting-grundlagen-bash"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Ein &lt;strong&gt;Shell-Skript&lt;/strong&gt; ist eine Textdatei mit einer Abfolge von Befehlen, die von einer Shell (unter Linux/Unix meist &lt;strong&gt;Bash&lt;/strong&gt;, Bourne Again Shell) nacheinander ausgeführt wird. Statt wiederkehrende Administrationsaufgaben — Backups, Aufräumarbeiten, Prüfungen des Systemzustands — jedes Mal manuell einzutippen, werden sie in einem Skript automatisiert und reproduzierbar gemacht.&lt;/p&gt;
&lt;h2 id="grundlegende-bash-konzepte"&gt;Grundlegende Bash-Konzepte&lt;a class="anchor" href="#grundlegende-bash-konzepte"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="shebang"&gt;Shebang&lt;a class="anchor" href="#shebang"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Jedes Bash-Skript beginnt mit der &lt;strong&gt;Shebang-Zeile&lt;/strong&gt;, die dem System mitteilt, welcher Interpreter es ausführen soll:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6c7086;font-style:italic"&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="variablen"&gt;Variablen&lt;a class="anchor" href="#variablen"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Variablen werden ohne Typangabe zugewiesen (kein Leerzeichen um das &lt;code&gt;=&lt;/code&gt;) und mit &lt;code&gt;$&lt;/code&gt; ausgelesen:&lt;/p&gt;</description></item></channel></rss>