Mögliche Themen von Teil 2 der gestreckten Abschlussprüfung (GAP) für Fachinformatiker Anwendungsentwicklung

Prüfungsthemen für Teil 2 der gestreckten Abschlussprüfung (GAP) für Fachinformatiker:innen Anwendungsentwicklung

Themenbereiche der Prüfung

Für Anwendungsentwickler:innen gibt es in der Abschlussprüfung vier Themenbereiche:

  • Planen und Umsetzen eines Softwareprojektes (das klassische „Abschlussprojekt“ mit Projektdokumentation) (auf dieser Seite nicht behandelt)
  • Planen eines Softwareproduktes (schriftliche Prüfung wie die ehemalige „GA1“)
  • Entwicklung und Umsetzung von Algorithmen (schriftliche Prüfung wie die ehemalige „GA1“)
  • Wirtschafts- und Sozialkunde (schriftliche Multiple-Choice-Prüfung wie bisher auch) (auf dieser Seite nicht behandelt)

Im Prüfungsbereich Planen und Umsetzen eines Softwareprojektes (Projekt) hat der Prüfling nachzuweisen, dass er in der Lage ist…

  1. kundenspezifische Anforderungen zu analysieren,
  2. eine Projektplanung durchzuführen,
  3. eine wirtschaftliche Betrachtung des Projektes vorzunehmen,
  4. eine Softwareanwendung zu erstellen oder anzupassen,
  5. die erstellte oder angepasste Softwareanwendung zu testen und ihre Einführung vorzubereiten und
  6. die Planung und Durchführung des Projektes anforderungsgerecht zu dokumentieren.

Daraus leiten sich fast wortwörtlich die Anforderungen für die Projektdokumentation bzw. deren Kapitel ab!

Im zweiten Teil der Prüfung (Projektpräsentation und Fachgespräch) hat der Prüfling nachzuweisen, dass er in der Lage ist…

  1. die Arbeitsergebnisse adressatengerecht zu präsentieren und
  2. seine Vorgehensweise bei der Durchführung der betrieblichen Projektarbeit zu begründen.

Die Projektpräsentation soll dabei höchstens 15 Minuten dauern.


Im Prüfungsbereich Planen eines Softwareproduktes (PS) hat der Prüfling nachzuweisen, dass er in der Lage ist…

  1. Entwicklungsumgebungen und -bibliotheken auszuwählen und einzusetzen,
  2. Programmspezifikationen anwendungsgerecht festzulegen,
  3. Bedienoberflächen funktionsgerecht und ergonomisch zu konzipieren sowie
  4. Maßnahmen zur Qualitätskontrolle zu planen und durchzuführen.

Im Prüfungsbereich Entwicklung und Umsetzung von Algorithmen (EUA) hat der Prüfling nachzuweisen, dass er in der Lage ist…

  1. einen Programmcode zu interpretieren und eine Lösung in einer Programmiersprache zu erstellen,
  2. Algorithmen in eine Programmierlogik zu übertragen und grafisch darzustellen,
  3. Testszenarien auszuwählen und Testdaten zu generieren sowie
  4. Abfragen zur Gewinnung und Manipulation von Daten zu erstellen.

Im Prüfungsbereich Wirtschafts- und Sozialkunde (WiSo) hat der Prüfling nachzuweisen, dass er in der Lage ist…

  • allgemeine wirtschaftliche und gesellschaftliche Zusammenhänge der Berufs- und Arbeitswelt darzustellen und zu beurteilen.

Prüfungsform

  • Projekt: Praxisprojekt mit Projektdokumentation, Projektpräsentation und Fachgespräch
  • PS: Schriftliche Abschlussprüfung, 90 Minuten, vier ungebundene Aufgaben, je Aufgabe kann es zwischen 20 und 30 Punkten geben, Gesamtzahl der möglichen Punkte: 100 Punkte
  • EUA: Schriftliche Abschlussprüfung, 90 Minuten, vier ungebundene Aufgaben, je Aufgabe kann es zwischen 20 und 30 Punkten geben, Gesamtzahl der möglichen Punkte: 100 Punkte
  • WiSo: Schriftliche Abschlussprüfung, 60 Minuten, ca. 30 gebundene Aufgaben (also maschinell auswertbar wie z.B. Multiple-Choice), je Aufgabe kann es verschiedene Punkte geben, Gesamtzahl der möglichen Punkte: 100 Punkte
  • Prüfungstermine sind Sommer und Winter

Gewichtung der Prüfungsteile

  • Einrichten eines IT-gestützten Arbeitsplatzes (Teil 1 der GAP): 20%
  • Planen und Umsetzen eines Softwareprojektes: 50%
    • die Projektdokumentation zählt hiervon 50%
    • Projektpräsentation und Fachgespräch zählen zusammen 50%
  • Planen eines Softwareproduktes: 10%
  • Entwicklung und Umsetzung von Algorithmen: 10%
  • Wirtschafts- und Sozialkunde: 10%

Relevante Lernfelder der Berufsschule

Da die „allgemeinen“ IT-Themen bereits in Teil 1 der gestreckten Abschlussprüfung abgefragt werden, dürfte sich die Liste der für die Abschlussprüfung relevanten Lernfelder aus der Berufsschule auf diese reduzieren:

  • LF 5: Software zur Verwaltung von Daten anpassen
  • LF 8: Daten systemübergreifend bereitstellen
  • LF 10a: Benutzerschnittstellen gestalten und entwickeln
  • LF 11a: Funktionalität in Anwendungen realisieren
  • LF 12a: Kundenspezifische Anwendungsentwicklung durchführen

Konkrete Prüfungsthemen

  • Die Oberpunkte entsprechen den Teilen des Ausbildungsberufsbildes laut Ausbildungsrahmenplan (FIAusbV).
  • Die ersten Stichpunkte sind die laut Ausbildungsrahmenplan nicht in den ersten 18 Monaten der Ausbildung zu vermittelnden Fertigkeiten, Kenntnisse und Fähigkeiten zu den Oberpunkten.
    • Laut Ausbildungsrahmenplan sollen in Teil 2 der Abschlussprüfung Fertigkeiten, Kenntnisse und Fähigkeiten, die bereits Gegenstand von Teil 1 der Abschlussprüfung waren, eher nicht mehr abgefragt werden. Es ist aber nicht ganz auszuschließen, dass diese Themen drankommen. Totzdem fokussiere ich mich auf dieser Seite auf die „neuen“ Themen, da die „alten“ schon für Teil 1 der Prüfung bearbeitet wurden.
  • Die zweiten Stichpunkte sind die Unterpunkte aus dem Prüfungskatalog zu den Oberpunkten.

