---
# System prepended metadata

title: FIAE Prüfung 2019 Sommer
tags: [Ausbildung_FIAE_Prüfung]

---

# FIAE Prüfung 2019 Sommer

[Prüfung als PDF](https://ccs.jade-hs.de/index.php/f/...) (nur intern)

:::spoiler Inhaltsverzeichnis
[toc]
:::

## GA1 1. Handlungsschritt

### GA1 1. a) Projektstrukturplan

![grafik](https://hackmd.io/_uploads/S1PBrjfPle.png)

```plantuml
@startwbs

scale 0.9
* Maschinensteuerung
** Planung
** Bedarfs-\nermittlung
**[#fff] Beschaffung
*** Angebots\n-vergleich
*** Bestellung
**[#fff] Realisierung
*** Installation
*** Probebetrieb
*** Schulung
** Abnahme\nBetrieb
@endwbs
```

```graphviz
digraph Netzplan {
    node [shape=record]
    rankdir=LR;
    
    A [label= "{8  |  12} | {A | Netzwerkplanung}     | {12 | 0 | 0} | {0 | 12}"];
    B [label= "{12 |  17} | {B | Netzwerkauswahl} | {5 | 0 | 0} | {12 | 17}"];
    C [label= "{17 |  21} | {C | Sicherheitskonzeption} | {4 | 0 | 0} | {17 | 21}"];
    D [label= "{17 |  23} | {D | Netzwerkinfrastruktur} | {6 | 0 | 0} | {17 | 23}"];
    E [label= "{17 |  20} | {E | Netzwerkgeräte} | {3 | 0 | 0} | {23 | 25}"];
    F [label= "{21 |  31} | {F | Netzwerkinstallation} | {10 | 0 | 0} | {25 | 35}"];
    G [label= "{21 |  28} | {G | Netzwerktest} | {7 | 0 | 0} | {25 | 32}"];
    H [label= "{23 |  27} | {H | Netzwerküberwachung} | {4 | 0 | 0} | {32 | 36}"];
    I [label= "{23 |  28} | {I | Netzwerkunterstützung} | {5 | 0 | 0} | {32 | 36}"];
    J [label= "{35 |  36} | {J | Netzwerkübernahme} | {1 | 0 | 0} | {36 | 37}"];
    
    T [label = "{FAZ|FEZ} | {Vorgang|Beschreibung} | {Dauer|GP|FP} | {SAZ|SEZ}"]
               
    A -> B
    B -> {rank=same; C; D}
    C -> {rank=same; F; G}
    D -> {rank=same; H; I}
    F -> J
    G -> J
    H -> J
    I -> J
}
```

```plantuml
digraph Netzplan {
    node [shape=record]
    rankdir=LR;
    
    A [label= "{8  |  12} | {A | Netzwerkplanung}     | {12 | 0 | 0} | {0 | 12}"];
    B [label= "{12 |  17} | {B | Netzwerkauswahl} | {5 | 0 | 0} | {12 | 17}"];
    C [label= "{17 |  21} | {C | Sicherheitskonzeption} | {4 | 0 | 0} | {17 | 21}"];
    D [label= "{17 |  23} | {D | Netzwerkinfrastruktur} | {6 | 0 | 0} | {17 | 23}"];
    E [label= "{17 |  20} | {E | Netzwerkgeräte} | {3 | 0 | 0} | {23 | 25}"];
    F [label= "{21 |  31} | {F | Netzwerkinstallation} | {10 | 0 | 0} | {25 | 35}"];
    G [label= "{21 |  28} | {G | Netzwerktest} | {7 | 0 | 0} | {25 | 32}"];
    H [label= "{23 |  27} | {H | Netzwerküberwachung} | {4 | 0 | 0} | {32 | 36}"];
    I [label= "{23 |  28} | {I | Netzwerkunterstützung} | {5 | 0 | 0} | {32 | 36}"];
    J [label= "{35 |  36} | {J | Netzwerkübernahme} | {1 | 0 | 0} | {36 | 37}"];
    
    T [label = "{FAZ|FEZ} | {Vorgang|Beschreibung} | {Dauer|GP|FP} | {SAZ|SEZ}"]
               
    A -> B
    B -> {rank=same; C; D}
    C -> {rank=same; F; G}
    D -> {rank=same; H; I}
    F -> J
    G -> J
    H -> J
    I -> J
}
```

### GA1 1. b) Sequenzdiagramm

```plantuml
@startuml

scale 0.8
collections Produktionsleiter
collections Anwendungsentwickler
collections Maschinenführer
collections Steuerprogramm

activate Produktionsleiter

Produktionsleiter -> Anwendungsentwickler : Steuerprogramm erstellen()
activate Anwendungsentwickler

 Anwendungsentwickler --> Steuerprogramm : create

 Anwendungsentwickler -> Maschinenführer : Steuerprogramm testen()
 activate Maschinenführer

  Maschinenführer -> Steuerprogramm : Probelauf durchführen()
  activate Steuerprogramm

  Maschinenführer <-- Steuerprogramm : Probelauf erfolgreich
  deactivate Steuerprogramm

  Anwendungsentwickler <-- Maschinenführer : Steuerprogramm funktioniert
 deactivate Maschinenführer

Produktionsleiter <-- Anwendungsentwickler : Maschine produktionsbereit
deactivate Anwendungsentwickler

deactivate Produktionsleiter

@enduml
```

## GA1 2. Handlungsschritt

## GA1 3. Handlungsschritt

## GA1 4. Handlungsschritt

### GA1 4. a) Datenmodell

```plantuml
left to right direction
hide circle
scale 0.8

entity TeilGruppe {
    Gruppe_ID (PK)
    --
    Gruppenbezeichnung 
}

entity BestellPos {
    Bestell_ID (FK)(PK)
    Teil_ID (FK)(PK)
    --
    Menge
}

entity Bestellung {
    Bestell_ID (PK)
    Lieferer_ID (FK)
    --
    Bestelldatum
}

entity Teil {
    Teil_ID (PK)
    Gruppe_ID (FK)
    --
    Teilbezeichnung 
    Bestand   
}

entity Lieferer {
    Lieferer_ID (PK)
    --
    LiefererName
    LiefererAdresse
}

entity TeilLieferer {
    Teil_ID (FK)(PK)
    Lieferer_ID (FK)(PK)
    --
    EinkaufPreis
}

Lieferer    "1" -- "n" TeilLieferer
Lieferer    "1" -- "n" Bestellung
Bestellung  "1" -u- "n" BestellPos
TeilGruppe  "1" -- "n" Teil
Teil        "1" -- "n" TeilLieferer
Teil        "1" -- "n" BestellPos
```

### GA1 4. b) Normalform

## GA1 5. Handlungsschritt

Datenmodell

```plantuml
left to right direction
hide circle
scale 0.8

entity Laufzeit {
    LfdNrID (PK)
    MaschineID (FK)
    --
    Datum
    Stunden
}

entity MaschinenTyp {
    MaschineTypID (PK)
    --
    Beschreibung
    WartungIntervallInStunden
}

entity Maschine {
    MaschineID (PK)
    MaschineTypID (FK)
    KundeID (FK)
    --
    ProduktionsDatum
    DatumLetzteWartung
}

entity Kunde {
    KundeID (PK)
    --
    KundeFirma
    KundeAdresse
}

Laufzeit     "n" -- "1" Maschine
Maschine     "n" -- "1" Kunde
MaschinenTyp "1" -- "n" Maschine 
```

### GA1 5. a)

Liste aller Maschinentypen mit Anzahl Maschinen je Typ absteigend nach Zahl der Maschinen

![grafik](https://hackmd.io/_uploads/B12yuIvDex.png)

Alternative Idee (Testen!)
```sql=
SELECT
    MT.MaschineTypID,
    MT.Beschreibung,
    MT.WartungsintervallInStunden,
    COUNT(M.MaschineID) AS AnzahlMaschinen
FROM
    Maschine AS M
    INNER JOIN MaschinenTyp AS MT
    ON M.MaschineTypID = MT.MaschineTypID
GROUP BY
    MT.MaschineTypID
ORDER BY
    AnzahlMaschinen DESC;
```

```sql=
SELECT
    MT.MaschineTypID,
    MT.Beschreibung,
    MT.WartungsintervallInStunden,
    (SELECT 
         COUNT(M.MaschineID) 
     FROM 
         Maschine AS M
     WHERE 
         M.MaschineTypID = MT.MaschineTypID
    ) AS AnzahlMaschinen
FROM
    MaschinenTyp AS MT
ORDER BY
    AnzahlMaschinen DESC;
```

### GA1 5. b)

Liste aller Kunden und ihrer Maschinen, deren Laufzeit nach der letzten Wartung das Wartungsintervall in den nächsten 100 Stunden überschreiten.

![grafik](https://hackmd.io/_uploads/HJlfO8vDxx.png)

```sql=
SELECT
    KundeID
    KundeFirma
    KundeAdresse
    MaschineID
    (SELECT 
        SUM(L.Stunden) 
    FROM 
        Laufzeit AS L
        Maschine AS M
    WHERE
        L.MaschineID = M.MaschineID AND
        L.Datum > M.DatumLetzteWartung
    ) AS Laufzeit
FROM
    Kunde AS K
    INNER JOIN Maschine AS M
        ON M.KundeID = K.KundeID
    INNER JOIN MaschinenTyp AS MT
        ON M.MaschineTypID = MT.MaschineTypID
WHERE
    (SELECT 
        SUM(L.Stunden) 
    FROM 
        Laufzeit AS L
        Maschine AS M
    WHERE
        L.MaschineID = M.MaschineID AND
        L.Datum > M.DatumLetzteWartung
    ) + 100 > MT.WartungsIntervallInStunden
```

### GA1 5. c)

Liste aller Maschinentypen, der zugehörigen Kunden und Laufzeit der Maschinen seit der letzten Wartung

![grafik](https://hackmd.io/_uploads/B1gVdIvPgx.png)

```sql=
SELECT
    MT.MaschineTypID
    MT.Beschreibung
    K.KundeFirma
    SELECT 
        SUM(L.Stunden) 
    FROM 
        Laufzeit AS L
        Maschine AS M
    WHERE
        L.MaschineID = M.MaschineID AND
        L.Datum > M.DatumLetzteWartung
    ) AS Laufzeit
FROM
    MaschineTyp AS MT
    LEFT JOIN Maschine AS M 
        ON M.MaschineTypID = MT.MaschineTypID
    LEFT JOIN Kunde AS K
        ON M.KundeID = K.KundeID
```

### GA1 5. d)

Reduziere Wartungsintervall um 10% für alle Verpackungsmaschinen um 10%

```sql=
UPDATE
    MaschineTyp
SET
    WartungsIntervallInStunden = WartungsIntervallInStunden * 0.9
WHERE
    Beschreibung LIKE "Verpackung";
```

## GA2 1. Handlungsschritt

### GA2 1. a)

|Kabel                               |   | Meter |
|------------------------------------|---|-------|
| Lagerbestand                       |   | 2.400 |
| Eiserner Bestand                   | - | 500   |
| Werkstattbestand                   | + | 200   |
| Vormerkbestand für andere Projekte | - | 800   |
| Für das Projekt verfügbare Menge   | = |       |

### GA2 1. b)



|      |                                                   |
|------|---------------------------------------------------|
| 120% | Gemeinkostenzuschlagssatz (Basis Fertigungslöhne) |
| 10%  | Gewinnzuschlag                                    |
| 2%   | Skonto                                            |

|                        | %    | SOLL (Kalk.) |                        |      | IST <br>(Nachkalk.) |
| :--------------------- |----: | -----------: | ---------------------: | ---: | ----------: | 
| Fertigungsmaterial     |      |8000,00       | Fertigungsmaterial     |      |             |
| Gemeinkosten           | 120% | 6480,00      | Gemeinkosten           | 120% |             |
| Fertigungslöhne        |      | 5400,00      | Fertigungslöhne        |      |             |
| Aufwand (Selbstkosten) |      | 19880,00     | Aufwand (Selbstkosten) |      |             |
| Gewinn                 | 10%  | 1988,00      | Gewinn                 |      |             |
| Barverkaufspreis       |      | 21868,00     | Barverkaufspreis       |      |             |
| Skonto                 | 2%   | 446,29       |                        |      |             |
| Angebotspreis          |      | 22314,29     |                        |      |             |
| Umsatzsteuer           | 19%  | 4239,71      | Umsatzsteuer           | 19%  |             |
| Angebotspreis \*       |      | 26554,00     | Zahlungsbetrag         |      | 25950,00    |
| Wirtschaftlichkeit     |      | 1,1          | Wirtschaftlichkeit     |     |                 |




## GA2 2. Handlungsschritt

## GA2 3. Handlungsschritt

## GA2 4. Handlungsschritt

## GA2 5. Handlungsschritt

## 3 WiSo
