Buchclub: Handbuch für Fachinformatiker (Teil 14: Software-Engineering und Mobile Development) – Anwendungsentwickler-Podcast #101

IT-Berufe-Podcast - Ein Podcast von Stefan Macke - Montags

Den letzten Teil des Buchclubs zum Handbuch für Fachinformatiker mit den Kapiteln Mobile Development und Software-Engineering gibt es in der einhundertersten Episode des Anwendungsentwickler-Podcasts. Inhalt Kapitel 12 ist voll mit prüfungsrelevanten Inhalten, die jeder Anwendungsentwickler beherrschen sollte. Der Ausflug in die Entwicklung mobiler Anwendungen ist zwar spannend, aber weniger prüfungsrelevant. Kapitel 11: Mobile Development * Die Kurzeinführung in iOS und Android ist ganz nett, wenn man die Betriebssysteme noch nicht kennt. * Die Einführung in Swift ist interessant, aber aufgund des geringen Umfangs nicht ausreichend für die Praxis. * Die „Schritt-für-Schritt-Anleitungen“ zum Erstellen zweier Apps sind sehr spezifisch und nicht prüfungsrelevant. Da sie wahrscheinlich schnell veralten, sind sie für die Praxis auch nicht allzu hilfreich. Dennoch vermitteln sie einen ersten Überblick über die Werkzeuge und das Vorgehen bei der Entwicklung einer App. Kapitel 12: Software-Engineering * Die kurze geschichtliche Einführung anhand der Softwarekrise ist sinnvoll. 12.1 Überblick * Der Entwicklungszyklus aus Planung, Analyse, Entwurf, Implementierung, Test und Dokumentation wird exakt so in (fast) jedem IHK-Abschlussprojekt durchlaufen, hat also eine sehr hohe Praxisrelevanz. * Projektmanagement ist ein wichtiges Prüfungsthema. Netzpläne werden in gefühlt jeder zweiten Prüfung abgefragt. Auch das Gantt-Diagramm sollte jeder Prüfling beherrschen. * Ein weiteres wichtiges Prüfungsthema sind Lastenheft und Pflichtenheft. * Beim Entwurf wird auf die Architektur der Anwendung geachtet. Eine Information, die viele Prüflinge in ihren Projektarbeiten vergessen. * Bei der Implementierung werden mehrere – eigentlich als selbstverständlich geltende – Verfahren wie Versionsverwaltung oder Unit-Tests beschrieben, die in vielen Projektarbeiten auch keine Erwähnung finden. * Im Bereich Dokumentation werden dann genau die Artefakte besprochen, die ich in jeder Projektarbeit erwarte: Entwicklerdokumentation und Kundendokumentation. * Die konkreten Entwicklungsprozesse sollte auch jeder Prüfling kennen, wobei der RUP bislang nie abgefragt wurde (wohl weil er kommerziell ist). Extreme Programming und Scrum sollten jedem Prüfling geläufig sein. 12.2 Werkzeuge * UML: Das Lieblingsthema jedes Prüfungserstellers 🙂 Absolut prüfungsrelevant sind: Anwendungsfalldiagramm, Klassendiagramm, Sequenzdiagramm, Aktivitätsdiagramm und Zustandsdiagramm. Letzeres wird leider nicht näher vorgestellt. Sekundärliteratur ist für die UML dringend zu empfehlen! * Entwurfsmuster sollten einem Anwendungsentwickler nach drei Jahren Ausbildung auch einmal untergekommen sein. Allerdings wurden sie bislang nicht in Prüfungen abgefragt. Da sie aber eine hohe Praxisrelevanz haben, können sie definitiv im Fachgespräch zur Sprache kommen. Ich empfehle eine nähere Auseinandersetzung mit: Abstract Factory, Factory Method, Builder, Singleton, Adapter, Decorator, Observer, Strategy, Template Method, Visitor. * In Java würde ich statt des gezeigten Codes für einen Singleton die implizit synchronisierte Variante verwenden. * Unit-Tests sollten heutzutage Standard bei der Softwareentwicklung – und in jedem Abschlussprojekt – sein. Auch TDD muss jeder Prüfling erklären können. * Ohne eine Versionsverwaltung wie Git würde ich nicht eine Zeile Code schreiben.