Informieren und Beraten von Kunden und Kundinnen

  • Gespräche situationsgerecht führen und Kunden und Kundinnen unter Berücksichtigung der Kundeninteressen beraten
  • Kundenbeziehungen unter Beachtung rechtlicher Regelungen und betrieblicher Grundsätze gestalten
  • Daten und Sachverhalte interpretieren, multimedial aufbereiten und situationsgerecht unter Nutzung digitaler Werkzeuge und unter Berücksichtigung der betrieblichen Vorgaben präsentieren

  • Aktives Zuhören, Kommunikationsmodelle (z.B. Telefonkonferenzen, Chat, virtuelle Teambesprechung), Verkaufsgespräche (Anfrage, Angebot, Auftrag)
  • Kundenbeziehungen unter Beachtung rechtlicher Regelungen und betrieblicher Grundsätze gestalten
  • Instrumente zur Datenauswertung kennen und bedarfsgerecht auswählen sowie Ergebnisse interpretieren können

Beurteilen marktgängiger IT-Systeme und kundenspezifischer Lösungen

  • technologische Entwicklungstrends von IT-Systemen feststellen sowie ihre wirtschaftlichen, sozialen und beruflichen Auswirkungen aufzeigen
  • Veränderungen von Einsatzfeldern für IT-Systeme aufgrund technischer, wirtschaftlicher und gesellschaftlicher Entwicklungen feststellen

  • Chancen und Risiken der technischen Entwicklungen kennen und identifizieren können
  • Veränderungen von Einsatzfeldern kennen und beurteilen können

Entwickeln, Erstellen und Betreuen von IT-Lösungen

  • systematisch Fehler erkennen, analysieren und beheben
  • Algorithmen formulieren und Anwendungen in einer Programmiersprache erstellen
  • Datenbankmodelle unterscheiden, Daten organisieren und speichern sowie Abfragen erstellen

  • Fehler erkennen, analysieren und beheben
  • Algorithmen formulieren und Programme entwickeln
  • Datenbanken modellieren und erstellen

Durchführen und Dokumentieren von qualitätssichernden Maßnahmen

  • Ursachen von Qualitätsmängeln systematisch feststellen, beseitigen und dokumentieren
  • im Rahmen eines Verbesserungsprozesses die Zielerreichung kontrollieren, insbesondere einen Soll-Ist-Vergleich durchführen

  • Methoden der Qualitätslenkung anwenden
  • Methoden zur Messung der Zielerreichung im QM-Prozess kennen und anwenden

Umsetzen, Integrieren und Prüfen von Maßnahmen zur IT-Sicherheit und zum Datenschutz

  • Bedrohungsszenarien erkennen und Schadenspotenziale unter Berücksichtigung wirtschaftlicher und technischer Kriterien einschätzen
  • Kunden und Kundinnen im Hinblick auf Anforderungen an die IT-Sicherheit und an den Datenschutz beraten
  • Wirksamkeit und Effizienz der umgesetzten Maßnahmen zur IT-Sicherheit und zum Datenschutz prüfen

  • Schadenspotenziale von IT-Sicherheitsvorfällen einschätzen und Schäden verhindern können
  • Präventive IT-Sicherheitsmaßnahmen für verschiedene Bedrohungsszenarien planen und umsetzen
  • Ziele zur Entwicklung von IT-Sicherheitskriterien definieren
  • Kunden zur IT-Sicherheit beraten
  • IT-Sicherheitsmaßnahmen mit verschiedenen Tools überprüfen
  • Technische organisatorische Maßnahmen (TOM) kontrollieren

Betreiben von IT-Systemen

  • Netzwerkkonzepte für unterschiedliche Anwendungsgebiete unterscheiden
  • Datenaustausch von vernetzten Systemen realisieren
  • Verfügbarkeit und Ausfallwahrscheinlichkeiten analysieren und Lösungsvorschläge unterbreiten
  • Maßnahmen zur präventiven Wartung und zur Störungsvermeidung einleiten und durchführen
  • Störungsmeldungen aufnehmen und analysieren sowie Maßnahmen zur Störungsbeseitigung ergreifen
  • Dokumentationen zielgruppengerecht und barrierefrei anfertigen, bereitstellen und pflegen, insbesondere technische Dokumentationen, System- sowie Benutzerdokumentationen

  • Schichtenmodelle, z.B. OSI, TCP/IP benennen und zuordnen können
  • Netzwerkkomponenten vergleichen und analysieren können
  • Netzwerkkonzepte (-topologien, -Infrastrukturen) benennen und charakterisieren
  • Peer 2 Peer bzw. Client-Server-Konzepte vergleichen und hinsichtlich ihres Einsatzes bewerten können
  • Übertragungsprotokolle erläutern und zielgerichtet einsetzen können
  • Standortübergreifende und -unabhängige Kommunikation situationsgerecht auswählen und einrichten können
  • Netzwerkrelevante Dienste administrieren können
  • Anwendungsdienste sicherstellen können
  • Risiken identifizieren, Maßnahmen planen und Ausfallwahrscheinlichkeiten berücksichtigen
  • Maßnahmen zur Sicherstellung des Betriebes beurteilen können
  • Monitoringsysteme anwenden und Ergebnisse interpretieren können
  • Monitoringergebnisse analysieren und korrektive Maßnahmen bestimmen können
  • Erstellen und Erweitern von Handbüchern für Benutzer und Systembetreuer

Inbetriebnehmen von Speicherlösungen

  • Sicherheitsmechanismen, insbesondere Zugriffsmöglichkeiten und -rechte, festlegen und implementieren
  • Speicherlösungen, insbesondere Datenbanksysteme, integrieren

  • Technische und organisatorische Maßnahmen (TOM)
  • Möglichkeiten der physischen/hardwaretechnischen Absicherung benennen
  • Möglichkeiten der softwaretechnischen Absicherung implementieren können
  • Verschiedene Service- und Liefermodelle benennen und bedarfsorientiert auswählen können
  • Daten heterogener Quellen zusammenführen können
  • Netzwerkkomponenten und -Protokolle beschreiben können

Programmieren von Softwarelösungen

  • Programmspezifikationen festlegen, Datenmodelle und Strukturen aus fachlichen Anforderungen ableiten sowie Schnittstellen festlegen
  • Programmiersprachen auswählen und unterschiedliche Programmiersprachen anwenden
  • Teilaufgaben von IT-Systemen automatisieren

  • Anforderungen kundengerecht erfassen können
  • Planen mit geeigneten Modellen
  • Festlegen von Schnittstellen und vorhandene Schnittstellen nutzen
  • Situationsgerechte Auswahl einer passenden Programmiersprache begründen können
  • Algorithmen in einer Programmiersprache darstellen
    • Die Darstellung soll in allgemein verständlichem Programm- oder Pseudocode erfolgen. Der Code soll für Dritte, ohne Kenntnis der verwendeten Programmiersprache, lesbar sein. Der Code muss nicht in der geschriebenen Sprache kompilierbar bzw. ausführbar sein.

