Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
fiae [2010-03-26 09:51] stefan |
— (aktuell) | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Ausbildung zum Fachinformatiker Anwendungsentwicklung ====== | ||
- | ===== Projektdokumentation ===== | ||
- | |||
- | ==== Anmerkungen ==== | ||
- | * //kursive// Punkte sind optional bzw. nur bei Bedarf zu erstellen | ||
- | * die Reihenfolge der Punkte ist nicht fix, es können auch mehrere Punkte zusammengefasst werden | ||
- | * Beispiele für Projektdokumentationen | ||
- | * [[http://www.pruefungsausschuss.de/ProjektDokus.shtml]] | ||
- | * [[http://www.it-themenportal.de/suicidal/dl_engine/index.php?subcat=7]] | ||
- | * Bewertungsbögen zur Dokumentation | ||
- | * {{:fiaebewertungdokuihkkoeln.pdf|Bewertungsbogen der IHK Köln}} | ||
- | |||
- | ==== 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 ==== | ||
- | * am Besten bereitet man sich mit alten Prüfungen vor, um ein "Gefühl" für die Fragen zu bekommen | ||
- | * grundsätzlich können die Inhalte der Ausbildungsrahmenpläne (vgl. [[http://blog.stefan-macke.com/2007/07/09/ausbildungsplan-fachinformatiker-anwendungsentwicklung-als-excel-datei/|Blog]]) drankommen | ||
- | * Die folgende Liste ist nicht vollständig und dient nur einer ersten Übersicht. Sie wurde auf Basis von alten Prüfungen, Lehrbüchern und Stoffsammlungen aus dem Internet zusammengestellt. | ||
- | * Quellen | ||
- | * [[http://forum.fachinformatiker.de/ihk-pruefung-allgemein/123171-ap-fiae-fisi-materialsammlung-zu-ga2.html]] | ||
- | * [[http://forum.fachinformatiker.de/attachments/ausbildung-im-it-bereich/2900-abschlusspruefung-lernen-moegliche-themen-theoretischen-abschlusspruefung.png]] | ||
- | |||
- | ==== Themen ==== | ||
- | |||
- | === Betriebssysteme === | ||
- | * Unterschied Unix/Linux | ||
- | * Vor-/Nachteile Linux/Windows | ||
- | * 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) | ||
- | * Eigenschaften von relationalen Datenbanken | ||
- | * SQL-Abfragen | ||
- | * CRUD (Create, Read, Update, Delete) | ||
- | * Arbeitschritte beim DB-Design | ||
- | * ER-Modelle erstellen | ||
- | * Tabellenmodelle erstellen | ||
- | * ACID-Prinzipien kennen und erläutern (atomicity, consistency, isolation, durability) | ||
- | * Normalformen erläutern | ||
- | * Normalisierung von Datenbanken bis zur 3. Normalform durchführen | ||
- | * Begriffe kennen und erläutern | ||
- | * Redundanz, Primär-/Fremdschlüssel, Datensatz, INSERT | ||
- | * referentielle Integrität | ||
- | * gültige Datensätze zu einem gegebenen Schema ermitteln | ||
- | * Sinn der Benutzerauthentifizierung ggü. der DB | ||
- | |||
- | == Datenformate == | ||
- | * XML | ||
- | * Wohlgeformtheit, Validität | ||
- | * Parser, Serialisierer | ||
- | |||
- | === Englisch === | ||
- | * Texte verstehen und analysieren | ||
- | |||
- | === 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 | ||
- | |||
- | === Hardware === | ||
- | * Datenraten von verschiedenen Laufwerken (Festplatte, CD, DVD) | ||
- | * Eigenschaften/Unterscheidung/Vor-/Nachteile SAN und NAS | ||
- | * Unterschied Stack/Heap | ||
- | * sATA, AGP, IDE, USB, RAID, TFT, USV | ||
- | * passende Komponenten für einen (Datenbank-/File-)Server auswählen | ||
- | * RAID 0, 1, 5 erklären | ||
- | * PCs für bestimmte Anforderungen aus Komponenten zusammenstellen | ||
- | * Bluetooth, Firewire, USB, WLAN | ||
- | |||
- | === Internet === | ||
- | * Aufbau von URLs | ||
- | * Beispiele für Browser/Webserver/Web-Programmiersprachen | ||
- | * wichtige Protokolle und Ports (HTTP, FTP, SMTP, POP3, telnet, NNTP) | ||
- | * Vor-/Nachteile wichtiger Dateiformate (PDF, Bildformate) | ||
- | * Ablauf beim Aufruf einer Website (Kommunikation Client/Server) | ||
- | * Schlagworte aus dem Bereich der Sicherheit erläutern (Phishing, Sniffing, Spoofing, Hoax, DoS, DDoS) | ||
- | * Applet und Servlet unterscheiden | ||
- | * (serverseitige) Scriptsprachen nennen | ||
- | |||
- | == Websites == | ||
- | * Vorteile von Internetseiten als Werbemittel | ||
- | * grundlegende Kenntnisse von HTML, CSS, PHP | ||
- | * ergonomische Gestaltung von Websites | ||
- | * Mindestinhalte des Impressums | ||
- | * virtuelle Hosts erläutern | ||
- | * Funktion von .htaccess erläutern | ||
- | * dynamische Websites (CGI, ASP, AJAX, JSP) | ||
- | |||
- | === Marketing === | ||
- | * Vor-/Nachteile von Absatzwegen | ||
- | * 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 kennen | ||
- | * Beispiele für niedrigen/hohen Markteinstiegspreis nennen | ||
- | |||
- | === Mathematik und Rechnungswesen === | ||
- | * Ermittlung von Umsatz/Provision/Deckungsbeitrag/Kosten/Gewinn | ||
- | * Dateigrößen von Bildern/Videos berechnen | ||
- | * mögliche Gründe für Zahlungsverzug | ||
- | * 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 | ||
- | * Dauer einer Datensicherung berechnen | ||
- | * Vor-/Nachteile Kauf/Leasing/Miete | ||
- | * Umrechnungen in Zahlensystemen (Dual, Dezimal, Oktal, Hexadezimal) | ||
- | |||
- | === Multimedia === | ||
- | * Fachbegriffe Audiobearbeitung | ||
- | * Zeichensätze kennen und Unterschiede aufzeigen | ||
- | * ASCII kennen und erklären | ||
- | |||
- | === Netzwerk und Administration === | ||
- | * Samba | ||
- | * Methoden zur Namensauflösung erklären (DNS, hosts) | ||
- | * DNS-Konfiguration | ||
- | * DNS, DHCP, WINS, ARP, Subnetting, Topologien | ||
- | * IPv4, IPv6, QoS | ||
- | * Firewall | ||
- | * Protokolle mit Port-Nummern (HTTP, HTTPS, FTP, SMTP, POP3, IMAP, DNS, SMB, Telnet, SSH) | ||
- | * Vorteile von SSH | ||
- | * Sicherheitsmaßnahmen | ||
- | * Unterschied HTTP/HTTPS | ||
- | * Struktur eines Class-C-Netzes erläutern | ||
- | * Man-in-the-Middle-Attack beschreiben | ||
- | * Backup-Verfahren und -Medien nennen und erläutern | ||
- | * Funktionsweise und Vorteile von VPN beschreiben | ||
- | * ISDN, ADSL, SDSL, UMTS beschreiben | ||
- | * FDDI/Ethernet beschreiben | ||
- | * Netzwerk konzipieren (Router, Firewall, Clients) | ||
- | * Netzwerkhardware (Switch, Router, Hub) den ISO-Schichten zuordnen | ||
- | * Serverarten nennen (z.B. Printserver) | ||
- | * Bezugsquellen für Hardwarelieferanten nennen | ||
- | * mögliche Gründe für Datenverluste auf Servern erläutern und Gegenmaßnahmen vorschlagen | ||
- | * Auswirkungen von Datenverlusten für das Unternehmen erläutern | ||
- | * Maßnahmen der Mitarbeiter zur Vermeidung von Datenverlusten erläutern | ||
- | * Aufbau, Vor-/Nachteile Terminalserver erläutern | ||
- | * Clustering, Load Balancing, Thin-Clients erläutern | ||
- | * RDP/ICA unterscheiden | ||
- | * Verbreitung von Viren erläutern | ||
- | * Viren/Würmer/Trojaner unterscheiden | ||
- | * Switches/Hubs unterscheiden | ||
- | * ISO/OSI-Schichten nennen | ||
- | |||
- | === Projektmanagement === | ||
- | * übliche Projektphasen | ||
- | * Aufgaben/Inhalte/Verbindlichkeit von Pflichtenheften/Angeboten | ||
- | * 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 | ||
- | |||
- | === Rechtliches === | ||
- | * Datenschutz erläutern | ||
- | * Urheberrecht | ||
- | * von Patenten abgrenzen | ||
- | * erläutern | ||
- | * Datensicherheit erläutern | ||
- | * Unfreien Versand erläutern | ||
- | * Fernabsatzvertrag erläutern | ||
- | * Nachbesserung und Nachlieferung 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 | ||
- | * 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) nennen und erläutern | ||
- | * Einsatzgebiete verschiedener UML-Diagrammtypen | ||
- | * Use-Case-Diagramm erstellen | ||
- | * Diagramme für Zustandsautomaten erstellen | ||
- | * Klassendiagramme | ||
- | * gegebene Klassen in ein Klassendiagramm eintragen (inkl. Beziehungstypen und Kardinalitäten) | ||
- | * Klassendiagramm vervollständigen | ||
- | * Bestandteile von Klassen | ||
- | * Design Patterns kennen/erklären | ||
- | * Methoden zur Dokumentation | ||
- | * Eigenschaften eines Versionsverwaltungssystems beschreiben | ||
- | |||
- | == Programmierung == | ||
- | * Programmierparadigmen (OO, strukturiert, prozedural etc.) | ||
- | * die gängigen Programmiersprachen kennen (PHP, Perl, Java, C, C++, C#, JavaScript, Delphi, Visual Basic) | ||
- | * Fehler in Programmcode finden (C) | ||
- | * 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 durchspielen | ||
- | * Algorithmen als PAP/Struktogramm/Pseudocode darstellen | ||
- | * Mittelwert | ||
- | * doppelte Einträge in einem Array finden | ||
- | * Zinsberechnung | ||
- | * Planen eines regelmäßigen Backups | ||
- | * Ablauf einer Benutzerauthentifizierung an einer Website | ||
- | * doppelte Werte aus Array löschen | ||
- | * Dateibäume rekursiv kopieren | ||
- | * Unterschied Interpreter/Compiler | ||
- | * Unterschied syntaktische/semantische Fehler | ||
- | * Unterschiede bei der Programmierung/Ausführungsgeschwindigkeit in C, Java und JavaScript | ||
- | * Methode zum Abbuchen von einem Konto in Pseudocode implementieren | ||
- | * Reguläre Ausdrücke zur Textanalyse erstellen | ||
- | |||
- | == 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 | ||
- | * Maßnahmen zur Qualitätssicherung (Audits, Reviews, Testmethoden) | ||
- | |||
- | === Unternehmens-/Mitarbeiterführung und Organisation === | ||
- | * Vorteile eines betrieblichen Vorschlagwesens | ||
- | * Beispiele zur Optimierung der Arbeitsabläufe | ||
- | * Methoden zur Mitarbeitermotivation | ||
- | * Linien-/Matrixorganisation kennen (Vor-/Nachteile)und Organigramm erstellen | ||
- | * Standortfaktoren bewerten | ||
- | * Marktformen bestimmen | ||
- | * Angebotskalkulation | ||
- | * (Arbeits-)Verträge | ||
- | * Betriebsrat | ||
- | * Kündigungsfristen | ||
- | * Lohnabrechnung | ||
- | * Gesellschaftsformen | ||
- | * Arbeitsvertrag | ||
- | * Aufbau- und Ablauforganisation | ||
- | |||
- | == Soft-Skills == | ||
- | * Präsentieren | ||
- | * Vorteile des Medieneinsatzes bei Präsentationen | ||
- | * Aufbau von Präsentationen | ||
- | * Aufmerksamkeit der Zuhörer gewinnen |