Benutzer-Werkzeuge

Webseiten-Werkzeuge


fiae

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

Ausbildung zum Fachinformatiker Anwendungsentwicklung

Projektantrag

Hinweise zur Prüfung von Projektanträgen

  • Projektplanung
    * logischer Aufbau der zeitlichen Projektplanung
    * sinnvolles Verhältnis von Entwurf zu Implementierung
    * wie wird getestet?

    * Implementierung

    • welche Form hat das Programm (Webanwendung, Client mit GUI)?
    • welche Sprache/DB wird verwendet?
      * Projektbegründung
    • was ist der wirtschaftliche Nutzen?

Projektdokumentation

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
    • nicht-monetärer Nutzen/Nutwertanalyse: z.B. Vorher-/Nachher-Vergleich anhand eines Wirtschaftlichkeitskoeffizienten
    • 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
      • 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
  • 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

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
    • Stichpunkte als Bullet Points auf den Folien
    • Grafiken zur Erklärung bestimmter Sachverhalte
  • Folien sollten der Corporate Identity des Ausbildungsbetriebs folgen
  • da die Präsentation recht kurz ist, sollte man sich auf das Wesentliche/Interessante des Projekts konzentrieren

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), Nutzwertanalyse
  • Überblick über die Anwendung (Architektur, Einbindung in andere Systeme)
  • Implementierung (z.B. ERM, UML, Screenshots)
  • Fazit, Ausblick
  • Schlussfolie

Mögliche Themenbereiche Abschlussprüfung

Anmerkungen

Themen

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
  • 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
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
  • Unfreier Versand
  • Fernabsatzverträge
  • Nachbesserung und Nachlieferung
  • Gewährleistung vs. Garantie
  • Mutterschutz, JAschG
  • Betriebsrat
  • Kündigungsfristen
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

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
  • 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 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
  • sATA, AGP, PCI, ISA, IDE, SCSI, SAS, USB, RAID, TFT, TCO, CRT, USV
  • RAID 0, 1, 5 erklären
  • Bluetooth, Firewire, USB
  • WLAN
    • Hotspot, Ad-Hoc, Repeater
    • Sicherheit (WPA, WEP, MAC-Kontrolle)
  • BIOS, CMOS, Ablauf eines Systemstarts, Sinn von BIOS-Updates
  • IDE: Master/Slave, Jumper
  • Firmware, Flash-Speicher
  • Arten von Druckern und Scannern
  • Thin Clients/Fat Clients
  • Bezugsquellen für Hardwarelieferanten
  • 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

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
  • 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
  • AJAX
    • Vor-/Nachteile
    • Funktionsweise

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

Multimedia

  • Datenraten von verschiedenen Laufwerken (Festplatte, CD, DVD)
  • Audiobearbeitung
    • Sampling(rate, -tiefe)
    • Dateigröße ermitteln
      * Bildbearbeitung
    • Auflösung
  • JPEG, MPEG
  • OCR
    • Unterschied Raster-/Vektorgrafik
  • Zeichensätze kennen und Unterschiede aufzeigen
    • ASCII kennen und erklären
  • Kryptographie
    • symmetrisch/asymmetrisch
  • PKI
    • Was ist eine Prüfsumme?
    • ausgewählte Verschlüsselungsverfahren kennen
    • digitale Signatur
      * Kompression
    • verlustbehaftet vs. verlustfrei
  • ZIP
  • Huffman-Code
  • XML
    • Wohlgeformtheit, Validität
    • Parser, Serialisierer
  • mögliche Aufgaben
    • Dateigrößen von Bildern/Videos berechnen

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
    • MAC vs. IP
      * IPv4, IPv6
    • öffentliche/private IP-Adressen
      * Protokolle mit Port-Nummern (HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, SMB, Telnet, SSH)
  • Routing
  • Firewall
  • Proxy-Server
  • Sicherheitsmaßnahmen
    • Vorteile von SSH
    • Unterschied HTTP/HTTPS
  • Struktur eines Class-C-Netzes erläutern
  • Funktionsweise und Vorteile von VPN beschreiben
  • ISDN, ADSL, SDSL, UMTS
  • FDDI (Lichtwelle)/Ethernet beschreiben
  • Netzwerkhardware (Switch, Router, Hub, Bridge) mit Zuordnung zu ISO-Schichten
    • Switches/Hubs unterscheiden
  • Serverarten nennen (z.B. Print-/Fileserver)
    • Aufbau, Vor-/Nachteile Terminalserver erläutern
  • Clustering, Load Balancing
  • RDP/ICA unterscheiden
  • ISO/OSI-Modell
  • 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
      * CSMA/CD, Token
  • VLAN
  • VoIP, QoS, SIP
  • mögliche Aufgaben
    • Dauer einer Datensicherung berechnen
  • mögliche Aufgaben
    • Netzwerk konzipieren (Router, Firewall, Clients)
  • Authentifizierung vs. Autorisierung
    • Warum sollten sich Benutzer ggü. Systemen authentifizieren?