Konzipieren und Umsetzen von kundenspezifischen Softwareanwendungen

  • Vorgehensmodelle und -methoden sowie Entwicklungsumgebungen und -bibliotheken auswählen und einsetzen
  • Analyse- und Designverfahren anwenden
  • Benutzerschnittstellen ergonomisch gestalten und an Kundenanforderungen anpassen Anwendungslösungen unter Berücksichtigung der bestehenden Systemarchitektur entwerfen und realisieren
  • bestehende Anwendungslösungen anpassen
  • Datenaustausch zwischen Systemen realisieren und unterschiedliche Datenquellen nutzen
  • komplexe Abfragen aus unterschiedlichen Datenquellen durchführen und Datenbestandsberichte erstellen

  • Vorgehensmodelle unterscheiden können
  • Strukturierte Analyse- und Designverfahren anwenden können
  • Objektorientierte Analyse- und Designverfahren anwenden können
  • Programmspezifikationen festlegen, Datenmodelle und Strukturen aus fachlichen Anforderungen ableiten, Schnittstellen festlegen, geeignete Programmiersprachen auswählen
  • Konzepte von Programmiersprachen (z. B. strukturiert, prozedural, funktional, objektorientiert) kennen und exemplarisch Programmiersprachen nennen können
  • Software-Entwicklungswerkzeuge aufgabenbezogen anwenden können
  • Einsatzmöglichkeiten von Programmiersprachen kennen
  • Lasten-/Pflichtenheft erstellen können
  • UML-Diagramme erstellen können
  • Datenmodelle erstellen können
  • Normalisierung anwenden können (1. bis 3. Normalform)
  • Design-Pattern anwenden können
  • Anforderungen an die Softwareergonomie benennen und beurteilen können
  • Benutzeroberfläche gestalten können
  • Prototypen (Mock-ups) erstellen können
  • Algorithmen erstellen können
  • Objektorientierte Programmiermethoden anwenden können
  • Einfache Such- und Sortier-Algorithmen kennen
  • Bestehende Funktionen/Klassen erweitern
  • Dateiformate zum Datenaustausch anwenden können und deren Einsatzbereiche kennen
  • Möglichkeiten zur Nutzung von Services und Ressourcen eines Servers kennen
  • Datenbankabfrage, Datenpflege mit SQL erstellen können

Sicherstellen der Qualität von Softwareanwendungen

  • Sicherheitsaspekte bei der Entwicklung von Softwareanwendungen berücksichtigen
  • Datenintegrität mithilfe von Werkzeugen sicherstellen
  • Modultests erstellen und durchführen
  • Werkzeuge zur Versionsverwaltung einsetzen
  • Testkonzepte erstellen und Tests durchführen sowie Testergebnisse bewerten und dokumentieren
  • Daten und Sachverhalte aus Tests multimedial aufbereiten und situationsgerecht unter Nutzung digitaler Werkzeuge und unter Beachtung der betrieblichen Vorgaben präsentieren

  • Anwendungen unter Berücksichtigung von Datenschutz und Datensicherheit erstellen können
  • Datenintegrität mithilfe von technischen Maß­nahmen beurteilen und sicherstellen können
  • Modultests erstellen und durchführen können (Unit-Tests)
  • Grundfunktionalitäten einer Versionsverwaltung in ihrem Einsatz beschreiben und anwenden können, z. B. Branches, Pull, Push, Merge
  • Softwaretests erstellen, durchführen und die Ergebnisse analysieren können
  • Daten und Sachverhalte aus Tests multimedial aufbereiten und situationsgerecht unter Nutzung digitaler Werkzeuge und unter Beachtung der betrieblichen Vorgaben präsentieren

Themencluster

Die folgenden Themencluster sind konkrete Prüfungsinhalte aus dem Prüfungskatalog, der BIBB-Umsetzungshilfe* und echten IHK-Prüfungen, ergänzt um meine eigenen Empfehlungen/Stichpunkte. Die Gruppierung habe ich selbst vorgenommen, um sie auf konkrete Lernzielkontrollen zu verteilen.

Letzte Aktualisierung: 04.08.2022

Kundenbeziehungen

  • Kundenbeziehungen unter Beachtung rechtlicher Regelungen und betrieblicher Grundsätze gestalten
  • Kundengespräche strukturiert vorbereiten, durchführen und nachbereiten
  • konsequente Kundenausrichtung und systematische Gestaltung der Kundenbeziehungsprozesse („Relationship Marketing“)
  • Dokumentation und Verwaltung von Kundenbeziehungen („Customer Relationship Management“)
  • Gesetz gegen unlauteren Wettbewerb
  • AGB-Gesetz
  • Regelkonformität
  • Berücksichtigung der geltenden Compliance-Regelungen
  • Ethik

Präsentieren

  • Gespräche situationsgerecht führen und Kunden und Kundinnen unter Berücksichtigung der Kundeninteressen beraten
  • Daten und Sachverhalte interpretieren, multimedial aufbereiten und situationsgerecht unter Nutzung digitaler Werkzeuge und unter Berücksichtigung der betrieblichen Vorgaben präsentieren
  • Präsentieren von Sachverhalten (auch softwarebasiert) unter Berücksichtigung von z.B. Gestaltungsgrundsätzen nach Kundenvorgaben, Dateiformaten
  • Anwenden von Kommunikations- und Argumentationstechniken
  • Präsentationstechniken
  • Grafische Darstellung bzw. Visualisierung (Diagrammarten, Bilderbearbeitung, Videos, multimediale Aufbereitung)
  • Tabellenkalkulation
  • Präsentationsprogramme
  • Programme zum Erstellen multimedialer Inhalte
  • Corporate Identity (CI)
  • Anwendung und Einarbeitung in marktübliche Präsentationssoftware
  • Vor- und Nachbereitung einer Präsentation
  • Elemente einer Präsentation beherrschen, z.B.:
    • Visualisierungsregeln
    • Farbwirkung
  • Rhetorikgrundlagen, z.B.:
    • Atem- und Sprechtechnik
    • Rede- und Vortragstechnik

