Strukturbaum
Keine Einordnung ins Vorlesungsverzeichnis vorhanden. Veranstaltung ist aus dem Semester WS 2019/20 , Aktuelles Semester: SoSe 2024
  • Funktionen:
Software Engineering Praktikum    Sprache: Deutsch    Belegpflicht
Nr.:  621     Praktikum     WS 2019/20     4 SWS     Jedes Semester    
   Bachelor-Studiengang: Bachelorstudiengang Wirtschaftsinformatik und E-Business    
 
      Wirtschaftsinformatik PLUS, Abschluss 84,   ( 6. Semester ) - ECTS-Punkte : 5     - Kategorie : Pflichtfach    
  Wirtschaftsinformatik, Abschluss 84,   ( 6. Semester ) - ECTS-Punkte : 5     - Kategorie : Pflichtfach    
  519   ( 4. Semester ) - ECTS-Punkte : 5     - Kategorie : Pflichtfach    
   Zugeordnete Lehrperson:   Andriessens verantwortlich
 
 
   Termin: Donnerstag   14:15  -  17:30    wöchentl       Raum :   V 206   Gebäude V/Laz1  
  Donnerstag   14:15  -  17:30    wöchentl       Raum :   V 208   Gebäude V/Laz1  
 
 
   Inhalt: Praxisnahe Anwendung und Erprobung von Methoden und Werkzeugen des Software Engineering. Dabei Planung, Entwurf und Implementierung von Requirements bzw. Umsetzung von Tests im Kontext von Beispielanwendungen.

Bis inklusive der Projektphase werden nahezu sämtliche Phasen eines Softwareprojekts von der Projektidee bis zur Abnahme ausgeführt.
 
   Literatur: Software Engineering allgemein:
- H. Balzert: Lehrbuch der Softwaretechnik. Basiskonzepte und Requirements Engineering. 3. Aufl., Spektrum Akademischer Verlag, 2009.
- H. Balzert: Lehrbuch der Softwaretechnik. Entwurf, Implementierung, Installation und Betrieb. 3. Aufl., Spektrum Akademischer Verlag, 2011.
- H. Balzert: Lehrbuch der Softwaretechnik. Softwaremanagement. 2. Aufl., Spektrum Akademischer Verlag, 2008.
- I. Sommerville: Software Engineering. 10. Aufl. (Herbst 2015), Pearson, 2015.
- J. Ludewig, H. Lichter: Software Engineering: Grundlagen, Menschen, Prozesse, Techniken. 3. Aufl., dpunkt.verlag, 2013.
- C. Ghezzi, M. Jazayeri, D. Mandrioli: Fundamentals of Software Engineering, 2nd Edition, Prentice Hall, 2002.

Anforderungsmanagemenet:
- Chris Rupp & die SOPHISTen: Requirements-Engineering und -Management. 6. Aufl., 2014, Carl Hanser Verlag.
- Alistair Cockburn: Writing Effective Use Cases. 2001, Addison-Wesley (20. Print, 2008)
- Karl E. Wiegers: More about Software Requirements. 2006, Microsoft Press.

Schätzen:
- Steve McConnell: Software Estimation, Microsoft Press, 2006.
- Oliver Hummer: Aufwandsschätzungen in der Software- und Systementwicklung kompakt. Spektrum Akademischer Verlag, 2011.
- Pascal Van Cauwenberghe : Estimation Games, http://de.slideshare.net/agilecoachnet/agile-2010-estimation-games, Agile 2010

