zurück

ITS – Software Development

Hersteller
Certiport
Prüfungsdauer
50 Minuten
Anzahl der Fragen
35–45 Fragen
Prüfungssprachen
Englisch, Französisch und andere Sprachen

Zielgruppe

Kandidatinnen und Kandidaten dieser Prüfung möchten grundlegende Fähigkeiten in der Softwareentwicklung nachweisen, darunter objektorientierte Programmierung, Webanwendungen und Datenbanken. Von ihnen wird etwas Erfahrung mit C# und ANSI SQL erwartet. Kandidatinnen und Kandidaten sollten über mindestens 150 Stunden Unterricht oder praktische Erfahrung mit Konzepten rund um Programmierung, Softwareentwicklung, objektorientierte Programmierung, Webanwendungen und Datenbanken verfügen. Für ein erfolgreiches Bestehen der Prüfung werden zusätzlich die folgenden Vorkenntnisse und Fähigkeiten erwartet: HTML; CSS; JavaScript; mindestens eine objektorientierte Sprache (C#, Java, C++); SQL-Abfragen, XML, JSON.

Kompetenzbereiche und Prüfungsziele

1Grundlegende Programmierkonzepte

  1. 1.1Computerspeicher und Datentypen beschreiben
    • Wie ein Computer Programme und Anweisungen im Arbeitsspeicher ablegt, Stack und Heap, Speicherbedarf verschiedener Datenspeicherarten, numerische und textuelle Daten, Speicherbereinigung (garbage collection)
  2. 1.2Algorithmen und Flussdiagramme zur Lösung von Programmieraufgaben erstellen und analysieren
    • Verzweigungsstrukturen, die in allen Programmiersprachen verwendet werden; if-Verzweigungen; mehrfache Verzweigungen wie if...else und switch; Flussdiagramme lesen und erstellen; Entscheidungstabellen; Ausdrücke auswerten; for-Schleifen, while-Schleifen, do...while-Schleifen; Rekursion
  3. 1.3Fehlerbehandlung in Anwendungen oder Module einbauen
    • Strukturierte Ausnahmebehandlung (try-catch-finally), Unittests, Ausnahmen auslösen, den Stack lesen, defensives Programmieren, Gültigkeitsbereiche in der Ausnahmebehandlung verstehen, auf die Konsole schreiben, Haltepunkte, Step-Into, Step-Over
  4. 1.4Code auf Grundlage funktionaler Programmiermuster erstellen und analysieren
    • Event, Delegate, Promises, synchrone gegenüber asynchroner Programmierung (AJAX, XHR), Unveränderlichkeit

2Grundsätze der Softwareentwicklung

  1. 2.1Die Steuerung des Softwareentwicklungslebenszyklus (SDLC) beschreiben
    • Anforderungsanalyse, Planung und Entwurf, Umsetzung, Test, Bereitstellung, Wartung, Agile-Konzepte (SCRUM, Sprints, Product Owner, Beteiligte); Testarten (Unit-, Integrations-, System-, Abnahme-, Smoke-, Leistungs- und Lasttest)
  2. 2.2Anwendungsspezifikationen auslegen
    • Anwendungsspezifikationen lesen und in Prototypen und Code überführen, den passenden Anwendungstyp und die passenden Komponenten auswählen, generative KI zur Recherche des besten Vorgehens einsetzen
  3. 2.3Code erstellen und analysieren, der Algorithmen und Datenstrukturen verwendet
    • Arrays, Stacks, Queues, verkettete Listen, Dictionaries (Schlüssel-Wert-Paare), Sortieralgorithmen (Selection Sort, Bubble Sort, Quick Sort, Merge Sort), Suchalgorithmen (lineare Suche, binäre Suche), Leistungsauswirkungen verschiedener Datenstrukturen, Wahl der richtigen Datenstruktur, FIFO, LIFO
  4. 2.4Den Zweck von Versionsverwaltungssystemen beschreiben
    • GitHub, Check-in, Check-out, Merge, Branch, Rollback, Clone, Konflikte auflösen, Code Review
  5. 2.5Konzepte sicherer Programmierung beschreiben
    • Verschlüsselung, Hashing und digitale Signaturen; öffentliche, private und gemeinsame Schlüssel; Cross-Site Request Forgery (csrf) abwehren; SQL Injection; Risiken der Verwendung von iframes

3Objektorientierte Programmierung

  1. 3.1Klassen erstellen, analysieren und verwenden
    • Eigenschaften, Methoden, Ereignisse, Felder und Konstruktoren; wie Klassen erstellt werden; wie Klassen im Code verwendet werden; Zugriffsmodifizierer; Instanziierung; statisch gegenüber Instanz; Kapselung; Komposition
  2. 3.2Code erstellen und analysieren, der Vererbung verwendet
    • Die Funktionalität einer Basisklasse in eine abgeleitete Klasse vererben, generische Klassen, abstrakte Klassen
  3. 3.3Code erstellen und analysieren, der Polymorphie verwendet
    • Die Funktionalität einer Klasse nach dem Erben von einer Basisklasse erweitern, Methoden in der abgeleiteten Klasse überschreiben, Schnittstellen, Überladen

4Webanwendungen

  1. 4.1Webanwendungen erstellen und analysieren
    • HTML5, CSS3 und JavaScript ES6; Entwicklerwerkzeuge des Browsers; HTTP-Anfrage und -Antwort; Zustandsverwaltung; Cookies, local und session storage; Seitenlebenszyklus; Ereignismodell; Programmierung auf Client- gegenüber Serverseite
  2. 4.2Webhosting beschreiben und konfigurieren
    • Virtuelle Verzeichnisse und Websites erstellen, Webanwendungen veröffentlichen, Aufgabe des Webservers
  3. 4.3Webdienste beschreiben und konfigurieren
    • Webdienste, die von Clientanwendungen genutzt werden, Zugriff auf Webdienste aus Clientanwendungen, JSON, REST API, oAuth, XML
  4. 4.4Architekturmuster beschreiben und erkennen
    • Model-View-Controller (MVC), Model-View-ViewModel (MVVM), Single Page Application (SPA)

5Datenbanken

  1. 5.1Eine Datenbank entwerfen und normalisieren
    • Merkmale und Möglichkeiten von Datenbankprodukten, Datenbankentwurf, Entity-Relationship-Diagramme (ERDs), Normalisierungskonzepte (bis 3NF), Indizes, Einschränkungen, Primärschlüssel, Fremdschlüssel, Beziehungen, Kardinalität
  2. 5.2ANSI-SQL-Abfragen erstellen, analysieren und optimieren
    • Gespeicherte Prozeduren erstellen und aufrufen, Daten aktualisieren und auswählen, DML gegenüber DDL, Funktionen, Trigger, Cursor, Joins, Indizes
  3. 5.3Transaktionen verwalten
    • Commit, Rollback, Save, Nebenläufigkeit, Isolationsstufen, Sperre
  4. 5.4Zugriffsverfahren auf Datenbanken beschreiben
    • Entity Framework (Code-first, Database-first), Verbindungspools, LINQ
  5. 5.5Arten von NoSQL-Datenbanken beschreiben
    • Dokumentdatenbanken, Schlüssel-Wert-Datenbanken