Benutzer-Werkzeuge

Webseiten-Werkzeuge


job:fiae

**Dies ist eine alte Version des Dokuments!**

Ausbildung zum Fachinformatiker Anwendungsentwicklung

Projektantrag

Hinweise zur Prüfung von Projektanträgen

  • Projektbegründung
    • was ist der wirtschaftliche Nutzen?
    • wird eine Kalkulation/Amortisationsrechnung durchgeführt?
  • Projektplanung
    * logischer Aufbau der zeitlichen Projektplanung
    * sinnvolles Verhältnis von Entwurf zu Implementierung
    * Dokumentation in Zeitplanung?

    * Implementierung

    • welche Form hat das Programm (Webanwendung, Client mit GUI)?
    • welche Sprache/DB wird verwendet?
    • wie wird getestet?

Projektdokumentation

Vorlage

Unter http://f.macke.it/LaTeXVorlageFIAE kann man sich meine LaTeX-Vorlage für die Dokumentation zur betrieblichen Projektarbeit mit einer Vorstrukturierung und vielen Beispielinhalten herunterladen.

Anmerkungen

Inhalte

  • Formblatt der entsprechenden IHK
  • Deckblatt mit Informationen zum Projekt
    • Titel des Projekts
    • Name, Kontaktdaten, Geburtsdatum, Ausbildungsberuf des Auszubildenden
    • Name, Kontaktdaten des Ausbildungsbetriebs
  • Verzeichnisse (Inhalt, Abbildungen, Tabellen, Abkürzungen, Quellen (!), Anhang, Listings)
  • Einleitung
    • Projektumfeld: Ausbildungsbetrieb, Auftraggeber/Kunde etc.
    • Projektziel: Was soll erreicht werden? Worum geht es eigentlich?
    • Projektbegründung: Warum ist das Projekt sinnvoll? Was ist die Motivation hinter dem Projekt?
    • Projektschnittstellen: Mit welchen anderen Systemen interagiert die Anwendung? Wer sind die Benutzer der Anwendung?
    • Projektabgrenzung: Was ist explizit nicht Teil des Projekts (insb. bei Teilprojekten)
  • Projektplanung
    • Projektphasen mit detaillierter Zeitplanung: Beschreibung/Begründung des gewählten Vorgehensmodells
    • Ressourcenplanung: Was wird an Ressourcen benötigt (z.B. Hardware, IDE, Betriebssystem)? Gibt es Einschränkungen?
    • Kostenplanung/-kalkulation: Was kostet das Projekt? Mögliche Kosten: Entwicklung, Einführung/Schulung, Wartung
      • Make-or-buy-Entscheidung
      • Amortisationsrechnung: Ab wann rentiert sich das Projekt? Mögliche Einsparungen: Lizenzen, Arbeitszeitersparnis, Usability, Korrektheit. Break-Even-Punkt grafisch verdeutlichen (Graphen mit Schnittpunkten)
    • nicht-monetärer Nutzen/Nutzwertanalyse: z.B. Vorher-/Nachher-Vergleich anhand eines Wirtschaftlichkeitskoeffizienten
      • wichtig: immer den Maßstab für die Gewichtung (warum sind die Kriterien unterschiedlich wichtig?) und die Bewertung (z.B. Punkte von 1 bis 5: was bedeutet das?) angeben
    • Pflichtenheft erstellen
      • Beschreibung des Programms, Ziel der Entwicklung
      • Funktionen des Programms: Muss/Soll/Wunsch, Benutzerrollen
      • Umgebung: Zielplattform (Programmiersprache, DB, Client, Server, Software, Hardware), Benutzer/Zielgruppen
      • Datenstruktur: z.B. ERM, Tabellenmodell, textuelle Beschreibung der Entitäten/Attribute
      • Programmlogik: z.B. Flusspläne, UML-Diagramme
      • Benutzeroberfläche: Gestaltung, Menüführung
      • Qualitätsmerkmale: z.B. Anforderungen hinsichtlich Performance, Usability, Effizienz etc. (ISO 9126)
      • Tests: Testszenarien, Benutzer-/Entwicklertests
  • Projektdurchführung: Was wurde genau während des Projekts durch den Auszubildenden gemacht? Wie ist er vorgegangen? Hat er z.B. bestimmte Vorgehensmodelle verwendet?
    • Ist-Analyse: Wie ist die bisherige Situation (z.B. bestehende Programme, Wünsche der Mitarbeiter)? Was gilt es zu erstellen/verbessern? Ggfs. Erstellen eines Lastenhefts.
    • Design/Entwurf
      • Funktionen des Programms: z.B. mit Use-Case-/Aktivitätsdiagramm, EPK
      • Datenbank (ERM, Tabellenmodell) bzw. wenn keine DB verwendet Darstellung der eingesetzten Datenstrukturen (z.B. XML, CSV o.ä.)
      • Geschäftslogik: z.B. Komponenten-/Klassen-/Sequenz-/Datenflussdiagramm, Architekturplanung, EPK
      • Benutzerschnittstelle: z.B. GUI, Webinterface, Entwurf/Gestaltung der Oberflächen/Masken, Corporate Identity, Einbindung in andere Anwendungen
    • Implementierung/Realisierung: z.B. DB anlegen, Programmierung (interessante Funktionen, Quelltextbeispiele), Screenshots der Oberfläche
    • Test/Qualitätssicherung: z.B. Test-Reports, Unit-Tests, Code-Reviews
    • Dokumentation: Projektdokumentation, Entwickler- (z.B. JavaDoc) und Benutzerdokumentation ("Handbuch")
    • Einführung: z.B. Installation, Benutzerschulung
  • Retrospektive: Wie ist das Projekt rückblickend zu bewerten?
    • Begründung von Änderungen zum Projektantrag
    • Soll-/Ist-Vergleich: Wurde das Ziel erreicht? Wurden die Kosten/Zeiten eingehalten?
    • Ausblick: Erweiterungsmöglichkeiten, Anschlussprojekte, Akzeptanz der Benutzer
    • Fazit
      * Erklärung des Auszubildenden
  • Anhänge
    • Lasten-/Pflichtenheft
    • Datenbankentwurf
    • UML-Diagramme, EPKs, Flusspläne, PAPs
    • Entwürfe/Screenshots der Oberflächen
    • Dokumentation (Entwickler/Benutzer)
    • Glossar
    • Quelltexte

