Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Abschlussprüfung Teil 2 - Anwendungsentwicklung

Prüfungsvorbereitung für Teil 2 der gestreckten Abschlussprüfung der Fachinformatiker für Anwendungsentwicklung.

Allgemein 💭

Im zweiten Teil der Abschlussprüfung kommen spezifisch für den Fachbereich Prüfungsfragen dran.

Aufbau

GA 1 - Planung eines Softwareprojektes 🎛️

Im ersten Teilbereich geht es um die Planung eines Softwareprojektes. Ich kann mir vorstellen das es Überschneidungen zu Teil 1 der Prüfung geben könnte.

GA 2 - Umsetzung des Softwareprojektes 🏗️

Hier geht es dann schon mehr um die Programmierung. Wobei sehr gern Diagramme benutzt werden. Klar wird auch mal Pseudocode abgefragt aber ein großer Teil besteht aus den UML - Diagrammen. Diese sollten sitzen.

Aufbau und Ablauf der Abschlussprüfung

1 - GA1 - Planung eines Softwareprojektes

Planung eines Softwareprojektes ist der erste Prüfungsteil der gestreckten Abschlussprüfung Teil 2. In diesem geht es um die Planung eines Softwareprojektes.

Hier gibt es größere Überschneidungen zu der gestreckten Abschlussprüfung Teil 1. Es geht in diesem Kapitel um Projektmanagement explizit in der Softwareentwicklung und dessen Methoden. Es schadet sicher nicht die bereits für Teil 1 gelernten Inhalte die hier nicht aufgeführt sind zu wiederholen.

Themen die bereits in Prüfungsteil 1 behandelt wurden werden auf dieser Seite nicht noch einmal explizit aufgelistet und gelten als bekannt.

1.1 - Anforderungsanalyse

Ziel der Anforderungsanalyse ist es, die Anforderungen des Auftraggebers an das zu entwickelnde System zu ermitteln, zu strukturieren und zu prüfen.

Anforderungen werden textlich oder in Modedellen dokumentiert und gesammelt. Durch eine Analyse wird ein gewisses Verständnis für diese Anforderungen hergestellt. Anschließen findet ein Überprüfungsprozess statt. In diesem Prozess wird überprüft ob die Anforderung so noch stimmig sind. All diese Schritte laufen in einem Verwaltung und Management Prozess ab.

Wikipedia

2 - GA2 - Umsetzung eines Softwareprojektes

Teil 2 der Vorbereitung auf die gestreckten Prüfung für die Ausbildung Fachinformatiker Anwendungsentwickler.

In diesem Teil der Abschlussprüfung geht es um die Umsetzung eines Software-Projektes. Zumindest in der Theorie und auf Papier😉 Häufiger Bestandteil dieser Prüfung sind die UML-Diagramme. Aber auch SQL und das entwerfen eines Relationalen-Datenbank-Schemas.

2.1 - UML ~ Zustandsdiagramm

Das im UML Standard beschriebene Zustandsdiagramm dient dazu eine Folge an Zuständen eines Objektes zu betrachten.

Erklärungsvideo Zustandsdiagramm 📹

2.2 - UML ~ Aktivitätsdiagramm

Mit dem UML Aktivitätsdiagramm können Abläufe mit sogenannten Aktivitäten sinnvoll dargestellt werden.
  • Auch Flussdiagramm genannt

Elements

Name Darstellung
Start Start Aktivitätsdiagramm UML
End End Aktivitätsdiagramm UML
Activity Activity Aktivitätsdiagramm UML
Condition Condition Aktivitätsdiagramm UML

Erklärungsvideos Aktivitätsdiagramm 📹

Basics

Swimlanes und Nebenläufigkeit

IONOS Aktivitätsdiagramm

2.3 - UML ~ Use-Case-Diagramm

Mit Use-Case-Diagrammen des UML Standards, können verschiedene Fälle dargestellt werden, wie aus verschiedenen Ansichten des Users ein Produkt funktionieren soll.
  • Alternative Namen: Anwendungsdiagramm / Anwendungsfalldiagramm
  • Keine Abläufe
  • Funktionalität der Software aus einer Sicht des Anwenders
  • Unabhängig von technischer Realisierung
  • Komplexes System einfach darstellen => Hohes Abstraktionsniveau

