Datenschutz vs. Datensicherheit
Datenschutz: Personenbezogene Daten; Schutz der Privatsphäre und Verhinderung von Missbrauch; DSGVO
Datensicherheit: Schutz von Daten gegen Verlust, Manipulation, Beschädigung oder unautorisierten Zugriff
SQL Joins (INNER, LEFT, RIGHT, FULL)
(2) Betroffenenrechte (DSGVO)
echt auf: Information, Auskunft, Berichtigung, Löschung, Einschränkung der Verarbeitung, Datenübertragbarkeit, Wiederspruch
Verbotprinzip mit Erlaubnisvorbehalt (Datenschutzrecht)
Verbot für Erhebung, Verarbeitung und Nutzung personenbezogener Daten
> Benötigt ist die Einwilligung des Betroffenen oder eine gesetzliche Regelung ist in Kraft
Zusammenhang zwischen Zweckbindung, Datenminimierung und Speicherbegrenzung (Datenschutz)
Zweckbindung: pb. Daten dürfen nur für den Zweck für dem sie erhoben wurden, genutzt werden
Datenminimierung und Speicherbegrenzung: sind die pb. Daten nicht mehr an ein Zweck verbunden, müssen sie gelöscht werden
Transparenz und Richtigkeit (Datenschutz)
Transparenz
Unternehmen müssen jederzeit offen und klar informieren, welche pb. Daten und zum welchen Zweck sie verarbeitet werden und wurden
Richtigkeit
pb. Daten die gespeichert werden müssen korrekt sein; Recht auf Korrektur der ungenauen Daten
Kategorien personenbezogener Daten (DSGVO)
pb. Daten: Rasse, politische Meinung, Religion, Gewerkschaftszugehörigkeit, genetische Daten, biometrische Daten, Gesundheitsdaten, Sexualität
besondere Kategorien pb. Daten: höheres Risiko für die Grundrechte und Freiheiten der betroffenen Personen
Hauptaufgabe und Verantwortlichkeit von Datenschutzbeauftragten
Beratungsfunktion: bei Einhaltung von Datenschutzgesetzen und -richtlinien; Datenschutzfolgenabschätzungen
Überwachungsfunktion: Einhaltung der Regeln im Unternehmen
Schnittstelle zu Datenschutzaufsichtsbehörden und bearbeiten Anfragen und Beschwerden von Betroffenen
Ziele der Datensicherheit: Vertraulichkeit, Integrität, Verfügbarkeit und Authentizität
Vertraulichkeit
Zugang auf Systeme und Daten nur für berechtigte
Integrität
Daten müssen korrekt sein und dürfen nicht unbemerkt verändert werden können
Verfügbarkeit
Systeme und Daten müssen zur Verfügung stehen um von autorisierte Personen genutzt werden können
Authentizität
Echtzeit und Vertrauenswürdigkeit
Aufgaben von IT-Sicherheitsbeauftragten
Erstellung von Richtlinien zur Informationssicherheit
Umsetzung von Maßnahmen
Organisation von Schulungen und Trainings
Bearbeitung von IT-Sicherheitsvorfällen
Dokumentation und Überwachung der Sicherheitsmaßnahmen
Ansprechpartner/Berate
DSGVO [EU] und BDSG [DE]
Europaweitgültige Verordnung; Belege des Datenschutzes
Ergänzung zu DSGVO; DSGVO steht vor BDSG
ISO 270001 und BSI IT-Grundschutz
Standards im Bereich Informationssicherheit
Empfehlungen und Regeln für den Aufbau und die Weiterentwicklung eines Informationssicherheitsmanagementsystems (ISMS)
ISO 270001 = 270001 international; BSI IT-Grundschutz = nationaler deutscher Standard (Behörde und kritische Bereiche [KRITIS])
Schutzbedarfskategorien "normal", "hoch", "sehr hoch"
Bestimmung Sicherheitsbedarf von Informationen oder Systemen
normal
Begrenzte und überschaubare Schaden
hoch
Erhebliche Schaden oder Existenzbedrohung
sehr hoch
katastrophale Schaden oder Existenzbedrohung
Technische und organisatorische Maßnahmen (TOM)
Komplexitätsanforderung
Anonymisierung und Pseudonymisierung von pb. Daten
Verschlüsselung
Datensicherung
Bauliche Sicherung von kritischen Bereichen
Zugangs- und Zutrittskontrolle
Alarmanlagen
Richtlinien für die Nutzung der IT, des Internets und mobiler Geräte
…
"Stand der Technik" (DSGVO)
§32 = Maßnahmen treffen, um ein angemessenes Schutzniveau der pb. Daten zu gewehrleisten
Neuste und effektivste Sicherheitsmaßnahmen und -technologien sind einzusetzen (immer auf dem neusten und effektivsten Stand sein)
Anonymisierung vs. Pseudonymisierung von personenbezogenen Daten
Anonymisierung
Entfernung alles identifizierenden Merkmale
Person unidentifizierbar, keine Zurückverfolgung
z.B. ein Patient hat einen Gamma-GT-Wert von 83 U/L
Pseudonymisierung
Veränderung der pb. Daten
Kann nicht mehr einer spezifischen Person zugeordnet werden ohne zusätzliche Information
Identifizierbar mit der richtigen Information
Patien: 92B hat einen Gamma-GT-Wert von 83 U/L
Compliance
Einhaltung von gesetzlichen Bestimmungen, branchenspezifische Standards, interne Richtlinien und ethische Prinzipien
Minimierung von Risiken, Vermeidung von Haftungsansprüchen und Erhaltung von Vertrauen, Kunden, Investitionen und Öffentlichkeit
> Nichteinhaltung: rechtliche Konsequenzen, finanzielle Verluste, Reputationsschäden
"Privacy by Design" vs. "Privacy by Default"
Privacy by Design
Datenschutz im gesamten Entwicklungsprozess von Software, Hardware oder IT-Systemen
Feste Bestandteile eines fertigen IT-Produkts
Datenschutz durch Technikgestaltung
Privacy by Default
Datenschutzfreundliche Voreinstellungen z.B einer Anwendung
Schutz von Nutzern die weniger technikversiert sind
Komplexitätsanforderungen und warum diese für eine höhere Passwortsicherheit sorgen
Verwendung von Klein- und Großbuchstaben
>erhöht die Anzahl an Variationen
Zahlen, Sonderzeichen
>verhindert zusätzliche Verwendung von "Dudenworten" als Passwort
ausreichende Passwortlänge
>erhöht den Aufwand für die Ermittlung eines Passwortes durch systematisches Probieren
Vor- und Nachteile von Single-Sign-On (SSO)
Vorteile
Nachteile
Einmalige Anmeldung, um auf mehrere Anwendungen zuzugreifen
Reduziert das Risiko vergessener Passwörter
Besteht die Möglichkeit, schnell und zentralisiert auf Sicherheitsvorfälle zu reagieren
Ein Ausfall oder eine Kompromittierung des SSO-Dienstes kann den Zugriff auf alle Anwendungen beeinträchtigen
Technisch komplex zu implementieren und zu verwalten
Anbieterabhängigkeit: Risiken im Zusammenhang mit der Verwendung eines externen SSO-Dienstleiters
OAuth2, Verwendung in der Authentifizierung und Autorisierung
Offenes Protokoll zur sicheren Delegierung von Zugriffsrechten im Internet
Zugriff auf Daten, ohne dabei die Anmeldeinformationen preiszugeben
Rollen:
Ressourcenbesitzer
besitzt Daten und kann anderen Zugriff auf Daten geben
Client
Anwendung, die den Zugriff auf die Ressourcen des Benutzers anfordert
Autorisierungsserver
überprüft die Identität des Benutzers und erteilt Zugriffstoken
Ressourcenserver
Erhält die Benutzerdaten und gewährt den Zugriff auf sie, wenn er ein gültiges Token erhält
Autorisierungs-Prozess von OAuth2 (Beschreibung > Zugriff auf Benutzerdaten)
Zugangskontrolle vs. Zugriffskontrolle
Zugangskontrolle (Access Control)
...die Möglichkeit, den physischen oder virtuellen Zugang zu einer Ressource zu kontrollieren
…bestimmt wer oder was Zugang hat
Zugriffskontrolle (Authorization Control)
…regelt, was ein Benutzer oder System nach dem Zugang machen darf
…festlegt, welche Operationen auf einer Ressource ausgeführt werden dürfen, nachdem Zugang erlangt wurde
…regelt, die Befugnisse oder Berechtigungen, die einem Benutzer oder System gewährt werden, nach der Erlangung vom Zugang
Betriebssystemhärtung (Systemsicherheit)
Reihe von Maßnahmen, die darauf abzielen, die Sicherheit eines Betriebssystems zu erhöhen, indem dessen Anfälligkeit reduziert und potenzielle Angriffspunkte minimiert werden.
Besipiele:
Nur die absolut notwendigen Softwarekomponenten und -dienste installieren
Patch-Management
Einschränkung von Systemzugriffsrechten
Aktivieren der verfügbaren Sicherheitsfunktionen
Nutzung von Firewall und Antivirensoftware
Verwendung von Verschlüsselung
Angriffsmethoden: Trojaner, Ransomware, Phishing, Distributed Denial of Service (DDoS)
Trojaner
Programm, das als nützliche Anwendung getarnt ist, im Hintergrund aber ohne das Wissen des Anwenders eine andere Funktion erfüllt
Ransomware
Die Nutzung von Daten und Systemen wird z.B. durch Verschlüsselung verhindert, um Lösegeld vom Geschädigten zu erpressen
Phishing
Abfrage von Anmeldeinformationen per E-Mail oder über gefälschte Webseiten, um sich später den unerlaubten Zugriff auf die Systeme ermöglichen
Distributed Denial of Service (DDoS)
Überlastung eines Computersystems durch Massenabfrage, die von einer großen Anzahl anderer Computersysteme verursacht wird
(25) Unter welchen Voraussetzungen ist es einem Spamfilter oder dem Admin eines Unternehmens erlaubt, E-Mails auf unerwünschte Inhalte zu überprüfen?
Inhalt von E-Mails fällt unter das Briefgeheimnis und Datenschutzbestimmungen, was bedeutet, dass sie nicht ohne weiteres eingesehen oder überwacht werden dürfen.
Die MA müssen informiert werden
Überwachung nur beruflicher E-Mails, keine private E-Mails
Honeypot (IT-Sicherheit)
System
Simuliert einen Rechner, Netzwerkdienst oder Anwendungsprogramm
Lockt gezielt Angreifer und Schadprogramme an; erstellt als ein Falle
Studiert Angriffsmethoden
Lenkt von anderen Systemen ab
Sandbox (IT-Sicherheit)
Abgesicherte/isolierte Umgebung
Software oder Code können ausgeführt werden, ohne dass das umliegende System oder Netzwerk beeinflusst wird
Isoliert die Ausführung der Software, um sicherzustellen, dass möglicher schädliche oder nicht verifizierter Code nicht zugrundeliegende Systeme oder Netzwerke zugreifen kann
Differenzielle vs. Inkrementelle Datensicherung + Aufwand bei der Wiederherstellung von Daten
Differenzielle
Inkrementelle
Start
Vollsicherung
Im Anschluss
Daten, welche seit der letzten Vollsicherung verändert oder neu erstellt wurden
Daten, welche seit dem letzten Sicherungsdurchlauf (Vollsicherung oder inkrementell) verändert oder neu erstellt wurden
Wiederherstellung
letzte Vollsicherung und das letzte differentielle Backup
letzte Vollsicherung und alle inkrementelle Sicherungen in der richtigen Reihenfolge
Generationsprinzip ("Großvater-Vater-Sohn-Prinzip")
•Datensicherungsstrategie
• Mehrere Sicherungen in verschiedenen zeitlichen Abstufungen
• Verhinderung von kompletten Datenverlust, durch Beschädigung einer einzelnen Sicherung
• Konzept der Überschreibung und Wiederverwendung kann eingesetzt werden
• z.B.: tägliche, wöchentliche und monatliche Sicherung
3-2-1-Regel (Datensicherung)
Zahl
Erklärung
3
1 ursprüngliche Datei
2 Backup-Kopien
2
2 verschiedene Speichermedien für die Backups
1
1 Kopie muss an einem anderen Ort aufbewahrt werden (Offsite-Kopie)
Schutz von lokalen Katastrophen: Feuer, Überschwemmungen, Einbrüche…
physisch entferntes Ort oder Cloud-Speicherdienst
Datensicherung vs. Archivierung
Datensicherung:
Prozess, regelmäßige Kopien von Daten zu erstellen
Wiederherstellung im Falle eines Datenverlustes
regelmäßige Erstellung von Backups und Bewahrung auf einem sicheren medium oder sicheren Ort
Archivierung:
Prozess der langfristigen Aufbewahrung von Daten
Daten die nicht mehr aktiv verwendet werden
müssen aus rechtlichen oder geschäftlichen Gründen aufbewahrt werden
Auf einem kosteneffizienten Medium und sicheren Ort aufbewahrt
Ältere Daten sind zugänglich wenn sie benötigt werden
Disaster Recovery [DR] (Informationstechnologie)
Strategien und Maßnahmen zur Wiederherstellung und Schutz der IT-Infrastruktur und -Daten im Falle eines "Desasters"
Disaster: Naturkatastrophen, Cyberangriffe oder Hardwareausfälle
Disaster Recovery Plan [DRP] > detaillierte Anweisung und Verfahren für die Wiederstellung von Systemen und Daten
"Recovery Time Objective" (RTO) und "Recovery Point Objective (RPO)"
Schlüsselkonzepte
Im Bereich DRP (sieh 32)
RTO
Maximale tolerable Zeit,
die ein System nach einem Ausfall oder einer Störung ausfallen darf,
bevor es zu erheblichen Schäden kommt
>Die Zeit, die benötigt wird, um die Funktionsfähigkeit wiederherzustellen
RPO
Maximale Menge an Daten,
Die ein U sich leisten kann zu verlieren,
Bevor es zu erheblichen Schäden kommt
>oft in Zeiteinheiten gemessen
"Mean Time Between Failures" (MTBF) vs. "Mean Time To Failure" (MTTF)
MTBF:
urchschnittliche Zeit zwischen reparierbaren
Ausfällen
Hohes MTBF = höhere Zuverlässigkeit und
Langlebigkeit des Systems
Je größer der Zeitraum zwischen den Ausfällen, desto
zuverlässiger ist das System.
MTBF = Gesamtzeit / Anzahl der Ausfälle
MTTF:
durchschnittliche Zeitspanne, der erwartungsgemäß
vergeht, bevor ein Gerät oder System ausfällt
Keine Reparatur, sondern Ersatz nach Ausfall
MTTF = Gesamtzeit / Anzahl der Ausfälle
RAID 0, 1, 5, 6, 10
Warum kann RAID die Datensicherung nicht ersetzen?
Ein RAID schützt in den folgenden Fällen nicht vor einem Datenverlust:
• Virenbefall eines Systems
• Versehentlich gelöschte oder veränderte Daten
• Physikalische Beschädigung durch Feuer, Wasser oder Vandalismus
Hot-Spare-Festplatte
• zusätzliche Festplatte im RAID, die installiert wird, um eine ausgefallen Festplatte zu ersetzen
• automatische Übernahme der Rolle der ausgefallenen Festplatte
• Sofortige integration und Wiederherstellung der Daten, um den ursprünglichen Redundanzgrad des Verbunds wiederherzustellen
Symmetrische vs. Asymmetrische Verschlüsselungsverfahren
Verschlüsselungsverfahren
Schlüssel
Entschlüsselung
Symmetrische
Ein Schlüssel
Schlüssel muss dem Sender bekannt sein
Schlüssel muss dem Empfänger bekannt sein
+ Funktioniert schnell und effizient
-die Übergabe und Verwaltung des Schlüssels sind schwierig
Asymmetrische
Ein Schlüsselpaar (Private Key & Public Key)
Sender verschlüsselt mit dem Public Key
Empfänger entschlüsselt mit dem Private Key
+ Löst das Problem der Schlüsselübergabe
-sind erheblich langsamer als die symmetrischen Verschlüsselungsverfahren
Symmetrisch:
Asymmetrisch:
Hybride Verschlüsselungsverfahren
Hybride
Public Key
Private Key
Session Key
Sieh Bild
+ Sicherheit: Kombiniert starke Sicherheit von asymmetrischer und Effizienz von symmetrischer Verschlüsselung.
+ Effizienz: Schnelle Datenübertragung dank Nutzung der schnellen symmetrischen Verschlüsselung nach sicherem Schlüsselaustausch.
-Komplexität: Die Implementierung erfordert zwei verschiedene Arten von Verschlüsselungsalgorithmen.
-Potenzielle Schwachstellen: Risiko von Angriffen beim Schlüsselaustausch zwischen den asymmetrischen Parteien.
Schutzmechanismen eines TLS-Protokolls
• Ermöglicht die sichere Kommunikation über ein Netzwerk
• Erstellt eine verschlüsselte Verbindung zwischen Parteien > sichere Übertragung von Daten
Aufgaben:
○ Verschlüsselung: hybride Verschlüsselungsverfahren (sichere Verbindung)
○ Authentifizierung: digitale Zertifikate (Überprüfung der Identität der Parteien)
○ Integrität: beinhaltet Mechanismen zur Überprüfung der Integrität von Nachrichten
Zusammenhang: Digitale Signaturen stützen sich auf Hashverfahren und basieren auf der asymmetrischen Kryptographie
Digitale Signatur:
• Asymmetrische Kryptographie umgekehrt
• Erstellung der Signatur durch den Sender mit Hilfe eines privaten Schlüssels
• Überprüfung der Korrektheit der Signatur durch den Empfänger mithilfe des öffentlichen Schlüssels
• Erstellung eines Hashwerts zur Effizienzsteigerung
Eigenschaften eines sicheren Haschwertverfahren
Bei einem sicheren Hasch-Verfahren…
○ sollte sich der Hashwert bereits bei kleinsten Änderungen im Eingabetext stark ändern
○ darf es zu verschiedenen Eingabetexten nicht den gleichen Hashwert geben
○ darf eine Rückrechnung auf den Quelltext nicht möglich sein
○ sollte die Länge des Hashwertes immer konstant sein, unabhängig von der Länge des Eingabetextes
"Salting" (Kryptographie) > wie verbessert es die Sicherheit von gespeicherten Passwörtern?
Salting ist eine Technik, die in der Kryptographie und insbesondere bei der Passwort-Speicherung verwendet wird, um die Sicherheit von Passwörtern zu erhöhen. Es bezieht sich auf
das Hinzufügen einer zufälligen Zeichenfolge zu einem Passwort, bevor es gehasht (verschlüsselt) wird.
Der Prozess läuft folgendermaßen ab:
• Passwort + Salt: Das Salt ist eine zufällige Zeichenfolge, die dem Passwort hinzugefügt wird. Dadurch wird das Passwort länger und komplexer.
Hashing: Das kombinierte Passwort und Salt werden dann gehasht. Ein Hash-Algorithmus wandelt diese Kombination in eine eindeutige Zeichenfolge fester Länge um. Das Ergebnis ist
der verschlüsselte Hash.
• Das Salting bietet mehr Sicherheit, weil selbst wenn zwei Benutzer das gleiche Passwort haben, werden ihre gehashten Passwörter unterschiedlich sein, da sie jeweils mit einem
anderen Salt kombiniert wurden. Dadurch wird es schwieriger, Passwörter mithilfe von vorberechneten Tabellen (sogenannte Rainbow Tables) zu entschlüsseln, da jedes gehashte
Passwort individuell ist.
Es ist eine bewährte Sicherheitspraxis, Salting in Kombination mit dem Hashen von Passwörtern zu verwenden, um die Widerstandsfähigkeit gegenüber Angriffen wie Brute-Force- und
Rainbow-Table-Angriffen zu erhöhen.
Certificate Authority [CA] (Netzwerksicherheit)
Zertifizierungsstelle
Vertrauenswürdige Organisation, die Zertifikate ausstellt und verwaltet
Sicherheit im Internet > Bestätigt Identität von Personen, Computern und Organisationen
Ausstellung eines Zertifikats durch CA > Bestätigung der Identität des Inhabers > Signierung mit Privatschlüssel
Jeder der das Zertifikat enthält kann die Authentifizierung durch Überprüfung der CA bestätigen
Public Key Infrastructure (PKI)
• Set von Rollen, Richtlinien und Verfahren zur Sicheren Ausstellung und Verwaltung von digitalen Zertifikaten
• Sichere Identitätsprüfung > asymmetrische Kryptographie (Private & Public Key)
• Ausstellung durch CA > vertrauenswürdige dritte Partei
PKI stellt folgende Funktionen:
○ Zertifikaterstellung
○ Zertifikatverteilung
○ Zertifikatprüfung
○ Zertifikatwiederruf
Bestandteile eines digitales Zertifikats nach X.509
• Version
• Name des Zertifikatinhabers
• Signaturverfahren
• Aussteller des Zertifikats (CA)
• Seriennummer die von der CA zur Identifizierung des Zertifikats vergeben wird
• Gültigkeitsdauer
• Signature Algorithmus
• Öffentlicher Schlüssel des Zertifikatsinhabers
DES, 3DES, AES-128, AES-256, SHA256, MD5
Lastenheft und Pflichtenheft > Verfasser, Verwendung, Inhalt
Stakeholder (Projekt)
• Personen oder Personengruppen, welche aktiv am Projekt beteiligt oder von der Durchführung, bzw. dem Ergebnis eines Projekts betroffen sind
z.B.:
○ Kundinnen und Kunden
○ Auftraggebende
○ Lieferanten
○ Mitarbeitende im Projekt
○ Projektleitung
4 Phasen der Teambildung: Forming, Storming, Norming, Performing
Projektstrukturplan vs. Netzplan
Gesamtpuffer vs. freies Puffer
Kritisches Pfad
• Puffer = 0
• Verschiebung auf dem kritischen Pfad > Verschiebung des Projektendes
Gantt-Diagramm (vs. Netzplan)
• tabellarische Darstellung der Vorgänge
• konkrete Termine (im Netzplan nur Zeitdauer)
• Visualisierung der Dauer durch Balkenlänge
• Pufferzeiten nicht direkt ablesbar
Klassische vs. agile Vorgehensmodelle
Beispiel klassische und agile Vorgehensmodelle
Wasserfallmodell
• Lineares Vorgangsmodell > aufeinanderfolgende Phasen
• Phasen
○ Anforderungsanalyse
○ Systemdesign
○ Implementierung
○ Integration und Tests
○ Bereitstellung
○ Wartung
•
• vollständige Abschließung einer Phase bevor es in die andere geht (Wasserfall fließt nach unten)
• Projekte mit klaren und stabilen Anforderungen
Spiralmodell vs. Wasserfallmodell
V-Modell, vs. andere Vorgehensmodelle
Scrum
Minimum Viable Product (MVP)
• grundlegendes, funktionsfähiges Produkt oder DL
• minimale Funktionen und Merkmale
• frühzeitiges Feedback von Benutzern und Kunden
• für agile Projekte
• Schnell eine Version auf den Markt zu bringen > Reaktion und Bedürfnisse der Nutze verstehen, das Produkt iterativ weiterentwickeln
Statische vs. dynamische Testverfahren + Beispiele
Extremwertetest
• Fokus auf dem Testen der Werte, welche an dem Extremwerten liegen
Ziel:
○ Systemverhalten beobachten und verstehen
○ Funktioniert das System unter diesen extremen Bedienungen oder wie und wann versagt es
• Aufdeckung von Fehlern, Schwachstellen oder Begrenzungen von Software, die nur unter extremen Bedienungen sichtbar werden
Wie können Äquivalenzklassen genutzt werden, um eine effiziente und repräsentative Auswahl von Testfällen für ein System oder einen Funktion zu definieren?
• repräsentative Auswahl von Testfällen
• es werden Eingabedaten in Gruppen aufgeteilt, die ähnliche Verhaltensweisen oder Eigenschaften aufweisen
• Durch die Auswahl eines Testfalls aus jeder Äquivalenzklasse wird eine breite Abdeckung der verschiedenen Szenarien erreicht, ohne alle möglichen Kombinationen von Eingabewerten zu testen.
• Idee: wenn ein Testfall aus einer Äquivalenzklasse erfolgreich besteht oder scheitert, die anderen Testfällen derselben Klasse wahrscheinlich ein ähnliches Ergebnis liefern
Black-Box und White-Box-Test
Code Review
• systematische Untersuchung > statisch
• Überprüfung auf
○ Funktionalität
○ Lesbarkeit und Verständlichkeit
○ Wartbarkeit
○ Best Practice und Standards
• Nachteile:
○ Aufwand für Zeit und Ressourcen
○ kann subjektiv sein, Meinung der Reviewer variiert
○ Programmcode wird nicht ausgeführt
Prinzip der Anweisungsüberdeckung
• Grundlegender Aspekt für Softwaretests
• Code-Überdeckungsanalyse > jede Anweisung oder Zeile Code wird mindestens einmal ausgeführt
• Jeder Codeabschnitt muss ausgeführt und getestet werden > funktioniert und liefert korrekte Ergebnisse
• Entfernung von "totem Code" > wird nie ausgeführt und kann entfernt werden
Unit-Tests
• Test einzelner Komponenten des Codes
• Frage: funktioniert die Komponente korrekt?
• frühzeitige Fehlererkennung > Änderung führt zu keinem Problem
• mit anderen Testverfahren zu kombinieren für Überprüfung des Gesamtverhalten
Welche Eigenschaften sollten Unit-Tests erfüllen, um das FIRST-Prinzip zu befolgen?
Fehlersuche mit Hilfe der Möglichkeiten eines Debuggers
Performance-Testing
Sicherstellung, dass eine Anwendung unter verschiedenen Lastbedingungen effizient und zuverlässig funktioniert
Folgende Fragen werden beantwortet:
○ Wie reagiert die Anwendung unter normaler oder erwarteter Last?
○ Wie skaliert die Anwendung mit steigender Last?
○ Wie reagiert die Anwendung unter Spitzenlastbedingungen?
○ Wie verhält sich die Anwendung über den längeren Zeitraum?
○ Gibt es Engpässe oder Flaschenhälse in der Anwendung?
Kriterien zur Bewertung der Qualität von Software
• Benutzbarkeit
• Übertragbarkeit
• Änderbarkeit
• Effizienz
• Zuverlässigkeit
• Funktionalität
• Sicherheit
Funktionale vs. nichtfunktionale Anforderungen
Zweck eines Mock-ups
• Visuelles Modell eines Produkts, einer Webseite oder einer Anwendung
• Veranschaulichung von Design, Funktionalität und Erscheinungsbild im Designprozess
• Idee präsentieren, Feedback sammeln, Designentscheidungen treffen > bevor die Entwicklung anfängt
• Konzept visualisieren, Benutzererfahrungen testen, Probleme und Verbesserungen frühzeitig erkennen
Staging-Testing
• Anwendungen werden in einer Staging-Umgebung getestet, bevor sie in der Produktionsumgebung bereitgestellt werden
• Separate Umgebung
• Ähnelt der Produktionsumgebung
• oft als Zwischenschritt zwischen Entwicklung und Produktion fungiert
• Zweck: funktioniert die Software ordnungsmäßig -> verfügbar in Prod
• Identifizierung von potenziellen Problemen oder Fehlern > Behebung dieser bevor Live-Betrieb
Komponententests, Funktionstests, Integrationstests
Methode des Blue-Green Deployments
2 separate Umgebungen "Blue" und "Green"
○ Aktuelle Produktversion (Blue) is live
○ neue Version der Anwendung (Green) wird in der separaten Umgebung bereitgestellt und getestet
○ Tests erfolgreich abgeschlossen > Umleitung Datenverkehr von Blue auf Green
○ Datenverkehr wird schrittweise umgeleitet, um sicherzustellen, dass das System in der Green-Umgebung ordnungsmäßig funktioniert
○ Probleme in Green-Umgebung > der Datenverkehr kann zurück in die Blue-Umgebung geleitet werden
KVP (Qualitätsmanagement)
• kontinuierlicher Verbesserungsprozess
• Ansatz zu permanenten Verbesserung in Organisationen
• Ziel: kontinuierliche Verbesserung in Prozessen, Produkten, DL > langfristige Effizienz und Qualität wird gestärkt
• kein Ende
Qualitätssicherung vs. Qualitätskontrolle
Vier Phasen des PDCA-Zyklus
Barrierefreie Software (Barrierefreiheit)
Eine Software kann von allen Menschen, einschließlich Menschen mit Behinderungen, genutzt werden
Beinhaltet z.B.:
○ Bildschirmleseprogramme für Blinde,
○ Untertitel und Transkriptionen für Gehörlose,
○ die Fähigkeit, die Software mit einer Tastatur oder Spracherkennung anstelle Maus zu bedienen
Softwareergonomie
Gestaltung von Software, die auf menschlichen Fähigkeiten abgestimmt ist, um Benutzerfreundlichkeit und Effizienz zu maximieren
Prinzipien:
○ Nutzerzentrierung: Gestaltung mit Blick auf die Bedürfnisse und Fähigkeiten der Endnutzer
○ Einfachheit und Konsistenz: intuitive und konsistente Benutzeroberfläche
○ Rückmeldung: klare und zeitnahe Rückmeldung an die Benutzer über ihre Interaktionen
○ Anpassbarkeit: Flexibilität zur Anpassung an individuelle Bedürfnisse
○ Fehlervermeidung und -behandlung: Design, das die Fehleranfälligkeit minimiert und bei der Fehlerbehebung unterstützt
Grundsätze der Dialoggestaltung in Bezug auf Softwareergonomie
Richtlinien zur Verbesserung der Benutzer-Software-Interaktion
○ Aufgabenangemessenheit: Software unterstützt Nutzer effektiv und stört nicht
○ Selbstbeschreibungsfähigkeit: jede Aktion sollte ohne zusätzliche Erklärung verständlich sein
○ Steuerbarkeit: Nutzer können Interaktionen steuern und beeinflussen
○ Erwartungskonformität: Software entspricht gängigen Standards und Erwartungen
○ Fehlertoleranz: Software verzieht Fehler und unterstützt bei deren Erwartungen
○ Individualisierbarkeit: Nutzer können Software an ihre Bedürfnisse anpassen
○ Lernförderlichkeit: Software unterstützt den Lernprozess des Nutzers
Relationale Datenbanken + Beispiele für nichtrationale DB
Zwischen strukturierte, semi-strukturierte und unstrukturierte Daten
Data Warehouse
• zentralisiertes Repository, das Daten aus mehreren Quellen sammelt, integriert und speichert, um komplexe Analysen und datengetriebene Entscheidungsfindung zu ermöglichen
• Datenbanksystem > speziell für analytische Abfragen und Berichterstattung konzipiert ist, im Gegensatz zu traditionellen DBS, die für den täglichen Betrieb und die Transaktionsverarbeitung ausgelegt sind
• Daten werden oft über lange Zeiträume gespeichert, was die Durchführung historischer Analysen ermöglicht
• Daten sind strukturiert und organisiert
• Vorteile: Strukturierte Daten, Leistungsstark für Analysen, Datenqualität und Konsistenz, Historische Daten
• Nachteile: Kosten, Starre Struktur, Skalierbarkeit
Data Lake
• zentralisiertes Repository, das die Speicherung großer Mengen roher Daten in ihrem ursprünglichen Formate ermöglichen
• ggs. zu Data Warehouse > speichert strukturierte und unstrukturierte Daten (E-Mails, Video-, Log- und Social-Media-Daten)
• Vorteile: Flexibilität, Skalierbarkeit, Vielfalt der Datenquellen, Kosteneffizienz
• Nachteile: Komplexität, Datenqualität, Suchkomplexität
SQL: Datentypen und deren Zweck
SQL-Datatypen
○ INTEGER (Ganzzahlen)
○ FLOAT oder DECIMAL (Gleitkommazahlen)
○ VARCHAR oder CHAR (Zeichenketten)
○ DATE, Time oder TIMESTAMP (Datum und Uhrzeit)
○ BOOLEAN (boolesche Werte)
○ BINARY (Binär-String)
• spezifische Eigenschaft: Größe des Wertebereichs, max. Anzahl von Zeichen
• gewährleistet Datenintegrität und optimiert Speichereffizienz
Datenbanken: Primär- und Fremdschlüssel
Datenbanken: referenzielle Integrität
Konsistenz von Beziehungen zwischen Tabellen
Die referenzielle Integrität
○ stellt sicher, dass in einer Beziehung zwischen zwei Tabellen der Fremdschlüssel in der referenziellen Tabelle immer auf einen gültigen Wert verweist
○ Änderung oder Löschung einer Tabelle > überprüft Auswirkungen auf andere Tabellen und ob die Konsistenz der Beziehungen erhalten bleibt
Datenbankanomalien und Arten
Normalisierung
Welche Schritte sind notwendig, um Datenstrukturen in einem ER-Diagramm zu modellieren?
Welche speziellen Anforderungen in Bezug auf die Beziehungen zwischen den einzelnen Entitäten sind bei der Abteilung von Datentabellen aus einem ER-Diagramm zu beachten?
Stored Procedure und Vorteile in der Datenbankentwicklung
• Vorbereitete SQL-Anweisung, die auf der Datenbank gespeichert ist
• kann parametrisiert werden und mehrere SQL-Anweisungen enthalten, die komplexe Operationen ausführen
Vorteile:
○ Leistungen: Sie sind effizienter bei wiederholten und komplexen Anfragen, die sie einmal kompiliert und direkt auf dem Server ausgeführt werden
○ Wiederverwendbarkeit: Sie können in verschiedenen Anwendungen wiederverwendet werden
○ Sicherheit: Sie begrenzen den direkten Zugriff auf die Datenbanken
○ Transaktionskontrolle: Sie erlauben es, mehrere Operationen als eine einzige Transaktion zu behalten
Trigger + automatische Ausführung von Aktionen
• Art von Stored Procedure
• Ausführung: automatisch in Reaktion auf bestimmte Ereignisse in einer spezifischen Tabelle oder Ansicht der Datenbank
• Ereignisse: Einfügen, Aktualisieren oder Löschen von Daten
• ein Trigger ist wird immer mit einer Tabelle verknüpft und aktiviert sich, wenn eine angegebene Datenmanipulationsoperation (DML) ausgeführt wird
Indizierung von Spalten in einer Datenbank + Verbesserung der Leistung von Abfragen
• Index bietet einen schnellen Zugriff auf die Daten
• enthält eine sortierte Liste von Werten einer bestimmten Spalte und Verweise auf die Speicherorte der zugehörigen Daten
• wenn eine Abfrage eine indizierte Spalte verwendet, um schnell zu den benötigten Daten zu navigieren, anstatt alle Zeilen durchsuchen zu müssen
• kann die Leistung von Abfragen verbessern
•Allerdings hat die Erstellung von Indizes auch einen gewissen Overhead, sowohl in Bezug auf den Speicherplatz als auch auf die Verarbeitungszeit bei Schreibvorgängen, da der Index immer aktualisiert werden muss
SQL-Statements: Transaktion (ACID-Prinzip)
SQL: BEGIN TRANSACTION, COMMIT, ROLLBACK
Begriff "NULL" bei der Datenverarbeitung und -abfrage
ein Feld hat keinen Wert
weder 0 noch leer, sondern fehlende oder unbekannte Daten
○ fehlende Daten
○ "IS NULL" oder "IS NOT NULL", um NULL-Werte zu finden
○ arithmetische Operationen mit NULL ergeben NULL
○ Aggregatfunktionen wie COUNT oder SUM ignorieren NULL
○ oft werden sie in Datenbankindizes nicht berücksichtigt
Compiler vs. Interpreter
Beispiele für Compiler und Interpreter
Verwendung einer Versionsverwaltung
• ermöglicht die Nachverfolgung von Änderungen am Quellcode
• erlaubt das einfache Zurücksetzen auf frühere Versionen, falls Fehler auftreten oder unerwünschte Änderungen vorgenommen wurden
• ermöglicht die Zusammenarbeit mehrerer Entwickler an einem Projekt, da Änderungen nahtlos zusammenführt werden können
• erleichtert das Testen neuer Funktionen oder Experimente, ohne die Integrität des Hauptprojekts zu gefährden
• trägt dazu bei, den Entwicklungsprozess transparenter zu gestalten
JSON (JavaScript Object Notation)
CSV (Comma-Separated Values) vs. XML (eXtensible Markup Language)
Dokumenttyp-Definition (DTD) bei XML-Dateien
"well-formed" vs. "valid" XML-Datei
Eigenschaften von Struktogrammen: Allgemeingültigkeit, Deklaration von Variablen und Exklusivität
UML-Standard: Beispiele für Struktogramme und Verhaltensdiagramme
Ein UML-Anwendungsdiagramm visualisiert eine Ablauf in einem System, ist aber keine Ablaufbeschreibung. (Erklären Sie diesen Zusammenhang)
• keine Ablaufbeschreibung sondern ein Verhaltensdiagramm, das die Funktionalität eines Systems aus der Sicht der Benutzerinnen und Benutzer darstellt
• es zeigt die verschiedenen Akteure, die mit dem System interagieren, und die Anwendungsfälle, also die spezifischen Funktionen und Aufgaben, die das System ausführen kann
• es stellt die Beziehungen zwischen diesen Akteuren und Anwendungsfällen dar, zeitlichen Verlauf dieser Interaktionen
• das Anwendungsfalldiagramm dient zur Identifizierung und Darstellung der funktionalen Anforderungen an ein System
Sequenzdiagramm: Szenarien
Aktivitätsdiagramm: Modellierung
Zustandsdiagramm: Modellierung von Verhalten in einem System
Klassendiagramm
Klassendiagramm: Aggregation vs. Komposition
OOP: Prinzip der Vererbung
• Schlüsselprinzip, das es ermöglicht, neue Klassen aus bereits existierenden Klassen zu erzeugen
• neu erstellte Klasse = "Unterklasse" oder "abgeleitete Klasse"
• existierende Klasse = "Oberklasse" oder "Basisklasse"
• Wiederverwendung von Code und die Reduzierung von Redundanz • Definition von Eigenschaften (Attribute) und Verhaltensweisen (Methoden) in der Oberklasse > Weitergabe an die Unterklasse
OOP: Datenkapselung & Prinzipien der Datenintegrität und Code-Wartbarkeit
Prozeduren vs. Funktionen
Prozedurale vs. Objektorientierte Programmierung
OOP: Klasse
• Bauplan für die Erstellung von Objekten
• definiert Eigenschaften (Variablen, die den Zustand repräsentieren) und Methoden (Funktionen, die das Verhalten repräsentieren) eines Objekts
• ermöglicht die Erstellung mehrerer Objekte mit ähnlichen Merkmalen und Verhaltensweisen
• bildet die Grundlage für Vererbung und Polymorphie
Generische Klasse
• Konzept das erlaubt, eine Klasse zu definieren, die auf Typen arbeiten kann, die beim Erstellen einer Instanz der Klasse spezifiziert werden
• Hauptvorteil: Code-Wiederverwendung und Typsicherheit
• Definition einer generischen Klasse -> Anwendung auf mehrere Datentypen (-> nicht Klasse pro Datentyp)
Abstrakte Klassen und Vorteile
OOP: Objekt
OOP: Polymorphie
OOP: Sichtbarkeitsstufen (public, protected, private, package)
Deklaration vs. Initialisierung
OOP: Konstruktor
Klassenbibliothek und Vorteile bei der Entwicklung
Rekursive vs. Iterative Vorgehensweise
Modularisierung
Wie können automatische Kompilierung und Bereitstellung (Continuous Integration und Continuous Deployment [CI/CD]) implementiert werden?
Vorteile einer 3-Schichten-Architektur bei der Entwicklung
Bubble-Sort-Algorithmus
Suchalgorithmus: lineare Suche
Suchalgorithmus: binäre Suche
binäre Suche: einzelne Schritte
Observer Muster
Observer Muster Funktion
MVC-Muster: Komponenten und wie interagieren sie miteinander
Data Binding (Datenbindung)
Singleton Pattern
SOAP (Simple Object Access Protocol)
REST-API (Representational State Transfer
• ...ist ein Set von Regeln und Konventionen für den Aufbau von Webseiten
• sie nutzen Standard-HTTP-Methoden (wie GET, POST, PUT und DELETE) zur Interaktion mit Ressourcen, die durch eindeutige URLs identifiziert werden
• zustandlos, d.h. jede Anfrage enthält alle Informationen, die benötigt werden, um sie zu bearbeiten, ohne sich auf frühere Anfragen zu beziehen
REST-API: Architekturlichtlinien
Industrie 4.0
Künstliche Intelligenz (KI) [AI]
• bezieht sich auf die Entwicklung von Computern oder Systemen, die in der Lage sind, menschenähnliche Denk- und Entscheidungsprozesse nachzuahmen ermöglicht es Maschinen, Informationen zu verstehen, zu lernen, Probleme zu lösen und intelligentes Verhalten zu zeigen
Internet der Dinge (IoT) und Probleme
Herausforderungen mit Big Data bei der Speicherung und Verarbeitung der Daten
Blockchain
Smart Contracts
Dienstleistungsmodelle im Cloud-Computing
Cloud-, Fog-, Edge-Computing
Bereitstellungsarten von Cloud-Diensten
Elektrische Stromstärke vs. elektrische Spannung
Elektrische Leistung und Berechnung
• …ist die Rate, mit der el. Energie in einem el. System umgesetzt oder übertragen wird
Elektrische Arbeit und Berechnung
Verlustfreie und verlustbehafteter Datenkompression
Paketfilter-Firewall vs. Applikationsfilter-Firewall
Next-Generation Firewall (NGFW)
Penetrationstest und Durchführung
Device Security Check
Netzwerktechnik: RADIUS (Remote Authentification Dial-In User Service)
RADIUS: AAA
Pre-Shared-Key (PSK) und Verwendung
Aufbau einer IPv4- und IPv6-Adresse
"127.0.0.1" und Bedeutung
IPv6-Adresse: Standardpräfix, Teilnetz-ID, Interface-ID
Vorteile IPv6-Adresse gegenüber IPv4-Adresse
TCP (Transmission Control Protocol) vs. UDP (User Datagram Protocol)
Routing und Switching
MAC-Adresse (Media Access Control Address)
Netzwerktechnik: ARP (Address Resolution Protocol)
DHCP: Aufgabe und Informationen die übertragen werden
DHCP: DORA-Prinzip
DNS (Domain Name System)
Proxy-Server
Reverse-Proxy-Server
Datenübertragungsrate
LAN, MAN, WAN, GAN
PAN vs. WLAN
VLAN Vorteile
Statische vs. dynamische VLANs
Tagged Ports
Quality of Service (QoS) & Übertragung von Telefonie- und Videodaten
VPN-Modelle
Tunnelmodus vs. Transportmodus bei VPNs
Sicherheitsvorteile Zero Trust Network Access (ZTNA) im Vergleich zu VPN
IPSec Protokoll (Internet Protocol Security)
OSI-Schichtmodell (aufsteigend) [Open Systems Interconnection]
OSI: transportorientierte Schichten
OSI: anwendungsorientierte Schichten
Protokolle die in der Vermittlungsschicht (3) und Transportschicht (4) arbeiten
OSI: Hub, Bridge, Router, Switch, Repeater
Switch vs. Hub
Network File System (NFS)
SMB-Protokoll (Server Message Block)
• …ist ein Protokoll, das ursprünglich von Microsoft entwickelt wurde und hauptsächlich in Windows-Umgebungen verwendet wird
• …ermöglicht die gemeinsame Nutzung von Dateien, Druckern und anderen Ressourcen in einem Netzwerk
• …unterstützt Funktionen wie Authentifizierung, Datei- und Druckerdienste sowie den Zugriff auf Netzwerkfreigaben
• …ist ein Standardprotokoll für die Dateifreigabe in Windows-Netzwerken
Service Level Agreement (SLA)
…ist eine schriftliche Vereinbarung zwischen einem Dienstleister und einem Kunden, die vereinbarten Leistungsparameter und -ziele für eine bestimmte Dienstleistung oder ein Produkt festlegt
…definiert die Erwartungen hinsichtlich Qualität, Reaktionszeiten, Verfügbarkeit, Support und anderen relevanten Aspekten des Services
…dient als Grundlage für die Bewertung der Servicequalität
1st-Lever-Support
2nd-Lever-Support vs. 3rd-Lever-Support
Standard Operating Procedures (SOP)
ITIL-Framework (Information Technology Infrastructure Library)
Zuletzt geändertvor 8 Monaten