Trends

  • Technologische Entwicklungstrends von IT-Systemen feststellen sowie ihre wirtschaftlichen, sozialen und beruflichen Auswirkungen aufzeigen
  • Veränderungen von Einsatzfeldern für IT-Systeme aufgrund technischer, wirtschaftlicher und gesellschaftlicher Entwicklungen feststellen
  • Identifikation von Trends unter Berücksichtigung von Such- und Innovationsfeldern
  • Beschaffen von Informationen über Auswirkungen auf das eigene Unternehmen, die Branche und die Gesellschaft
  • Maßnahmen zur aktiven Information durch Newsfeeds oder Newsletter einleiten
  • Nutzen geeigneter Informationsquellen, z.B. Fachmessen, Fachforen im Internet, um neue Trends und Einsatzfelder wahrzunehmen
  • Anwendung von IT-Systemen auf neue Einsatzgebiete prüfen
  • Ausfallsicherheit, bspw. redundante Systeme, selbstkonfigurierende Systeme
  • Lebenslanges Lernen
  • Teilhabe, soziale Stabilität
  • Geräteklassen
  • Vernetzung, Integration und Modularisierung, Zentralisierung/Dezentralisierung, Embedded Systems
  • Smart Grid
  • loT, Industrie 4.0
  • KI, autonome Systeme
  • Big Data
    • 3V-Modell (Velocity, Volume, Variety), 4V-Modell: +Veracity
  • Cloud
  • Augmented Reality, Virtual Reality
  • Internet of Things (IoT), Industrie 4.0
  • Reactive Programming
  • Serverless, Microservices
  • Predictive Maintenance, Streaming Analytics
  • Apps: nativ vs. hybrid vs. cross-platform vs. responsive Web
  • Progressive Web Apps
  • Blockchain, Smart Contracts, Crypto-Currency
  • Container (Docker) und Kubernetes
  • Low-Code-Plattformen

Datenbanken

  • Datentypen: Boolesche Werte, Ganzzahl, Gleitkommawerte, Währung, Datumswerte, Texte fester und variabler Länge, BLOB, Geokoordinaten
  • OpenData, API-Schnittstellen
  • Berücksichtigung vorhandener Datenbank- und Speicherkonzepte bei der Integration und Erweiterung von Bestandssystemen
  • Inbetriebnahme von Speicherlösungen und Integration von Datenbanksystemen
  • Beachten von Schnittstellen zu weiteren Systemen
  • Datenquellen: nicht nur relationelle und schemafreie Datenbanken wie MySQL, MsSQL und MongoDB, sondern auch z. B. Sensoren, CSV-Dateien
  • Begriffe kennen und erläutern
    • Redundanz, Primär-/Fremdschlüssel, Datensatz, INSERT
    • referentielle Integrität
    • Maßnahmen bei Löschoperationen (Constraints): CASCADE, DENY/RESTRICT, SET NULL
    • Replikation erläutern
    • Trigger erklären
  • ACID-Prinzipien für Transaktionen kennen und erläutern (atomicity, consistency, isolation, durability)

Datenbankmodelle

  • Datenbankmodelle unterscheiden, Daten organisieren und speichern sowie Abfragen erstellen
  • Relationale und nicht-relationale Datenbanken
  • NoSQL (dokumentenorientiert, spaltenorientiert, Key/Value-Store, objektorientiert, Graphendatenbank)
    • CAP-Theorem
    • Map/Reduce
    • Eventual Consistency
  • ER-Diagramm, Attribute, Beziehungen, Kardinalitäten, referenzielle Integrität, Aktualisierungsweitergabe, Löschweitergabe, Primärschlüssel, Fremdschlüssel
  • verschiedene Datenbankmodelle, z.B. hierarchisches Modell, Entity-Relationship-Modell, semantische Datenmodelle, objektorientierte Datenmodelle, als theoretische Grundlage für eine Datenbank kennen und nach Einsatzszenario unterscheiden
  • Basiswissen zu verschiedenen Datenbankarchitekturen

Datenbankmodellierung

  • Definieren und Modellieren von Datenbankstrukturen, z.B. Entity-Relationship-Modell, Normalisierung
  • Phasen der Datenbankentwicklung kennen und anwenden
    • externe Phase (Informationsbeschaffung)
    • konzeptionelle Phase (Semantisches Modell)
    • logische Phase (Datenmodell)
    • physische Phase (Datenbankschema)
  • Grundlagen der Datenmodellierung anwenden, z.B. Entitäten, Relationsbeziehungen, Normalisierung, Identifikationsschlüssel

Normalisierung

  • Normalformen erläutern („the key, the whole key, and nothing but the key“)
    • Normalisierung von Datenbanken bis zur 3. Normalform durchführen
  • Anomalien (Einfüge-, Änderungs-, Löschanomlie) erläutern
  • Modellierung von Beziehungen (1:1, 1:n, m:n)
    • mögliche Beispiele: Benutzer/Login (1:1), Benutzer/Bestellung (1:n), Benutzer/Benutzergruppe (m:n)

SQL

  • SQL als normierte Sprache für die weit verbreiteten relationalen Datenbanken zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen anwenden
  • SQL-Abfragen
    • Projektion vs. Selektion
    • DDL, DML, DQL, DCL, TCL
    • CRUD (Create, Read, Update, Delete)
    • SELECT-Aufbau rauf und runter: FROM, WHERE, JOIN, GROUP BY, HAVING, ORDER BY
    • Kreuzprodukt
    • verschiedene Joins erklären (INNER, OUTER LEFT/RIGHT/FULL, Natural, Self)
    • Subqueries
    • Schnitt-, Vereinigungs- und Differenzmenge (INTERSECT, UNION (ALL), MINUS)
    • LIKE-Syntax (Platzhalter)
  • Erstellen einfacher Abfragen von Datenquellen unter Verwendung einer Abfragesprache, z.B. CREATE, ALTER, DROP, RENAME, SELECT, INSERT INTO
  • Datenbankabfrage, Datenpflege
  • Tabellenstruktur (CREATE TABLE, ALTER TABLE), Index (CREATE INDEX), Manipulation (INSERT, UPDATE, DELETE), Projektion (SELECT FROM), Selektion (SELECT FROM …WHERE) und (SELECT … (SELECT …)), Sortieren (ORDER BY), Gruppieren (GROUP BY,HAVING)
  • Abfrage über mehrere Tabellen (JOIN)
  • Ausdrücke und Bedingungen
  • Nutzung von Aggregatsfunktionen, z.B. COUNT, SUM, AVG
  • Komplexe Abfragen aus unterschiedlichen Datenquellen durchführen und Datenbestandsberichte erstellen
  • Tabellenstruktur (CREATE TABLE, ALTER TABLE)
  • Index (CREATE INDEX)
  • Manipulation (INSERT, UPDATE, DELETE)
  • Projektion (SELECT FROM)
  • Selektion (SELECT FROM… WHERE) und (SELECT… (SELECT…))
  • Sortieren (ORDER BY)
  • Gruppieren (GROUP BY, HAVING)
  • komplexe Abfragen, z.B. SELECT…FROM…WHERE, SELECT…FROM…WHERE… AND oder OR, SELECT…FROM…ORDER BY ASC oder DESC, SELECT DISTINCT FROM…, JOIN…, UPDATE…SET, DESCRIBE…, SHOW DATABASES, Subqueries
  • SQL Injection