Vorgehen beim Erstellen

  • Ermittle die Akteure
  • Ermittle die Standard Use-Cases
  • Ermittle Sonderfall-Use-Cases
  • Komplexe Use-Cases aufteilen

Use Case Diagramm

Assoziation

Assoziation

Include-Beziehung

Durch die Include Beziehung kann ein Use-Case einen anderen Use-Case importieren. Besser gesagt der Use-Case importiert das Verhalten des anderen Use-Cases.

⚠️ Verhalten wird immer importiert ⚠️

Include

Vererbung

Bei der Vererbung werden die Eigenschaften eines Use-Cases oder eines Akteurs an ein weiteres Element übergeben / vererbt.

Vererbung

Extend-Beziehung

  • Optionale Erweiterung eines Use-Cases
  • Abhängig von einer Bedingung

Extend

Erklärungsvideo Use-Case-Diagramm 📹

2.4 - UML ~ Sequenzdiagramm

Ein Sequenzdiagramm aus dem UML Standard beschreibt Abläufe. Es zeigt die Interaktionen von Objekten in einer grafischen Zeitlinie.

Sequenzdiagramm

Erklärungsvideo Sequenzdiagramm 📹

2.5 - UML ~ Klassendiagramm

Mit dem Klassendiagramm aus dem UML Standard, können Klassen in einem universellen Format dargestellt werden.

Klasse

Zugriffsmodifikatoren

Zeichen Sichtbarkeit
+ Public
- Private
# Protected
~ Package

Vererbung

Vererbung

Assoziation

Assoziation

Komposition

  • Noch stärkere Bindung als Aggregation
  • Eine Teil-Klasse kann nicht ohne eine andere Klasse existieren

Komposition

Aggregation

  • Klassen besitzen starke Beziehung
  • Existenzen der einzelnen Klassen ist nicht aneinander gebunden
  • Zeigt eine “Art” Besitz an

Aggregation

Multiplizitäten

Multiplizität Alternative Schreibweise Beschreibung
0…1 Keiner oder Einer
1 Genau Einer
0…* * Null oder beliebig viele
1…* Beliebig viele - Mindestens 1

Multiplizitäten

Erklärungsvideo Klassendiagramm 📹

2.6 - MVC - Pattern

Model View Controller pattern ist ein in der Softwareentwicklung ansässiges Pattern. Das Pattern wird benutzt um die Benutzeroberflächen von Software zu entwerfen. Groß wurde das Pattern mit Web-Applikationen. Wobei es jedoch schon früher eingesetzt wurde.

MVC-Process

Komponenten

Außer das Aufteilen einer App in die folgenden Komponenten definiert dies Pattern auch die Kommunikation zwischen den einzelnen Teilen.

  • Modell: Verantwortlich für das Management der Daten der App. Bekommt den User-Input vom Controller.
  • View: Rendert die Präsentation der Anwendung in welcher Form das auch immer sein muss
  • Controller: Reagiert auf den Input von Usern und interagiert mit dem Modell. Er empfängt Input validiert ihn gegebenenfalls und gibt ihn dann an das Modell weiter.

Modell

Das Modell ist die Zentrale Komponente des Patterns. Es ist die unter Umständen dynamische Datenstruktur der App. Es ist unabhängig vom User-Interface.

View 🌄

Die View beinhaltet alle möglichen Arten der Präsentation der Daten. Es sind auch mehrere Views für die selben Daten möglich. Dies kann nützlich sein wenn eine Information für verschiedene Personengruppen dargestellt werden soll.

Zum Beispiel: Diagramme, Tabellen

Controller 🎮

Der Controller verarbeitet Input und wendet diesen anhand von Befehlen an Model oder View an.

Wikipedia
FreeCodeCamp

2.7 - Observer - Pattern

Im Observer Pattern gibt es ein Objekt. Dieses Objekt benachrichtigt alle Objekte die eine Abhängigkeit zu dem Start-Objekt haben. Zum Beispiel durch einen Methodenaufruf. So kann Event-Basierter Code geschrieben werden.

Wikipedia

2.8 - Objektorientierung

