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

  • Winter 2014
    • GH1
      1. Pflichten-/Lastenheft, Personaleinsatzplan/Gantt-Diagramm vervollständigen, Use-Case-Diagramm erstellen
      2. relationales Datenmodell erstellen (Fragebogenverwaltung)
      3. Algorithmus zur Berechnung der prozentualen Mietbelastung von Einkommensgruppen erstellen (2-dimensionales Array)
      4. Algorithmus zum Sortieren eines 2-dimensionalen Arrays (Bubble-Sort) erstellen
      5. SQL-Abfragen auf bestehendes Tabellenmodell
    • GH2
      1. Anbgebotsvergleich/Nutzwertanalyse erstellen, Fragen zu Vertragsstörungen
      2. SSDs, Englisch übersetzen, RAID, Speicherplatz berechnen
      3. VLANs: statisch/dynamisch, tagged/untagged, Planskizze vervollständigen, VPNs
      4. SMARTe Ziele, Netzplan vervollständigen
      5. Tabellenmodell erweitern, SQL-Abfragen erstellen
  • Sommer 2014
    • GH1
      1. Netzplan vervollständigen und Begriffe erläutern, Cloud Computing
      2. EPK in Aktivitätsdiagramm umwandeln
      3. Algorithmus zur Ausgabe einer Rechnung erstellen
      4. Algorithmus zur Codierung eines QR-Codes erstellen
      5. SQL-Abfragen erstellen
    • GH2
      1. Unternehmensfusion, Finanzierungsvergleich, Innenfinanzierung
      2. Servervirtualisierung (Hypervisor, Hosted), Stromkosten berechnen, IPv6, ping
      3. Subnetting, DHCP, DNS, VPN, IPSec, symmetische vs. asymmetrische Verschlüsselung
      4. Organisationsformen anhand Organigramm erläutern, Anwendungssysteme (ERP, CRM usw.) erläutern
      5. SQL-Abfragen erstellen
  • 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
    • statisch/dynamisch, tagged/untagged
  • 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
Programmierung
  • Programmierparadigmen (OO, strukturiert, prozedural, funktional)
  • Eigenschaften funktionaler Programmierung: Higher Order Functions, Immutability, Tail Call Optimization, Pattern Matching
  • deklarativ vs. imperativ
  • 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
  • Generische Klassen
    • 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.1419597042.txt.gz · Zuletzt geändert: 2014-12-26 13:30 von stefan