Qualitätssicherung

  • Ursachen von Qualitätsmängeln systematisch feststellen, beseitigen und dokumentieren
  • Verschiedene Prüfverfahren, z.B. Parität, Redundanz
  • Debugging, Ablaufverfolgung
  • Netzwerkanalyse, Bandbreite, Reaktionszeiten
  • Im Rahmen eines Verbesserungsprozesses die Zielerreichung kontrollieren, insbesondere einen Soll-Ist-Vergleich durchführen
  • Verbesserungsprozess, PDCA-Zyklus, KVP, Kennzahlen
  • Soll-Ist-Vergleich, Abweichungen erkennen und berechnen
  • Sicherheitsaspekte bei der Entwicklung von Softwareanwendungen berücksichtigen
  • Datenintegrität mithilfe von Werkzeugen sicherstellen
  • Constraints
  • Validierungen
  • Transaktionssicherheit
  • übergeordneter Problemlösungsprozess
    • Problemverständnis und -beschreibung (Define)
    • Problemanalyse und Ursachensuche (Measure)
    • Lösungssuche und -auswahl (Analyse)
    • Lösungsrealisierung und -bewertung (Improve)
    • Überprüfung der Wirksamkeit (Control)
  • verschiedene Methoden, insbesondere in den Stadien „Ursachensuche“ und „Analysieren“, kennen und anwenden, z.B.:
    • Ursachensuche: 6-W-Fragetechnik, Störungsmatrix, Histogramm, Verlaufsdiagramm, Korrelationsdiagramm
    • Analysieren: Brainstroming/-writing, Flussdiagramm, Ishikawa-Diagramm, Variablenvergleich, Messsystemanalyse, Komponententausch, Einsatz von Debuggern
  • Lösungsrealisierung bzw. Fehlerbehebung selbst vornehmen oder veranlassen und begleiten
  • Grundlagen/Methoden des Qualitätsmanagements und einer vorbeugenden Qualitätssicherung bei IT-Systemen kennen und anwenden
  • Qualitätsplanung (Ist-Zustand ermitteln und Ziel-Zustand festlegen)
  • Qualitätslenkung (Umsetzung der Planphase)
  • verschiedene Prüfverfahren kennen und bewerten, z. B. auf Parität, Redundanz
  • Grundkenntnisse in der Stochastik (Berechnung von Wahrscheinlichkeiten bei Qualitätsmängeln)
  • Qualitätssicherung (Auswertung relevanter Informationen)
  • Qualitätsgewinn (weitere Umsetzung und Mitteilen der gewonnenen Informationen an die betroffenen Stellen)
  • Qualitätsmanagement als selbstreferenziellen Prozess begreifen (die Verfahren zur Verbesserung lassen sich auch auf den Qualitätsmanagementprozess selbst anwenden)
  • Erstellen und Erweitern von Handbüchern für Benutzer und Systembetreuer
  • Berücksichtigung der Komplexität und Verständlichkeit bei der Nutzung von Herstellerdokumentationen zur Bereitstellung für den Anwender

Testen

  • Software-Test, dynamische und statische Testverfahren (z.B. Black Box, White Box, Review, Extremwertetest, Testdaten)
  • Modultests erstellen und durchführen
  • Testkonzepte erstellen und Tests durchführen sowie Testergebnisse bewerten und dokumentieren
  • Daten und Sachverhalte aus Tests multimedial aufbereiten und situationsgerecht unter Nutzung digitaler Werkzeuge und unter Beachtung der betrieblichen Vorgaben präsentieren
  • Statische und dynamische Testverfahren (z. B. Blackbox-Test, Whitebox-Test, Schreibtischtest, Unit-Test, End to End-Tests, Integrationstests, Belastungstests)
  • Testprozess
    • Auswahl des Testverfahrens
    • Kriterien für Testergebnisse definieren
    • Testdaten generieren und auswählen
    • Testprotokoll und Auswertung
  • Definieren von anwendungsgerechten Tests, z.B. Blackbox-Test, Whitebox-Test, Funktionstest, Modultest, Klassentest
  • Definition der Inhalte eines Tests, z.B. Testkonzepte, Testdaten, Testszenario
  • Beschreiben des Testumfangs, z.B. Grenzbelastung, Stabilität
  • Auswerten von Testergebnissen, z.B. Soll-Ist-Vergleich
  • Testdatengeneratoren
  • Testprotokolle
  • Kontrollverfahren
    • Hardwaretest, z.B. Wareneingangskontrolle, mangelhafte Lieferung, Warenausgangskontrolle, Abnahmeprotokoll
    • SW-Test, z.B. Testverfahren, Abnahmeprotokoll
  • Software-Test, dynamische und statische Testverfahren (z.B. Black Box, White Box, Review, Extremwertetest)
  • Testdaten
  • Komponententest, Funktionstest, Integrationstest
  • Klassifizierung von Testverfahren
    • Wer testet?
    • Mensch (manuell) vs. Maschine (automatisch)
    • Entwickler vs. Benutzer
    • Was wird getestet?
    • Komponente (Unit-Test) vs. Integration vs. System
    • Wie wird getestet?
    • Bottom-Up vs. Top-Down
    • statisch (Kompilierzeit) vs. dynamisch (Laufzeit)
    • ohne Kenntnis des Codes (Blackbox) vs. mit Kenntnis des Codes (Whitebox)
    • explorativ
    • Wann wird getestet?
    • Vor vs. nach der Entwicklung
    • Abnahmetest
    • Warum wird getestet?
    • Regressionstest
    • Lasttest
    • Smoketest
  • Methoden zur Ermittlung von Testfällen
    • Anweisungsüberdeckung/Zweigüberdeckung
    • Äquivalenzklassen
    • Grenzwertanalyse
  • Testpyramide
  • Stubs vs. Mocks

Versionsverwaltung

  • Werkzeuge zur Versionsverwaltung einsetzen
  • Nutzen und Anwenden einschlägiger Systeme, z.B. Git
  • Funktionen, z.B. Commit, Revert, Branch, Merge, Cherry-Pick, Pull/Push
  • Versionsmanagement des Quellcodes
  • Eigenschaften eines Versionsverwaltungssystems beschreiben
    • SVN, CVS, TFS mit Source Safe, Git
    • VCS vs. DVCS
  • Continuous Integration/Deployment

