Anwendungsentwicklung Flashcards
Was ist der Unterschied zwischen den Begriffen Datenschutz und Datensicherheit?
Beim Datenschutz geht es um den Schutz personenbezogener Daten von natürlichen Personen. Datenschutz zielt darauf ab, die Privatsphäre der Menschen zu schützen und MIssbrauch von persönlichen Daten zu verhindern. Gesetze und Vorschriften, wie die Europäische Datenschutz-Grundverordnung (DSGVO), definieren, was im Datenschutz gilt und wie Unternehmen und Organisationen peronenbezogene Daten behandeln müssen.
Der Bereich der Datensicherheit umfasst den Schutz von Daten gegen Verlust, Manipulation, Beschädigung oder unautorisierten Zugriff, unabhängig davon, ob diese Daten einen Personenbezug aufweisen oder nicht.
Welche Betroffenenrechte gibt es laut DSGVO?
Die DSGVO nennt die folgenden Betroffenenrechte:
* Recht auf Information
* Recht auf Auskunft
* Recht auf Berichtigung
* Recht auf Löschung
* Recht auf Einschränkungen der Verarbeitung
* Recht auf Datenübertragbarkeit
* Recht aud Widerspruch
Das Datenschutzrecht basiert auf dem Verbotsprinzip mit Erlaubnisvorbehalt.
Erklären Sie dieses Grundprinzip.
Jegliche Erhebung, Verarbeitung und Nutzung von personenbezogenen Daten ist grundsätzlich verboten, außer die Einwilligung des Betroffenen liegt vor oder eine gesetzliche Regelung ist in Kraft.
Erläutern Sie den Zusammenhang zwischen dem Prinzip der Zweckbindung, dem Prinzip der Datenminimierung und Speicherbegrenzung im Datenschutz.
Das Grundprinzip der Zweckbindung besagt, dass personenbezogene Daten nur für den Zweck verwendet werden dürfen, für den sie erhoben worden sind. Eine Verarbeitung von personenbezogenen Daten zu anderen Zwecken ist unzulässig. Hierbei dürfen nur die Daten erfasst werden, welche auch wirklich für den genannten Zweck benötigt werden.
Das Ziel des Prinzips der Datenminimierung und Speicherbegrenzung ist es, möglichst wenig personenbezogene Daten zu verarbeiten. Wenn die personenbezogenen Daten für den Zweck, für den sie erhoben wurden, nicht mehr notwendig sind, müssen diese gelöscht werden.
Erklären Sie den Grundsatz der Transparenz und den Grundsatz der Richtigkeit im Datenschutz.
Die Prinzipien der Transparenz und Richtigkeit spielen eine wichtige Rolle bei der Einhaltung der Datenschutzgesetze und der Verarbeitung personenbezogener Daten.
Transparenz bezieht sich darauf, dass Organisationen jederzeit offen und klar darüber informieren müssen, welche personenbezogene Daten durch wen und zu welchen Zwecken verarbeitet werden und wurden.
Das Prinzip der Richtigkeit bedeutet, dass personenbezogenen Daten korrekt sein sollten. Organisationen sind dafür verantwortlich sicherzustellen, dass die von ihnen verarbeiteten Daten richtig sind. Personen haben das Recht, ungenaue oder veraltete Daten korrigieren zu lassen.
Welche besondere Kategorien personenbezogener Daten werden gemäß der Datenschutz-Grundverordnung (DSGVO) definiert?
Die DSGVO unterscheidet zwischen “personenbezogenen Daten” und “besonderen Kategorien personenbezogener Daten”. Zu den besonderen Kategorien personenbezogener Daten gehören Daten, die folgende Informationen enthalten:
* Rassische oder ethnische Herkunft
* Politische Meinungen
* Religiöse oder philosophische Überzeugungen
* Gewerkschaftszugehörigkeit
* Genetische Daten
* Biometrische Daten
* Gesundheitsdaten
* Daten zur sexuellen Orientierung
Diese besonderen Kategorien personenbezogener Daten sind besonders schützenswert, da ihre Verarbeitung ein höheres Risiko für die Grundrechte und Freiheiten der betroffenen Personen darstellen könnte.
Wer muss bei einer Datenschutzverletzung informiert werden?
Bei einer Datenschutzverletzung müssen zwei Hauptparteien informiert werden:
- Die Datenschutzbehörde: Innerhalb von 72 Stunden nach Feststellung der Verletzung.
- Betroffene Einzelpersonen: Wenn die Verletzung ein hohes Risiko für ihre Rechte und freiheiten darstellt.
Was sind die Hauptaufgaben und Verantwortlichkeiten von Datenschutzbeauftragten?
Datenschutzbeauftragte beraten das Unternehmen hinsichtlich der Einhaltung von Datenschutzgesetzen und -richtlinien. Sie überwachen die Einhaltung dieser Regeln innerhalb des Unternehmens. Sie sind die Schnittstelle zu Datenschutzaufsichtbehörden und bearbeiten Anfragen und Beschwerden von Betroffenen in Bezug auf ihre Datenschutzrechte. Zudem beraten sie bei Datenschutzfolgenabschätzungen.
Die Ziele der Datensicherheit sind Vertraulichkeit, Integrität, Verfügbarkeit und Authentizität.
Erläutern Sie diese 4 Begriffe.
Vertraulichkeit: Daten und Systeme dürfen nur berechtigten Personen zugänglich sein.
Integrität: Daten müssen immer korrekt sein und dürfen nicht unbemerkt verändert werden können.
Verfügbarkeit: Daten und IT-Systeme müssen zur Verfügung stehen um von autorisierten Personen genutzt werden können.
Authentizität: Die Echtheit und Vertrauenswürdigkeit von Daten müssen gewährleistet sein.
Nennen Sie drei Aufgaben von IT-Sicherheitsbeauftragten.
Zu den Aufgaben von IT-Sicherheitsbeauftragten gehören:
* Erstellung von Richtlinien zur Informationssicherheit
* Praktische Umsetzung von Maßnahmen der IT-Sicherheit
* Organisation von Schulungen und Trainings
* Bearbeitung von IT-Sicherheitsvorfällen
* Dokumentation und Überwachung der Sicherheitsmaßnahmen
* Ansprechpartner im Bereich IT-Sicherheit für Mitarbeitende und Unternehmensleitung
* u.a.
Welche gesetzlichen Bestimmungen regeln in der Bundesrepublik Deutschland den Umgang mit personenbezogenen Daten?
Die Datenschutz-Grundverordnung (DSGVO) ist eine europaweit gültige Verordnung, welche die Belange des Datenschutzes für alle Mitgliedsstaaten der Europäischen Union regelt.
Das Bundesdatenschutzgesetz (BDSG-neu) ergänzt die Vorgaben der DSGVO, bzw. konkretisiert die dortigen Regelungen. Beide Vorschriften sind gemeinsam gültig und müssen umgesetzt werden. Hierbei ist zu beachten, dass die DSGVO Anwendungsvorrang vor dem BDSG hat.
Womit beschäftigen sich die Standards ISO 27001 und BSI IT-Grundschutz?
Die ISO 27001 und der BSI IT-Grundschutz sind Standards im Bereich der Informationssicherheit. Sie geben u.a. Empfehlungen und Regeln für den Aufbau und die Weiterentwicklung eines Informationssicherheitsmanagementsystems (ISMS).
Hierbei ist die ISO 27001 ein weit verbreiteter internationaler Standard, welcher weltweit für Unternehmen jeglicher Größe anwendbar ist.
Der BSI IT-Grundschutz ist ein nationaler deutscher Standard. Er ist sehr gut geeignet für die Anwendung in Behörden und Unternehmen aus kritischen Bereichen (KRITIS).
Wie werden Schutzbedarfskategorien wie “normal”, “hoch” und “sehr hoch” verwendet, um den Sicherheitsbedarf von Informationen, Systemen oder Infrastrukturen einzuschätzen?
Die Schutzbedarfskategorien wie “normal”, hoch” und “sehr hoch” helfen dabei, den Sicherheitsbedarf von Informationen oder Systemen zu bestimmen.
- “Normal”: Begrenzte und überschaubare Schadensauswirkung bei einem Sicherheitsvorfall
- “Hoch”: ein Sicherheitsvorfall würde zu erheblichen Schäden führen, oder kännte die Existenz der Organisation bedrohnen
- “Sehr hoch”: ein Sicherheitsvorfall würde zu katastrophalen Schäden führen oder existentiell bedrohlich sein
Diese Kategoriesierung ermöglicht es, angemessene Sicherheitsmaßnahmen zu implementieren, basierend auf dem Schutzbedarf.
Nennen Sie im Zusammenhang mit dem Thema Datenschutz jeweils drei Beispiele für geeignete technische und organisatorische Maßnahmen (TOM).
TOMs sind technische und organisatorische Maßnahmen, welche die Sicherheit der Verarbeitung von personenbezogenen Daten gewährleisten sollen.
- Verfahren zur Durchsetzung von Komplexitätsanforderungen von Passwörtern
- Anonymisierung und Pseudonymisierung von personenbezogenen Daten
- Verschlüsselung von Datenträgern und Datenübertragungen
- Datensicherung
- bauliche Absicherung von kritischen Bereichen
- Zugangs- und Zutrittskontrolle
- Alarmanlagen
- Richtlinien für die Nutzung der IT, des Internets oder mobiler Geräte
- Verfahren zur datenschutzkonformen Entsorgung von Datenträgern
- Verpflichtungserklärung auf das Datengeheimnis
- u.a.
Erklären Sie was in der DSGVO unter dem Ausdruck “Stand der Technik” zu verstehen ist.
Gemäß Artikel 32 der DSGVO müssen Datenverantwortliche und Datenverarbeitende unter Berücksichtigung des Stands der Technik geeignete technische und organisatorische Maßnahmen treffen, um ein dem Risiko angemessenes Schutzniveau zu gewährleisten.
Dies bedeutet, dass Unternehmen und Organisationen, die personenbezogene Daten verarbeiten, dafür sorgen müssen, dass sie die neuesten und effektivsten Sicherheitsmaßnahmen und -technologien einsetzen, um ein angemessenes Schutzniveau für personenbezogene Daten zu gewährleisten. Der “Stand der Technik” ist hierbei nicht statisch, sondern entwickelt sich mit dem Fortschritt der Technologie weiter.
Beschreiben Sie den grundsätzlichen Unterschied zwischen der Anonymisierung und der Pseudonymisierung von personenbezogenen Daten.
Anonymisierung ist ein Prozess, bei dem alle identifizierenden Merkmale aus den Daten entfernt werden, sodass eine Person nich mehr identifizierbar ist. Dies ist ein irreversibler Prozess. Sobald Daten anonymisiert sind, können sie nicht mehr zu einer bestimmten Person zurückverfolgt werden.
Pseudonymisierung ist ein Prozess, bei dem personenbezogene Daten so verändert werden, dass sie ohne zusätzliche Informationen nicht mehr einer spezifischen Person zugeordnet werden können. Identifizierende Merkmale werden durch ein Pseudonym ersetzt. Dieser Prozess ist reversibel. Mit der richtigen Information kann eine Person identifiziert werden.
Was versteht man unter dem Begriff Compliance?
Compliance bezieht sich auf die Einhaltung von gesetzliche Bestimmungen, branchenspezifischen Standards, internen Richtlinien und ethischen Prinzipien durch Unternehmen. Es umfasst die Umsetzung und Überwachung von Regeln und Vorschriften, um Risiken zu minimieren, Haftungsansprüche zu vermeiden und das Vertrauen von Kunden, Investoren und der Öffentlichkeit zu erhalten.
Die Nichteinhaltung von Compliance kann zu rechtlichen Konsequenzen, finanziellen Verlusten und Reputationsschäden führen.
Erklären Sie den Unterschied zwischen “Privacy by Design” und “Privacy by Default”.
Privacy by Design: Das Thema Datenschutz soll bereits im gesamten Entwicklungsprozess von Software, Hardware oder auch IT-Systemen berücksichtigt werden. Datenschutz wird hierdurch zu einem festen Bestandteil eines fertigen IT-Produktes. Man spricht hier auch von Datenschutz durch Technikgestaltung.
Privacy by Default: Der Schutz von personenbezogenen Daten wird durch datenschutzfreundliche Voreinstellungen unterstützt. Der Grundgedanke hierbei ist, dass die Grundeinstellungen von Anwendungen bereits datenschutzfreundlich eingestellt sind. Hierdurch sollen vor allem Nutzerinnen und Nutzer geschützt werden, die weniger technikversiert sind.
Nennen Sie drei Komplexitätsanforderungen für Passwörter und erklären Sie, warum diese für eine höhere Passwortsicherheit sorgen.
Typische Anforderungen an sichere Passwörter sind:
* Verwendung von Kleinbuchstaben
* Verwendung von Großbuchstaben
* Verwendung von Zahlen
* Verwendung von Sonderzeichen
* ausreichende Passwortlänge
Die Verwendung eines möglichst großen Zeichenvorrates erhöht die Anzahl der möglichen Variationen eines Passwortes. Die Nutzung von Sondernzeichen und Zahlen verhindert zusätzlich die Verwendung von “Dudenworten” als Passwort. Ein möglichst langes Passwort erhöht nochmals den Aufwand für die Ermittlung eines Passwortes durch systematisches Probieren.
Nennes Sie Vorteile und Nachteile der Nutzung von Single Sign-On (SSO).
Single Sign-On (SSO) ist ein Authentifizierungsdienst, der es erlaubt, mit einem Satz von Anmeldeinformationen auf mehrere Anwendungen zuzugreifen.
Vorteile:
* einmalige Anmeldung, um auf mehrere Anwendungen zuzugreifen
* reduziert das Risiko vergessener Passwörter
* es besteht die Möglichkeit, schnell und zentralisiert auf Sicherheitsvorfälle zu reagieren
Nachteile:
* 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-Dienstleisters
Was ist OAuth2 und wofür wird es in der Authentifizierung und Autorisierung verwendet?
OAuth 2.0 ist ein offenes Protokoll zur sicheren Delegierung von Zugriffsrechten im Internet. Es ermöglicht Benutzern, Drittanbieter-Apps Zugriff auf ihre Daten zu gewähren, ohne dabei ihre Anmeldeinformationen preiszugeben.
Hierbei gibt es mehrere Rollen:
* Der Ressourcenbesitzer besitzt die Daten und kann anderen den Zugriff auf diese Daten gewähren.
* Der Client ist die Anwendung, die den Zugriff auf die Ressource des Benutzers anfordert.
* Der Autorisierungsserver überprüft die Identität des Benutzers und erteilt Zugriffstoken.
* Der Ressourcenserver hält die Benutzerdaten und gewährt den Zugriff auf sie, wenn er ein gültiges Token erhält.
Beschreiben Sie den Autorisierungs-Prozess von OAuth2.
Die folgenden Schritte werden im Authorisierungs-Prozess von OAuth 2.0 durchlaufen:
* Eine Anwendung (der “Client”) fordert den Zugriff auf Benutzerdaten an, die auf einem anderen Server (dem “Ressourcenserver”) gespeichert sind.
* Der Benutzer (der “Ressourcenbesitzer”) stimmt zu, dem Client den Zugriff zu gewähren.
* Der Client erhält ein Zugriffstoken vom “Autorisierungsserver”.
* Der Client verwendet das Zugriffstoken, um auf die Benutzerdaten auf dem Ressourcenserver zuzugreifen.
Beschreiben Sie den Unterschied zwischen Zugangskontrolle und Zugriffskontrolle.
Das Konzept der Zugangskontrolle (Access Control) bezieht sich auf die Möglichkeit, physischen oder virtuellen Zugang zu einer Ressource zu kontrollieren. Die Zugangskontrolle bestimmt, wer oder was Zugang zu einer Ressource hat.
Die Zugriffskontrolle (Authorization Control) regelt, was ein Benutzer oder System nach dem Zugang machen darf. Nachdem jemand Zugang zu einer Ressource erlangt hat, kann die Zugriffskontrolle festlegen, welche Operationen er auf dieser Ressource ausführen darf. Sie regelt die Befugnisse oder Berechtigungen, die einem Benutzer oder System gewährt werden, nachdem der Zugang gewährt wurde.
Was ist in Bezug auf die Systemsicherheit unter dem Begriff der “Betriebssystemhärtung” zu verstehen?
Betriebssystemhärtung bezieht sich auf eine Reihe von Maßnahmen, die darauf abzielen, die Sicherheit eines Betriebssystems zu erhöhen, indem dessen Anfälligkeiten reduziert und potenzielle Angriffspunkte minimiert werden.
Beispiele für wirksame Maßnahmen sind:
* 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
Die IT-Infrastruktur eines Unternehmens ist verschiedenen Gefahren ausgesetzt. Erläutern Sie die folgenden Angriffsmethoden:
* Trojaner
* Ransomware
* Phishing
* Distributed Denial of Service (DDoS)
Trojaner: Ein 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 Websites, um sich später den unerlaubten Zugriff auf die Systeme zu ermöglichen.
Distributed Denial of Service (DDos): Überlastung eines Computersystems durch Massenabfragen, die von einer großen Anzahl anderer Computersysteme verursacht wird.
Unter welchen Voraussetzungen ist es einem Spamfilter oder dem Administrator eines Unternehmens erlaubt, E-Mails auf unerwünschte Inhalte zu überprüfen?
Der Inhalt von E-Mails fällt under das Briefgeheimnis und Datenschutzbestimmungen, was bedeutet, dass sie nicht ohne weiteres eingesehen oder überwacht werden dürfen. Die Mitarbeitenden müssen über die mögliche Überwachung ihrer E-Mails informiert werden.
Die Überwachung von E-Mails kann nur dann erfolgen, wenn die E-Mail-Dienste ausschließlich beruflich genutzt werden. Wenn die Mitarbeitenden ihre geschäftlichen E-Mail-Konten auch für private Zwecke nutzen dürfen, ist eine Kontrolle der Inhalte in der Regel nicht zulässig.
Was ist im Bereich der IT-Sicherheit unter einem Honeypot zu verstehen?
Im Bereich der IT-Sicherheit ist ein Honeypot ein speziell präpariertes System, welches gezielt Angreifer und Schadprogramme anlocken soll. Es simuliert z.B. einen Rechner, Netzwerkdiesnt oder Anwendungsprogramm, um Angriffsmethoden zu studieren, von anderen Systemen abzulenken oder um Angreifern eine Falle zu stellen.
Beschreiben Sie die Aufgabe einer Sandbox in Bezug auf die IT-Sicherheit.
Eine Sandbox ist eine abgesicherte Umgebung in der Software oder Code ausgeführt werden kann, ohne dass das umliegende System oder Netzwerk beeinflusst wird. Diese Umgebung isoliert die Ausführung der Software, um sicherzustellen, dass möglicher schädlicher oder nicht verifizierter Code nicht auf das zugrundeliegende System oder Netzwerk zugreifen kann.
Erklären Sie den Unterschied zwischen der differenziellen und der inkrementellen Datensicherung. Gehen Sie hierbei auch auf den Aufwand bei der Wiederherstellung von Daten ein.
Differenzielle Datensicherung:
* startet mit einer Vollsicherung
* im Anschluss werden nur noch Daten gesichert, welche seit der letzten Vollsicherung verändert oder neu erstellt wurden
* zur Wiederherstellung werden die letzte Vollsicherung und das letzte differenzielle Backup benötigt
Inkremmetelle Datensicherung:
* startet mit einer Vollsicherung
* im Anschluss werden nur noch Daten gesichert, welche seit dem letzten Sicherungsdurchlauf (Vollsicherung oder inkrementell) verändert oder neu erstellt wurden
* zur Wiederherstellung werden die letzte Vollsicherung und alle inkrementellen Sicherung in der richtigen Reihenfolge benötigt
Beschreiben Sie die Datensicherungsstrategie “Generationenprinzip” (Großvater-Vater-Sohn-Prinzip).
Beim Generationenprinzip handelt es sich um eine Datensicherungsstrategie, bei welcher mehrere Sicherungen in verschiedenen zeitlichen Abstufungen vorliegen. Hierdurch kann z.B. ein kompletter Datenverlust durch die Beschädigung einer einzelnen Sicherung verhindert werden. Ein Konzept zum Überschreiben und Wiederverwenden der zur Sicherung genutzten Datenträger kann eingesetzt werden.
Eine mögliche Umsetzung wäre die Durchführung von täglichen, wöchentlichen und monatlichen Sicherungen. Hierbei wäre die tägliche Sicherung der “Sohn”, die wöchentliche Sicherung der “Vater” und die monatliche Sicherung der “Großvater”.
Was besagt die 3-2-1-Regel in Bezug auf die Datensicherung?
Die 3-2-1-Regel stellt sicher, dass die Daten sicher aufbewahrt werden. Sie besagt folgendes:
* Es sollten mindestens drei Kopien der Daten aufbewahrt werden. Das schließt die ursprüngliche Datei und zwei Backup-Kopien ein.
* Es sollten mindestens zwei verschiedene Speichermedien für die Backups verwenden werden.
* Mindestens eine dieser Kopien sollte an einem anderen Ort aufbewahrt werden, um sich gegen lokale Katastrophen wie Feuer, Überschwemmungen oder Einbrüche zu schützen. Diese “Offsite”-Kopie kann entweder in einem physisch entfernten Ort oder in einem Cloud-Speicherdienst aufbewahrt werden.
Worin liegt der Unterschied zwischen Datensicherung und Archivierung?
Datensicherung ist der Prozess, regelmäßige Kopien von Daten zu erstellen, um diese im Falle eines Datenverlustes wiederherstellen zu können. Backups werden in der Regel regelmäßig erstellt und auf einem sicheren Medium oder an einem sicheren Ort aufbewahrt.
Archivierung ist der Prozess der langfristigen Aufbewahrung von Daten, die nicht mehr aktiv verwendet werden, aber aus rechtlichen oder geschäftlichen Gründen aufbewahrt werden müssen. Archivierte Saten werden oft auf ein kosteneffizientes Medium verschoben und an einem sicheren Ort aufbewahrt. Archive dienen dazu ältere Daten zugänglich zu machen, wenn sie benötigt werden.
Was bedeutet Disaster Recovery in der Informationstechnologie und warum ist es für Unternehmen wichtig?
Disaster Recovery (DR) bezieht sich auf Strategien und Maßnahmen, die Unternehmen zur Wiederherstellung, und zum Schutz ihrer IT-Infrastruktur und -Daten im Falle eines “Desasters” einsetzen. Ein Desaster kann eine Vielzahl von Ereignissen umfassen, wie zum Beispiel Naturkatastrophen, Cyberangriffe oder Hardwareausfälle.
Die Disaster Recovery Strategie eines Unternehmens umfasst in der Regel einen Disaster Recovery Plan (DRP), der detaillierte Anweisungen und Verfahren für die Wiederherstellung von Systemen und Daten enthält. Dazu gehören in der Regel auch Vorkehrungen für reduntante Systeme und Backups von Daten an sicheren Orten.
Erläutern Sie die Bedeutung von “Recovery Time Objective” (RTO) und “Recovery Point Objective” (RPO).
Recovery Time Objective (RTO) und Recovery Point Objective (RPO) sind zwei Schlüsselkonzepte im Bereich der Disaster Recovery Planung.
Recovery Time Objective (RTO) ist die maximale tolerierbare Zeit, die ein System nach einem Ausfall oder einer Störung ausfallen darf, bevor es zu erheblichen Schäden kommt. Es ist die Zeit, die benötigt wird, um die Funktionsfähigkeit wiederherzustellen.
Die Recovery Point Objective (RPO) bezieht sich auf die maximale Menge an Daten, die ein Unternehmen sich leisten kann zu verlieren, bevor es zu erhebliche Schäden kommt. Dies wird oft in Zeiteinheiten gemessen.
Worin liegt der Unterschied zwischen den Messgrößen “Mean Time Between Failures” (MTBF) und “Mean Time to Failure” (MTTF)?
MTBF steht für “Mean Time Between Failures”. Es ist die durchschnittliche Zeit zwischen reparierbaren Ausfällen. Eine hohe MTBF weist auf eine höhere Zuverlässigkeit und Langlebigkeit des Systems hin.
MTTF steht für “Mean Time to Failure”. Es handelt sich dabei um die durchschnittliche Zeitspanne, die erwartungsgemäß vergeht, bevor ein Gerät oder System ausfällt. Im Gegensatz zu MTBF, das für Geräte verwendet wird, die repariert und wieder in Betrieb genommen werden können, wird MTTF normalerweise für Geräte verwendet, die nach einem Ausfall nicht repariert, sondern ersetzt werden müssen.
Treffen Sie für die RAID-Systeme RAID 0, RAID 1, RAID 5, RAID 6 und RAID 10 jeweils eine Aussage zu:
* Mindestanzahl Festplatten
* Ausfallsicherheit
* Berechnung der Nutzkapazität (Nettokapazität)
RAID 0:
* mindestens 2 Festplatten
* keine Ausfallsicherheit
* Anzahl Festplatten * Kapazität
RAID 1:
* mindestens 2 Festplatten
* eine Festplatte dar ausfallen
* (Anzahl Festplatten / 2) * Kapazität
RAID 5:
* mindestens 3 Festplatten
* eine Festplatte darf ausfallen
* (Anzahl Fesplatten - 1) * Kapazität
RAID 6:
* mindestens 4 Fesplatten
* zwei Festplatten dürfen ausfallen
* (Anzahl Festplatten / 2) * Kapazität
Erklären Sie anhand eines Beispiels, warum ein RAID keine Datensicherung ersetzt.
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
In einem RAID-5-Verbund wurde eine zusätzliche Hot-Spare-Festplatte verbaut. Erklären Sie die Funktion einer Hot-Spare-Festplatte.
Eine Hot-Spare-Festplatte ist eine zusätzliche Festplatte, die in einem RAID-Verbund installiert wird, um als Ersatz für eine ausgefallene Festplatte zu dienen.
Wenn eine Festplatte in dem RAID-Verbund ausfällt, übernimmt die Hot-Spare-Festplatte automatisch die Rolle der ausgefallenen Festplatte, ohne dass manuelle Eingriffe erforderlich sind. Die Hot-Spare-Festplatte wird sofort in das RAID-System integriert und beginnt mit der Wiederherstellung der Daten, um den ursprünglichen Redundanzgrad des Verbunds wiederherzustellen.
Was ist der Unterschied zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren?
Symmetrische Verschlüsselung:
* arbeitet nur mit einem einzigen Schlüssel
* der Schlüssel muss dem Sender und Empfänger bekannt sein
* Vorteil: funktioniert schnell und effizient
* Nachteil: die Übergabe und Verwaltung des Schlüssels sind schwierig
Asymmetrische Verschlüsselung:
* arbeitet mit Schlüsselpaaren bestehend aus einem privaten (Private Key) und einem öffentlichen Schlüssel (Public Key)
* Nachrichten werden mit dem Public Key verschlüsselt
* der Private Key dient zum Entschlüsseln von Nachrichten
* Vorteil: löst das Problem der Schlüsselübergabe
* Nachteil: sind erheblich langsamer als die symmetrischen Verschlüsselungsverfahren
Wie ist die Funktionsweise von hybriden Verschlüsselungsverfahren?
Hybride Verschlüsselungsverfahren vereinen die Vorteile von symmetrischen und asymmetrischen Verschlüssenlungverfahren. Die eigentliche Nachricht wird zunächst mit einem symmetrischen Verfahren verschlüsselt.
Der hierbei verwendete Schlüssel wird mit einem asymmetrischen Verfahren verschlüsselt und an den Empfänger übertragen. Hierdurch ist dieses Verfahren schneller als die asymmetrischen
Verfahren.
Welche Schutzmechanismen beinhaltet das TLS-Protokoll?
Transport Layer Security (TLS) ist ein Protokoll, das dazu dient, eine sichere Kommunikation über ein Netzwerk zu ermöglichen. TLS funktioniert, indem es eine verschlüsselte Verbindung zwischen zwei Parteien herstellt, über die Daten sicher übertragen werden können.
Aufgaben von TLS sind:
* Verschlüsselung: TLS verwendet das hybride Verschlüsselungsverfahren, um Verbindungen zu sichern.
* Authentifizierung: TLS verwendet digitale Zertifikate, um die Identität der kommunizierenden Parteien zu überprüfen
* Integrität: TLS beinhaltet Mechanismen zur Überprüfung der Integrität von Nachrichten
Digitale Signaturen stützen sich auf Hashverfahren und basieren auf der asymmetrischen Kryptografie.
Erklären Sie diesen Zusammenhang.
Bei digitalen Signaturen wird die asymmetrische Kryptografie umgekehrt angewandt. Die Signatur wird vom Sender einer Nachricht mit Hilfe seines privaten Schlüssels erzeugt. Vom Empfänger kann die Korrektheit einer Signatur über den öffentlichen Schlüssel des Senders überprüft werden.
Um die Effizienz des Signaturverfahrens zu steigern, wird die digitale Signatur nur auf dem Hashwert einer Nachricht erzeugt.
Nennen Sie drei Eigenschaften, die ein sicheres Hash-Verfahren aufweisen sollte.
Bei einem sicheren Hash-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
Was ist “Salting” in der Kryptographie und wie verbessert es sich die Sicherheit von gespeicherten Passwörtern?
Salting is eine Technik, die häufig bei der Speicherung von Passwörtern verwendet wird. Ein “Salt” ist eine zufällige Zeichenfolge, die zu einem Passwort hinzugefügt wird, bevor das Passwort gehasht wird. Dies hat den Zweck, den Hash-Wert des Passworts zu verändern, sodass selbst wenn zwei Accounts das gleiche Passwort haben, ihre gehashten Passwörter (die in der Datenbank gespeichert werden) unterschiedlich sind. Salting erhöht die Sicherheit, da es den Nutzen von vorgefertigten Hash-Listen für Angreifer erheblich reduziert und es schwieriger macht, Passwörter durch Brute-Force-Angriffe zu entschlüsseln.
Was ist die Rolle einer Certificate Authority (CA) im Kontext der Netzwerksicherheit?
Eine Certificate Authority (CA), oder Zertifizierungsstelle, ist eine vertrauenswürdige Organisation, die digitale Zertifikate ausstellt und verwaltet. Diese Zertifikate sind entscheidend für die Sicherheit im Internet, da sie die Identität von Personen, Computern und Organisationen bestätigen. Wenn eine CA ein Zertifikat ausstellt, bestätigt sie die Identität des Inhabers und signiert das Zertifikat mit ihrem privaten Schlüssel. Dies ermöglicht es jedem, der das Zertifikat erhält, die Authentizität durch Überprüfung der CA-Signatur zu bestätigen.
Was ist eine Public Key Infrastructure (PKI)?
Eine Public Key Infrastructure (PKI) ist ein Set von Rollen, Richtlinien und Verfahren, die benötigt werden, um digitale Zertifikate sicher auszustellen und zu verwalten. Sie dient der sicheren Identitätsprüfung in digitalen Netzwerken und nutzt dafür asymmetrische Kryptographie, bestehend aus einem öffentlichen und privaten Schlüsselpaar. Die Zertifikate werden von einer Zertifizierungsstelle (CA) ausgestellt, die als vertrauenswürdige dritte Partei fungiert.
PKI stellen die folgenden Funktionen bereit:
* Zertifikatserstellung
* Zertifikatsverteilung
* Zertifikatsprüfung
* Zertifikatswiderruf
Welche Bestandteile beinhaltet ein digitales Zertifikat nach X.509?
Typische Inhalte eines Zertifikates sind:
* Version
* Name des Zertifikatsinhabers
* 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
Erklären Sie die Bedeutung der folgenden Algorithmen:
* DES
* 3DES
* AES-128
* AES-256
* SHA256
* MD5
DES - Data Encryption Standard
3DES - symmetrisches Verschlüsselungsverfahren
- DES gilt als nicht mehr sicher
- durch die dreifache Anwendung des DES wird die Schlüssellänge und Sicherheit vergößert
AES-128 - Advanced Encryption Standard
AES-256 - symmetrisches Verschlüsselungsverfahren mit einer Schlüssellänge von 128 Bit, bzw. 256 Bit
SHA256 - Secure Hash Algorithm
- Hash-Verfahren mit 256 Bit Länge
MD5 - Message-Digest Algorithm
- Hash-Verfahren mit 128 Bit Länge
- gilt als nicht mehr sicher
Beschreiben Sie Lastenheft und Pflichtenheft hinsichtlich Verfasser, Verwendung und Inhalt.
Lastenheft:
* Verfasser: Auftraggeber
* Verwendung: Grundlage beim Einholen von Angeboten
* Inhalt: beinhaltet alle Anforderungen des Auftraggebers hinsichtlich des Liefer- und Leistungsumfanges.
Pflichtenheft:
* Verfasser: Auftragnehmer
* Verwendung: Basis für die vertraglich festgehaltenen Leistungen
* Inhalt: beschreibt die Umsetzung aller Anforderungen aus dem Lastenheft
Was sind die Stakeholder eines Projektes?
Projekt-Stakeholder sind Personen oder Personengruppen, welche aktiv am Projekt beteiligt oder von der Durchführung, bzw. dem Ergebnis eines Projektes betroffen sind.
Typische Stakeholder eines Projektes sind zum Beispiel:
* Kundinnen und Kunden
* Auftraggebende
* Lieferanten
* Mitarbeitende im Projekt
* Projektleitung
Erklären Sie die vier Phasen der Teambildung Forming, Stormin, Norming und Performing.
Forming:
* Einstiegs- und Findungsphase
* Ein neues Team beginnt die Zusammenarbeit
Storming:
* Es kommmt zu Konflikten im Team und zu Störungen in der Zusammenarbeit.
Norming:
* Die Teammitglieder entwickeln Strategien und Taktiken zur Zusammenarbeit.
Performing
* Das Team hat gelernt, als Team zusammen zu arbeiten und sich gemeinsam auf die Erreichung der Ziele zu fokussieren.
Was ist der Unterschied zwischen einem Projektstrukturplan und einem Netzplan?
Ein Projektstrukturplan zeigt ausschließlich die Arbeitspakete eines Projektes an. Diese werden hierarchisch in Form eines Baumdiagramms dargestellt. Er ist ohne Chronologie und lässt keine Abhängigkeiten erkennen.
Ein Netzplan zeigt die Abhängigkeiten zwischen den einzelnen Vorgängen. In ihm können vorhandenen Zeitpuffer und die Projektdauer ermittelt werden.
Was ist bei einem Netzplan der Unterschied zwischen dem Gesamtpuffer und dem freien Puffer?
Der Gesamtpuffer bezeichnet die Zeitspanne, um die ein Vorgang gegenüber seinem frühesten Anfangszeitpunkt verschoben werden kann, ohne dass das Projektende verschoben werden muss.
Der freie Puffer ist die Zeitspanne, um die ein Vorgang gegenüber seinem frühesten Anfangszeitpunkt verschoben werden kann, ohne dass der früheste Anfangszeitpunkt eines Nachfolgers verschoben werden muss.
Welches Merkmal charakterisiert den kritischen Pfad?
Alle Vorgänge, welche auf dem kritischen Pfad liegen, haben einen Puffer von 0 Tagen. Die Verschiebung eines Vorganges, welcher sich auf dem kritischen Pfad befindet, führt automatisch zu einer Verschiebung des Projektendes.
Nennen Sie zwei Merkmale, welche ein Gantt-Diagramm von einem Netzplan unterscheiden.
- Das Gantt-Diagramm nutzt eine tabellarische Darstellung der Vorgänge.
- Im Gantt-Diagramm werden konkrete Termine angegeben. In einem Netzplan higegen wird nur die Zeitdauer eines Vorgangs aufgezeigt.
- Die unterschiedliche Dauer von Vorgängen wird im Gantt-Diagramm durch die Balkenlänge visualisiert.
- Pufferzeiten können im Gantt-Diagramm nicht direkt abgelesen werden.
Erläutern Sie was unter klassischen und agilen Vorgehensmodellen zu verstehen ist.
Klassische Vorgehensmodelle sind sequenzielle und plangetriebene Modelle, die darauf abzielen, ein Projekt von der Konzeption bis zur Lieferung in einer klaren Abfolge von Phasen durchzuführen. Diese Modelle basieren auf einer umfassenden Planung, die im Vorfeld erstellt wird, und erfordern häufig eine umfangreiche Dokumentation.
Agile Vorgehensmodelle hingegen sind iterativ und inkrementell, was bedeutet, dass sie sich auf die Zusammenarbeit und Flexibilität konzentrieren. Agile Modelle zielen darauf ab, schnell auf Änderungen und Anforderungen zu reagieren und arbeiten in kurzen Zeitrahmen, sogennanten Sprints.
Nennen Sie jeweils ein Beispiel für ein klassisches und ein agiles Vorgehensmodell.
Klassische Vorgehensmodelle:
* Wasserfallmodell
* V-Modell
* Spiralmodell
Agile Vorgehensmodelle:
* Scrum
* Extreme Programming
Welchem Ansatz folgen die iterativen Vorgehensmodelle?
Ein iteratives Vorgehensmodell ist ein Ansatz, bei dem der Entwicklungsprozess in wiederholenden Iterationen stattfinden. Anstatt alle Anforderungen un Aufgaben auf einmal zu definieren und abzuschließen, werden sie in kleinere, wiederholbare Phasen aufgeteilt. Jede Iteration umfasst eine Planungs-, Implementierungs- und Bewertungsphase. Das Feedback aus jeder Iteration wird genutzt, um das Produkt kontinuerlich zu verbessern und neue Anforderungen zu berücksichtigen. Dies ermöglicht Flexibilität, schnellere Reaktionen auf Änderungen und die Möglichkeit, auf frühzeitiges Feedback von Personen, die das Produkt nutzen, einzugehen.
Was ist das Wasserfallmodell in der Softwareentwicklung?
Das Wasserfallmodell ist ein lineares Vorgehensmodell in der Softwareentwicklung, das den Entwicklungsprozess in aufeinanderfolgende Phasen unterteilt.
Diese Phasen sind: Anforderungsanalyse, Systemdesign, Implementierung, Integration und Testen, Bereitstellung und Wartung. Jede Phase muss vollständig abgeschlossen sein, bevor zur nächsten übergangen wird, ähnlich einem Wasserfall, der von oben nach unten fließt. Es eignet sich besonders für Projekte mit klaren und stabilen Anforderungen.
Wie unterscheidet sich das Spiralmodell vom Wasserfallmodell?
Das Wasserfallmodell ist ein lineares Vorgehensmodell, das den Entwicklungsprozess in feste, sequentielle Phasen unterteilt. Änderungen sind schwierig, sobald eine Phase abgeschlossen ist.
Das Spiralmodell ist ein iteratives Modell, das den Entwicklungsprozess als sich wiederholende Spirale darstellt, die sich mit jeder Iteration erweitert. Es beinhaltet Risikomanagement und erlaubt Flexibilität und Anpassungen während des gesamten Projekts. Es eignet sich gut für komplexe Projekte und wenn die Anforderungen unsicher oder veränderlich sind.
Was sind die Hauptmerkmale des V-Modells in der Softwareentwicklung und wie unterscheidet es sich von anderen Vorgehensmodellen?
Das V-Modell ist ein sequenzielles Vorgehensmodell in der Softwareentwicklung, bei dem jede Entwicklungsphase (linke Seite des “V”) einer Testphase (rechte Seite des “V”) zugeordnet ist. Es betont die Qualitätssicherung, indem für jede Entwicklungsphase gleichzeitig ein Testplan erstellt wird. Es ist weniger flexibel als iterative Modelle, aber ideal für Projekte mit klar definierten Anforderungen und hohem Qualitätsanspruch.
Beschreiben Sie die Grundelemente von Scrum.
Scrum ist ein agiles Framework für Projektmanagement. Es basiert auf kurzen Arbeitszyklen, genannt “Sprints”, die normalerweise 2-4 Wochen dauern. Ein Scrum-Team besteht aus einem Product Owner, der die Arbeit priorisiert, einem Scrum-Master, der den Prozess überwacht, und dem Entwicklungsteam, das die Arbeit ausführt. Nach jedem Sprint wird das Erreichte überprüft und das weitere Vorgehen geplant.
Was ist ein MVP (Minimum Viable Product)?
Ein MVP (Minimum Viable Product) ist ein grundlegendes, funktionsfähiges Produkt oder eine Diesntleistung, das/die mit minimalen Funktionen und Merkmalen entwickelt wird, um frühzeitig Feedback von Benutzern und Kunden zu erhalten. Es wird oft in agilen Entwicklungsmethoden eingesetzt und ermöglicht es Unternehmen, schenll eine erste Version ihres Produkts auf den Markt zu bringen, um die Reaktionen und Bedürfnisse der Nutzer zu verstehen und das Produkt iterativ weiterzuentwickeln.
Was versteht man im Bereich der Softwareentwicklung unter einer User Story?
Eine User Story ist eine Technik in der agilen Softwareentwicklung, um Anforderungen an eine Software in einer benutzerzentrierten und verständlichen Weise zu erfassen. Sie beschreibt eine bestimmte Funktionalität oder ein Feature aus der Sicht des Endbenutzers. Eine typische User Story folgt einem einfachen Format: “Als [Benutzerolle] möchte ich [Funktion], damit ich [Ziel] erreichen kann.”
User Stories fokussieren sich auf den Wert, den eine Funktion für den Benutzer bietet, anstatt sich auf technische Details zu konzentrieren. Sie dienen dazu, Anforderungen klar zu kommunizieren.
Beschreiben Sie den Unterschied zwischen statischen und dynamischen Testverfahren und nennen Sie jeweils zwei Beispiele.
Statische Testverfahren:
Die Programmkomponenten werden nicht ausgeführt. Die Überprüfung und Fehlersuche erfolgt anhand des Quellcodes oder anderen Dokumenten.
* Schreibtischtest
* Review von Anforderungen, Architektur, Design und Quellcode
Dynamische Testverfahren:
Das Testen der Programmkomponenten erfolgt durch die Ausführung in einer Testumgebung.
* Black-Box-Test
* White-Box-Test
* Extremewertetest
Was ist unter einem Extremwertetest zu verstehen?
Fehler treten häufig bei extremen Eingabewerten auf. Daher liegt beim Extremwertetest der Fokus auf dem Testen der Werte, welche Nahe an den Extremwerten liegen.
Ziel dieses Tests ist es, das Systemverhalten an oder jenseits seiner Spezifikationsgrenzen zu beobachten un zu verstehen, ob das System unter diesen Bedingungen korrekt funktioniert oder wie und wann es versagt. Es hilft, Fehler, Schwachstellen oder Begrenzungen der Software aufzudecken, die nur unter extremen Bedingungen sichtbar werden.
Wie können Äquivalenzklassen genutzt werden, um eine effiziente und repräsentative Auswahl von Testfällen für ein System oder eine Funktion zu definieren?
Äquivalenzklassen dienen der repräsentativen Auswahl von Testfällen. Dabei werden Eingabedaten in Gruppen aufgeteilt, die ähnliche Verhaltensweisen oder Eigenschaften aufweisen. Durch die Auswahl eines Testfalls aus jeder Äquivalentklasse wird eine breite Abdeckung der verschiedenen Szenarien erreicht, ohne alle möglichen Kombinationen von Eingabewerten zu testen.
Die Idee ist, dass, wenn ein Testfall aus eine Äquivalenzklasse erfolgreich besteht ode scheitert, die anderen Testfälle derselben Klasse wahrscheinlich ein ähnliches Ergebnis liefern.
Erklären Sie die Testverfahren Black-Box- und White-Box-Test.
Beim Black-Box-Test kennen die Testpersonen die interne Funktionsweise der Software nicht. Stattdessen konzentrieren sie sich auf die Eingaben und Ausgaben der Software, um zu prüfen, ob sie wie erwartet funktioniert. Der Black-Box-Test wird durchgeführt, um die Funktionalität und Benutzerfreundlichkeit einer Software zu überprüfen.
Der White-Box-Test ist ein Testverfahren, bei dem Testende Kenntnisse über die interne Funktionsweise der Software haben und die Struktur un das Design der Software haben und die Struktur und das Design der Software untersuchen. Der White-Box-Test wird durchgeführt, um sicherzustellen, dass der Code einer Software den Anforderungen entspricht und effizient funktioniert.
Was versteht man unter einem Code Review?
Ein Code Review ist eine systematische Untersuchung von Programmcode und wird den statischen Testverfahren zugeordnet. Hierbei kann der Code unter anderem auf folgende Aspekte geprüft werden:
* Funktionalität
* Lesbarkeit und Verständlichkeit
* Wartbarkeit
* Best Practices und Standards
Nachteile:
* Code Reviews erfordern Zeit und Ressourcen
* Code Reviews können subjektiv sein, da die Meinungen der Reviewer variieren können
* der Programmcode wird nicht ausgeführt
Erklären Sie das Prinzip der Anweisungüberdeckung.
Das Prinzip der Anweisungsüberdeckung ist ein grundlegender Aspekt des Softwaretests. Es handelt sich dabei um eine Methode der Code-Überdeckungsanalyse, die darauf abzielt, jede Anweisung oder Zeile Code mindestens einmal während des Testprozesses auszuführen.
Hierdurch kann ein Tester oder Entwickler bestätigen, dass jeder Codeabschnitt ausgeführt und getestet wurde. Das Hauptziel ist es, sicherzustellen, dass jede Anweisung funktioniert wie erwartet und die korrekten Ergebnisse liefert. Dies beinhaltet auch das Aufdecken von “totem Code”, das sind Codeabschnitte, die nie ausgeführt werden und potenziell entfernt werden können.
Beschreiben Sie den Unterschied zwischen Zweigüberdeckung und Pfadüberdeckung.
Zweigüberdeckung:
* alle Entscheidungszweige im Code müssen durch Tests abgedeckt sein
* ein Entscheidungszweig tritt auf, wenn ein Programm an einem Punkt zwischen zwei möglichen Wegen wählen muss
* Ziel ist es, dass jeder mögliche Pfad durch die Bedingungsanweisungen im Code mindestens einmal getestet wird
Pfadüberdeckung:
* jeder mögliche Pfad im Programm muss mindestens einmal durchlaufen werden
* ein Pfad ist eine Sequenz von Anweisungen im Code, die von einem Startpunkt zu einem Endpunkt führen
* Pfadüberdeckung berücksichtigt die vollständige Ausführung aller Anweisungen und die möglichen Verzweigungen
Was sind Unit-Tests und warum sind sie wichtig in der Softwareentwicklung?
Ein Unit-Test ist eine Methode in der Softwareentwicklung, bei der einzelne Komponenten des Codes (wie Funktionen oder Methoden) isoliert getestet werden. Der Zweck dieser Tests ist zu überprüfen, ob jede Komponente korrekt funktioniert. Sie helfen, Fehler frühzeitig zu erkennen und sicherzustellen, dass Änderungen im Code nicht zu unerwarteten Problemen führen. Unit Tests sind ein wichtiger Teil des Testprozesses, aber sie werden oft mit anderen Testmethoden kombiniert, um das Gesamtverhalten der Software zu überprüfen.
Welche Eigenschaften sollten Unit-Tests erfüllen, um das FIRST-Prinzip zu befolgen?
Das FIRST-Prinzip besagt, dass Unit-Tests folgende Eigenschaften aufweisen sollten:
- Fast: Sie sollten schnell laufen, um den Entwicklungsprozess nicht zu verlangsamen.
- Independent: Tests sollten unabhängig voneinander sein und in beliebiger Reihenfolge dasselbe Ergebnis liefern.
- Repeatable: Sie sollten unter gleichen Bedingungen stets dasselbe Ergebnis liefern.
- Self-Validating: Tests sollten selbst bestimmen können, ob sie erfolgreich waren oder nicht.
- Timely: Unit-Tests sollten bereits vor der Entwicklung des Produktivcodes definiert werden.
Was ist das Ziel eines Regressionstests?
Ein Regressionstest dient dazu, die Stabilität und Zuverlässigkeit der Anwendung nach Durchführung einer Aktualisierung zu prüfen.
Er wird durchgeführt, um sicherzustellen, dass neue Änderungen oder Updates an einer Software keine unerwünschten Auswirkungen auf bereits vorhandene Funktionen haben.
Beim Programm stellen Sie fest, dass ein Programm nicht wie gewünscht funktioniert. Geben Sie die möglichen Vorgehensweisen an, die Fehlersuche mit Hilfe der Möglichkeiten eines Debuggers vorzunehmen.
Zur Fehlersuche mit einem Debugger könnten Sie Folgende Schritte befolgen:
* Breakpoints setzen: Anhalten des Programms an gesetzten Punkten zur Überprüfung des aktuellen Zustands
* Schritt-für-Schritt Ausführung: die genaue Kontrolle des Ablaufes zeigt, wann das Programm vom erwarteten Verhalten abweicht
* Variablen beobachten: Überwachung der Werte von Variablen während der Programmausführung
* Stack Inspektion: Überprüfen der Reihenfolge der aufgerufenen Funktionen und ihrer Parameter
* Exception Handling: Identifikation der genauen Punkte im Code, an denen ein Fehler aufgetreten ist
* Logging: Protokollierung von Programmaktivitäten
Warum ist Performance-Testing in der Softwareentwicklung wichtig?
Performance-Testing ist wichtig, um sicherzustellen, dass eine Anwendung unter verschiedenen Lastbedingungen effizient und zuverlässig funktioniert. Durch Performance-Testing können folgende Fragen beantwortet werden:
* 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 einen längeren Zeitraum?
* Gibt es Engpässe oder Flaschenhälse in der Anwendung?
Nennen Sie sechs Kriterien zur Bewertung der Qualität von Software.
Kriterien für Softwarequalität:
* Benutzbarkeit
* Übertragbarkeit
* Änderbarkeit
* Effizienz
* Zuverlässigkeit
* Funktionalität
* Sicherheit
Was ist der Unterschied zwischen funktionalen und nichtfunktionalen Anforderungen in der Systementwicklung?
Funktionale und nichtfunktionale Anforderungen sind zwei Kategorien von Spezifikationen, die dazu beitragen, die Erwartungen an ein System, eine Anwendung oder ein Produkt zu definieren.
Funktionale Anforderungen beschreiben, was ein System tun soll. Sie beziehen sich auf bestimmte Funktionen oder Aufgaben, die das System ausführen kann.
Nichtfunktionale Anforderungen beziehen sich auf Aspekte wie Leistung, Zuverlässigkeit, Sicherheit und andere Qualitätsmerkmale. Sie beschreiben, wie gut das System seine Aufgaben ausführen soll oder unter welchen Bedingungen es funktionieren soll.
Was ist der Zweck eines Mock-ups und wie kann es im Designprozess eingesetzt werden?
Ein Mock-up hat den Zweck, ein visuelles Modell eines Produkts, einer Website oder einer Anwendung zu erstellen. Es wird im Designprozess eingesetzt, um das endgültige Design, die Funktionalität und das Erscheinungsbild zu veranschaulichen.
Mocku-ups dienen dazu, Ideen zu präsentieren, Feedback zu sammeln und Designentscheidungen zu treffen, bevor die eigentliche Entwicklung beginnt. Sie ermöglichen es, das Konzept zu visualisieren, Benutzererfahrungen zu testen und potenzielle Probleme oder Verbesserungen frühzeitig zu erkennen.
Was ist das Staging-Testing in Bezug auf Softwareentwicklung und -bereitstellung?
Beim Staging-Testing werden Anwendungen in einer Staging-Umgebung getestet, bevor sie in Produktionsumgebung bereitgestellt werden. Die Staging-Umgebung ist eine separate Umgebung, die der Produktionsumgebung ähnelt und oft als Zwischenschritt zwischen Entwicklung und Produktion fungiert.
Zweck des Staging-Testing ist es, sicherzustellen, dass die Software ordnungsgemäß funktioniert, bevor sie für die tatsächlichen Benutzer in der Produktionsumgebung verfügbar oder Fehler zu identifizieren und zu beheben, bevor die Software in den Live-Betrieb geht.
Wie unterscheiden sich Komponententests, Funktionstests und Integrationstests im Softwareentwicklungsprozess voneinander?
Komponententests überprüfen einzelne Softwarekomponenten, wie Funktionen, Klassen oder Module, isoliert voneinander. Sie sollen sicherzustellen, dass jede Komponente ordnungsgemäß funktioniert und die erwarteten Ergebnisse liefert.
Funktionstests testen die Software auf die funktionalen Anforderungen. Sie überprüfen, ob das System als Ganzes die gewünschten Funktionen und Verhaltensweisen korrekt umsetzt.
Integrationstests prüfen die Interaktion zwischen vershiedenen Komponenten und stellen sicher, dass sie zusammenarbeiten und korrekt integriert sind. Sie testen die Schnittstellen und Kommunikation zwischen den Komponenten.
Erläutern Sie die Methode des Blue-Green Deployments.
Die Idee des Blue-Green Deployments besteht darin, zwei separate und identische Umgebungen (“Blue” und “Green”) bereitzustellen.
- Die aktuelle Produktionsversion (Blue) ist live.
- Eine neue Version der Anwendung (Green) wird in der separaten Umgebung bereitgestellt und getestet.
- Sobald die Tests erfolgreich abgeschlossen sind, kann der Datenverkehr von Blue auf Green umgeleitet werden.
- Der Datenverkehr wird schrittweise umgeleitet, um sicherzustellen, dass das System in der Green-Umgebung ordnungsgemäß funktioniert.
- Falls Probleme in der Green-Umgebung auftreten, kann der Datenverkehr schnell auf die Blue-Umgebung zurückgeleitet werden.
Wofür steht die Abkürzung KVP im Qualitätsmanagement?
KVP (kontinuierlicher Verbesserungsprozess) ist ein Ansatz zur permanenten Verbesserung in Organisationen. Das Ziel ist eine kontinuierliche Verbesserung in Prozessen, Produkten und Dienstleistungen, um die Effizienz und die Qualität im Unternehmen langfristig zu stärken. Der kontinuierliche Verbesserungsprozess wird niemals beendet.
Erklären Sie den Unterschied zwischen den Begriffen Qualitätssicherung und Qualitätskontrolle.
Qualitätssicherung ist ein proaktiver Prozess, der darauf abzielt, Fehler während der Produktion oder Bereitstellung von Dienstleistungen zu verhindern. Es handelt sich um systematische Maßnahmen, die dazu dienen, die Qualität eines Endprodukts von Beginn an zu gewährleisten.
Qualitätskontrolle ist ein reaktiver Prozess, bei dem Produkte oder Dienstleistungen nach ihrer Herstellung oder Bereitstellung auf Fehler geprüft werden. Es umfasst Maßnahmen wie Tests und Inspektionen, um sicherzustellen, dass das Endprodukt den Qualitätsstandards entspricht.
Nennen und erklären Sie die vier Phasen des PDCA-Zyklus.
Plan:
* Festlegung von Zielen und Planung der Aktivitäten zur Zielerreichung
* Entwicklung eines Plans mit klaren Maßnahmen
Do:
* Implementierung der definierten Maßnahmen und Aktivitäten
* Erfassung von Daten und Informationen währen der Umsetzung
Check:
* Überprüfung und Bewertung der Ergebnisse, die während der Umsetzung gesammelt wurden
* Vergleich der tatsächlichen Ergebnisse mit den definierten Zielen
* Analyse von Abweichungen und Ursachen von Problemen
Act:
* Basierend auf den Ergebnisse der Überprüfung werden geeignete Maßnahmen endgültig umgesetzt
* Aktualisierung des Plans für den nächsten Zyklus, basierend auf den gewonnenen Erkenntnissen
Was bedeutet es, wenn eine Software als barrierefrei bezeichnet wird?
Barrierefreie Software bedeutet, dass die Software so gestaltet ist, dass sie von allen Menschen, einschließlich Menschen mit Behinderungen, genutzt werden kann. Dies beinhaltet Funktionen wie Bildschirmleseprogramme für Blinde, Untertitel und Transkriptionen für Gehörlose, und die Fähigkeit, die Software mit einer Tastatur oder Spracherkennung anstelle einer Maus zu bedienen.
Was versteht man unter Softwareergonomie und welche Prinzipien und Maßnahmen können angewendet werden, um die Benutzerfreundlichkeit von Softwareanwendungen zu verbessern?
Softwareergonomie bezieht sich auf die Gestaltung von Software, die auf die menschlichen Fähigkeiten abgestimmt ist, um Benutzerfreundlichkeit und Effizienz zu maximieren. Dazu gehören Prinzipien wie:
- Nutzerzentrierung: Gestaltung mit Blick auf die Bedürfnisse und Fähigkeiten der Endnutzer
- Einfachheit und Konsistenz: intuitive und konsistente Benutzeroberflächen
- 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.
Nennen Sie in Bezug auf Softwareergonomie die Grundsätze der Dialoggestaltung.
Die Grundsätze der Dialoggestaltung sind 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 verzeiht Fehler und unterstützt bei deren Behebung
* Individualisierbarkeit: Nutzer können Software an ihre Bedürfnisse anpassen
* Lernförderlichkeit: Software unterstützt den Lernprozess des Nutzers
Was sind relationale Datenbanken?
Nennen Sie zwei Beispiele für nicht-relationale Datenbaktypen.
Relationale Datenbanken sind Datenbanken, die auf dem relationalen Datenbankmodell basieren. Sie speichern Daten in Tabellen, die aus Zeilen und Spalten bestehen. Die Beziehungen zwischen den Tabellen werden durch Primärschlüssel-Fremdschlüssel-Beziehungen hergestellt.
Beispiele für nicht-relationale Datenbanktypen sind:
* Dokumentenorientierte Datenbanken
* Schlüssel-Wert-Datenbanken
* Spaltenorientierte Datenbanken
* Graphdatenbanken
* Zeitreihendatenbanken
* Objektorientierte Datenbanken
Welche Unterschiede bestehen zwischen strukturierten, semi-strukturierten und unstrukturierten Daten?
Strukturierte Daten haben eine klar definierte und erwartete Struktur. Sie können leicht in relationalen Datenbanken gespeichert und abgefragt werden.
Semistrukturierte Daten fallen irgendwo zwischen strukturierte und unstrukturierte Daten. Sie haben eine gewisse Struktur, die aber nicht so streng definiert ist. Semistrukturierte Daten können Metadaten oder Tags enthalten, die den Daten Kontext und Bedeutung verleihen, wie z.B. XML und JSON-Dateien.
Unstrukturierte Daten haben keine spezifische Struktur. Sie kommen in vielen verschiedenen Formaten vor. Beispiele für unstrukturierte Daten sind Bilder, Audio- und Videodateien und Webseiten.
Was ist ein Data Warehouse?
Ein Data Warehouse ist ein zentralisiertes Repository, das Daten aus mehreren Quellen sammelt, integriert und speichert, um komplexe Analysen und datengetriebene Entscheidungsfindung zu ermöglichen.
Es handelt sich dabei um eine Art Datenbanksystem, das speziell für analytische Abfragen und Berichterstattung konzipiert ist, im Gegensatz zu traditionellen Datenbanksystemen, die für täglichen Betrieb und die Transaktionsverarbeitung ausgelegt sind. Im Data Warehouse werden Daten oft über lange Zeiträume gespeichert, was die Durchführung historischer Analysen ermöglicht. Zudem sind die Daten typischerweise strukturiert und organisiert.
Was ist ein Data Lake und wie unterscheidet er sich von einem Data Warehouse?
Ein Data Lake ist ein zentralisiertes Repository, das die Speicherung großer Mengen roher Daten in ihrem ursprünglichen Format ermöglicht.
Im Gegensatz zu einem Data Warehouse, das strukturierte Daten speichert und ein vordefiniertes Schema für gespeicherte Daten benötigt, kann ein Data Lake sowohl strukturierte als auch unstrukturierte Daten (wie E-Mails, Video-, Log- und Social-Media-Daten) speichern.
Welchen Datentypen werden in SQL verwendet und welchen Zweck erfüllen sie?
Zu den gängigen SQL-Datentypen gehören:
* INTEGER (für Ganzzahlen)
* FLOAT oder DECIMAL (für Gleitkommazahlen)
* VARCHAR oder CHAR (für Zeichenketten)
* DATE, Time oder TIMESTAMP (für Datum und Uhrzeit)
* BOOLEAN (für boolesche Werte)
* BINARY (Binär-String)
Jeder Datentyp hat spezifische Eigenschaften, wie die Größe des Wertebereichs oder die maximale Anzahl von Zeichen, die er speichern kann. Durch die Auswahl des richtigen Datentyps kann die Datenintegrität gewährleistet und die Speichereffizienz optimiert werden.
Erklären Sie in Bezug auf Datenbanken die Begriffe Primärschlüssel und Fremdschlüssel.
In Bezug auf Datenbanken haben Primärschlüssel und Fremdschlüssel besondere Bedeutungen:
Ein Primärschlüssel ist ein Feld oder eine Kombination von Feldern in einer Tabelle, das bzw. die jede Zeile eindeutig identifiziert. Jeder Primärschlüssel ist eindeutig innerhalb der Tabelle und es darf keine Duplikate oder Nullwerte geben.
Ein Fremdschlüssel ist ein Feld oder eine Kombination von Feldern in einer Tabelle, das auf den Primärschlüssel einer anderen Tabelle verweist. Der Zweck eines Fremdschlüssels besteht darin, die Integrität der Daten zu gewährleisten und Beziehungen zwischen Tabellen herzustellen.
Was ist referenzielle Integrität in Bezug auf Datenbanken?
Referenzielle Integrität bezieht sich auf die Konsistenz von Beziehungen zwischen Tabellen. Die referenzielle Integrität soll sicherstellen, dass in einer Beziehung zwischen Tabellen der Wert des Fremdschlüssels in der referenzierten Tabelle immer auf einen gültigen Wert verweist.
Wenn eine Änderung oder Löschung in einer Tabelle vorgenommen wird, überprüft die referenzielle Integrität, ob dies Auswirkungen auf andere Tabellen hat und ob die Konsistenz der Beziehungen erhalten bleibt.
Was sind Datenbankanomalien und welche Arten von Anomalien können auftreten?
Datenbankanomalien sind Probleme, die in einer Datenbank auftreten und zu Inkonstistenzen oder unerwünschten Effekten führen können. Es gibt drei Arten von Datenbankanomalien:
* Einfügeanomalie
* Aktualisierungsanomalie
* Löschanomalie
Diese Anomalien können vermieden werden, indem man Normalisierungstechniken anwendet, wie beispielsweise das Aufteilen von Tabellen (Vermeiden von Redundanz) und die klare Definition von Beziehungen zwischen Tabellen.
Beschreiben Sie die erste, zweite und dritte Normalform in relationalen Datenbanken.
Eine Relation ist in der ersten Normalform, wenn jeder Attributwert atomar ist. Attribute mit Attributwerten, welche nicht atomar sind, müssen in mehrere Attribute aufgeteilt werden.
Die zweite Normalform zielt darauf ab, Abhängigkeiten zwischen Nicht-Schlüsselattributen zu beseitigen. Datenfelder, die von einem Schlüsselkandidaten (Primärschlüssel) nicht vollständig funktional abhängig sind, müssen in weiteren Tabellen untergebracht werden.
Die dritten Normalform beseitigt transitive Abhängigkeiten zwischen Nicht-Schlüsselattributen. Die transitiv abhängigen Datenfelder müssen in weitere Tabellen ausgelagert werden.
Welche Schritte sind notwending, um Datenstrukturen in einem ER-Diagramm zu modellieren?
Ein Entity-Relationship-Diagramm (ER-Diagramm) wird zur Modellierung von Datenbanken wie folgt verwendet:
1. Identifizieren der Entitäten: Das sind die Hauptobjekte oder Konzepte in der Datenbank.
2. Bestimmen der Attribute: Das sind die Eigenschaften oder Merkmale der Entitäten.
3. Identifizieren der Beziehungen: Das sind die Verbindungen und Interaktionen zwischen Entitäten.
4. Bestimmen der Kardinalität: Das definiert, wie viele Instanzen einer Entität mit einer Instanz einer anderen Entität in Beziehung stehen können.
Welche speziellen Anforderungen in Bezug auf die Beziehungen zwischen den einzelnen Entitätstypen sind bei der Ableitung von Datentabellen aus einem ER-Diagramm zu beachten?
Bei der Ableitung von Tabellen aus einem ER-Diagramm müssen Sie die Art der Beziehungen berücksichtigen:
* 1:1: Eine Fremdschlüsselbeziehung in einer der beiden Tabellen erstellen.
* 1:n: Der Primärschlüssel der “1”-Tabelle wird als Fremdschlüssel in der “n”-Tabelle verwendet.
* n:m: Diese Art von Beziehungen müssen über eine zusätzliche Tabelle mit Fremdschlüssen zu beiden beteiligten Tabellen aufgelöst werden.
Was ist eine Stored Procedure und welche Vorteil bietet sie in der Datenbankentwicklung?
Eine Stored Procedure ist eine vorbereitete SQL-Anweisung, die auf der Datenbank gespeichert ist. Sie kann parametrisiert werden und mehrere SQL-Anweisungen enthalten, die komplexe Operationen ausführen.
Vorteile von Stored Procedures:
* Leistung: Sie sind effizienter bei wiederholten und komplexen Anfragen, da 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 Datenbank.
* Transaktionskontrolle: Sie erlauben es, mehrere Operationen als eine einzige Transaktion zu behandeln.
Wie funktionieren Trigger in Datenbakumgebungen und wie können sie zur automatischen Ausführung von Aktionen verwendet werden?
Ein Trigger in einer Datenbank ist eine Art von Stored Procedure, die automatisch in Reaktion auf bestimmte Ereignisse in einer spezifischen Tabelle oder Ansicht in der Datenbank ausgeführt wird. Die Ereignisse können das Einfügen, Aktualisieren oder Löschen von Daten sein.
Ein Trigger wird immer mit einer Tabelle verknüpft und aktiviert sich, wenn eine angegebene Datenmanipulationsoperation (DML) ausgeführt wird.
Warum ist die Indizierung von Spalten in einer Datenbank wichtig und wie kann sie die Leistung von Abfragen verbessern?
Ein Index bietet einen schnellen Zugriff auf die Daten. Er 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, kann das Datenbanksystem den Index verwenden, um schnell zu den benötigten Daten zu navigieren, anstatt alle Zeilen durchsuchen zu müssen.
Dies kann die Leistung von Abfragen erheblich 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.
Was versteht man unter dem Begriff “Transaktion” im Kontext von SQL-Statements?
Eine Transaktion in SQL bezeichnet eine Gruppe von miteinander verbundenen Anweisungen, die als eine einzelne Arbetseinheit behandelt werden. Sie folgen dem ACID-Prinzip:
- Atomarität: Alles oder nichts. Alle Operationen in der Transaktion werden erfolgreich ausgeführt oder gar keine.
- Konsistenz: Die Transaktion bringt die Datenbank von einem konsistenten Zustand in einen anderen.
- Isolation: Jede Transaktion wird so behandelt, als ob sie isoliert von anderen läuft.
- Dauerhaftigkeit: Nachdem eine Transaktion abgeschlossen ist, sind ihre Auswirkungen dauerhaft.
Erklären Sie die Funktion und Verwendung der folgenden SQL-Befehle im Zusammenhang mit Transaktionen:
BEGIN TRANSACTION
COMMIT
ROLLBACK
Diese Befehle in SQL werden verwendet, um Transaktionen zu kontrollieren:
BEGIN TRANSACTION: Dieser Befehl signalisiert den Beginn einer Transaktion.
COMMIT: Schließt die Transaktion ab und speichert alle Änderungen daurhaft in der Datenbank. Nach einem COMMIT kann die Transaktion nicht mehr rückgängig gemacht werden.
ROLLBACK: Macht alle Änderungen, die in der aktuellen Transaktion gemacht wurden, rückgängig, wenn ein Fehler auftritt oder wenn die Transaktion aus irgendeinem Grund nicht abgeschlossen werden kann.
Was sind SQL Joins?
Erklären Sie kurz “INNER JOIN”, “LEFT JOIN”, “RIGHT JOIN” und “FULL JOIN”.
SQL Joins werden verwendet, um Daten aus zwei oder mehr Tabellen basierend auf einer verwandten Spalte (Verbundbedingung) zu kombinieren. Ein Join wird typischerweise in einer SELECT-Anweisung verwendet und kann mehrere Bedingungen in der ON-Klausel haben.
INNER JOIN: Gibt Zeilen zurück, bei denen es eine Übereinstimmung in beiden Tabellen gibt.
LEFT JOIN: Gibt alle Zeilen der linken Tabelle und die übereinstimmenden Zeilen der rechten Tabelle zurück.
RIGHT JOIN: Gibt alle Zeilen der rechten Tabelle und die übereinstimmenden Zeilen der linken Tabelle zurück.
FULL JOIN: Gibt Zeilen zurück, wenn es eine Übereinstimmung in einer der Tabellen gibt.
Was bedeutet der Begriff “NULL” in Bezug auf Datenbanken und welche Rolle spielt es bei der Datenverarbeitung und -abfrage?
In Datenbanken bedeutet “NULL”, dass ein Feld keinen Wert hat. Es ist weder 0 noch Leerzeichen, sondern repräsentiert fehlende oder unbekannte Daten.
Einige Punkte zur Handhabung von NULL:
* Bei fehlenden Daten kann NULL eingefügt werden.
* In Abfragen wird “IS NULL” oder “IS NOT NULL” verwendet, um NULL-Werte zu finden.
* Arithmetische Operationen mit NULL ergeben NULL.
* Aggregatfunktionen wie COUNT oder SUM ignorieren NULL-Werte.
* Oft werden NULL-Werte in Datenbankindizes nicht berücksichtigt.
Was sind die grundlegenden Operationen im digitalen Datenmanagement, die durch das Akronym CRUD abgedeckt werden?
CRUD steht für Create, Read, Update und Delete. Es handelt sich um grundlegende Operationen, die bei der Verwaltung digitaler Daten durchgeführt werden.
- Create (Erstellen): neue Daten werden erstellt und in das System eingefügt.
- Read (Lesen): bestehende Daten werden aus dem System abgerufen und angezeigt.
- Update (Aktualisieren): bestehende Daten werden geändert oder aktualisiert.
- Delete (Löschen): bestehende Daten werden aus dem System entfernt.
Was ist der Unterschied zwischen einem Compiler und einem Interpreter?
Ein Compiler ist ein Programm, das den gesmaten Quellcode einer Programmiersprache analysiert und in einen ausführbaren Maschinencode übersetzt. Der übersetzte Code kann später unabhängig vom Compiler ausgeführt werden.
Ein Interpreter ist ein Programm, das den Quellcode einer Programmiersprache Zeile für Zeile ausführt. Im Gegensatz zum Compiler, der den gesamten Code vor der Ausführung übersetzt, übersetzt der Interpreter den Code zur Laufzeit. Der Interpreter analysiert und führt jede Anweisung einzeln aus, wodurch eine direkte Interpretation des Codes ermöglicht wird.
Nennen Sie je ein Beispiel für eine Compiler- und eine Interpretersprache.
Compilersprachen:
* C
* C++
* Pascal
Interpretersprachen:
* Perl
* Python
* BASIC
Velche Vorteile bietet die Verwendung einer Versionsverwaltung in der Softwareentwicklung?
Die Verwendung einer Versionsverwaltung in der Softwareentwicklung…
* 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 zusammengefü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.
Was ist JSON und wo wird es verwendet?
JSON (JavaScript Object Notation) ist ein Datenformat, das zur Speicherung und Übertragung strukturierter Daten verwendet wird. JSON speichert Daten in Form von Attribut-Wert-Paaren. Ein JSON-Dokument besteht aus geschweiften Klammern und enthält eine oder mehrere Eigenschaften. Jede Eigenschaft besteht aus einem Namen und einem Wert, die durch einen Doppelpunkt getrennt sind.
{ "name": "Andreas Müller", "age": 30, "city": "Hamburg" }
JSON wird häufig in Webanwendungen und APIs (Application Programming Interfaces) eingesetzt.
Was sind die Unterschiede zwischen den Datenformaten CSV und XML?
CSV (Comma-Separated Values) und XML (eXstensible Markup Language) sind verschiedene Datenformate, die zur Speicherung und Übertragung von strukturierten Daten verwendet werden.
CSV ist ein textbasiertes Format, bei dem Daten in Tabellenform organisiert sind. Jede Zeile repräsentiert einen Datensatz und die einzelnen Werte innerhalb einer Zeile sind durch Trennzeichen voneinander getrennt. CSV enthält normalerweise keine Strukturinformationen oder Hierarchie.
XML ist eine Markup-Sprache, die eine hierarchische Struktur verwendet. Daten werden in Tags eingebettet und können ineinander verschachtelt werden, um komplexe Hierarchien darzustellen.
Wozu dient die DTD (Dokumenttyp-Definition) bei der Verwendung von XML-Dateien?
Die Dokumenttyp-Definition (DTD) ist eine Möglichkeit, die Struktur und den Inhalt von XML-Dokumenten zu definieren. Sie dient dazu, Regeln und Beschränkungen für die Elemente, Attribute und deren Beziehungen in einem XML-Dokument festzulegen.
Die DTD stellt eine formale Beschreibung bereit, die es ermöglicht, die Gültigkeit und Konformität eines XML-Dokuments zu überprüfen.
Was sind die Unterschiede zwischen einer “well-formed” und einer “valid” XML-Datei?
Eine “well-formed” XML-Datei erfüllt die syntaktischen Regeln des XML-Formats. Sie folgt den XML-Konventionen wie dem korrekten Verschachteln von Elementen, der Verwendung von Tags und Attributen gemäß den XML-Spezifikationen. Eine “well-formed” XML-Datei kann von einem XML-Parser gelesen werden, ohne dass Syntaxfehler auftreten.
Eine “valid” XML-Datei erfüllt nicht nur die syntaktischen Anforderungen, sondern entspricht auch den Regeln und Einschränkungen einer definierten Dokumenttyp-Definition (DTD) oder eines XML-Schemas. Eine “valid” XML-Datei wird auf Konformität mit den in der DTD oder im XML-Schema festgelegten Regeln überprüft.
Beschreiben Sie die Eigenschaften von Struktogrammen in Bezug auf Allgemeingültigkeit, Deklaration von Variablen und Exklusivität.
Allgemeingültigkeit: Struktogramme sollen keine spezifischen Syntaxelemente einer bestimmten Programmiersprache beinhalten. Ihr Design sollte allgemeingültig und universell sein, sodass die dargestellten Logiken leicht verstanden und in jede Programmiersprache übersetzt werden können.
Deklaration von Variablen: Die Deklarationen von Variablen und Konstanten werden im ersten Anweisungsblock vorgenommen.
Exklusivität: Jede Anweisung in einem Struktogramm wird durch einen eigenen Strukturblock repräsentiert. Selbst bei Anweisungen, die ähnlich oder identisch sind, ist es nicht erlaubt, sie in einem einzigen Strukturblock zu kombinieren.
Der UML-Standard unterscheidet zwischen Strukturdiagrammen und Verhaltensdiagrammen.
Nennen Sie jeweils zwei Beispiele aus diesen beiden Kategorien.
Strukturdiagramme:
* Klassendiagramm
* Objektdiagramm
* Paketdiagramm
* Komponentendiagramm
* Profildiagramm
* Verteilungsdiagramm
* Kompositionsstrukturdiagramm
Verhaltensdiagramme:
* Anwendungsfalldiagramm
* Zustandsdiagramm
* Aktivitätsdiagramm
* Sequenzdiagramm
* Kommunikationsdiagramm
* Zeitdiagramm
* Interaktionsübersichtsdiagramm
Eine UML-Anwendungsfalldiagramm visualisiert einen Ablauf in einem System, ist aber keine Ablaufbeschreibung. Erklären Sie diesen Zusammenhang.
Ein Anwendungsfalldiagramm ist 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 oder Aufgaben, die das System ausführen kann. Es stellt die Beziehungen zwischen diesen Akteuren und Anwendungsfällen dar, zeigt aber nicht die genauen Abläufe oder den zeitlichen Verlauf dieser Interaktionen.
Das Anwendungsfalldiagramm dient zur Identifizierung und Darstellung der funktionalen Anforderungen an ein System.
Was stellt ein Sequenzdiagramm in UML dar und in welchen Szenarien wird es typischerweise verwendet?
Ein Sequenzdiagramm in der Unified Modeling Language (UML) zeigt die Interaktionen zwischen Objekten in der Reihenfolge, in der sie auftreten. Ein Sequenzdiagramm besteht aus einer Reihe von vertikalen “Lebenslinien”, die Objekte oder Klassen repräsentieren, und horizontalen “Nachrichten”, die zwischen den Lebenslinien hin und her gehen. Die Nachrichten sind zeitlich von oben nach unten geordnet, sodass man sehen kann, in welcher Reihenfolge die Interaktionen stattfinden.
Sequenzdiagramme helfen dabei, die dynamischen Interaktionen in einem System darzustellen und zu analysieren.
Wofür wird das UML-Aktivitätsdiagramm bei der Modellierung genutzt?
Eine UML-Aktivitätsdiagramm ist ein Verhaltensdiagramm, das die Reihenfolge und Bedingungen für die Ausführung verschiedener Aktivitäten in einem System darstellt. Es wird in der Modellierung verwendet, um Arbeitsabläufe zu visualisieren, das Verhalten von Systemteilen zu modellieren, Anforderungen zu analysieren und zu designen sowie um parallele Abläufe darzustellen. Es besteht aus Elementen wie Start- und Endknoten, Aktionsknoten, Entscheidungsknoten und Synchronisationsstangen.
Erklären Sie die Verwendung des UML-Zustandsdiagramms zur Modellierung von Verhalten in einem System.
In einem UML-Zustandsdiagramm wird der Lebenszyklus eines Objekts durch die Darstellung seiner verschiedenen Zustände und Übergänge dargestellt. Es ist besonders nützlich bei der Modellierung von Objekten, die komplexes Verhalten aufweisen und viele verschiedene Zustände haben können.
UML-Zustandsdiagramme geben den aktuellen Zustand eines Objekts, die Aktionen, die beim Eintritt, während des Verweilens und beim Verlassen des Zustands durchgeführt werden, sowie die Bedingungen für den Übergang zu anderen Zuständen wieder. Hierdurch ermöglichen sie die Darstellung und das Verständnigs komplexer verhaltensbasierter Systeme.
Welche Informationen kann man aus dem Klassendiagramm ableiten?
Das Klassendiagramm zeigt Klassen, ihre Attribute und Methoden sowie Beziehungen zwischen den Klassen.
Aus einem Klassendiagramm kann man folgende Informationen ableiten:
* Klassen und Objekte: Welche Klassen gibt es und welche Objekte repräsentieren sie?
* Attribute und Operationen: Welche Eigenschaften und Verhaltensweisen haben die Klassen?
* Beziehungen. Wie sind die Klassen miteinander verknüpft (z.B. durch Assoziationen oder Vererbungen)?
* Sichtbarkeit: Welche Attribute und Operationen sind öffentlich, privat oder geschützt?
* Kardinaltiät: Wie viele Instanzen einer Klasse können mit einer anderen in Beziehung stehen?
In UML-Klassendiagrammen wird zwischen den Beziehungstypen Aggregation und Komposition unterschieden. Erläutern Sie den Unterschied zwischen diesen beiden Beziehungstypen.
Bei der Aggregation handelt es sich um eine lose Beziehung zwischen zwei Klassen, bei der eine Klasse (das Ganze) eine Sammlung oder eine Gruppe von Objekten einer anderen Klasse (die Teile) enthält. Die Beziehung zwischen dem Ganzen und den Teilen ist in der Regel optional, das heißt, das Ganze kann ohne die Teile existieren.
Bei der Komposition handelt es sich um eine starke Beziehung zwischen zwei Klassen, bei der eine Klasse (das Ganze) aus einer anderen Klasse (dem Teil) besteht. Die Teile können nur als Teil des Ganzen existieren und haben keine eigenständige Existenz. Wenn das Ganze zerstört wird, werden auch die Teile zerstört.
Erklären Sie das Prinzip der Vererbung in der objektorientierten Programmierung.
In der objektorientierten Programmierung ist Vererbung ein Schlüsselprinzip, das es ermöglicht, neue Klassen aus bereits existierenden Klassen zu erzeugen. Die neu erstellte Klasse wird als “Unterklasse” oder “abgeleitete Klasse” bezeichnet, während die existierende Klasse, von der sie erbt, als “Oberklasse” oder “Basisklasse” bezeichnet wird.
Die Vererbung ist nützlich für die Wiederverwendung von Code und die Reduzierung von Redundanz. Sie ermöglicht es, dass Eigenschaften (Attribute) und Verhaltensweisen (Methoden), die in der Oberklasse definiert sind, an die Unterklasse weitergegeben werden.
In welchem Zusammenhang steht das Konzept der Datenkapselung in der objektorientierten Programmierung mit den Prinzipien der Datenintgrität und der Code-Wartbarkeit?
Datenkapselung ist ein zentraler Grundsatz der objektorientierten Programmierung. Sie verbirgt die Daten (Variablen) und die Methoden einer Klasse und schützt Daten vor dem direkten Zugriff von außen. Nur die öffentlichen Methoden der Klasse können auf die internen Daten zugreifen.
Dies schafft ein hohes Maß an Datenintegrität, da die Daten nur auf shichere und kontrollierte Weise manipuliert werden können. Darüber hinaus verbessert es die Wartbarkeit und Verständlichkeit des Codes, da Änderungen an der internen Implementierung der Klasse nicht die Teile des Programms beeinflussen, die die Klasse verwenden.
Was ist der Untershied zwischen Prozeduren und Funktionen in der Programmierung?
Eine Funktion ist Codeblock, der eine spezifische Aufgabe ausführt und in der Regel einen Wert zurückgibt.
Eine Prozedur ist auch ein Codeblock, der eine spezifische Aufgabe ausführt. Der Hauptuntertschied besteht darin, dasss eine Prozedur normalerweise keinen Wert zurückgibt. Eine Prozedur führt eine Aufgabe aus und kehrt dann zur aufrufenden Stelle im Code zurück.
Wie unterscheiden sich prozedurale und objektorientierte Programmierung voneinander?
Die prozedurale Programmierung ist auf den Gedanken aufgebaut, dass ein Programm eine Reihe von Aufgaben (Prozeduren) ausführt, die auf Daten operieren. Ein prozedurales Programm besteht i.d.R. aus einer Reihe von Prozeduren, die aufgerufen werden, um eine bestimmte Aufgabe zu erfüllen. Die Daten sind getrennt von den Prozeduren, und die Prozeduren bearbeiten diese Daten.
In der objektorientierten Programmierung (OOP) werden Daten und Funktionen zu Objekten zusammengefasst. Ein Objekt kann Attribute (Daten) und Methoden (Funktionen) enthalten. OOP fokussiert auf die drei Hauptprinzipien Vererbung, Kapselung und Polymorphie.
Was ist eine Klasse in der objektorientierten Programmierung?
Eine Klasse in der objektorientierten Programmierung ist ein Bauplan für die Erstellung von Objekten. Sie definiert Eigenschaften (Variablen, die den Zustand repräsentieren) und Methoden (Funktionen, die das Verhalten repräsentieren) eines Objekts.
Eine Klasse ermöglicht die Erstellung mehrerer Objekte mit ähnlichen Merkmalen und Verhaltensweisen. Sie bildet die Grundlage für Vererbung und Polymorphie.
Was ist eine generische Klasse?
Eine generische Klasse ist ein Konzept in der objektorientierten Programmierung, das es erlaubt, eine Klasse zu definieren, die auf Typen arbeiten kann, die beim Erstellen einer Instanz der Klasse spezifiziert werden.
Der Hauptvorteil von generischen Klassen besteht darin, dass sie Code-Wiederverwendung und Typsicherheit ermöglichen. Sie können eine einzige generische Klasse definieren, die auf mehrere Datentypen angewendet werden kann, anstatt separate Klassen für jeden Datentyp erstellen zu müssen.
Wie werden abastrakte Klassen in der Anwendungsentwicklung verwendet und welche Vorteile bieten sie?
Abstrakte Klassen sind Klassen, die nicht instantziiert werden können und in der Regel eine oder mehrere abstrakte Methoden enthalten. Diese Methoden werden in den abheleiteten Klassen implementiert. Abstrakte Klassen können jedoch auch konkrete Methoden (Methoden mit einer Implementierung) enthalten.
Die Hauptanwendungen und Vorteile abstrakter Klassen sind:
* Bereitstellung einer gemeinsamen Schnittstelle
* Code-Wiederverwendung
* Erzwingung bestimmter Methoden
* Polymorphismus kann realisiert werden
Was ist ein Objekt in der objektorientierten Programmierung?
Ein Objekt in der objektorientierten Programmierung ist eine konkrete Instanz einer Klasse. Es besitzt die Attribute und Methoden, die in seiner Klasse definiert sind. Jedes Objekt hat seinen eigenen Satz von Werten für die Attribute repräsentieren den Zustand des Objekts, während die Methoden das Verhalten definieren, das auf diesem Zustand operiert.
Ein Objekt ist also eine Verkapselung von Daten (Zustand) und den dazu gehörenden Operationen (Verhalten).
Was versteht man unter dem Konzept der Polymorphie in der objektorientierten Programmierung?
Polymorphie ermöglicht es Objekten, sich abhängig von ihrem Datentyp oder ihrer Klasse unterschiedlich zu verhalten.
In der OOP können Klassen Methoden teilen, aber die Implementierungen dieser Methoden können je nach Klasse variieren. Dieses Konzept wird als Polymorphie bezeichnet. Die spezifische Implementierung, die ausgeführt wird, wird zur Laufzeit bestimmt, basierend auf dem tatsächlichen Objekttyp, der aufgerufen wird.
Sie verbessert die Flexibilität und Wiederverwendbarkeit von Code und erleichtert die Implementierung von Komponenten mit standardisierten Schnittstellen.
Wie beeinflussen die verschiedenen Sichbarkeitsstufen (public, protected, private, package) den Zugriff auf Klassen, Methoden und Variablen in der objektorientierten Programmierung?
Zugriffmodifikatoren in der objektorientierten Programmierung bestimmen, wo auf Klassen, Methoden und Variablen zugegriffen werden kann:
+ public: Der Zugriff ist überall erlaubt, sowohl innerhalb als auch außerhalb der Klasse.
# protected: Der Zugriff ist nur innerhalb der Klasse, des Pakets und von abggeleiteten Klassen.
~ package: Der Zugriff ist innerhalb der Klasse und in allen Klassen desselben Pakets erlaubt.
- private: Der Zugriff ist nur innerhalb der Klasse erlaubt, in der sie definiert ist.
Diese Modifikatoren sind wichtig, um die Datenintegrität zu schützen und unerwarteten Zugriff zu verhindern.
Erklären Sie den Unterschied zwischen der Deklaration und der Initialisierung von Variablen.
In der Programmierung sind Deklaration und Initialisierung zwei grundlegende Schritte bei der Verwendung von Variablen:
Deklaration: Hierbei wird eine Variable durch Angabe ihres Typs und Names definiert. Der Compiler reserviert dadurch Speicherplatz für die Variable. Zu diesem Zeitpunkt wird der Variable jedoch noch kein spezifischer Wert zugewiesen.
Initialisierung: Bei der Initialisierung wird einer zuvor deklarierten Variablen ein erster Wert zugewiesen.
Was ist die Rolle eines Konstruktors in der objektorientierten Programmierung?
Ein Konstruktor ist eine spezielle Methode in der objektorientierten Programmierung, die zum Erzeugen und Initialisieren von Objekten einer Klasse verwendet wird. Ein Konstruktor wird automatisch aufgerufen, wenn ein neues Objekt einer Klasse erzeugt wird.
Die Hauptaufgaben eines Konstruktors sind:
* Speicher für das Objekt zu reservieren.
* Die Instanzvariablen des Objekts zu initialisieren.
* Eine Referenz auf das neu erstellte Objekt zurückzugeben.
Ein Konstruktor hat den gleichen Namen wie die Klasse, in der er definiert ist, und er hat keinen Rückgabewert.
Was versteht man unter einer Klassenbibliothek in der Softwareentwicklung und welchen Vorteil bietet sie bei der Entwicklung von Anwendungen?
Eine Klassenbibliothek in der Softwareentwicklung ist eine Sammlung von Klassen und Funktionen, die wiederverwendet werden können, um bestimmte Aufgaben zu erleichtern oder um komplexe Funktionalitäten bereitzustellen, ohne dass diese neu geschrieben werden müssen.
Klassenbibliotheken werden oft als Framework oder APIs (Application Programming Interfaces) bereitgestellt und können Standardoperationen für Aufgaben wie Netzwerkkommunikation, Datenzugriff, grafische Benutzeroberflächen und vieles mehr bereitstellen.
Was sind die Unterschiede zwischen der rekursiven und iterativen Vorgehensweise in der Softwareentwicklung?
In einer iterativen Vorgehensweise wird eine Aufgabe wiederholt, indem Schleifenstrukturen wie for, while oder do-while in der Programmiersprache verwendet werden. Iterative Ansätze sind in der Regel einfacher zu verstehen und erfordern weniger Speicher.
In einer rekursiven Vorgehensweise ruft eine Funktion sich selbst auf, um ein Problem zu lösen, das in kleinere Teilprobleme unterteilt werden kann. Rekursion kann eleganter und intuitiver für Probleme sein, die natürlich in kleinere Teilprobleme zerlegt werden können. Allerdings kann Rekursion auch zu erhöhtem Speicherverbrauch führen.
Erklären Sie das Konzept der Modularisierung in der Softwareentwicklung?
Modularisierung ist ein Konzept in der Softwareentwicklung, das darin besteht, einen umfangreichen Code in kleinere, unabhängige und verwaltbare Einheiten oder Module zu zerlegen. Jedes Modul fokussiert sich auf eine spezifische Funktion oder einen bestimmten Aspekt des Gesamtprojekts.
Die Idee hinter der Modularisierung ist es, die Komplexität des Codes zu reduzieren und ihn einfacher zu verwalten, zu warten, zu testen und zu verstehen. Durch die Trannung des Codes in verschiedene Module kann jedes Modul unabhängig voneinander entwickelt, getestet und überarbeitet werden, was die Effizienz und Produktivität des Entwicklungsprozesses erhöht.
Wie können automatischen Kompilierung und Bereitstellung (Continouos Integration und Continuous Deployment, kurz CI/CD) implementiert werden?
Die folgenden Schritte sollten zur automatischen Kompilierung und Bereitstellung im Allgemeinen befolgt werden:
1. Source Control Management (SCM): Alle Entwicklungsarbeit sollte in einem Versionskontrollsystem gespeichert werden.
2. Automatische Kompilierung: Wenn Änderungen im Versionskontrollsystem vorgenommen werden, wird ein automatisierter Build-Prozess ausgelöst.
3. Automatisierte Tests: Nach der Kompilierung sollte der Code automatisiert getestet werden.
4. Automatisierte Bereitstellung: Nach erfolgreichem Build und Test wird der Code automatisch bereitgestellt.
5. Monitoring und Feedback: Nach der Bereitstellung sollte der Zustand überwacht und bei Problemen Feedback gegeben werden.
Welche Vorteile bietet die Verwendung einer 3-Schritten-Architektur bei der Entwicklung?
Die Verwendung einer 3-Schritten-Architektur bei der Entwicklung von Anwendungen bietet mehrere Vorteile.
* Sie ermöglicht eine klare Trennung zwischen der Präsentationsschicht, der Anwendungslogik und der Datenzugriffsschicht. Dadurch wird der Code besser strukturiert und Wartungsaufgaben werden vereinfacht.
* Die Schichtung ermöglicht eine bessere Skalierbarkeit, da jede Schicht unabhängig von den anderen skaliert werden kann.
* Die Schichtung erleichtert die Wiederverwendbarkeit von Komponenten, da jede Schicht unabhängig von den anderen entwickelt und leichter in anderen Projekten wiederverwendet werden kann.
Wie arbeitet der Bubble-Sort-Algorithmus, um eine Liste von Elementen in aufsteigender Reihenfolge zu sortieren?
Der Bubble-Sort-Algorithmus sortiert eine Liste, indem er benachbarte Elemente vergleicht und sie tauscht, wenn sie in der falschen Reihenfolge sind. Dieses wird wiederholt, bis die gesamte Liste sortiert ist.
- Vergleiche die ersten beiden Elemente in der Liste. Wenn das erste Element größer als das zweite ist, tausche sie.
- Gehe zur nächsten Position in der Liste und wiederhole den Vergleich und den Austausch mit dem nächsten Paar.
- Wiederhole diesen Prozess bis zu Ende der Liste.
- Wiederhole die Schritte 1 bis 3 für die restlichen Elemente (außer dem zuletzt sortierten), bis die gesamte Liste sortiert ist.
Beschreibe den Ablauf des Suchalgorithmus “Lineare Suche”.
Die lineare Suche ist eine Methode zum Finden eines bestimmten Wertes in einer Liste. Sie durchläuft sequenziell jedes Element in der Liste und prüft, ob es dem gesuchten Wert entspricht.
1. Überprüfe das erste Element der Liste.
2. Entspricht das Element dem gesuchten Wert, beende die Suche.
3. Wenn das Element nicht dem gesuchten Wert entspricht, gehe zum nächsten Element in der Liste.
4. Wiederhole Schritt 2 und 3, bis du entweder den gesuchten Wert gefunden hast oder bis das Ende der Liste erreicht ist.
5. Wenn das Ende der Liste erreicht ist und der gesuchte Wert nicht gefunden wurde, gib an, dass der gesuchte Wert nicht in der Liste ist.
Wie funktioniert die binäre Suche?
Die binäre Suche ist ein effizienter Suchalgorithmus, der auf sortierten Listen oder Arrays arbeitet. Er vergleicht den gesuchten Wert mit dem mittleren Element der Liste und teilt dann die Liste entsprechend in zwei Hälften. Dieser Prozess wird rekursiv fortgesetzt, bis der gesuchte Wert gefunden ist oder bis alle Elemente durchsucht wurden.
Die binäre Suche ist sehr effizient und benötigt im schlimmsten Fall log2(n) Vergleiche, wobei n die Anzahl der Elemente in der Liste ist. Nachteilig ist, dass die binäre Suche voraussetzt, dass die Liste vor der Suche sortiert wird.
Beschreiben Sie die einzelnen Schritte, welche notwendig sind, um eine binäre Suche durchzuführen.
Die grundlegenden Schritte des binären Suchalgorithmus:
1. Finden Sie das mittlere Element der Liste.
2. Vergleichen Sie es mit dem Gesuchten Wert.
3. Wenn sie gleich sind, ist die Suche abgeschlossen.
4. Wenn der gesuchte Wert kleiner ist, suchen Sie in der linken Hälfte der Liste weiter.
5. Wenn der gesuchte Wert größer ist, suchen Sie in der rechten Hälfte der Liste weiter.
6. Wiederholen Sie die Schritte 1-5, bis der Wert gefunden wird oder die Liste vollständig durchsucht wurde.
Was ist das Observer Muster?
Das Observer Muster ist ein Entwurfmuster aus dem Bereich der Softwareentwicklung, das der Kategorie der Verhaltensmuster (Behavioral Patterns) zugeordnet wird. Es ermöglicht eine Einwegabhängigkeit zwischen Objekten, sodass wenn ein Objekt seinen Zustand ändert, alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden.
Dieses Muster ist besonders nützlich in Situationen, in denen der Zustand eines Objekts von vielen anderen Objekten abhängig ist und eine enge Kopplung zwischen diesen Objekten vermieden werden soll.
Wie funktioniert das Observer Muster?
Das Observer Muster funktioniert durch eine Einweg-Kommunikation von einem Subjekt zu mehreren anderen Objekten (Observer):
1. Registrierung: Die Observer melden sich beim Subjekt für Updates an. Das Subjekt hält eine Liste aller seiner Observer.
2. Änderung: Wenn das Subjekt seinen Zustand ändert, informiert es alle registrierten Observer über die Änderung.
3. Benachrichtigung: Das Subjekt benachrichtigt die Observer über die Zustandsänderung, indem es eine Methode (häufig “update” gennant) auf den Observern aufruft.
4. Abmeldung: Observer können sich jederzeit vom Subjekt abmelden, wenn sie keine weiteren Benachrichtigungen erhalten möchten.
Welche Komponenten umfasst das MVC-Muster und wie interagieren sie miteinander?
Das MVC-Muster ist ein Entwurfmuster, das oft verwendet wird, um die Struktur von Softwareanwendungen zu organisieren. Es besteht aus den folgenden drei Komponenten:
* Model: Verantwortlich für Daten und Geschäftslogik
* View: Präsentiert Daten an den Benutzer
* Controller: Verarbeitet Benutzereingaben und aktualisiert das Model
Die Interaktion dieser Komponenten funktioniert wie folgt:
1. Der Benutzer agiert mit der View.
2. Der Controller erhält Benutzereingabern von der View, führt Aktionen im Model aus.
3. Das Model benachrichtigt die View über Änderungen.
4. Die View aktualisiert die Benutzeroberfläche.
Zur Aktualisierung des View soll Datenbindung (Data Binding) eingesetzt werden. Erläutern Sie den Begriff Datenbindung (Data Binding).
Datenbindung (Data Binding) ist ein Prozess, der eine Verbindung zwischen Daten (Model) und Benutzeroberfläche (View) herstellt. Es ermöglicht, dass Änderungen an den Daten automatisch in der Benutzeroberfläche reflektiert werden und umgekehrt. Es gibt zwei Arten von Datenbindung:
* Einweg-Datenbindung (One-Way Data Binding): Daten fließen vom Model zum View.
* Zweiweg-Datenbindung (Two-Way Data Binding): Daten fließen in beide Richtungen, sodass Änderungen im View auch das Model aktualisieren.
Erklären Sie die Aufgave des Singleton Pattern.
Das Singleton-Entwurfmuster ist ein Software-Entwurfmuster, das die Instanziierung einer Klasse auf genau ein Objekt beschränkt. Es wird verwendet, um sicherzustellen, dass eine Klasse nur eine einzige Instanz hat, und stellt einen globalen Zugangspunkt zu diesem Objekt bereit.
Das Hauptziel des Singleton-Musters ist es, einen kontrollierten Mechanismus zur Verfügung zu stellen, um auf begrenzte Ressourcen zuzugreifen. Dieses Muster ist nützlich, wenn genau eine Instanz eines Objekts benötigt wird, um Aktionen zu koordinieren.
Was ist SOAP (Simple Object Access Protocol) und wie wird es in der Webentwicklung eingesetzt?
SOAP (Simple Object Access Protocol) ist ein Protokoll für den Austausch strukturierter Informationen in der Implementierung von Webdiensten über das Internet. Es ist XML-basiert und kann mit jedem Programmiersprachencode verwendet werden, der XML generieren und analysieren kann. SOAP ist unabhängig vom Transportprotokoll, daher können Nachrichten über das gängigste HTTP-Protokoll, aber auch über SMTP, FTP und mehr übertragen werden.
In der Webentwicklung wird es hauptsächlich für Webservice-Kommunikation und -Interoperabilität verwendet.
Was ist eine REST-API (Representational State Transfer)?
Eine REST-API (Representational State Transfer) ist ein Set von Regeln und Konventionen für den Aufbau von Webdiensten. Sie nutzt Standard-HTTP-Methoden (wie GET, POST, PUT und DELETE) zur Interaktion mit Ressourcen, die durch eindeutige URLs identifiziert werden.
Sie ist 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.
Was sind die wichtigsten Architekturrichtlinien für die Gestaltung einer REST-API?
Die Architektur einer REST-API beruht auf folgenden grundlegenden Prinzipien:
* Client-Server: REST trennt Client und Server für unabhängige Entwicklung.
* Zustandlos: Jede Anfrage enthält alle nötigen Informationen.
* Caching: Serverantworten können gecacht werden, um die Leistung zu verbessern.
* Einheitliche Schnittstelle: REST nutzt Standardmethoden (z.B. HTTP) für die Kommunikation.
* Mehrschichtsystem: REST besteht aus mehreren Ebenen, um Flexibilität zu gewährleisten.
* Code-on-Demand: Optional kann der Server Code an den Client senden.
Was versteht man unter dem Begriff “Industrie 4.0”?
Industrie 4.0 bezieht sich auf die vierte industrielle Revolution, die durch die Integration von digitalen Technologien in die Produktion und den Betrieb von Unternehmen gekennzeichnet ist. Es umfasst Konzepte wie das Internet der Dinge (IoT), künstliche Intelligenz, maschinelles Lernen, Big Data-Analyse und automatisierte Prozesse.
Industrie 4.0 zielt darauf ab, intelligente Fabriken und vernetzte Systeme zu schaffen, in denen Maschinen, Geräte und Menschen miteinander kommunizieren und kooperieren können. Hierdurch bietet sich Unternehmen die Möglichkeit, ihre Produktivität, Flexibilität und Wettbewerbsfähigkeit zu steigern.
Was ist Künstliche Intelligenz (KI)?
Künstliche Intelligenz (KI) bezieht sich auf die Entwicklung von Computern oder Systemen, die in der Lage sind, menschenähnliche Denk- und Entscheidungsprozesse nachzuahmen.
KI ermöglicht es Maschninen, Informationen zu verstehen, zu lernen, Probleme zu lösen und intelligentes Verhalten zu zeigen.
Was ist das Internet der Dinge (IoT) und welche Probleme sind damit verbunden?
Das Internet der Dinge(IoT) bezieht sich auf die Vernetzung physischer Geräte, Sensoren und Objekte über das Internet. Hierdurch können diese Objekte miteinander kommunizieren, Daten sammeln und austauschen, sowie intelligente Aktionen ausführen.
Mit dem IoT sind auch neue Probleme verbunden:
* Da das IoT eine Vielzahl von vernetzten Geräten umfasst, entstehen neue Sicherheitsrisiken.
* Datenschutz: Das IoT generiert eine enorme Menge an Daten über nutzende Personen, ihre Gewohnheiten und ihr Verhalten.
* Interoperabilität: Unterschiedliche Standards, Protokolle und Kommunikationswege erschweren die Zusammenarbeit der verschiedenen IoT-Komponenten.
Welche neuen Herausforderungen entstehen durch Big Data in der Speicherung und Verarbeitung von Daten?
Herausforderungen, die durch Big Data entstehen:
* Datenmengen: Die Speicherung und Verarbeitung großer Datenmengen erfordern leistungsfähige und skalierbare Infrastrukturen, die in der Lage sind, diese Datenmengen effizient zu verarbeiten.
* Datenintegration: Die Integration von heterogenen Datenquellen kann eine Herausforderung sein, da sie unterschiedliche Formate und Strukturen aufweisen können.
* Datenqualität: Große Datensätze können unvollständige, ungenaue oder inkonsistente Daten enthalten.
* Datenverarbeitungsgeschwindigkeit: Big Data-Anwendungen erfordern oft Echtzeitverarbeitung.
* Datenschutz und Sicherheit: Große Datensätze enthalten oft sensible und persönliche Informationen.
Was ist eine Blockchain und wie funktioniert sie?
Eine Blockchain ist eine dezentrale digitale Datenbank, die Informationen in Form von Blöcken speichert und diese chronologisch zu einer Kette verbindet. Jeder Block enthält eine Liste von Transaktionen und einen eindeutigen Hash.
Die Funktionsweise einer Blockchain beruht auf Konsensalgorithmen und kryptografischen Techniken. Wenn eine Transaktion stattfindet, wird sie von Teilnehmern des Netzwerks überprüft und dann in einen Block zusammengefasst. Dieser Block wird dann mithilfe des vorherigen Blocks und seines Hash-Werts verknüpft. Dadurch entsteht eine Kette von Blöcken, die eine unveränderliche Aufzeichnung aller Transkationen bildet.
Was sind Smart Contracts und wie funktionieren sie?
Smart Contracts sind computerbasierte Verträge, die automatisch ausgeführt werden, sobald die in ihnen festgelegten Bedingungen erfüllt sind. Sie werden auf Blockchain-Plattformen erstellt und sind programmierbare Verträge, die Transaktionen und Aktionen verwalten können. Sie nutzen die Blockchain-Technologie, um Transparenz, Sicherheit und Vertrauenswürdigkeit zu gewährleisten, da sie dezentralisiert und unveränderlich sind.
Smart Contracts ermöglichen es Parteinen, Vereinbarungen ohne einen Zwischenhändler umzusetzen und bieten eine effiziente, zuverlässige und automatisierte Methode zur Abwicklung von Verträgen.
Nennen Sie drei Dienstleistungsmodelle im Cloud-Computing.
Dienstleistungsmodelle von Cloud-Computing:
* “Software-as-a-Service” (SaaS): Servicemodell, bei dem Anwendungen über das Internet bereitgestellt werden.
* “Infrastructure-as-a-Service” (IaaS): Servicemodell, bei dem virtuelle Ressourcen, wie z.B. Server und Speicher über das Internet bereitgestellt werden.
* “Platform-as-a-Service” (PaaS): Servicemodell, das eine Entwicklungsplattform über das Internet bereitstellt.
* “Desktop-as-a-Service” (DaaS): ist ein Servicemodell, bei dem ein virtueller Desktop über das Internet bereitgestellt wird.
* “Everything-as-a-Service” (XaaS): ist ein erweitertes Konzept, bei dem alle IT-Dienstleistungen über das Internet bereitgestellt werden.
Was sind die Unterschiede zwischen Cloud-, Fog- und Edge-Computing?
Cloud-, Fog- und Edge-Computing unterscheiden sich in Bezug auf ihre Position in der Datenverarbeitungshierarchie und ihre jeweiligen Standorte:
* Cloud-Computing bezieht sich auf die Bereitstellung von IT-Ressourcen über das Internet. Datenverarbeitung und -speicherung erfolgen in großen Rechenzentren, die von Cloud-Anbietern betrieben werden.
* Fog-Computing ist eine dezentrale Ergänzung zur Cloud und liegt zwischen der Cloud und den Edge-Geräten. Es erfolgt eine dezentrale Verarbeitung der Daten am Rande des Netzwerks.
* Edge-Computing bezieht sich auf die Datenverarrbeitung und -speicherung in unmittelbarer Nähe zur Datenquelle.
Welche unterschiedlichen Bereitstellungsarten von Cloud-Diensten können unterschieden werden?
Die Public Cloud bezieht sich auf eine Cloud-Umgebung, die von einem Cloud-Dienstleister betrieben wird und für die breite Öffentlichkeit zugänglich ist.
Die Private Cloud bezieht sich auf eine Cloud-Umgebung, die speziell für ein einzelnes Unternehmen oder eine Organisation bereitgestellt wird. Im Gegensatz zur Public Cloud wird die Private Cloud hinter einer Firewall betrieben und kann nur von internen Mitarbeitenden genutzt werden.
Die Hybrid Cloud ist eine Kombination aus Public Cloud und Private Cloud. Unternehmen nutzen sowohl die Ressourcen und Dienste der Public Cloud als auch ihre eigenen Private Cloud-Ressourcen.
Was versteht man unter elektrischer Stromstärke und elektrischer Spannung?
Elektrische Stromstärke ist die Menge an elektrischer Ladung, die pro Zeiteinheit durch eine Leiter fließt. Er wird in der Einheit Ampere (A) gemessen.
Elektrische Spannung ist die elektrische Potenzialdifferenz zwischen zwei Punkten in einem elektrischen System. Sie wird in der Einheit Volt (V) gemessen. Spannung erzeugt ein elektrisches Feld zwischen den beiden Punkten und treibt den elektrischen Strom an.
Was ist elektrische Leistung und wie wird sie berechnet?
Elektrische Leistung ist die Rate, mit der elektrische Energie in einem elektrischen System umgesetzt oder übertragen wird. Sie gibt an, wie schnell Arbeit in Form von elektrischer Energie verrichtet wird.
Die elektrische Leistung (P) wird in der Einheit Watt (W) gemessen und kann mit Hilfe der folgenden Formel berechnet werden:
P = U * I
P = elektrische Leistung in Watt
U = elektrische Spannung in Volt
I = elektrische Stromstärke in Ampere
Was ist elektrische Arbeit und wie wird sie berechnet?
Elektrische Arbeit bezieht sich auf die Energiemenge, die bei der Übertragung oder Umwandlung elektrischer Energie verrichtet wird. Sie wird gemessen in der Einheit Joule (J).
Die elektrische Arbeit (W) kann mit der folgenden Formel berechnet werden:
W = P * t
W = elektrische Arbeit in Joule (J) oder Wattsekunde (Ws)
P = elektrische Leistung in Watt (W)
t = Zeit
Erklären Sie den Unterschied zwischen verlustfreier und verlustbehafteter Datenkompression.
Bei der verlustfreien Kompression werden Daten so komprimiert, dass alle ursprünglichen Informationen erhalten bleiben und bei der Dekompression vollständig wiederhergestellt werden können. Das bedeutet, dass die dekomprimierten Daten exakt den ursprünglichen Daten entsprechen.
Bei der verlustbehafteten Kompression werden Daten so komprimiert, dass einige Informationen verloren gehen. Diese Methode erzielt in der Regel eine viel höhere Kompressionsrate als die verlustfreie Kompression, aber die Originaldaten können nicht vollständig wiederhergestellt werden.
Beschreiben Sie den Unterschied zwischen einr Paketfilter-Firewall und einer Applikationsfilter-Firewall.
Eine Paketfilter-Firewall analysiert den Netzwerkverkehr auf der Ebene der Netzwerkpakete. Sie überprüft die Header-Informationen der Pakete, wie Quell- und Ziel-IP-Adressen, Portnummern und Protokolltypen, und entscheidet basierend auf vordefinierten Regeln, ob das Paket zugelassen oder blockiert wird.
Eine Applikationsfilter-Firewall arbeitet auf der Anmwendungsschicht. Sie kann den Inhalt des Datenverkehrs analysieren und spezifische Anwendungsprotokolle verstehen. Dies ermöglicht es der Firewall, spezifische Angriffsmuster oder verdächtige Aktivitäten in den Anwendungsdaten zu erkennen und zu blockieren.
Was ist eine Next-Generation Firewall (NGFW)?
Eine Next-Generation Firewall (NGFW) ist eine fortschrittliche Firewall, die über die Funktionen herkömmlicher Firewalls hinausgeht. Sie kombiniert Funktionen wie Intrusion Detection/Prevention System (IDS/IPS), Content-Filtering, Anwendungssteuerung und mehr.
Durch die Kombination dieser Funktionen ermöglicht eine Next-Generation Firewall eine effektive Sicherheitskontrolle und Bedrohungserkennung.
Was ist ein Penetrationstest und wie wird er durchgeführt?
Ein Penetrationstest ist ein proaktiver Sicherheitstest, der durchgeführt wird, um die Scwachstellen und Sicherheitslücken eines Systems, Netzwerks oder einer Anwendung zu identifizieren. Das Hauptziel eines Penetrationstests besteht darin, die Sicherheit zu verbessern, indem potenzielle Angriffsszenarien simuliert und ausgewertet werden.
Ein Penetrationstest wird in mehreren Phasen durchgeführt:
* Informationsbeschaffung
* Aufdeckung von Schwachstellen
* Ausnutzung von Schwachstellen
* Ergebnisanalyse
* Berichterstattung
Welche Aspekte werden bei einem Device Security Check überprüft?
Ein Device Security Check ist eine Überprüfung der Sicherheitsmaßnahmen und -einstellungen eines Geräts, um potenzielle Schwachstellen zu identifizieren und die Sicherheit des Geräts zu verbessern. Dabei werden in der Regel folgende Aspekte überprüft:
* Betriebssystem und Firmware
* Benutzerkonten und Zugriffsrechte
* Netzwerkkonfiguration
* Anwendungen und Dienste
* Physische Sicherheit
* Verschlüsselung
Nach Abschluss des Device Security Checks werden Ergebnisse und Empfehlungen für die Verbesserung der Gerätsicherheit dokumentiert.
Wofür steht die Abkürzung RADIUS in der Netzwerktechnik?
RADIUS (Remote Authentication Dial-In User Service) ist ein Protokoll zur Authentifizierung, Autorisierung und Abrechnung von Netzwerkzugriffen. Es wird häufig in drahtlosen Netzwerken wie WLANs eingesetzt, um Benutzer zu verifizieren und den Zugriff auf das Netzwerk zu kontrollieren.
In Zusammenhang mit RADIUS wird auch oft von RADIUS (AAA) gesprochen. Wofür steht die drei A in der Abkürzung?
Erläutern Sie diese drei Komponenten.
Authentifizierung: RADIUS verifiziert die Identität von Benutzern, bevor sie Zugang zum Netzwerk erhalten. Dies wird oft durch Überprüfung eines Benutzernamens und Passworts erreicht.
Autorisierung: Nachdem ein Benutzer authentifiziert wurde, steuert RADIUS, welchen Zugang der Benutzer zum Netzwerk hat. Dies kann beeinflussen, welche Dienste der Benutzer nutzen darf, und andere Zugriffsbeschränkungen beinhalten.
Accounting: RADIUS protokolliert die Aktivitäten der Benutzer im Netzwerk. Dies kann beinhalten, wann der Benutzer auf das Netzwerk zugegriffen hat, wie lange sie verbunden waren, die Menge der übertragenen Daten und andere Informationen.
Was ist ein Pre-Shared Key (PSK) und wo wird er verwendet?
Ein Pre-Shared Key (PSK) ist ein vorab vereinbarter Schlüssel, der in der Netzwerksicherheit verwendet wird, um die Authentifizierung und den sicheren Zugriff auf ein Netzwerk zu gewährleisten. Der PSK wird zwischen den Teilnehmern des Netzwerks im Voraus vereinbart und dient als gemeinsames Passwort.
Der PSK wird z.B. in drahtlosen Netzwerken (WLANs) und Virtual Private Networks (VPNs) eingesetzt. In WLANs wird der PSK als Passwort verwendet, um den Zugriff auf das drahtlose Netzwerk zu kontrollieren. In VPNs wird der PSK verwendet, um die Kommunikation zwischen einem Client und einem VPN-Server zu verschlüsseln und zu authentifizieren.
Beschreiben Sie den Aufbau einer IPv4- und einer IPv6-Adresse.
Eine IPv4-Adresse besteht aus 32 Bits und wird in vier durch Punkte getrennt Oktetten dargestellt. Jedes Oktett repräsentiert einen Teil der Adresse und kann Werte von 0 bis 25 haben. IPv4-Adressen bestehen aus einem Netz- und einem Hostanteil.
Eine IPv6-Adresse besteht aus 128 Bits und wird in acht durch Doppelpunkte getrennten Hexadezimalblöcken dargestellt. Jeder Block besteht aus vier Hexadezimalzahlen und kann Werte von 0 bis F haben. Bei IPv6 werden die Adressen in drei Hauptkomponenten unterteilt: Standortpräfix, Teilnetz-ID und Interface-ID.
Welche IP-Adresse repräsentiert die Adresse “127.0.0.1” und was ist ihre Bedeutung?
Die IP-Adresse 127.0.0.1 ist eine besondere IP-Adresse, die als “localhost” bezeichnet wird. Diese IP-Adresse ist ein Standard-Adressraum für Loopback oder lokale Host-Kommunikation in einem Computer.
In einem Netzwerkkontext bedeutet “Loopback”, dass der Computer eine Netzwerkverbindung zu sich selbst herstellt. Diese Adresse wird normalerweise zum Testen von Netzwerkkommunikation verwendet, ohne tatsächlich Netzwerkpakete über das physische Netzwerk zu senden. Es ist eine Möglichkeit, den Netzwerk-Stack eines Systems zu prüfen und sicherzustellen, dass er korrekt funktioniert.
Erklären Sie die Funktion des Standortpräfixes, der Teilnetz-ID und der Interface-ID einer IPv6 Adresse.
Das Standortpräfix, oder auch Netzwerkpräfix, identifiziert das Netzwerk oder den Subnetzbereich in einer IPv6-Adresse. Er wird normalerweise von Internetdienstanbieter (ISP) zugewiesen.
Die Teilnetz-ID wird verwendet, um innerhalb eines größeren Netzwerks oder Subnetzes spezifische Teilnetze zu identifizieren. Sie wird normalerweise von den Netzwerkadministratoren definiert, um ihre internen Netzwerksegmente zu segmentieren und zu verwalten.
Die Interface-ID identifiziert ein bestimmtes Gerät oder eine Netzwerkschnittstelle innerhalb eines Subnetzes. Sie wird normalerweise automatisch generiert oder manuell zugewiesen.
Nennen Sie drei Vorteile vom Protokoll IPv6 gegenüber dem Protokoll IPv4.
Vorteile des IPv6-Protokolls gegenüber dem IPv4-Protokoll:
* Größerer Adressraum: IPv6 bietet einen erheblich größeren Adressraum im Vergleich zu IPv4.
* Automatische Adresskonfiguration: IPv6 enthält Mechanismen für die automatische Konfiguration von IP-Adressen
* Verbesserte Sicherheit: IPv6 integriert IPsec (Internet Protocol Security) standardmäßig in das Protokoll
* Unterstützung für Quality of Service (QoS): IPv6 enthält integrierte Mechanismen zur Unterstützung von Quality of Service
* Vereinfachtes Routing: Durch die Vereinfachung der Header-Struktur und die Verwendung von Hierarchien in IPv6 wird das Routing effizienter
Was ist der Unterschied zwischen den Protokollen TCP (Transmission Control Protocol) and UDP (User Datagram Protocol)?
TCP und UDP sind beides Transportprotokolle, die in IP-Netzwerken verwendet werden, um Daten zu übertragen.
TCP ist ein verbindungsorientiertes Protokoll, das eine zuverlässige Datenübertragung gewährleistet und Kontrollmechanismen wie Flusssteurung und Überlastkontrolle bietet.
UDP hingegen ist ein verbindungsloses Protokoll, bei dem keine Verbindung hergestellt wird und keine Garantie für die Zuverlässigkeit der Datenübertragung besteht. Es bietet keine eingebauten Kontrollmechanismen und eignet sich besser für Echtzeitkommunikation und Anwendungen, bei denen geringe Latenz wichtiger ist als die vollständige Übertragung aller Daten.
Erklären Sie die Begriffe Routing und Switching.
Routing bezieht sich auf den Prozess des Weiterleitens von Datenpaketen zwischen verschiedenen Netzwerken. Ein Router analysiert die IP-Adresse jedes Pakets und entscheidet, welchen Weg das Paket nehmen soll, um sein Zielnetzwerk zu erreichen. Routen werden normalerweise anhand verschiedener Faktoren wie der Netzwerkentfernung, Qualität des Netzwerks, Priorität usw. ausgewählt.
Switching bezieht sich auf den Prozess des Weiterleitens von Datenpaketen innerhalb desselben Netzwerks. Ein Switch analysiert die MAC-Adresse jedes Pakets und verwendet eine Switching-Tabelle, um das Paket and das richtige Ziel weiterzuleiten.
Was ist eine MAC-Adresse?
Eine MAC-Adresse (Media Access Control Address) ist eine eindeutige Kennung, die Netzwerkgeräten zugewiesen ist. Sie wird von Netzwerkkarten und anderen netzwerkfähigen Geräten verwendet, um sie eindeutig zu identifizieren und zu adressieren.
Die MAC-Adresse besteht aus einer 48-Bit-Zahl, die in der Regel in hexadezimaler Notation dargestellt wird. Sie ist in zwei Teile unterteilt: die OUI (Organizationally Unique Identifier), die den Hersteller des Geräts identifiziert, und die NIC (Network Interface Controller) ID, die eine eindeutige Nummer für das Gerät darstellt.
Wofür steht die Abkürzung ARP im Bereich der Netzwerktechnik?
ARP steht für Address Resolution Protocol. Es ist ein Netzwerkprotokoll, das verwendet wird, um die IP-Adressen von Geräten in einem lokalen Netzwerk (LAN) in deren MAC-Adressen aufzulösen.
ARP wird hauptsächlich in IPv4-Netzwerken eingesetzt. Wenn ein Gerät in einem Netzwerk Daten an ein anderes Gerät senden möchte, benötigt es die MAC-Adresse des Zielgeräts, um das Datenpaket an den richtigen Empfänger weiterzuleiten. Das ARP-Protokoll ermöglicht es einem Gerät, die MAC-Adresse eines bestimmten Ziels anhand seiner IP-Adresse zu ermitteln.
Beschreiben Sie die Aufgabe des DHCP-Protokolls und nennen Sie drei Informationen, welche mittels DHCP übertragen werden können.
DHCP steht für Dynamic Host Configuration Protocol. Die Aufgabe des DHCP-Protokolls besteht darin, die automatische Zuweisung von Netzwerkkonfigurationen an Geräte in einem Netzwerk zu ermöglichen. Es erleichtert die Konfiguration von IP-Adressen und anderen Netzwerkeinstellungen, indem es einen zentralen DHCP-Server verwendet, der diese Informationen an die Geräte verteilt.
Mittels DHCP können u.a. folgende Informationen übertragen werden:
* IP-Adresse
* Subnetzmaske
* Lease-Dauer
* Standardgateway
* DNS-Server
* NTP-Server
Erklären den Ablauf der DHCP-Kommunikation nach dem DORA-Prinzip.
DHCP-Discover: Ein Gerät, das eine Netzwerkverbindung herstellt, sendet eine Broadcast-Nachricht, um DHCP-Server im Netzwerk zu suchen.
DHCP-Offer: Der DHCP-Server antwortet mit einer Broadcast-Nachricht, in der er dem Gerät eine IP-Adresse und andere Konfigurationsinformationen anbietet.
DHCP-Request: Das Gerät wählt eine der angebotenen IP-Adressen aus und sendet eine Broadcast-Nachricht, um den ausgewählten DHCP-Server über seine Wahl zu informieren.
DHCP-Acknowledgement: Der DHCP-Server antwortet mit einer Broadcast-Nachricht, in der er dem Gerät die zugewiesene IP-Adresse und andere Konfigurationsoptionen bestätigt.
Geben Sie für die Abkürzung DNS die vollständige Schreibweise an und erklären Sie die Hauptaufgabe von DNS.
DNS steht für Domain Name System. Es handelt sich um ein dezentrales System zur Auflösung von Domainnamen in IP-Adressen und umgekehrt.
Das DNS funktioniert hierarchisch, wobei die oberste Ebene die Root-DNS-Server sind, die die Informationen für die Top-Level-Domains (TLDs) wie .com, .org, .net usw. erhalten. Unterhalb der Root-DNS-Server gibt es weitere DNS-Server, die für spezifische Domänen zuständig sind. Jede Domäne kann ihre eigenen DNS-Server haben, die als Autoritative DNS-Server bezeichnet werden und die DNS-Datensätze für die Domäne verwalten.
Was ist ein Proxy-Server und wozu wird er verwendet?
Ein Proxy-Server agiert als Vermittler zwischen einem Client und dem Zielserver. Wenn ein Client eine Anfrage stellt, leitet der Proxy-Server diese Anfrage im Namen des Clients weiter und empfängt die Antwort vom Zielserver. Dadurch kann der Proxy-Server den Datenverkehr überwachen, filtern, umleiten oder anonymisieren, um die Sicherheit und Effizienz der Verbindung zu verbessern.
Für welche Aufgaben wird ein Reverse-Proxy-Server eingesetzt?
Ein Reverse-Proxy-Server ist ein Server, der als Vermittler zwischen Clients und einem oder mehreren Back-End-Servern fungiert. Er nimmt Anfragen von Clients entgegen und leitet diese and die entsprechenden Server weiter. Nachdem der Server die Anfrage bearbeitet hat, sendet der Reverse-Proxy die Antwort zurück an den Client.
Er kann u.a. die folgenden Funktionen übernehmen:
* Lastverteilung (Load Balancing)
* Caching
* Verschlüsselung
* Schutz der Identität der Back-End-Server
* Kompression eingehender und ausgehender Daten
Was ist die Datenübertragungsrate und wie wird sie berechnet?
Die Datenübertragungsrate bezieht sich auf die Menge an Daten, die innerhalb einer bestimmten Zeitspanne übertragen werden können. Sie gibt an, wie schnell Daten von einem Punkt zum anderen übertragen werden. Je höher die Datenübertragungsrate ist, desto schneller können Daten übertragen werden und desto weniger Zeit wird für die Übertragung großer Datenmenge benötigt.
Datenübertragungsrate = Datenmenge / Zeitintervall
Was sind die Unterschiede zwischen LAN, MAN, WAN und GAN?
LAN (Local Area Network): Lokales Netzwerk, das in einem begrenzten geografischen Bereich eingerichtet ist.
MAN (Metropolitan Area Network): Netzwerk, das sich über eine Stadt oder eine Metropolregion erstreckt. Es bietet eine größere Reichweite als ein LAN, aber eine kleinere als ein WAN.
WAN (Wide Area Network): Weitläufiges Netzwerk, das über große Entfernungen verteilt ist. Es ermöglicht die Kommunikation zwischen entfernten Standorten.
GAN (Global Area Network): Netzwerk, das sich über den gesamten Globus erstreckt. Es verbindet verschiedene WANs und ermöglicht die globale Kommunikation zwischen Standorten weltweit.
PAN (Personal Area Network) und WLAN (Wireless Local Area Network) sind zwei verschiedene Arten von Netzwerken mit unterschiedlichen Anwendungsbereichen und Funktionalitäten.
Erklären Sie diese.
Ein PAN ist ein Netzwerk, das sich auf den persönlichen oder lokalen Bereich einer Person beschränkt. Es ermöglicht die Verbindung zwischen Geräten in unmittelbarer Nähe zueinander. PANs werden häufig für den Austausch von Daten zwischen persönlichen Geräten, wie z.B. Smartphones, Tablets, Laptops oder Druckern, verwendet.
Ein WLAN ist ein drahtloses lokales Netzwerk, das eine größere Reichweite als ein PAN hat. Es ermöglicht die drahtlose Verbindung und Kommunikation zwischen Geräten über eine größere Fläche. WLANs basieren auf dem Wi-Fi-Standard und ermöglichen den drahtlosen Austausch von Daten zwischen Geräten im Netzwerk.
Nennen Sie zwei Vorteile, die für den Einsatz von VLANs sprechen.
Vorteile des Einsatzes von VLANs:
* VLANs ermöglichen die logische Segmentierung eines physischen Netzwerks in mehrere virtuelle Netzwerke
* in VLANs kann der Datenverkehr priorisiert und optimiert werden
* es können unterschiedliche Sicherheitsrichtlinien auf verschiedene VLANs angewendet werden
* kleinere Broadcastdomänen
* bessere Verwaltung und Konfiguration des Netzwerks
Was ist der Unterschied zwischen statischen und dynamischen VLANs?
Statische VLANs werden manuell konfiguriert. Jeder Port am Switch wird einem bestimmten VLAN zugeordnet. Diese Zuordnung bleibt unverändert.
Dynamische VLANs verwenden eine dynamische Zuordnung von Ports zu VLANs. Die Zuordnung basiert auf bestimmten Merkmalen der Netzwerkgeräte, wie z.B. MAC-Adresse, Protokoll oder anderen Attributen. Wenn ein Gerät an den Switch angeschlossen wird, identifiziert der Switch automatisch das VLAN, dem der Port zugeordnet werden soll.
Was sind tagged Ports?
Tagged Ports sind Netzwerkports, die den Datenverkehr von mehreren VLANs verarbeitet können. Im Gegensatz zu ungetaggten (untagged) Ports, die nur den Datenverkehr eines einzigen VLANs übertragen können, können tagged Ports Datenpakete aus verschiedenen VLANs empfangen und weiterleiten.
Wenn ein Switch-Port als tagged konfiguriert ist, werden den Datenpaketen VLAN-Tags hinzugefügt, die anzeigen, zu welchem VLAN sie gehören. Dies ermöglicht es dem Switch, den Datenverkehr zwischen den VLANs zu steuern. Der Switch verwendet die VLAN-Tags, um sicherzustellen, dass Datenpakete in den richtigen VLANs zugestellt werden.
Erläutern Sie, warum Quality of Service (QoS) bei der Übertragung von Telefonie- und Videodaten eine wichtige Rolle spielt.
Quality of Service (QoS) bezieht sich auf die Fähigkeit eines Netzwerks, unterschiedlichen Anwendungen, Nutzern oder Datentypen unterschideliche Prioritäten zu gewähren. Das Ziel von QoS ist es, eine bessere und vorhersehbarere Netzwerkleistung zu liefern, indem bestimmte Arten von Netzwerkverkehr bevorzugt werden.
Bei der Übertragung von Telefonie- und Videodaten spielt QoS eine besonders wichtige Rolle. Diese Arten von Daten erfordern eine Echtzeit-Kommunikation und sind empfindlich gegenüber Verzögerungen (Latenz), Paketverlusten und Jitter.
Welche verschiedenen VPN-Modelle gibt es?
End-to-Site-VPN: Auch als Remote Access VPN bezeichnet. Ermöglicht es einem einzelnen Benutzer oder einer entfernten Einheit, eine sichere Verbindung zu einem privaten Netzwerk herzustellen.
Site-to-Site-VPN: Auch LAN-to-LAN-VPN genannt. Verbindet zwei oder mehr physische Netzwerke miteinander. Der Fokus liegt hierbei auf der Verbindung von Netzwerken oder Standorten.
End-to-End-VPN: Der Begriff “End-to-End-VPN” wird verwendet, um eine VPN-Lösung zu beschreiben, die von einem Endpunkt zum anderen Endpunkt einer Kommunikation verwendet wird.
Was ist der Unteschied zwischen Tunnelmodus und Transpormodus bei VPNs?
Im Tunnelmodus wird der gesamte IP-Datenverkehr eines Netzwerkpakets verchlüsselt und in ein neues IP-Paket eingekapselt. Dieses neue IP-Paket enthält sowohl den verschlüsselten ursprünglichen IP-Datenverkehr als auch den VPN-Header. Der VPN-Header enthält Informationen über die Verschlüsselung, Authentifizierung und andere VPN-spezifische Parameter.
Im Transportmodus wird nur der Nutzlastteil eines IP-Pakets verschlüsselt. Der IP-Header des ursprünglichen Pakets bleibt unverschlüsselt, während die Nutzlast verschlüsselt wird.
Beschreiben Sie die zusätzlichen Sicherheitsvorteile die Zero Trust Network Access (ZTNA) im Vergleich zu traditionellen VPN-Verbindungen bietet.
Zero Trust Network Access (ZTNA) verbessert die Sicherheit gegenüber VPNs durch Mikrosegmentierung und begrenzt so den Netzwerkzugriff auf genau die benötigten Ressourcen. ZTNA verwendet identitäts- und kontextbasierte Richtlinien, die mehr Informationen berücksichtigen als nur den Standort. ZTNA reduziert die Angriffsfläche, da keine direkte Netzwerkverbindung benötigt wird, und bietet eine Always-On-Sicherheit, die konsistente Schutzmasßnahmen gewährleistet. Durch Echtzeitüberwachung und adaptive Reaktionen auf mögliche Vorfälle erhöht ZTNA die Sicherheit erheblich.
Erklären Sie die Aufgaben des IPsec Protokolls.
IPsec (Internet Protocol Security): IPsec ist eine Protokollsuite, die auf der Netzwerkschicht des TCP/IP-Protokollstapels arbeitet. Sie bietet Mechanismen zur Sicherung des IP-Datenverkehrs, insbesondere in VPN-Umgebungen. IPsec ermöglicht die Verschlüsselung, Authentifizierung und Integritätssicherung von IP-Paketen, um eine sichere Übertragung über unsichere Netzwerke wie das Internet zu gewährleisten.
Nennen Sie die 7 Schichten des OSI-Modells in aufsteigender Reihenfolge.
Die 7 Schichten des OSI-Modells (Open Systems Interconnection Model) sind:
* Bitübertragungsschicht (Physical Layer)
* Sicherungsschicht (Data Link Layer)
* Vermittlungsschicht (Network Layer)
* Transportschicht (Transport Layer)
* Sitzungsschicht (Session Layer)
* Darstellungsschicht (Presentation Layer)
* Anwendungsschicht (Application Layer)
Welche Schichten des OSI-Modells gehören zu den transportorientierten Schichten?
Erklären Sie auch kurz die Aufgaben dieser Schichten.
Transportorientierte Schichten:
Die Bitübertragungsschicht beschäftigt sich mit der physischen Übertragung von Datenbits über das Übertragungsmedium.
Die Sicherungschicht kümmert sich um die fehlerfreie Übertragung von Datenframes zwischen benachbarten Netzwerkgeräten. Sie bietet Mechanismen zur Fehlererkennung und Fehlerkorrektur.
Die Vermittlungsschicht ist für die Adressierung, das Routing und die Weiterleitung von Datenpaketen im Netzwerk verantwortlich.
Die Transportschicht regelt die Zuordnung der Datenpakete zu einer Anwendung. Sie stellt sicher, dass Datenpakete in der richtigen Reihenfolge ankommen, überwacht die Datenintegrität und regelt den Datenfluss.
Welche Schichte des OSI-Modells gehören zu den anwendungsorientierten Schichten?
Erklären Sie auch kurz die Aufgaben dieser Schichten.
Anwendungsorientierte Schichten:
Die Sitzungsschicht etabliert, verwaltet und beendet Sitzungen zwischen Anwendungen. Sie ermöglicht die Synchronisierung von Datenübertragungen und bietet Mechanismen für den Aufbau und das Beenden von Verbindungen.
Die Darstellungsschicht kümmert sich um die Datenrepräsentation und den Austausch von Datenformaten zwischen Anwendungen. Sie ist für die Datenkompression, Verschlüsselung sowie für die Datenkonvertierung zuständig.
Die Anwendungsschicht ist die oberste Schicht des OSI-Modells und enthält Anwendungen und Dienste für Endbenutzer. Sie ermöglicht die Interaktion zwischen Benutzern und dem Netzwerk.
Nennes Sie Beispiele für Protokolle, welche auf der Vermittlungsschicht und der Transportschicht der OSI-Modells arbeiten.
Vermittlungsschicht:
* IP
* IPsec
* ICMP
Transportschicht:
* TCP
* UDP
Ordnen Sie Hub, Bridge, Router, Switch und Repeater den entsprechenden Schichten des OSI-Modells zu.
Bitübertragungsschicht:
* Hub
* Repeater
Sicherungsschicht:
* Layer-2-Switch
* Bridge
Vermittlungsschicht:
* Router
* Layer-3-Switch
Erklären Sie den Unterschied zwischen einem Switch und einem Hub.
Ein Hub leitet empfangene Datenpakete an alle angeschlossenen Geräte weiter. Dies kann zu erheblichem Netzwerk-Verkehr und Kollisionen führen, da die Daten an alle Geräte gesendet werden, unabhängig davon, für welches Gerät die Daten tatsächlich bestimmt sind.
Ein Switch ist in der Lage, den spezifischen Pfad zu bestimmen, auf dem Datenpakete weitergeleitet werden sollen. Bei Empfang eines Datenpakets sendet der Switch dieses nur an das Zielgerät weiter. Dies wird durch die Speicherung von MAC-Adressen der an den Switch angeschlossenen Geräte erreicht. Diese Funktionsweise verringert Kollisionen und ermöglicht eine bessere Bandbreitennutzung.
Wofür wird das Network File System (NFS) verwendet?
NFS ist ein Protokoll, das hauptsächlich in Unix- und Linux-Umgebungen eingesetzt wird. Es ermöglicht den transparenten Zugriff auf entfernte Dateisysteme und erleichtert die gemeinsame Nutzung von Dateien zwischen verschiedenen Betriebssystemen.
NFS basiert auf dem Client-Server-Modell und ermöglicht es einem Computer, über ein Netzwerk auf Dateien zuzugreifen, als wären sie lokal gespeichert.
Was ist die Aufgabe des SMB-Protokolls?
SMB (Server Message Block) ist ein Protokoll, das ursprünglich von Microsoft entwickelt wurde und hauptsächlich in Windows-Umgebungen verwendet wird. Es ermöglicht die gemeinsame Nutzung von Dateien, Druckern und anderen Ressourcen in einem Netzwerk.
SMB unterstützt Funktionen wie Authentifizierung, Datei- und Druckerdienste sowie den Zugriff auf Netzwerkfreigaben. Es ist das Standardprotokoll für die Dateifreigabe in Windows-Netzwerken.
Erläutern Sie den Begriff Service Level Agreement (SLA).
Ein Service Level Agreement (SLA) ist eine schriftliche Vereinbarung zwischen einem Dienstleister und einem Kunden, die die vereinbarten Leistungsparameter und -ziele für eine bestimmte Diesntleistung oder ein Produkt festlegt.
Ein SLA definiert die Erwartungen hinsichtlich Qualität, Reaktionszeiten, Verfügbarkeit, Support und anderen relevanten Aspekten des Services. Es dient als Grundlage für die Bewertung der Servicequalität.
Was sind die Aufgaben des First-Level-Supports?
Der First-Level-Support ist der erste Kontakt für Kunden bei Supportanfragen. Die afugaben des 1st-Level Supports umfassen:
* Entgegennahme von Supportanfragen
* Klassifizierung und Priorisierung von Supportanfragen
* grundlegende Unterstützung, um häufig auftretende Probleme zu lösen
* Weiterleitung von Anfragen, wenn das Problem über den Bereich des 1st-Level Supports hinausgeht
* Dokumentation der Supportanfragen in einem Ticketsystem oder einer Wissendatenbank
* professionelle und freundliche Kommunikation mit den Kunden
Erklären Sie den Unterschied zwischen dem 2nd-Level- und 3rd-Level-Support.
Der Second-Level-Support ist die erste Eskalationsstufe, wenn eine Anfrage nicht vom First-Level-Support gelöst werden kann. Er besteht aus erfhrenen Techniken oder Spezialisten. Sie können komplexere Anfragen bearbeiten, Fehlerdiagnosen durchführen und spezifischere Lösungen bereitstellen.
Der Third-Level-Support ist die höchste Eskalationsstufe im Supportprozess. Er umfasst hochspezialisierte Fachleute, die über umfangreiches technisches Wissen und Expertise verfügen. Sie sind in der Lage, komplexe Probleme zu analysieren und umfassende Fehlerbehebung durchzuführen, die über die Möglichkeiten des Second-Level-Supports hinausgehen.
Welchem Zweck dienen Standard Operating Procedures (SOP)?
Standard Operating Procedure (SOP) sind schriftliche Anweisungen oder Leitfäden, die die spezifischen Schritte und Verfahren beschreiben, die in einer Organisation oder einem Unternehmen bei bestimmten Aufgaben oder Prozessen befolgt werden sollen.
Sie dienen dazu, eine klare Struktur, Einheitlichkeit und Effizienz in organisatorischen Abläufen zu gewährleisten, die Qualität zu kontrollieren und die Einhaltung von Standards sicherzustellen.
Beschreiben was unter dem ITIL-Framework zu verstehen ist.
ITIL (Information Technology Infrastructure Library) ist ein Framework für das IT-Service-Management (ITSM), das bewährte Praktiken und Standards für die effektive Bereitstellung und Verwaltung von IT-Services bietet. Es wurde entwickelt, um die Qualität von IT-Services zu verbessern, die Kundenzufriedenheit zu steigern und die Effizienz der IT-Organisationen zu maximieren.
ITIL besteht aus einer Sammlung von Best Practices, die in verschiedene Prozesse und Funktionen unterteilt sind. Es wird weltweit con Organisationen verschiedener Größen und Branchen eingesetzt und ist zu einem Industriestandard für das IT-Service-Management geworden.