Projektmanagement

  • Definition Projekt
  • übliche Projektphasen (Idee, Zieldefinition, Auftrag, Planung, Durchführung, Kontrolle etc.)
  • Aufgaben/Inhalte/Verbindlichkeit von Lasten-/Pflichtenheften und Angeboten
    • Lastenheft: was/wofür?
    • Pflichtenheft: was/womit?
      * Aufgaben des Projektleiters
  • Netzplan/Gantt, PSP (Projektstrukturplan) erstellen
Prozessanalyse
  • Programmablaufpläne/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 klassische/objektorientierte Modellierung
  • Prinzipien der OOP
    • Begriffe der OOP erläutern: Attribut, Nachricht, Persistenz, Schnittstelle
    • Bestandteile von Klassen
    • Unterschied Klasse/Objekt
    • Unterschied Klasse/Interface
    • Erklärung Klassenbibliothek
  • Bottom-Up- und Top-Down-Verfahren erläutern
  • Funktion/Vorteile der Modularisierung von Programmen
  • wichtige UML-Diagramme (UseCase-, Klassen-, Sequenz-, Aktivitätsdiagramm, Zustandsautomaten) kennen und Einsatzgebiete erläutern
  • Design Patterns kennen/erklären
  • Methoden zur Dokumentation
  • Eigenschaften eines Versionsverwaltungssystems beschreiben
  • Entwicklungsprozesse
    • Wasserfall, V-Modell, Spiralmodell
      * mögliche Aufgaben
    • gegebene Klassen in ein Klassendiagramm eintragen (inkl. Beziehungstypen und Kardinalitäten)
    • Klassendiagramm vervollständigen
    • Use-Case-Diagramm erstellen
Programmierung
  • Programmierparadigmen (OO, strukturiert, prozedural etc.)
  • die gängigen Programmiersprachen kennen (PHP, Perl, Java, C, C++, C#, JavaScript, Delphi, Visual Basic, VBA)
    • Unterschiede bei der Programmierung/Ausführungsgeschwindigkeit in C, Java und JavaScript
  • Rekursion
  • Unterschied Interpreter/Compiler
  • Unterschied syntaktische/semantische Fehler
  • Benutzereingaben sinnvoll validieren
  • Vorteile generischer Container 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
  • 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
      • Zinsberechnung
      • Planen eines regelmäßigen Backups
      • Ablauf einer Benutzerauthentifizierung an einer Website
      • Dateibäume rekursiv kopieren
      • 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 [GAI, P2]
    • Anweisungsüberdeckung/Zweigüberdeckung
    • Abnahme-, Last-, Black-/Whitebox-, Funktions-, Regressionstest
    • Komponenten-, Integrations-, Systemtest
      * Maßnahmen zur Qualitätssicherung (Audits, Reviews, Testmethoden)
fiae.1270722430.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)