IT-Sicherheit

  • Datensicherheit (Authentifizierung, Autorisierung, Verschlüsselung)
  • Bedrohungsszenarien erkennen und Schadenspotenziale unter Berücksichtigung wirtschaftlicher und technischer Kriterien einschätzen
  • Für jede Anwendung, die verwendeten IT-Systeme und die verarbeiteten Informationen gilt: Betrachtung zu erwartender Schäden, die bei einer Beeinträchtigung von Vertraulichkeit, Integrität oder Verfügbarkeit entstehen könnten!
    • Imageschaden
    • Wirtschaftlicher Schaden
    • Datenverlust
  • Bedrohungsszenarien
    • Datendiebstahl
    • Digitale Erpressung (Ransomware)
    • Identitätsdiebstahl (Phishing)
  • Sicherheitskriterien
    • Richtschnur für Entwickler
    • Objektive Bewertung der Systeme (IT-Grundschutzmodellierung)
    • Anwender/Benutzer bei der Auswahl eines geeigneten IT-Sicherheitsprodukts unterstützen (Security by Design)
  • Kunden und Kundinnen im Hinblick auf Anforderungen an die IT-Sicherheit und an den Datenschutz beraten
    • Private Haushalte
    • Unternehmen (intern, extern)
    • Öffentliche Hand
    • Funktionale Anforderungen
    • Qualitätsanforderungen Anforderungen
    • Rahmenbedingungen
    • Technologisch
    • Organisatorisch
    • Rechtlich
    • Ethisch
    • Risikoanalyse
  • Wirksamkeit und Effizienz der umgesetzten Maßnahmen zur IT-Sicherheit und zum Datenschutz prüfen
  • Device Security Check
  • Identity & Access Management
  • Schwachstellenanalyse (z.B. Ende-zu-Ende-Verschlüsselung)
  • Zutrittskontrolle, z.B. Alarmanlage, Videoüberwachung, Besucherausweise
  • Zugangskontrolle, z.B. Bildschirmschoner mit Passwortschutz, Biometrische Verfahren, Magnet- oder Chipkarte
  • Zugriffskontrolle, z.B. Verschlüsselung von Datenträgern, Löschung von Datenträgern, User/Rollenkonzept
  • Log Management
  • Compliance Reports
  • unterschiedliche Gefahrenquellen, z.B. Stromausfall, Überhitzung, Virenbefall
  • geeignete Gegenmaßnahmen, z.B. USV-Anlagen, Klimageräte, Firewalls
  • Einteilung in die drei Schutzbedarfskategorien „normal“, „hoch“ und „sehr hoch“ (analog IT-Grundschutz des BSI)
  • Informationspflichten zu Produkten, Namens- und Markenrecht, Urheber- und Nutzungsrecht, Persönlichkeitsrecht, unlauterer Wettbewerb
  • IT-Sicherheitsregeln
  • verschiedene IT-Sicherheitszertifizierungen
  • Bundesamt für Sicherheit in der Informationstechnik (BSI) als Informationsplattform
  • Basis-Sicherheitscheck für schnellen Überblick über das vorhandene IT-Sicherheitsniveau, z.B. als Soll/Ist-Abgleich der noch fehlenden Maßnahmen oder Interviews über den Status quo eines bestehenden Informationsverbundes
  • ergänzende Sicherheitsanalyse mit Risikoanalyse (BSI-Standards 100-3)
  • Sicherheitstest einzelner Rechner oder Netzwerke jeglicher Größe, z.B. durch Penetrationstest (auch Social-Engineering-Penetrationstest) gem. Klassifikationsschema des BSI
  • Durchführung in einem fünfstufigen Prozess
    • Vorbereitungsphase
    • Informationsbeschaffung
    • Bewertung der Informationen
    • Versuch des aktiven Eindringens
    • Auswertung der Ergebnisse
  • mögliche Software, Portscanner, Sniffer, Paketgeneratoren, Passwortcracker, Verbindungsinterceptoren, Vulnerability Scanner etc. (siehe auch Open Vulnerability Assessment System – OpenVAS – unterstützt durch das BSI)
  • Begriffe kennen/erläutern
    • Hacker (White Hat, Black Hat), Cracker, Script-Kiddies
    • Spam, Phishing, Sniffing, Spoofing, Man-in-the-Middle
    • SQL-Injection, XSS, CSRF, Session Hijacking, DoS, DDoS
    • https://xkcd.com/327/
    • Viren, Würmer, Trojaner, Hoax, Dialer (veraltet), Keylogger, Botnetze, Spyware, Adware, Ransomware, Scareware
    • Backdoor, Exploit, 0-Day-Exploit, Rootkit
    • Verbreitung von Viren/Würmer/Trojaner erläutern
  • Maßnahmen zur Angriffserkennung, z.B. Monitoring, Honeypot

Datenschutz

  • Datenschutzgrundverordnung (DSGVO)
  • Datenschutz (Integrität und Authentizität von Daten, Digitale Signatur, Verschlüsselungsverfahren, Archivierung (Systeme, Fristen, Pflichten))
  • Grundsätze des Datenschutzes
    • Gesetzmässigkeit (Erfordernis der gesetzlichen Grundlage)
    • Verhältnismässigkeit (Datensparsamkeit und Datenvermeidung (§3a BDSG))
    • Zweckbindung
    • Richtigkeit/Integrität
    • Transparenz gegenüber den betroffenen Personen
    • Informationssicherheit
  • Archivierung (rechtliche Vorgaben, Unterschied zu Backup, technologische Anforderungen)

Netzwerktechnik

  • Netzwerkkonzepte für unterschiedliche Anwendungsgebiete unterscheiden
  • Datenaustausch von vernetzten Systemen realisieren
  • Verfügbarkeit und Ausfallwahrscheinlichkeiten analysieren und Lösungsvorschläge unterbreiten
  • Maßnahmen zur präventiven Wartung und zur Störungsvermeidung einleiten und durchführen
  • Störungsmeldungen aufnehmen und analysieren sowie Maßnahmen zur Störungsbeseitigung ergreifen
  • Dokumentationen zielgruppengerecht und barrierefrei anfertigen, bereitstellen und pflegen, insbesondere technische Dokumentationen, System- sowie Benutzerdokumentationen
  • Auswerten, Dokumentieren und Weiterleiten von Informationen und Störungsmeldungen
  • Ergreifen von Maßnahmen zur Problembeseitigung und ggf. fachlicher Austausch mit Systemlieferanten
  • ggf. Weiterleitung zur jeweiligen Fachabteilung oder Systemspezialisten
  • IPv4/IPv6
  • MAC
  • Routing
  • Switching
  • ARP
  • Datenübertragungsrate
  • Verschlüsselung (preshared key, RADIUS …)
  • LAN//WAN/MAN/GAN
  • Strukturierte Verkabelung
    • primäre/sekundäre/tertiäre Verkabelung
    • Kabeltypen
    • Simplex, Halb-/Vollduplex
    • 10/100/1000Base-T
    • Twisted Pair, CAT5e/6/7 etc.
    • Fibre Channel, Lichtwellenleiter
    • DIN EN 50173-1
    • EM-Verträglichkeit
  • VLAN
  • Drahtlos: PAN/WLAN
  • Sicherheitskonzepte und -risiken
  • Bluetooth
  • Netzwerktopologie
  • Netzwerkplan
  • TCP/UDP
  • HTTPS
  • VPN
    • Funktionsweise und Vorteile von VPN beschreiben
    • Protokolle/Ports, Verschlüsselungsverfahren
    • L2TP, PPTP, IPSec
    • VPN-Modelle
  • Tunneling
  • IPsec
  • DNS
  • DHCP
  • Proxy
  • Echtzeitkommunikation sichersteilen können
  • Mailserver
  • Webserver
  • Groupware
  • Datenbanken
  • PDCA-Zyklus
  • MTBF
  • ANR
  • Notfallkonzept (Disaster Recovery)
  • Sicherstellung des Betriebs
    • Elektrotechnisch (USV)
    • Hardwaretechnisch (Redundanzen), RAID
    • Softwaretechnisch (Back-ups…)
  • SNMP, S.M.A.R.T. u.Ä.
  • Systemlastanalyse
  • Predictive Maintenance
  • Clustering, Load Balancing
    • Round Robin
  • Incident Management (Ticketsystem)
  • Standard Operation Procedures (SOP)
  • Service Level Agreement (SLA), Service level 1 -3