Die Objektorientierung ist eine Programmierungstechnik mit bestimmten Konzepten. So liegt der Fokus dieser Technik auf einem bestimmten Objekt.

⚠️Achtung⚠️ nicht alle Programmiersprachen weisen dieses Paradigma auf! (Zum Beispiel: Funktionale Programmiersprachen)

Unterschied zwischen Objekt / Instanz und Klasse 📘

Klasse 📘

Eine Klasse ist ein Bauplan. In diesem Bauplan werden Methoden, Funktionen und Attribute festgelegt.

Objekt / Instanz 🚗

Ein Objekt wird aus einer Klasse erschaffen quasi nach dem Bauplan gebaut. Dies ist in der Objektorientierung der Baustein der Daten und Funktionalitäten dann tatsächlich auch ausführt bzw. trägt.

Kapselung 💊

Die in den Objekten enthaltenen Methoden, Funktionen und Attribute werden gekapselt. So wird der Zugriff auf diese eingeschränkt. Dies passiert durch sogenannte Zugriffsbeschränkungen (public, private). So kann sichergestellt werden, dass das Objekt immer in einem korrekten Zustand ist. Außerdem werden so ungewollte Fehler vermieden. Der interne Code wird quasi abgeschottet und der Zugriff darauf erfolgt nur über darauf ausgelegte Schnittstellen.

Beispiel

public class Pen
{
    private bool _canStillWrite;

    public bool GetCanStillWrite()            // Public: Alle dürfen den Wert von "_canStillWrite" abfragen
    {
        return _canStillWrite;
    }
    
    private void SetCanStillWrite(bool value) // Privat: Nur innerhalb dieser Klasse darf der Wert gesetzt werden
    {
        _canStillWrite = value;
    }
}

Vererbung 🔗

Bei der Vererbung können Attribute und Methoden zwischen Klassen hierarchisch ausgetauscht und ergänzt werden. Das bedeutet wenn eine Klasse von einer Basisklasse erbt dann übernimmt die Klasse alle Attribute sowie Methoden der Basisklasse. Sie hat diese geerbt. Die erbende Klasse kann auch Subklasse genannt werden.

Polymorphie

Die Eigenschaften der Polymorphie treten in Zusammenhang mit Vererbung und Interfaces auf. Polymorphie ist wenn einer Variable unterschiedliche Typen zugewiesen werden können und dann je nach Typ eine andere Implementierung aufgerufen wird.

Beispiel

public class Shape
{
    // A few example members
    public int X { get; private set; }
    public int Y { get; private set; }
    public int Height { get; set; }
    public int Width { get; set; }

    // Virtual method
    public virtual void Draw()
    {
        Console.WriteLine("Performing base class drawing tasks");
    }
}

public class Circle : Shape
{
    public override void Draw()
    {
        // Code to draw a circle...
        Console.WriteLine("Drawing a circle");
        base.Draw();
    }
}
public class Rectangle : Shape
{
    public override void Draw()
    {
        // Code to draw a rectangle...
        Console.WriteLine("Drawing a rectangle");
        base.Draw();
    }
}
public class Triangle : Shape
{
    public override void Draw()
    {
        // Code to draw a triangle...
        Console.WriteLine("Drawing a triangle");
        base.Draw();
    }
}

Wikipedia
Häufige Fragen im Fachgespräch zu Objektorientierung

2.9 - SQL / MySQL

SQL ist eine Sprache zur Abfrage von relationalen Datenbanken.

In diesem Fall wird der SQL-Dialekt MySQL beschrieben.

SQL ist eine sehr beliebte Aufgabe in der alten Prüfungsverordnung gewesen. Für die Prüfung ist dieses Wissen ein muss.

In der Prüfung ist bei SQL eine Cheatsheet beigelegt. Es lohnt sich diese anzuschauen und fehlende Syntax auswendig zu lernen.

Datentypen

