Intendierte Lernergebnisse
Eine erfolgreiche Absolvierung dieser Lehrveranstaltung befähigt Studierende:grundlegende Begriffe und Konzepte des Software Engineerings zu erklärenProgramme mittels Kontroll- und Datenflussdiagrammen zu analysieren und zu verstehengrundlegende Vorgehensweisen des Reengineerings anzuwenden, um das Design von Programmen zu rekonstruierengrundlegende Black- und White-Box Testing Verfahren anzuwenden, um die Qualität von Programmen sicherzustellengrundlegende Strategien anzuwenden, um Schwachstellen im Source Code zu finden und mittels Refactoring zu behebengrundlegende Software Metriken zu erklären und für Programme zu berechnengrundlegende Prinzipien des Software Designs und der Software Architektur zu erläutern
Lehrmethodik
interaktive Vorlesung, Diskussion mit den Studierenden
Inhalt/e
Die Vorlesung beinhaltet folgende Themen:Grundlegende Konzepte und Begriffe im Software EngineeringProgrammanalyse mittels Kontrollfluß- und DatenflußgraphenProgram SlicingVerstehen von Programmen mittels Design Recovery & Software VisualisierungEinführung in Software TestingBlack-Box TesttechnikenKontrollflußbezogene White-Box TesttechnikenDatenflußbezogene White-Box TesttechnikenTesten von objekt-orientierten ProgrammenEinführung in Code Smells und RefactoringGrundlegende SoftwaremetrikenGrundlegende Software Design Prinzipien
Erwartete Vorkenntnisse
Folgende Vorkenntnisse werden erwartet:Java Kenntnisse sind erforderlich, d.h. ESOP sollte erfolgreich abgeschlossen worden seinOMI sollte zumindest besucht worden sein.
Curriculare Anmeldevoraussetzungen
Keine.
Literatur
Die Inhalte der Vorlesung basieren auf folgender Literatur:Ludewig, J., Lichter H., „SoftwareEngineering – Grundlagen, Menschen, Prozesse, Techniken“, 4. Auflage, dpunkt.verlag, 2023Pilone, D., Miles, R., “Head First SoftwareDevelopment”, O’Reilly Media, 2008Sommerville, I., “Software engineering”, 10. Auflage., Addison-Wesley, 2018.Jalote, P., „An integrated Approach to SoftwareEngineering“, 3rd edition, Springer 2005Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D.,“Refactoring: Improving the Design of Existing Code”, Addison-Wesley, 2. Auflage, 2018Pezze, M., Young, M., “Software Testing and Analysis”, Wiley & Sons, 2008 Demeyer, S., Ducasse, S. and Nierstrasz, O. “Object-oriented reengineering patterns”, Morgan Kaufmann, 2008 Artikeln aus verschiedenen Fachzeitschriften