Speicherlösungen

  • Sicherheitsmechanismen, insbesondere Zugriffsmöglichkeiten und -rechte, festlegen und implementieren
  • Speicherlösungen, insbesondere Datenbanksysteme, integrieren
  • Zugangskontrollen (z.B. Gebäude, Serverraum, Schrank)
  • Implementierung und Inbetriebnahme des Zugriffs auf lokale und vernetzte Speicherlösungen sowie vernetzten Systemen, z.B. SAN, NAS
  • Berücksichtigung der Organisationsstrukturen im Unternehmen unter Beachtung von örtlichen Vorgaben
  • Berechtigungskonzepte, Organisationsstrukturen (Zugang, Zutritt, Zugriff)
  • Usermanagement
  • Firewall/Webfilter
  • Portsecurity
  • Verschlüsselung (TPM)
  • Fog, Cloud
  • SaaS, XaaS
  • Data Warehouse
  • Data Lake
  • SCSI
  • SMB
  • NFS
  • Ethernet, FibreChannel

Softwareentwicklung

  • Programmspezifikationen festlegen, Datenmodelle und Strukturen aus fachlichen Anforderungen ableiten sowie Schnittstellen festlegen
  • Programmiersprachen auswählen und unterschiedliche Programmiersprachen anwenden
  • Teilaufgaben von IT-Systemen automatisieren
  • Datenbankverbindung implementieren
  • API
  • Shellprogrammierung (z.B. PowerSheli, Bash)
  • Skriptprogrammierung (z.B. Python)
  • Bestehende Anwendungslösungen anpassen
  • Datenaustausch zwischen Systemen realisieren und unterschiedliche Datenquellen nutzen
  • Allgemeines Fehlerhandling in Programmen
  • Systematisch Fehler erkennen, analysieren und beheben
  • Debugging, Break Point
  • wiederkehrende Systemabläufe automatisieren und überwachen
  • herstellerabhängige Skriptbausteine und -sprachen anwenden, z.B.: Linux, PowerShell
  • Berücksichtigung anwendungsspezifischer Möglichkeiten, z.B. Makrosprache
  • Optmieren und Automatisieren lokaler und netzwerkübergreifender Aufgaben
  • Rechnerarchitektur: CPU, BUS, Speicher und deren Adressierung
  • Arten von Software unterscheiden (Individual-/Branchensoftware)
    • ERP, CRM, CAD, CMS, DMS, PPS, ECM
  • Programmierparadigmen: unstrukturiert, strukturiert, prozedural, funktional, OO, logisch
  • Unterschied syntaktische/semantische Fehler

Algorithmen

  • Algorithmus: präzise (eigentlich von IT-Systemen unabhängige) Formulierung einer Verarbeitungsvorschrift
  • Algorithmen formulieren und Anwendungen in einer Programmiersprache erstellen
  • Abbildung der Kontrollstrukturen mittels Struktogramm, PAP oder Pseudocode als didaktisches Hilfsmittel
  • grundlegende Algorithmen kennen, eigene Algorithmen auch programmiersprachenfrei formulieren und zur Lösung von Problemen, z.B. in einem IT-System bzw. einer Softwareanwendung einsetzen
  • Entwickeln und Darstellen von Programmlogiken unabhängig von der Programmiersprache, z.B. mithilfe von Struktogrammen nach Nassi-Shneidermann sowie Strukturdiagrammen und Verhaltensdiagrammen aus der UML
  • Pseudocode
  • Struktogramm
  • PAP
  • Rekursion
  • Kontrollstrukturen
    • allgemeine Programmstrukturen identifizieren/erläutern (Schleifen etc.)
    • grundlegende Kontrollstrukturen in allen Diagrammformen (PAP (Programmablaufplan), Nassi-Schneiderman/Struktogramm) darstellen können
    • Merkmale/Unterschiede von Kontrollstrukturen (Schleifen, Fallunterscheidungen)
    • Zustandsübergänge eines Zustandsautomaten abbilden
  • Reguläre Ausdrücke zur Textanalyse erstellen
  • Algorithmen implementieren/durchspielen
    • Mittelwert
    • doppelte Einträge in einem Array finden/löschen
    • Dateibäume rekursiv kopieren
    • (Zinses-)Zinsberechnung
    • Planen eines regelmäßigen Backups
    • Ablauf einer Benutzerauthentifizierung an einer Website
    • Abbuchen von einem Konto
    • Lineare Suche
    • Binäre Suche
    • Bubble Sort

Schnittstellen, APIs, Datenaustausch

  • Datenaustauschformate (XML, JSON)
  • CSV
  • XML
    • Wohlgeformtheit, Validität
    • Parser, Serialisierer
    • SAX, DOM
    • vs. SGML, HTML, CSV, JSON, YAML etc.
    • DTD, Schema, RelaxNG, Schematron
    • XSLT, XSL-FO
  • JSON
  • REST
  • SOAP

Objektorientierung

  • Prinzipien der OOP
    • Begriffe der OOP erläutern: Attribut, Nachricht/Methodenaufruf, Persistenz, Schnittstelle/API/Interface, Polymorphie, Vererbung
    • Bestandteile von Klassen
    • Unterschied Klasse/Objekt
    • Unterschied Klasse/Interface
    • Erklärung Klassenbibliothek
    • Klassenbeziehungen: Assoziation, Aggregation, Komposition, Spezialisierung, Generalisierung
  • Generische Klassen
    • Vorteile generischer Container (Templates in C++) gegenüber Arrays
  • Unterschied statische/nicht-statische Methoden
  • Datenstrukturen
    • Queue, Bäume, Stack, Heap

