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

Dieser Beitrag ist Teil 14 von 14 in der Serie Buchclub.

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.

Probeabo bei Audible (Affiliate)

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.
  • Und Bugtracker sind hoffentlich in den Ausbildungsbetrieben auch weit verbreitet.

Literaturempfehlungen

Software-Engineering ist ein weites Feld. Zu den genannten Schwerpunkten in der Prüfung kann ich die folgenden Bücher empfehlen.

  • Darum geht es ja hier 🙂
    Sascha Kersken - IT-Handbuch für Fachinformatiker: Für Fachinformatiker der Bereiche Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Praxisübungen (Affiliate)*
  • Eine detaillierte und gut verständliche Übersicht über alle UML-Diagramme.
    UML 2 glasklar: Praxiswissen für die UML-Modellierung (Affiliate)*
  • Enthält auf wenigen Seiten (ca. 200) Extreme Programming, Scrum und Feature Driven Development.
    Bleek/Wolf - Agile Softwareentwicklung (Affiliate)*
  • Der Klassiker vom „Erfinder“ Kent Beck persönlich.
    Extreme Programming Explained: Embrace Change (Affiliate)*
  • Sehr gut verständlich und spannend geschrieben. Es werden aber nicht alle Pattern besprochen.
    Head First Design Patterns (Affiliate)*
  • Eine kurze Zusammenfassung aller wichtiger Patterns. Zum Nachschlagen gut geeignet. Wenn man sie noch gar nicht kennt, aber zu kurz.
    Patterns kompakt: Entwurfsmuster für effektive Software-Entwicklung (Affiliate)*

Links

Navigation der Serie<< Buchclub: Handbuch für Fachinformatiker (Teil 13: Konzepte der Programmierung) – Anwendungsentwickler-Podcast #96
Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

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

  1. John sagt:

    Danke für die Podcasts!
    Hat Spaß gemacht sich anzuhören und wichtige Aspekte der eigentlichen Ausbildung näher gebracht, welche durch den Ausbildungsbetrieb + Corona niemals aufkamen.
    In 2 Wochen ist für mich Prüfung und den 1300 Seiten Schinken bin ich noch fleißig am lesen.
    Finde es übrigens amüsant, wie oft Sie davon sprachen sich noch extra Lektüre für ein Thema zu besorgen oder das etwas Pflichtwissen ist und ich noch nie davon gehört habe, aber gut 3 Jahre Ausbildung sind in der Theorie viel Zeit, in der Praxis habe ich in meiner Ausbildung effektiv nur im letzten der drei Jahre wirklich etwas gemacht.
    Hinterher ist man immer schlauer und immerhin wirds wohl trotzdem ein „gut“ in der Abschlussprüfung 🙂
    LG

  2. Stefan Macke sagt:

    Hallo John, danke für dein Feedback. Freut mich, wenn ich helfen kann. Ich drücke dir die Daumen für die Prüfung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax