Themen des Fachgebiets Software Engineering

Requirements Engineering

Wenn Software für die falschen Anforderungen entwickelt wird, ist das Projekt zum Scheitern verurteilt. Viele Untersuchungen haben gezeigt, dass für den Erfolg eines Softwareprojekts die Identifikation und Umsetzung der richtigen Anforderungen entscheidend sind.

Am Fachgebiet Software Engineering werden daher bekannte Techniken zur Erhebung, Analyse und Validierung von Anforderungen gelehrt und weiterentwickelt. Außerdem arbeiten wir in Grundlagenprojekten an neuartigen Ansätzen.

Visionsvideos (Vision Videos) gibt es seit einigen Jahren. In dieser Technik versucht man, in den besonders heiklen, noch unsicheren frühen Phasen eines Projekts ein gemeinsames Verständnis aller Beteiligten herbeizuführen. Statt langwieriger, aufwändiger Textspezifikationen wird die Grundidee und der Wert neuer Software als kurzes Video vorgespielt. Dabei geht es nicht um Details, und man tut so, als gebe es die angestrebte Lösung bereits. Das hilft, Widersprüche zu finden und zwischen Benutzern, Betroffenen und Entwicklern zu vermitteln.

Siehe:  DFG-Projekte ViViReq und ViViUse

Agile und Hybride Entwicklungsmethoden

Agile Entwicklungsmethoden dienen seit der Jahrtausendwende dazu, Softwareprojekte schneller, flexibler und für die Kunden nützlicher zu machen. Sie erfordern ein grundlegendes Umdenken und eine neue Perspektive. Die Transformation auf agile Methoden ist daher nicht einfach und erfordert spezielles Augenmerk. Oft werden bewährte, traditionelle Methoden mit agilen Ansätzen gemischt. Diese Hybriden Ansätze untersuchen wir in Zusammenarbeit mit Industrieunternehmen.

Techniken wie SCRUM und XP (eXtreme Programming) werden in Unternehmen eingeführt. Oft ist es erforderlich, bestehende Unternehmenskulturen zu verändern; in anderen Fällen werden die agilen Techniken angepasst, um Qualitäten wie Nachvollziehbarkeit und Belegbarkeit von Qualitätsprüfungen aufrechtzuerhalten – obwohl dies mit reinen agilen Tätigkeiten nicht vorgesehen ist.

Das Fachgebiet analysiert in Unternehmen, welche Abläufe und Informationsflüsse in Projekten vorkommen. Sie werden mit den erwarteten Informationsflüssen in den agilen Techniken verglichen und liefern so Hinweise auf Verbesserungsmöglichkeiten. In groß angelegten Studien (z.B. Helena, an der das Fachgebiet beteiligt ist), wird untersucht, ob die tatsächliche Umsetzung einer Technik mit den Vorstellungen übereinstimmt.

Die agilen Methoden haben viele Berührungspunkte mit den anderen Forschungsthemen des Fachgebiets, denn einerseits sind sie stark auf den Kundennutzen ausgereichtet (Anforderungen). Gute agile Projekte nutzen Feedback und Reflexion, um sich ständig zu verbessern. Das verweist auf Kommunikation und Teamarbeit.

Siehe: Projekt GloSE (Global Software Engineering), DFG-Projekte TeamFLOW und TeamDynamics, Industriekooperationen z.B. mit Daimler AG, BakerHughes, VWN

Kommunikation und Teamarbeit in der Softwareentwicklung

Um qualitativ hochwertige Software herzustellen, muss man die Anforderungen kennen. Sie müssen aber auch wirksam kommuniziert und in Entwurfs- und Entwicklungsentscheidungen überführt werden. Durch Informationsflussanalyse und die Kombination technischer Entwicklungsdaten (z. B. aus JIRA) mit sozialen Aspekten entwickeln wir ein übergreifendes Gesamtbild, um letztlich Praktiker bei der angemessenen Kommunikation zu unterstützen.

Betrachtet man gängige Vorgehensmodelle, so wird dort nur schriftlich niedergelegte Information modelliert. Informelle oder mündliche Weitergabe von Informationen ist nicht dargestellt. Dies entspricht nicht mehr den Realitäten in agilen Projekten, die explizit und sehr stark auf direkte Kommunikation setzen. Nicht alles, was man rasch sagen kann, muss auch langfristig dokumentiert werden; das ist ein Element, das Projekte schneller und beweglicher macht. Andere Informationen müssen dagegen aufbewahrt werden, für die Wartung oder Weiterentwicklung.

Kommunikation als der Überbegriff über mündliche, informelle, und formal dokumentierten Austausch in Softwareprojekten, wird am Fachgebiet Software Engineering im Gesamtzusammenhang gesehen, modelliert und verbessert. Ein Teilaspekt ist die Frage, wie über existierende Software gesprochen wird.

Wer spricht mit wem? Gibt es Bottlenecks oder Unterbrechungen? Kommunizieren verteilte Projekte nur über technische Plattformen wie JIRA, oder gibt es auch die Abkürzung über persönliche Kontakte? Solche Fragen hängen zusammen, und von ihnen hängt ab, ob Anforderungen und Entwicklungsinformationen rasch dort ankommen, wo sie gebraucht werden.

Am Fachgebiet Software Engineering untersuchen wir schon seit vielen Jahren die Informationsflüsse in Softwareprojekten. Entsprechende Modelle erlauben, die Kommunikation mit sozialer Netzwerkanalyse quantitativ zu untersuchen. Gemeinsam mit Partnern aus der Psychologie untersuchen wir technische Kennzahlen (z.B. aus JIRA) und soziale Aspekte (z.B. aus der Psychologie). Das Ziel ist, Zusammenhänge zu erkennen und diese Erkenntnis nutzbringend einzusetzen.

Siehe: DFG-Projekte InfoFLOW, TeamFLOW, TeamDynamics, UVL; Einsatz in Unternehmen