Programmiersprachen

  • Programmiersprachen vergleichen
    • Performance, Speicherverbrauch
    • Portabilität
    • Framework/Bibliotheken
    • Programmierparadigma (Skriptsprache, Compilersprache)
    • Einsatz von integrierten Entwicklungsumgebungen
    • Aufwand
    • Know-how/Fachkenntnis
  • Eigenschaften funktionaler Programmierung: Functions as „First Class Citizens“, Pure Functions, Higher Order Functions, Immutability, Fokus auf Rekursion (Tail Call Optimization), Pattern Matching
  • Typisierung: stark vs. schwach, statisch vs. dynamisch
  • Klassifizierung von Programmiersprachen anhand von Typisierung, Paradigma, Compiler/Interpreter, Abstraktionsniveau, C-ähnlich oder nicht
  • deklarativ vs. imperativ
  • synchrone vs. asynchrone Programmierung
  • Herausforderungen paralleler Programmierung
  • Unterschied Interpreter/Compiler
  • 3GL/4GL
  • die gängigen Programmiersprachen kennen (PHP, Perl, Java, C, C++, C#, JavaScript, Delphi, Visual Basic, VBA, Ruby, Python, Cobol, F#, Lisp, Prolog, Assembler)
    • Unterschiede bei der Programmierung/Ausführungsgeschwindigkeit in C, Java und JavaScript

UML

  • wichtige UML-Diagramme (UseCase-, Klassen-, Sequenz-, Aktivitätsdiagramm, Zustandsautomaten, Komponentendiagramm, Verteilungsdiagramm) kennen und Einsatzgebiete erläutern
  • UML-Klassendiagramm
  • UML-Aktivitätsdiagramm
  • UML-Anwendungsfalldiagramm
  • UML-Sequenzdiagramm
  • UML-Zustandsdiagramm
  • UML: Klassendiagramm, Anwendungsfalldiagramm, Zustandsdiagramm, Aktivitätsdiagramm, Sequenzdiagramm
  • UML (Use Case, Klassendiagramm)

Softwarearchitektur

  • Anwendungslösungen unter Berücksichtigung der bestehenden Systemarchitektur entwerfen und realisieren
  • Berücksichtigung bestehender Systeme und Altsysteme
  • Anpassung bzw. Weiterentwicklung bestehender Software an eine neue Umgebung
  • Bottom-Up- und Top-Down-Verfahren bei der Modellierung erläutern
  • Funktion/Vorteile der Modularisierung von Programmen
  • Softwarearchitektur
    • Webservice
    • Microservices
    • Model View Controller (MVC)
    • Model View Presenter (MVP)
    • Model-View-ViewModel (MVVM)
    • Service Oriented Architecture (SOA)
  • verteilte Anwendungen
    • Webservices
    • Microservices
    • Client-Server
    • Cloud
  • Layers/Schichten/3-Tier, MVC, MVVM, SOA, Microservices, REST, Pipes and Filters, Monolith
  • Zustandslosigkeit, lose Kopplung

Softwareergonomie

  • Mock-up
  • Usability
  • User-Experience
  • Entwurf der Bildschirmausgabemasken (Softwareergonomie, Barrierefreiheit)
  • Benutzerschnittstellen ergonomisch gestalten und an Kundenanforderungen anpassen
  • Richtlinien bei der Gestaltung von Programmoberflächen
    • Aufgabenangemessenheit, Selbstbeschreibungsfähigkeit, Lernförderlichkeit, Steuerbarkeit, Erwartungskonformität, Individualisierbarkeit, Fehlertoleranz (siehe Grundsätze der Dialoggestaltung)
  • Barrierefreiheit

Software Engineering

  • Vorgehensmodelle und -methoden sowie Entwicklungsumgebungen und -bibliotheken auswählen und einsetzen
  • Analyse- und Designverfahren anwenden
  • Wasserfallmodell
  • Iterative Modelle (z. B. Spiralmodell, V-Modell)
  • Agile Modelle
  • Top-Down-Entwurf
  • Bottom-Up-Entwurf
  • Modularisierung
  • Entwicklungswerkzeuge: Editor, IDE, Programmgenerator, Linker, Compiler, Interpreter, Debugger, Testsoftware, Versionsverwaltung
  • Erstellen von Spezifikationen von Daten- und Programmstrukturen auf angemessenem Abstraktionsniveau
  • Nutzung von Prinzipien einer systematischen Programmierung nutzen (Strukturierung, Modularisierung, Mehrfachverwendung, Standardisierung)
  • Anpassung aufgrund kundenspezifischer Anforderungen
  • Entwicklungsprozesse
    • Wasserfall, V-Modell (XT), Spiralmodell, Scrum, Extreme Programming, Kanban

Design Patterns

  • Design Patterns kennen/erklären
    • Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator, Template Method, Registry, MVC

Softwarequalität

  • Beachten von Qualitätskriterien beim Programmieren (Korrektheit, Robustheit, Performanz, Wartbarkeit, Energieeffizienz) mit branchentypischen Werkzeugen, Editoren, Entwicklungsumgebungen
  • Anforderungen: Änderbarkeit, Benutzbarkeit, Effizienz, Funktionalität, Übertragbarkeit, Zuverlässigkeit, Normen anwenden
  • Definition Software-Qualität
  • Software-Qualitätsmerkmale nach ISO 9126 nennen und erläutern
    • Funktionalität, Portabilität, Wartbarkeit, Effizienz, Zuverlässigkeit, Benutzbarkeit
    • https://de.wikipedia.org/wiki/ISO/IEC_9126#/media/Datei:ISO_9126_quality_(de).svg
  • Maßnahmen zur Qualitätssicherung (Audits, Reviews, Testmethoden, Entwicklungsprozess)

Webentwicklung

  • dynamische Websites (CGI, ASP, JSP)
    • Applet und Servlet unterscheiden
  • Web 2.0
    • Social Networks, Wikis, Blogs, Twitter, Forum, Podcast
  • AJAX
    • Vor-/Nachteile
    • Funktionsweise
  • REST
  • RIA
  • Anforderungen durch Mobilgeräte
    • Offline-Fähigkeit, Deployment auf mehrere Plattformen, verschiedene Programmiersprachen, native Apps vs. HTML5/JavaScript, geringe Bandbreiten, kleine Auflösungen
  • Angriffsmöglichkeiten gegen Anwendungen abgrenzen
    • SQL-Injection, XSS, CSRF, Session Hijacking, DoS, DDoS