Agile Softwareprozesse:
- Alistair Cockburn: Agile Software Development. The Cooperative Game. 2. Aufl., 2007, Pearson Education.
- Ken Schwaber, Jeff Sutherland: The Scrum Guide. 2013, Online (http://www.scrumguides.org/)
- Ken Schwaber: Agiles Projektmanagent mit Scrum. 1. Aufl., 2007, Microsoft Press.
- Henning Wolf, Wolf-Gideon Bleek: Agile Softwareentwicklung. Werte, Konzepte und Methoden. 2. Aufl., 2011, dpunkt Verlag.
- K. Beck. eXtreme Programming explained. Addsion-Wesley, Reading,
Massachusetts, 1999.

Architektur:
- L. Bass, P. Clements, R. Kazman: Practical Software Architecture. 3. Aufl., Addision-Wesley 2012.
- G. Starke, P. Hruschka: Software-Architektur kompakt. 2. Aufl., Spektrum Akademischer Verlag, 2011.
- Microsoft Application Architecture Guide, 2nd Edition, Microsoft 2009
- P. Kruchten: The “4 + 1” View Model of Software Architecture: IEEE Software 12(6) November 1995. Online: www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf
- M. Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley, 2011.

Entwurf:
- R. C. Martin: Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 2002.
- A. J. Riel: Object-Oriented Design Heuristics, Addison Wesley, 1996.
- E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns. Prentice Hall; 1. Aufl., Reprint, 1994.
- SRP: Blog-Eintrag von Robert C. Martin, http://blog.8thlight.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
- Vgl. auch Blogs von Martin Fowler, Kent Beck und anderen

Implementierung:
- A. Schatten et. al.: Best Practice Software-Engineering. Spektrum Akademischer Verlag, 2010.
- R. C. Martin: Clean Code. Pearson Education, 2008.
- D. Thomas, A. Hunt: Der Pragmatische Programmierer. Hanser, 2003.
- S. Chacon, B. Straub: Pro Git. 2. Aufl., 2014. http://git-scm.com/book/en/v2 oder Apress Verlag.

Continuous Integration:
- M. Fowler: Continuous Integration, http://martinfowler.com/articles/continuousIntegration.html, 2006
- S. Schluff: Continuous Integration mit CruiseControl, http://www.oio.de/cruisecontrol.pdf
- S. M. Matyas, N. Schneider, M. Voit, P. Duvall: Continuous Integration: Improving Software Quality and Reducing Risk (Martin Fowler Signature Books)
- S. McConnell, Daily Build and Smoke Test, Best Practices, IEEE Software, Vol. 13, No. 4, July 1996, http://www.stevemcconnell.com/ieeesoftware/bp04.htm
- Jenkins – der ci-server http://jenkins-ci.org/

Testen:
- A. Schatten et. al.: Best Practice Software-Engineering. Spektrum Akademischer Verlag, 2010.
- P. Liggesmeyer: Software-Qualität. Spektrum Akademischer Verlag, 2009.
- D. W. Hoffmann: Software-Qualität. Springer-Verlag, 2008.
- Robert Binder, Testing Object-Oriented Systems – Models, Patterns, and Tools, Addison-Wesley Object Technology, 1999

JUnit zusätzlich zum Testen:
- http://junit.org und https://github.com/junit-team/junit/wiki
- JUnit Kochbuch: http://junit.sourceforge.net/doc/cookbook/cookbook.htm
- Herkunft von JUnit: http://www.martinfowler.com/bliki/Xunit.html

Test Driven Development:
- Kent Beck, Test-Driven Development by Example, Addison-Wesley, 2002
- Ron Jeffries, Grigori Melnik, Test Driven Development: The Art of Fearless Programming, IEEE Software, May/June 2007

Software Qualität:
- P. Liggesmeyer: Software-Qualität. 2. Aufl., Spektrum Akademischer Verlag, 2009.
- D. W. Hoffmann: Software-Qualität. Springer-Verlag, 2008.
- Fenton, Pfleeger: Software Metrics. Thomson Press, 1998.

Sonst:
- M. Fowler. Refactoring – Improving the Design of Existing Code. Addison
Wesley, 1999.

Zusätzlich nützliche Literatur im Praktikum:
Adzic, Gojko (2011): Specification by example. How successful teams deliver the right software. Shelter Island, N.Y: Manning.
Eilebrecht, Karl; Starke, Gernot (2013): Patterns kompakt. Entwurfsmuster für effektive Software-Entwicklung. 4. Aufl. Berlin: Springer Vieweg (IT kompakt).
Fowler, Martin (2004): SpecificationByExample. Online verfügbar unter http://martinfowler.com/bliki/SpecificationByExample.html, zuletzt aktualisiert am 17.11.2011, zuletzt geprüft am 14.03.2014.
Goll, Joachim; Dausmann, Manfred (2013): Architektur- und Entwurfsmuster der Softwaretechnik. Mit lauffähigen Beispielen in Java. In: Architektur- und Entwurfsmuster der Softwaretechnik.
Goll, Joachim; Heinisch, Cornelia (2014): Java als erste Programmiersprache. Ein professioneller Einstieg in die Objektorientierung mit Java. In: Java als erste Programmiersprache.
Hoffmann, Dirk W. (2013): Software-Qualität. 2., aktualisierte und korrigierte Aufl. Berlin: Springer Vieweg (eXamen.press).
Kleuker, Stephan (2013): Grundkurs Software-Engineering mit UML. Der pragmatische Weg zu erfolgreichen Softwareprojekten. In: Grundkurs Software-Engineering mit UML.
Kleuker, Stephan (2013): Qualitätssicherung durch Softwaretests. Vorgehensweisen und Werkzeuge zum Test von Java-Programmen. In: Qualitätssicherung durch Softwaretests.
Logofătu, Doina (2014): Grundlegende Algorithmen mit Java. Lern- und Arbeitsbuch für Informatiker und Mathematiker. 2. Aufl. 2014. Wiesbaden: Springer Fachmedien Wiesbaden.
Martin, Robert C. (2011): The clean coder. A code of conduct for professional programmers. Upper Saddle River, NJ: Prentice Hall (Robert C. Martin series).
Meszaros, Gerard; Fowler, Martin (op. 2007): XUnit test patterns. Refactoring test code. Upper Saddle River, New Jersey: Addison-Wesley.
Niebisch, Thomas (2013): Anforderungsmanagement in sieben Tagen. Der Weg vom Wunsch zur Konzeption. Berlin, Heidelberg: Springer Gabler (SpringerLink : Bücher).
Preißel, René; Stachmann, Bjorn (2012): Git. Dezentrale Versionsverwaltung im Team - Grundlagen und Workflows: dpunkt.verlag.
Valentini, Uwe; Herrmann, Andrea (2013): Requirements Engineering und Projektmanagement. Berlin: Springer (Xpert.press).
 
   Lernziele: Vertiefung der in der Vorlesung Software-Engineering kennengelernten Methoden und Verfahren anhand eines zweistufigen Modells: Zunächst wird in kleinen Anwendungen individuell vertieft. In einer zweiten Phase wird Software Engineering anhand eines Projektes im Team betrieben.

Neben der Vertiefung technischer Fähigkeiten (Objektorientiertes Design, Unit Testing, u.a.) ist der Erwerb von Softskills eines professionellen Software-Engineers ein wichtiges Ziel der Veranstaltung.

Nach der Veranstaltung sollen die Teilnehmer in der Lage sein, kleinere Projekte selbstständig mit gutem Engineering-Niveau zu planen, zu bearbeiten und sich selbstsicher in größeren (agilen) Softwareprojekten bewegen. In größeren Projekten sollen Sie anspruchsvolle Teilaufgaben entsprechend qualifiziert bearbeiten können.
 
   Voraussetzungen: Programmieren; Objektorientierte Programmierung Java und die Vorlesung Software-Engineering
 
   Leistungsnachweis: Portfolioprüfung.
Siehe auch "Offizielle Aushänge" zum Semester
 
   Module: Software Engineering Praktikum (Modul AI5) (WI)
  Softwareentwicklung 2 (WP)
  Software Engineering Praktikum (WB)