Typ Beschreibung
INT, INTEGER Ganze Zahlen, 32 Bit, -2 Mrd. bis +2 Mrd.
SMALLINT Ganze Zahlen, 16 Bit, -32768 bis 32767
BIGINT 64 Bit, -263 bis 263-1 (falls vorhanden)
DECIMAL(p,s) Festkommatyp (p Dezimalstellen insgesamt, s Dezimalstellen hinter dem Komma)
FLOAT Gleitkommatyp, 32 Bit
DOUBLE Gleitkommatyp, 64 Bit
BOOLEAN False, True (0 oder 1)
BLOB, (LONG BLOB, MEDIUM BLOB) Binary large object, Für binäre Dateien (z.B. Bilder)
DATE Datum (mögliche Schreibweise: YYYY-MM-DD, z.B.: 2021-12-31)
DATETIME Datum + Uhrzeit
TIMESTAMP Datum + Uhrzeit (Milli-Sekunden seit 1.1.1970 00:00 Uhr
CHAR(s) Zeichenfolge mit Länge s, wird ggf. mit Leerzeichen aufgefüllt
VARCHAR(s) Zeichenfolge mit Maximal-Länge s, ggf. auch kürzer
TEXT Sehr große Texte

Datenbanken verwalten

Datenbank anlegen

CREATE DATABASE [IF NOT EXISTS] <Datenbankname>;

Datenbank auswählen

USE <Datenbankname>;

Datenbanken auflisten

SHOW DATABASES;

Datenbank löschen

DROP DATABASE <Datenbankname>;

Tabellen verwalten

Tabellen auflisten

SHOW TABLES;

Tabellenaufbau anzeigen

DESC <Tabellenname>;

Tabelle anlegen

CREATE TABLE <Tabellenname> (<Attributdefinition1>, <Attributdefinition2>, ...);

Attributdefinition

    <Attributname> <Datentyp> [PRIMARY KEY] [AUTO_INCREMENT] [NOT NULL] [DEFAULT <Wert>];
Option Beschreibung
NOT NULL Pflichtfeld, Wert darf nicht NULL sein
PRIMARY KEY Feld ist der Primärschlüssel
AUTO_INCREMENT Zahlenfelder werden automatisch erhöht
DEFAULT Der Standartwert für dieses Feld wird auf “Wert” gesetzt.

Tabelle löschen

DROP TABLE <Tabellenname>;

Bestehende Tabellen ändern

Spalte hinzufügen

ALTER TABLE <Tabellenname> ADD <Attributdefinition>;

Spalte löschen

ALTER TABLE <Tabellenname> DROP <Attributname>;

Spalte ändern

ALTER TABLE <Tabellenname> MODIFY <Attributdefinition>;

Daten bearbeiten

Daten einfügen

INSERT INTO <Tabellenname> (Attributliste) VALUES (Wertliste);

Daten löschen

DELETE FROM <Tabellenname>;

Daten aktualisieren

UPDATE <Tabellenname> SET <Datenfeld1>=<neuer Wert1>, <Datenfeld2>=<neuer Wert2>;

Where Bedingungen

Where kann an die meisten Befehle angehangen werden und sorgt so dafür, dass nur bestimmte Datensätze angesprochen werden.

Mathematische Operationen:     =, !=, >, <, >=, <=, +, -, *, /
Boolesche Operatoren:         AND, OR, NOT
Textmustervergleich:         LIKE mit % für beliebige Zeichenkette (auch leer) und _ für einzelnes Zeichen z.B.: name LIKE "H%"
Bereichsoperator:             BETWEEN x AND y
Mengenvergleich:             IN(wert1, wert2, …)

Einfache Datenabfragen

SELECT * | spaltenliste | berechnung [TOP anzahl]
FROM tabelle(n)
[WHERE bedingung]
[GROUP BY spalten(n)]
[HAVING bedingung]
[ORDER BY spalte(n) [ASC | DESC]]
[LIMIT anzahl | start, anzahl];

Funktionen in Abfragen

Normale Funktionen

Funktion Beschreibung
CURDATE() Gibt das aktuelle Datum zurück
DATEDIFF(datum1, datum2) Berechnet die Datumsdifferenz in Tagen
YEAR(datum) Gibt das Jahr zurück
MONTH(datum) Gibt das Monat zurück
DAY(datum) Gibt den Tag zurück
DATE_ADD(datum, intervall) Addiert das Intervall zum Datum

Aggregatsfunktionen

Sie berechnen ein Ergebnis aus den Werten einer Spalte (mehrere Datensätze).

Funktion Beschreibung
COUNT(feld) Zählt alle nicht-null-Werte innerhalb einer Spalte
COUNT(*) Zählt die Datensätze/Zeilen
SUM(feld) Berechnet die Summe einer ganze Spalte
AVG(feld) Berechnet den Durchschnitt einer ganze Spalte (NULL-Werte zählen nicht mit)
MIN(feld) Sucht den kleinsten Wert einer ganzen Spalte.
MAX(feld) Sucht den größten Wert einer ganzen Spalte.

Gruppierungen

Beispiel

SELECT ort, COUNT(ort) FROM kunde GROUP BY ort;

SELECT ort, COUNT(ort) FROM kunde GROUP BY ort HAVING COUNT(ort) > 100;

Abfragen über mehrere Tabellen (Joins)

SQL Joins Wikipedia Commons

Inner Join

Ein Inner Join gibt die Schnittmenge der Tabellen zurück. Wenn zum Beispiel eine ID nur in einer Tabelle vorkommt wird sie nicht angezeigt.

Left Join

Ein Left Join gibt alle Daten von der linken Tabelle zurück und zusätzlich die passende Schnittmenge der zweiten.

Right Join

Gibt alle Daten der rechten Tabelle zurück und zusätzlich die Schnittmenge der linken.

Full Outer Join / Full Join

Gibt alle Daten aus beiden Tabellen zurück.

Index

Indexe werden in Relationalen Datenbanken dazu benutzt, Daten schneller abfragen zu können.

CREATE INDEX index_name
ON table_name (column1, column2, ...);

Mit dem Keyword UNIQUE können doppelte Werte ausgeschlossen werden.

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);