Bewertung

Die folgenden Kriterien sind meine persönliche Auswahl. Lediglich die Oberpunkte sind eine Vorgabe der IHK.

  • Formale und sprachliche Gestaltung (15%)
    • Wurde der mögliche Umfang für den Inhalt (15 Seiten) eingehalten und ausgeschöpft?
    • Sind die Seitenzahlen/Kopf-/Fußzeilen sinnvoll formatiert (z.B. Seitenzahlen für Verzeichnisse römisch groß, für Inhalt arabisch, für Anhang römisch klein)?
    • Sind qualitative Quellenangaben vorhanden?
    • Sind wenige Rechtschreib-/Grammatik-/Zeichensetzungsfehler vorhanden?
    • Ist der Text im Blocksatz gesetzt und füllt alle Seiten aus (keine größeren Freiräume im Text, z.B. freie halbe Seiten unter einer Abbildung)?
    • Sind alle wichtigen inhaltlichen Elemente vorhanden (Einleitung, Fazit usw.)?
      • Haben alle Anhänge/Abbildungen/Tabellen/Quellenangabe einen entsprechenden Verweis/Erläuterung im Text? Sind alle Elemente, auf die verwiesen wird, tatsächlich vorhanden?
      • Beschreibung des Auftrags - Verständlichkeit, Nachvollziehbarkeit, Kundenbezug (20%)
      • Ist das Projektziel klar und deutlich erkennbar?
      • Wurden die Schnittstellen des Programms erläutert (Benutzer, andere Systeme)?
      • Wurde eine detaillierte Projektplanung für die 70h und die verwendeten Ressourcen durchgeführt?
      • Wurde eine Ist-/Schwachstellenanalyse durchgeführt?
      • Wurden die Anforderungen an die Software methodisch aufgenommen? Ist ein Fachkonzept/Lastenheft vorhanden und methodisch aufgebaut? Gibt es Use-Cases?
      • Wurde eine Wirtschaftlichkeitsanalyse mit Amortisationsrechnung durchgeführt? Ist die Kalkulation fachlich korrekt (Inhalte, Berechnung)?
      • Wurde der nicht-monetäre Nutzen mit einer Nutzwertanalyse verdeutlicht?
      • Konkretisierung des Auftrags - Technische und kaufmännische Nachvollziehbarkeit (50%)
      • Weist das Projekt eine angemessene fachliche/technische Tiefe für einen Anwendungsentwickler auf?
      • Wurden die Anforderungen an die Software methodisch spezifiziert/verfeinert? Ist ein Fein-/Sollkonzept/Pflichtenheft vorhanden und methodisch aufgebaut? Gibt es Aktivitätsdiagramme?
      • Ist ein methodisches Vorgehen erkennbar? Welcher Entwicklungsprozess wurde eingesetzt?
      • Wurden komplexe Arbeitsabläufe mit sinnvollen Methoden erläutert (z.B. Flusspläne, EPKs, Aktivitätsdiagramm)?
      • Wurden alle getroffenen Entscheidungen sinnvoll begründet?
      • Ist die Auswahl der Programmiersprache/Datenbank plausibel dargelegt?
      • Wurden alle eingesetzten Ressourcen beschrieben?
      • Wurde die detaillierte Projektplanung auf ihre Einhaltung hin untersucht und wurden Abweichungen plausibel begründet (Retrospektive)?
      • Wurde eine Datenbank erstellt? Ist sie sinnvoll dokumentiert (ERM)? Ist sie normalisiert?
      • Wurde die Architektur der Software begründet und sinnvoll dokumentiert? Wurde ein Komponenten-/Klassendiagramm erstellt?
      • Wurde die Implementierung interessanter Funktionen näher erläutert?
      • Wie und wann wurde getestet? Wurden Tests automatisiert? Wie wurden die Testfälle ausgewählt? Wurden die Tests und die Ergebnisse dokumentiert?
      • Wurde das Produkt abgenommen? Von wem? Welche Kriterien waren dabei entscheidend?
      • War das Projekt ein Erfolg? Warum (nicht)? Gibt es mögliche Erweiterungen (Ausblick)?
      • Angemessene Betriebs- und Kundendokumentation (15%)
      • Wurde eine Benutzerdokumentation erstellt?
      • Wurde eine API-/Entwicklerdokumentation erstellt? Wie?
      • Gibt es sinnvolle/interessante kommentierte Auszüge aus dem Quelltext?
      • Sind Screenshots der fertigen Anwendung vorhanden und erläutert?

      Projektpräsentation

