Software Engineering

Unser Ziel: Software-Projekte zum Erfolg führen!

In der heutigen Zeit gibt es immer noch viele Personen im IT-Umfeld, die sich damit abgefunden haben, dass Software-Projekte nicht wie gewünscht ablaufen. Sie erwarten, dass mindestens eines der folgenden Ereignisse eintritt:

  • Die Entwicklung braucht länger als gewünscht
  • Die Software wird teurer als veranschlagt
  • Die entwickelte Software weist nicht die gewünschte Qualität auf

Da dieser Personenkreis mit dem Scheitern des Software-Projektes rechnet, sehen sie nicht ein, übermäßig in den eigentlichen Softwareentwicklungsprozess zu investieren. Die Folge ist ein gescheitertes Projekt. Die Pessimisten haben sich damit selbst bestätigt.

Dabei steht ein ausreichendes Instrumentarium zur Verfügung, um Softwareprojekte erfolgreich zu gestalten. In der Vorlesung Software-Engineering werden Methoden, Prinzipien, Prozesse und Werkzeuge vorgestellt, die eine ingeniersmäßige Entwicklung von Software unterstützen. Wir werden sehen, wie Softwareentwicklungsprozesse ausgestaltet werden können, um die primären und die sekundären Projektziele zu erreichen.

Wir dürfen allerdings Vorgehensweisen aus dem klassischen Ingenieursbereich nicht wahllos auf die Softwareentwicklung übertragen, da sich Software in sehr vielen Aspekten von normalen Produkten unterscheidet. Aus den gleichen Gründen scheitern auch einige der üblichen Managementansätze im Softwarebereich.

Das Thema Software Engineering gliedert sich in die Vorlesungen Allgemeine Methoden des Software Engineering und Spezielle Methoden des Software Engineering.

Allgemeine Methoden des Software Engineering

Themen

1.Software, Engineering und Projekte
2.Vorgehensmodelle
3.Prozessmodelle
4.Qualitäts- und Risikomanagement
5.Projekt-Controlling
6.Analyse/Spezifikation
7.Entwurf
8.Codierung/Implementierung
9.Integration
10.Programmtest
11.Werkzeuge

Spezielle Methoden des Software Engineering

Themen

1.Planung
1.1Expertenschätzung
1.2Algorithmische Schätzung (COCOMO, FP-Methode)
1.3Weitere Schätzverfahren (Planing Poker, Magic Estimation)
2.Analyse
2.1Datensicht
2.2Funktionale Sicht
2.3Datenflussdiagramm
2.4Dynamik
3.OOA
4.Software-Architektur
4.1Logische Schichtenarchitektur
4.2Physikalische Schichtenarchitektur
4.3Client-Server-Architektur
4.4Web-Architektur
4.5Komponentenbasierte Entwicklung (Middelware)
4.6MVC-Architektur
4.7Schnittstellen und Komponenten in der UML
4.8Entwurfsmuster