Software Engineering

Motivation

Seit Jahren durchdringen Softwaresysteme immer stärker unser tägliches Leben und werden dabei zunehmend komplexer. Wirtschaft und Gesellschaft werden dadurch immer abhängiger von qualitativ hochwertiger Software bei einem gleichzeitig immer eklatanter zutage tretenden Fachkräftemangel für deren Entwicklung. 

Es überrascht daher nicht, dass die Medien regelmäßig über fehlgeschlagene beziehungsweise stark verzögerte oder überteuerte Softwareprojekte berichten und in den letzten Jahren beispielsweise auch zahlreiche Bundesministerien mit entsprechenden Softwareproblemen in die Schlagzeilen geraten sind.

Die in unserem Software-Engineering-Cluster beteiligten Professoren vereinen umfangreiche Erfahrungen in der Entwicklung von komplexen Softwaresystemen und arbeiten in der Forschung an innovativen Lösungen, die die Softwareentwicklung zukünftig planbarer und zuverlässiger machen können. Gleichzeitig liegt einer unserer besonderen Schwerpunkte in der Vermittlung von aktuellsten Erkenntnissen und Methoden an Studierende, um in der Rhein-Neckar-Region hochqualifizierte Softwareentwickler auszubilden. 

Methoden & Technologien

Die Arbeitsschwerpunkte unserer Cluster-Forschungsgruppen liegen insbesondere in den folgenden Bereichen: 

Software-Entwicklungsprozesse & -Projektmanagement: 

Die Komplexität von Software macht es meist schon bei kleineren Projekten unmöglich, diese nur durch eine einzelne Person entwickeln zu lassen. Somit müssen zahlreiche Mitarbeiter gleichzeitig in der Lage sein, ein komplexes Softwaresystem zu entwickeln, zu betreiben und zu warten.

In unserem Cluster werden daher aktuell verbreitete und agile Entwicklungsansätze ebenso analysiert und gelehrt wie schwergewichtigere Prozesse.

Die Schwerpunkte innerhalb des Software-Projektmanagements liegen beim Risiko- und Qualitätsmanagement, also in der Minimierung von störenden Einflussfaktoren auf ein Softwareprojekt und in der Sicherstellung eines geregelten Projektablaufs, der ein entsprechend qualitativ hochwertiges Endprodukt garantieren soll. 

Optimal ergänzt werden diese Verfahren durch unser im Cluster vorhandenes Spezialwissen im Bereich der Kosten- und Aufwandsabschätzung für Softwareprojekte.

Sichtenbasierte Softwaremodellierung & modellgetriebene Entwicklung: 

Heutige Softwareprodukte machen die Entwicklung von vereinfachten Modellen erforderlich, die einen schnellen Überblick über verschiedene Aspekte eines Systems ermöglichen. Unser Cluster entwickelt daher einen Ansatz, der verschiedene nützliche Sichten auf ein Softwaresystem definiert und diese in nur einem Werkzeug zur Verfügung stellt.

Softwarewiederverwendung: 

Die Wiederverwendung von Softwarekomponenten ist ein uralter Traum des Software Engineerings, der bis vor einigen Jahren allerdings an den geringen vorhandenen Softwaremengen und schnellen Technologiewechseln scheiterte. Durch die Open-Source-Bewegung und stabile Programmierplattformen wie Java oder .NET, ist die Menge an verfügbarer Software in den letzten Jahren explosionsartig gestiegen und viele Firmen haben längst den Überblick über wiederverwendbare Softwarelösungen in ihren Sourcecode-Repositories verloren. Unser  Software-Engineering-Cluster ist daher seit vielen Jahren an der Entwicklung von Suchmaschinen und -verfahren für Sourcecode, Softwarekomponenten und Services beteiligt und verfügt in diesem Bereich über umfangreiches Spezialwissen.

Unsere technologische Arbeit im Software-Engineering-Cluster konzentriert sich zurzeit vor allem auf die Bereitstellung innovativer Werkzeuge, die die Softwareentwicklung erleichtern sollen. Im Zentrum des Interesses steht dabei, neben dem Entwurf eines innovativen, sichtenbasierten Software-Modellierungswerkzeugs, die Erprobung eines neuartigen Werkzeugs, das Fachexperten ohne spezielle IT-Kenntnisse die Formulierung von Softwaretests auf Basis von Spreadsheets erlaubt. 

Im Bereich der Softwaremodellierung ist einer unserer Clustermitarbeiter aktiv an der Weiterentwicklung des einflussreichen Open-Source Eclipse Modeling Frameworks beteiligt. 

Daneben wird ein Prototyp für die Entwicklung von Software-Architekturen und -Designs an einem Multi-Touch-Tisch erstellt, der es Gruppen von Software-Designern ermöglicht, interaktiv und ohne die Einschränkungen herkömmlicher Design-Werkzeuge zu arbeiten. Einerseits sollen so die Freiheiten der Arbeit wie mit einem Whiteboard erhalten bleiben, andererseits soll durch intuitive Gestensteuerung der Nutzen elektronischer Werkzeuge erschlossen werden. 
Darüber hinaus beschäftigen wir uns mit der Entwicklung einer innovativen Softwaresuchmaschine, welche mit einem zugehörigen Plugin für die bekannte Eclipse-Entwicklungsumgebung zur Marktreife gebracht werden soll. Zusammen mit zahlreichen Partnern aus ganz Europa erarbeiten unsere Mitarbeiter außerdem im Rahmen eines von der EU geförderten Projekts eine Steuerungssoftware, die den Energieverbrauch von Rechenzentren künftig um ca. 25 % reduzieren soll. 

Anwendungsbereiche

Die in unserem Cluster vertretenen Kompetenzen und Werkzeuge eröffnen ein breites Spektrum an Anwendungsbereichen, die einen klaren Fokus auf die Entwicklung von betrieblichen Informationssystemen setzen, aber auch eingebettete Systeme berücksichtigen. 

Serviceangebote 

Ins unserem Cluster bieten wir potenziellen Partnern aus der Industrie vor allem folgende Kooperationsmöglichkeiten an: 

Forschungsprojekte: Unser Software-Engineering-Cluster strebt die gemeinsame Bearbeitung von praxisrelevanten Fragestellungen bzw. die Integration seiner Technologien in die Prozesse von Industriepartnern an. Entsprechende Projekte sollen dabei insbesondere im Rahmen von industriellen Master- bzw. Doktorarbeiten durchgeführt werden.


Studentische Projekte: Die mit unserem Cluster kooperierenden Institutionen bilden ihre Studierenden regelmäßig in praxisorientierten Lehrveranstaltungen (Programmierpraktika bzw. Softwareentwicklungsprojekte) aus, für die vornehmlich realistische Problemstellungen — idealerweise mit Ansprechpartnern aus der Industrie — Verwendung finden. Die Vorteile, die sich durch diese Zusammenarbeit für alle Beteiligten ergeben, liegen auf der Hand.

Consulting, Workshops & Schulungen: Zur Bearbeitung spezieller Herausforderungen und Problemstellungen beziehungsweise zur individuellen Vermittlung von Kenntnissen, bieten wir die Möglichkeit an, Industriepartner durch Consulting-Leistungen, Workshops oder individuell zugeschnittene Schulungen an unserem Know-How partizipieren zu lassen.