Erklärungsvideos 📹

MySQL - The Basics // Learn SQL in 23 Easy Steps

MySQL Tutorial for Beginners [Full Course]

SQL Joins: Difference Between Inner/Left/Right/Outer Joins

Stefan Macke - Aufgaben in der schriftlichen Prüfung

2.10 - Normalisierung

Mit der Normalisierung legt man ein Datenkonzept an welches sich an bestimmte Regeln hält um Duplikate in den Daten zu verhindern.

Erste Normalform

Definition

Die Erste Normalform (1NF) ist dann gegeben, wenn alle Informationen in einer Tabelle atomar vorliegen.

Stichpunkte

  • Atomar

Zweite Normalform

Definition

Ein Relationstyp (Tabelle) befindet sich genau dann in der zweiten Normalform (2NF), wenn er sich in der ersten Normalform (1NF) befindet und jedes Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional abhängig ist.

Stichpunkte

  • Setzt 1NF vorraus
  • Alle Attribute hängen vom Primary Key ab

Dritte Normalform

Definition

Ein Relationstyp befindet sich genau dann in der dritten Normalform (3NF), wenn er sich in der zweiten Normalform (2NF) befindet und kein Nichtschlüsselattribut transitiv von einem Kandidatenschlüssel abhängt.

Stichpunkte

  • Setzt 2NF vorraus
  • Indirekt abhänge Attribute müssen in eine Tabelle ausgelagert werden

Erklärungsvideo 📹

2.11 - ER-Modell

Ein ER-Modell ist eine visuelle Darstellung verschiedener Entitäten innerhalb eines Systems und ihrer Beziehung zueinander.

Entity relationship model

  • Dient als Grundlage im Datenbankentwurf
  • Entitäten werden sichtbar
  • Relationen zwischen Entitäten werden sichtbar

ER Diagram MMORPG Wikipedia Commons

Elemente des ER-Modells

Element Beschreibung
Rechteck Stellt eine Entität dar
Raute Stellt eine Beziehung dar
Oval Stellt ein Attribut dar

Beziehungsarten

1 zu 1 Beziehung

Eine Person hat einen Ausweis.
Ein Ausweis gehört einer Person.

1 zu N Beziehung

Ein Schüler ist in einer Klasse.
Eine Klasse hat mehrere Schüler.

N zu M Beziehung

Ein Autor kann mehrere Bücher schreiben.
Ein Buch kann von mehreren Autoren geschrieben werden.

Erklärungsvideo 📹

Datenbanken verstehen: ER-Modell
Eins zu Eins Beziehung