Foliendesign

  • die meisten Prüfungsausschüsse werden wohl den "klassischen" Aufbau der Folien erwarten (vgl. http://forum.fachinformatiker.de/abschlussprojekte/134050-abschlusspraesentation-im-stil-presentation-zen.html), also
    • Kopf-/Fußzeile mit Datum, Titel etc.
    • ständig sichtbares Inhaltsverzeichnis (als "Fortschrittsbalken")
    • Stichpunkte als Bullet Points auf den Folien
    • nicht zuviel Text
  • da die Präsentation recht kurz ist, sollte man sich auf das Wesentliche/Interessante des Projekts konzentrieren
  • Folien sollten der Corporate Identity des Ausbildungsbetriebs folgen
  • alle verwendeten Grafiken/Inhalte müssen deutlich erkennbar/lesbar sein
  • sehr interessant ist das fertige Produkt (Live-Demo, Screencast)

Inhalte

  • Titelfolie mit Projektbezeichnung, Daten des Auszubildenden und des Ausbildungsbetriebs
  • Inhaltsverzeichnis/Agenda
  • kurze Beschreibung der Ausgangssituation (Ausbildungsbetrieb, Problemstellung, Ist-Analyse)
  • Projektziel (Soll-Konzept, Qualitätskriterien)
  • Projektbegründung: Wirtschaftlichkeitsbetrachtung (Amortisationsrechnung, auch grafisch), Nutzwertanalyse
  • Überblick über die Anwendung (Architektur, Einbindung in andere Systeme)
  • Implementierung (z.B. ERM, UML, Quelltexte, Screenshots)
  • Grafiken zur Erklärung bestimmter Sachverhalte
    • ERM
    • Use-Case-Diagramm
    • Architektur der Anwendung
  • aufgetretene Probleme und Lösungen dafür → Lessons Learned
  • Fazit, Ausblick
  • Schlussfolie

Bewertung

  • Fachkenntnisse (20%)
  • Rhetorik (10%)
  • Medieneinsatz (10%)
  • Begrüßung und Einstieg in die Präsentation (10%)
  • Ergebnis des Fachgesprächs (50%)

Häufige Fragen im Fachgespräch

  • Datenbanken
    • Warum Normalisierung? → Vermeidung von Redundanzen
    • die drei Normalformen erläutern
    • Anomalien erläutern (Einfüge-/Lösch-/Änderungsanomalien)
    • Primär-/Fremdschlüssel erläutern
    • Konzept der Transaktionen erläutern
  • Was ist OO? Was sind die Vorteile? → Datenkapselung, Polymorphie, Vererbung erklären
  • Kalkulation
    • Wie setzt sich normalerweise (!) ein Stundensatz zusammen? → Lohn, Nebenkosten, Gemeinkosten, Gewinn (!)
    • Amortisationsrechnung erläutern
  • Vorgehen bei der Nutzwertanalyse erläutern (ggfs. an Tafel entwickeln)
  • Qualitätskriterien für Software erläutern (ISO 9126)
  • Verschiedene Arten von Softwaretests
  • Datenschutz von Datensicherheit abgrenzen, 8 Gebote des Datenschutzes nach BDSG
  • Webentwicklung
    • Funktionsweise/Vor-/Nachteile von AJAX erläutern
    • MVC erläutern
  • grundlegende Kontrollstrukturen erläutern (Sequenz, Verzweigung, Wiederholung)
  • grundlegende Datenstrukturen (Variablen für einen Wert, Arrays für mehrere Werte gleichen Typs, Objekte für mehrere Werte unterschiedlichen Typs)

Mögliche Themenbereiche Abschlussprüfung

Anmerkungen

Themen

Themen der letzten Prüfungen

  • Sommer 2013
    • GH1
      1. Projektmanagement-Begriffe erklären, Datenschutz, CASE-Tools
      2. UML-Sequenzdiagramm zu einer Online-Bestellung erstellen, Klassendiagramm erläutern
      3. relationales Tabellenmodell in dritter Normalform zu einem Angebot erstellen
      4. Algorithmus zur Prüfzifferberechnung und Quersummenbildung erstellen
      5. SQL-Abfragen auf vorgegebener Tabellenstruktur
    • GH2
      1. Aufbauorganisation erläutern, EPK erstellen
      2. Amortisationsrechnung, Marketingaktionen
      3. Hardware vergleichen, WLAN-Konfiguration, strukturierte Verkabelung
      4. VLANs, Subnetting, VPN, englischen Text verstehen
      5. relationales Tabellenmodell vervollständigen, Datentypen für Spalten ermitteln, SQL-Abfragen
  • Winter 2012
    • GH1
      1. Softwareentwicklungsmodelle erläutern, Netzplan erläutern
      2. HTML vervollständigen und erläutern
      3. Algorithmus zur Erstellung eines Reports aus einer einfachen Tabellen erstellen
      4. ER-Modell zu Produkten erstellen, Schlüssel identifizieren
      5. SQL-Abfragen auf vorgegebener Tabellenstruktur
    • GH2
      1. Lasten-/Pflichtenheft erläutern, Kalkulationsrechnung, Rechnungswesen
      2. WLAN-Kameras, Hardwareauswahl, englischen Text verstehen, Datenmenge für Videos berechnen
      3. Power over Ethernet, Algorithmus zur Suche in einer Datenbank
      4. Geschäftsbrief zum Verzug erstellen
      5. BYOD, Persönlichkeitsrechte bei Fotos, Kostenvergleichsrechnung
  • Sommer 2012
    • GH1
      1. Use-Case-Diagramm, Algorithmus in Pseudocode/PAP/Struktogramm
      2. Zustandsdiagramm, Beziehungstypen zwischen Klassen
      3. relationales Tabellenmodell in dritter Normalform
      4. Algorithmus zur XML-Verarbeitung in Pseudocode/PAP/Struktogramm
      5. SQL auf bestehenden Tabellen
    • GH2
      1. Cloud Computing, SaaS, SLA
      2. Public/Private/Hybrid Clouds, SAN/NAS, Sicherheit in der Cloud
      3. IPSec, VPN, Firewall, IPv6-Adressen kürzen/erzeugen
      4. Kostenvergleich zweier Investitionen, Online-Marketingmaßnahmen
      5. Algorithmus in Struktogramm, Datentypen, Use-Case-Diagramm
  • Winter 2011
    • GH1
      1. Algorithmen in Pseudocode/PAP/Struktogramm
      2. Aktivitätsdiagramm
      3. ERM
      4. Algorithmus in Pseudocode/PAP/Struktogramm
      5. SQL auf bestehenden Tabellen, Trigger/Replikation erläutern
    • GH2
      1. Projektphasen, Aufgaben Projektleiter, Projektorganisation, Netzplan
      2. Vor-/Nachteile von Virtualisierung, Lieferverzug erläutern, Fehler in Lieferschein/Rechnung finden, Gewährleistung/Mangel erläutern
      3. USV, NAS, RAID
      4. RFID, Paritäten ermitteln, Werks-/Dienstvertrag, SLA
      5. Übersetzung Englisch/Deutsch, TCO, Kostenvergleich zweier Angebote
  • Sommer 2011
    • GH2
      1. Projektphasen, ABC-Kundenanalyse, Nutzwertanalyse, Softwarequalitätskriterien
      2. Aktivitätsdiagramm
      3. Algorithmus in Pseudocode/PAP/Struktogramm
      4. relationales Tabellenmodell in dritter Normalform
      5. SQL auf bestehenden Tabellen
    • GH2
      1. Geschäftsmodelle, Zielgruppenanalyse, Organisationsstruktur
      2. Kommunikationspolitik
      3. Kostenrechnung
      4. Verkabelung, DHCP, private IP-Adressbereiche, Übersetzung Englisch/Deutsch
      5. Algorithmus in Pseudocode/PAP/Struktogramm
  • Winter 2010
    • GH1
      1. Datenschutz, Corporate Design, Barrierefreiheit, symmetrische/asymmetrische Verschlüsselung
      2. Algorithmus in Pseudocode/PAP/Struktogramm
      3. Zustandsdiagramm
      4. relationales Tabellenmodell in dritter Normalform
      5. SQL auf bestehenden Tabellen
    • GH2
      1. Web-Begriffe erläutern, Unicode, CSS, Domainwahl, Datenschutz
      2. Beschaffungskanäle, Ausschreibung, AGB, Angebotsvergleich, Lizenzen
      3. Servertypen, Hardware
      4. Subnetting, Übersetzung Englisch/Deutsch, Berechnung notwendiger RAM, Vorteile von Thin Clients
      5. IT-Security-Policy, VPN, USV, Übersetzung Englisch/Deutsch
      6. SQL auf bestehenden Tabellen
  • Sommer 2010
    • GH1
      1. Kickoff-Sitzung, Vorteile internes Projekt, Projektdokumentation, Testverfahren
      2. Use-Case-Diagramm, Sequenzdiagramm
      3. relationales Tabellenmodell in dritter Normalform
      4. SQL auf bestehenden Tabellen
      5. Algorithmus in Pseudocode/PAP/Struktogramm
    • GH2
      1. relationales Tabellenmodell in dritter Normalform
      2. VLANs, OSI-Modell, Übersetzung Englisch/Deutsch
      3. VPN, Tunnel, IPSec, RAID
      4. Verzeichnissynchronisation, Leistungsaufnahme berechnen, Datensicherung
      5. Authentifizierung, Verschlüsselung, ASCII-Verschlüsselung
      6. Onlinebeschaffung, Rahmenvertrag, Kostenberechnung

Aktuelles (2012)

  • Windows 8
  • 3D-Drucker
  • HTML5 + CSS3
  • Tablets und mobile Geräte
  • LTE
  • NoSQL
  • UEFI

Der Betrieb und sein Umfeld

  • Vorteile eines betrieblichen Vorschlagwesens
  • Beispiele zur Optimierung der Arbeitsabläufe
  • Methoden zur Mitarbeitermotivation
  • Standortfaktoren bewerten
  • Marktformen bestimmen
  • Angebotskalkulation
  • (Arbeits-)Verträge
    • Stellenbeschreibung
  • Lohnabrechnung
  • Gesellschaftsformen
  • Aufbau- und Ablauforganisation
    • Linien-/Matrixorganisation kennen (Vor-/Nachteile)und Organigramm erstellen
  • Umweltschutz
    • Green IT
  • Workflow
  • Zentralisierung/Dezentralisierung
  • Unfallverhütung
Ergonomie
  • Vorgaben bzgl. Arbeitsplatzergonomie kennen
  • ergonomische Anforderungen an Bildschirme, Drucker, Stühle, Tische
  • Warum reicht die Einhaltung der Ergonomie nicht aus, um körperliche Beschwerden auszuschließen? Was kann man zusätzlich tun?
  • Nutzen ergonomischer Arbeitsplätze für das Unternehmen
  • Ergonomierichtlinien beim Gestalten von Oberflächen für Software
Marketing
  • Vor-/Nachteile von Absatzwegen, Distributionspolitik
  • Fachbegriffe kennen
    • Marktvolumen, Absatz, Marktanalyse etc.
    • B2B, B2C, B2G
    • Umfrage, Beobachtung, Experiment, Testmarkt, Marktprognose, Panelerhebung
    • Marktdurchdringung, Marktentwicklung, Markterschließung, Produktinnovation, Produktentwicklung, Diversifikation
  • Optimierung des Kundenservice
  • mögliche Quellen zur Marktforschung
  • Ziele von Werbung
  • Phasen des Produktlebenszyklus
  • Beispiele für niedrigen/hohen Markteinstiegspreis nennen
  • Outsourcing (organisatorisch) vs. Offshoring (geografisch)
Rechtliches
  • Datenschutz vs. Datensicherheit
  • Urheberrecht
    • von Patenten abgrenzen
  • Open Source
  • Unfreier Versand
  • Fernabsatzverträge
  • Nachbesserung und Nachlieferung
  • Gewährleistung vs. Garantie
  • Mutterschutz, JAschG
  • Betriebsrat
    • Rechte und Pflichten
    • rechtliche Voraussetzungen
  • Kündigung
    • gesetzliche/vertragliche Fristen
    • notwendige Unterlagen
  • Werks- vs. Dienstvertrag
  • Inhalte von SLAs
  • Arbeitsschutz
    • Pflichten des Arbeitgebers bei Arbeitsunfällen
  • Arbeitsvertrag
    • Inhalte, Rechte/Pflichten
    • kollektives Arbeitsrecht
  • Inhalte der Personalakte
  • Rechtsformen von Unternehmen (AG, GmbH, KG usw.)
    • Voraussetzungen, Haftung, Eigenkapital, Firma etc.
  • verschiedene Versicherungen (z.B. Haftpflicht, Gebäudeversicherung usw.)
Soft-Skills
  • Präsentieren
    • Vorteile des Medieneinsatzes bei Präsentationen
    • Aufbau von Präsentationen
    • Aufmerksamkeit der Zuhörer gewinnen
  • Ideenfindung/Kreativitätstechniken
    • Brainstorming, Mindmap

Betriebssysteme

  • Unterschied Unix/Linux
    • Dateisysteme (FAT, NTFS, ext)
  • Vor-/Nachteile Linux/Windows
    • Samba/SMB
  • Linux
    • wichtige Befehle kennen (ls, chmod, chown, ps, grep, mount)
    • Dateirechtesystem erklären (ugw + rwx)
    • gängige Linux-Distributionen nennen (Debian, Suse, Red Hat, Ubuntu etc.)
    • Wie wird die Hardware angesteuert?
    • Mounten von Laufwerken
  • Windows 7
  • Android, iOS, Windows Phone

Datenbanken

  • unterschiedliche Architekturen (Client/Server, Dateibasiert)
    • unterschiedliche Ansätze (relational, Netzwerk, hierarchisch, objektorientiert)
    • Eigenschaften von relationalen Datenbanken
    • ORM
  • 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
  • SQL-Abfragen
    • CRUD (Create, Read, Update, Delete)
      * verschiedene Joins (INNER, OUTER LEFT/RIGHT)

      * Arbeitschritte beim DB-Design

    • ER-Modelle erstellen
    • Tabellenmodelle erstellen
  • ACID-Prinzipien für Transaktionen kennen und erläutern (atomicity, consistency, isolation, durability)
  • Normalformen erläutern ("the key, the whole key, and nothing but the key")
    • Normalisierung von Datenbanken bis zur 3. Normalform durchführen
  • Modellierung von Beziehungen (1:1, 1:n, m:n)
    • mögliche Beispiele: Benutzer/Login (1:1), Benutzer/Bestellung (1:n), Benutzer/Benutzergruppe (m:n)
  • mögliche Aufgaben
    • vorhandenes Tabellenmodell normalisieren
    • gültige Datensätze zu einem gegebenen Schema ermitteln können

Englisch

  • Texte verstehen, übersetzen und analysieren

Hardware

  • Prozessor/CPU, Kühlung
    • von-Neumann-Architektur
    • ALU
  • RAM-Arten und Unterschiede
  • Eigenschaften/Unterscheidung/Vor-/Nachteile SAN und NAS
  • Unterschied Stack/Heap
  • Abkürzungen und Bedeutung kennen: sATA, AGP, PCI, ISA, IDE, SCSI, SAS, USB, RAID, TFT, TCO, CRT, USV, SSD
  • RAID 0, 1, 5, 10 usw., JBOD erklären
  • Bluetooth, Firewire, USB
  • WLAN
    • Hotspot, Ad-Hoc, Repeater
    • Sicherheit (WPA, WEP, MAC-Kontrolle)
  • BIOS, CMOS, Ablauf eines Systemstarts, Sinn von BIOS-Updates
  • UEFI
  • IDE: Master/Slave, Jumper
  • Firmware, Flash-Speicher
  • Arten von Druckern und Scannern
  • Thin Clients/Fat Clients
  • Bezugsquellen für Hardwarelieferanten
  • Server-/Desktop-/Anwendungsvirtualisierung
    • mögliche Arten der Virtualisierung
    • Hardwareunterstützung
    • Vor-/Nachteile der einzelnen Verfahren
  • mögliche Aufgaben
    • passende Komponenten für einen (Datenbank-/File-)Server oder Workstation (z.B. CAD, Office) auswählen
      * PCs für bestimmte Anforderungen aus Komponenten zusammenstellen

      * Green IT

  • Smartphones
  • Cloud Computing (Auswirkungen auf Softwareentwicklung, Hardware, Geschäftsmodelle)
    • Platform/Infrastructure/Software as a Service
  • USB 3.0
  • USV
    • Typen von USVen (z.B. VFI)
    • benötigte Scheinleistung für vorgegebene Hardware ermitteln
    • Netzstörungen, vor denen USVen schützen
  • Hot Swapping, Hot Spare erläutern
  • Arbeitsweise von RFID erläutern
  • Vor-/Nachteile von SSDs

Internet

  • Aufbau von URLs/URIs
  • Beispiele für Browser/Webserver/Web-Programmiersprachen/(serverseitige) Scriptsprachen
  • wichtige Protokolle und Ports (HTTP, FTP, SMTP, POP3, IMAP, telnet, NNTP, SMB)
  • Vor-/Nachteile wichtiger Dateiformate (PDF, Bildformate)
  • Ablauf beim Aufruf einer Website (Kommunikation Client/Server) und Verarbeitung bei PHP
  • Sicherheit
    • Hacker, Cracker, Script-Kiddies
    • Phishing, Sniffing, Spoofing, Man-in-the-Middle
    • SQL-Injection, XSS, CSRF, Session Hijacking, DoS, DDoS
      * Viren, Würmer, Trojaner, Hoax, Spyware, Dialer
      * Verbreitung von Viren/Würmer/Trojaner erläutern
Websites
  • Vorteile von Internetseiten als Werbemittel
  • grundlegende Kenntnisse von HTML, CSS, PHP
  • ergonomische Gestaltung von Websites
  • CMS
  • Mindestinhalte des Impressums
  • virtuelle Hosts erläutern
  • Möglichkeiten zur Unterscheidung von Websites auf einem Host: IP, Hostname, Port
  • Funktion von .htaccess erläutern
  • dynamische Websites (CGI, ASP, JSP)
    • Applet und Servlet unterscheiden
  • Web 2.0
    • AJAX
      • Vor-/Nachteile
      • Funktionsweise
    • Social Networks, Wikis, Blogs, Twitter
    • REST
  • RIA
  • JavaScript
    • jQuery und andere Frameworks
  • HTML5, CSS3
    • Audio-/Videoeinbettung/-unterstützung
  • Anforderungen durch Mobilgeräte

Mathematik und Rechnungswesen

  • Ermittlung von Umsatz/Provision/Deckungsbeitrag/Kosten/Gewinn
  • Zahlungsverzug
    • Definition, Gründe, Konsequenzen
      * Rechtsgrundlage/Definition für Zahlungsverzug

      * Möglichkeiten zum Umgang mit Liquiditätsengpässen

  • Gemeinkosten auf Kostenstellen verteilen
  • Kosten für eine Produkteinführung berechnen
  • Break-Even-Point ermitteln
  • Gewinn ermitteln
  • Vor-/Nachteile Kauf/Leasing/Miete
  • Umrechnungen in Zahlensystemen (Dual, Dezimal, Oktal, Hexadezimal)
  • Profit-Center-Organisation
  • Handelskalkulation
  • Betriebsabrechnungsbogen
  • Fehler in Lieferschein/Rechnung finden
  • gesetzliche Gewährleistungsfrist ermitteln
  • Umgang mit Mängeln
  • TCO erläutern

Multimedia

  • Datenraten von verschiedenen Laufwerken (Festplatte, CD, DVD)
  • Audiobearbeitung
    • Sampling(-rate, -tiefe)
  • Bildbearbeitung
    • Auflösung
    • JPEG, TIF, MPEG
    • OCR
    • Unterschied Raster-/Vektorgrafik
  • Zeichensätze kennen und Unterschiede aufzeigen
    • ASCII kennen und erklären
  • Kryptographie
    • symmetrisch/asymmetrisch
  • PKI, BSI
    • Was ist eine Prüfsumme/Hash?
    • ausgewählte Verschlüsselungsverfahren kennen
    • digitale Signatur
      * Kompression
    • verlustbehaftet vs. verlustfrei
      • ZIP
      • Huffman-Code
  • Längs-/Querparität berechnen
  • XML
    • Wohlgeformtheit, Validität
    • Parser, Serialisierer
      • SAX, DOM
    • vs. HTML, CSV etc.
    • DTD, Schema, RelaxNG, Schematron
    • XSLT, XSL-FO
  • mögliche Aufgaben
    • Dateigrößen von Bildern/Videos berechnen
  • 3D-/HD-TV, HDMI, BlueRay

Netzwerk und Administration

  • Methoden zur Namensauflösung erklären (DNS, hosts)
    • DNS-Konfiguration
  • DNS, DHCP, WINS, ARP, Subnetting, Topologien
    • Ablauf beim DHCP-Lease (Discover → Offer → Request → Acknowledge)
    • ping (ICMP)
    • MAC vs. IP
  • IPv4, IPv6, A/B/C-Klassennetze
    • öffentliche/private IP-Adressen
  • Protokolle mit Port-Nummern (HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, SMB, Telnet, SSH)
  • Routing
  • Firewall
    • Packet Inspection, Port-Forwarding
  • Proxy-Server (Squid)
    • dedicated, circuit level
  • Sicherheitsmaßnahmen
    • Vorteile von SSH
    • Unterschied HTTP/HTTPS
  • Struktur eines Class-C-Netzes erläutern
  • Funktionsweise und Vorteile von VPN beschreiben
    • Protokolle/Ports, Verschlüsselungsverfahren
  • ISDN, ADSL, SDSL, UMTS
    • Datenraten, Technik
  • FDDI (Lichtwelle)/Ethernet beschreiben
  • Netzwerkhardware (Hub, Bridge, Switch, Router) mit Zuordnung zu ISO-Schichten
    • Switches/Hubs unterscheiden
  • Serverarten nennen (z.B. Print-/Fileserver)
    • Aufbau, Vor-/Nachteile Terminalserver erläutern
  • Clustering, Load Balancing
    • Round Robin
  • RDP/ICA unterscheiden
  • ISO/OSI-Modell (7 Schichten) im Vergleich zum TCP/IP-Modell (4 Schichten)
  • Backup
    • Medien nennen und erläutern
    • inkrementell/differentiell/voll
    • Generationenprinzip, Großvater/Vater/Sohn
    • hot/cold
    • Wie erkennt die Software, welche Daten zu sichern sind?
    • schützenswerte Daten
    • mögliche Gründe für Datenverluste auf Servern erläutern und Gegenmaßnahmen vorschlagen
    • Folgen von Datenverlust, Auswirkungen von Datenverlusten für das Unternehmen erläutern
    • Maßnahmen der Mitarbeiter zur Vermeidung von Datenverlusten erläutern
  • Client/Server vs. P2P
    • File Sharing
  • primäre/sekundäre/tertiäre Verkabelung
    • Kabeltypen
    • Simplex, Halb-/Vollduplex
    • 10/100/1000Base-T
    • CAT5e/6/7 etc.
  • CSMA/CD, Token
  • VLAN
  • VoIP, QoS, SIP
  • Authentifizierung vs. Autorisierung
    • Warum sollten sich Benutzer ggü. Systemen authentifizieren?
  • mögliche Aufgaben
    • Dauer einer Datensicherung berechnen
    • Netzwerk konzipieren (Router, Firewall, Clients)

Projektmanagement

  • Definition Projekt
  • übliche Projektphasen (Idee, Zieldefinition, Auftrag, Planung, Durchführung, Kontrolle etc.)
    • Beispiele für Aufgaben in den jeweiligen Phasen
  • Aufgaben/Inhalte/Verbindlichkeit von Lasten-/Pflichtenheften und Angeboten
    • Lastenheft: was/wofür?
    • Pflichtenheft: wie/womit?
  • Aufgaben des Projektleiters
  • Netzplan, Gantt-Diagramm, PSP (Projektstrukturplan) erstellen/vervollständigen
    • kritischen Pfad ermitteln
  • Formen der Projektorganisation mit Vor-/Nachteilen
Prozessanalyse
  • Prozessdiagramme/EPKs erstellen/korrigieren/optimieren
  • Ablauf eines üblichen Geschäftsprozesses (von Kundenanfrage bis Zahlungseingang) kennen
  • Symbole des Petri-Netzes erläutern

Softwareentwicklung

  • Arten von Software unterscheiden (Individual-/Branchensoftware)
  • Unterschied prozedurale/objektorientierte Entwicklung/Modellierung
  • 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
  • Software-Architektur
    • Layers/Schichten/3-Tier, MVC, MVVM, SOA, Microservices, REST, Pipes and Filters, Monolith
    • Zustandslosigkeit, lose Kopplung
  • Bottom-Up- und Top-Down-Verfahren bei der Modellierung erläutern
  • Funktion/Vorteile der Modularisierung von Programmen
  • wichtige UML-Diagramme (UseCase-, Klassen-, Sequenz-, Aktivitätsdiagramm, Zustandsautomaten, Komponentendiagramm, Verteilungsdiagramm) kennen und Einsatzgebiete erläutern
  • Design Patterns kennen/erklären
    • Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator, Template Method, Registry, MVC
  • Methoden zur Dokumentation
  • Eigenschaften eines Versionsverwaltungssystems beschreiben
    • SVN, CVS, TFS mit Source Safe, Git
    • VCS vs. DVCS
  • Continuous Integration/Deployment
  • Entwicklungsprozesse
    • Wasserfall, V-Modell (XT), Spiralmodell, Scrum, Extreme Programming, Kanban
  • mögliche Aufgaben
    • gegebene Klassen in ein Klassendiagramm eintragen (inkl. Beziehungstypen und Kardinalitäten)
    • Klassendiagramm vervollständigen
    • Use-Case-Diagramm erstellen
  • Anforderungen durch Mobilgeräte
    • Offline-Fähigkeit, Deployment auf mehrere Plattformen, verschiedene Programmiersprachen, native Apps vs. HTML5/JavaScript, geringe Bandbreiten, kleine Auflösungen
  • Richtlinien bei der Gestaltung von Programmoberflächen
    • Aufgabenangemessenheit, Selbstbeschreibungsfähigkeit, Lernförderlichkeit, Steuerbarkeit, Erwartungskonformität, Individualisierbarkeit, Fehlertoleranz

(siehe EN ISO 9241-110 Grundsätze der Dialoggestaltung)

Programmierung
  • Programmierparadigmen (OO, strukturiert, prozedural, funktional, deklarative etc.)
  • 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
  • Rekursion
  • Unterschied syntaktische/semantische Fehler
  • Benutzereingaben sinnvoll validieren
  • Vorteile generischer Container (Templates in C++) gegenüber Arrays
  • Unterschied statische/nicht-statische Methoden
  • 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
  • Datenstrukturen
    • Queue, Bäume, Stack, Heap
  • Algorithmen als PAP/Struktogramm/Pseudocode darstellen
  • Reguläre Ausdrücke zur Textanalyse erstellen
  • mögliche Aufgaben
    • Fehler in Programmcode finden (C)
    • 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
Software-Qualität
  • Definition Software-Qualität?
  • Software-Qualitätsmerkmale nach DIN/ISO nennen und erläutern
  • Methoden für Software-Tests
    • Bottom-Up und Top-Down
    • statisches/dynamisches Testen
    • Abnahme-, Last-, Funktions-, Regressionstest
    • Black-/Whiteboxtest, Anweisungsüberdeckung/Zweigüberdeckung
    • Komponenten-, Integrations-, Systemtest
  • Maßnahmen zur Qualitätssicherung (Audits, Reviews, Testmethoden)

Literatur

  • Programmablaufpläne (PAP) und Struktogramme (Nassi-Shneidermann)
    • \cite[S. 463-467]{Moehrke2011}
  • Zeichensätze
    • \cite[S. 512-522]{Moehrke2011}: ASCII, Unicode, Konvertierung
  • Reguläre Ausdrücke
    • \cite[S. 570-584]{Moehrke2011}: inkl. Lookaround und bedingten Ausdrücken
  • OOP
    • \cite[S. 157-178]{Moehrke2011}: Objekt/Klasse, Attribute/Methoden, Vererbung, Sichtbarkeit, static
  • Datenstrukturen
    • \cite[S. 485-512]{Moehrke2011}: Queue, Stack, Linked List, Binary Tree, Nested Set
  • Rekursion
    • \cite[S. 495-499]{Moehrke2011}: rekursives Abarbeiten eines Baums
  • Normalisierung/Normalformen
    • \cite[S. 796-801]{Moehrke2011}: Beispiel Adresshaltung
job/fiae.1412081697.txt.gz · Zuletzt geändert: 2014-09-30 14:54 von stefan