Motivation
Die Performance von IT-Systemen, d.h. die Effizienz eines Softwaresystems hinsichtlich Zeit- und Ressourcenverbrauch, spielt in vielen Bereichen der Wirtschaft eine entscheidende Rolle. Sie wird maßgeblich durch die Implementierung der Software bestimmt. Um deren Performance zu verbessern bzw. trotz funktionaler Erweiterungen oder veränderter Hard- und Softwareumgebungen konstant zu halten, wird im Projekt PermanEnt ein neuer, messbasierter Ansatz entwickelt und in reale Softwareentwicklungsprozesse integriert.
Ziele und Vorgehen
Das Ziel des zu entwickelnden, messbasierten Verfahrens ist es, Performance-Schwachstellen wie algorithmische Probleme oder ineffiziente Nutzungen von Programmierschnittstellen („Application Programming Interface“, API) bereits frühzeitig im Entwicklungsprozess durch eine kontinuierliche Überwachung der Performance zu erkennen. Hierzu werden spezialisierte Tests, sogenannte Performance Unit Tests (PUTs), entwickelt. Diese Tests werden in einen kontinuierlichen Integrationsprozess der Softwareentwicklung eingebracht, um regelmäßig und zeitnah Rückmeldungen über Veränderungen der Performance zu geben. Eine schnelle Lokalisierung von Ursachen wird so ermöglicht, wobei die automatisierte Ursachenanalyse ebenfalls erforscht wird. Da die manuelle Erstellung der PUTs sehr aufwändig ist, wird auch eine Methode zur automatisierten Generierung der PUTs entwickelt. Ausgangsbasis bilden aufbereitete Ausführungsdaten bestehender PUTs und Monitoringdaten aus Test- und Produktivsystemen.
Innovationen und Perspektiven
Das entwickelte Verfahren und die zugehörigen Werkzeuge werden anhand der Softwareentwicklungsprozesse der KMU-Partner im Verbund evaluiert, wobei diese auch in die Entwicklung einbezogen werden. Die evermind GmbH bringt die Eigenentwicklung einer Online-Datenbank für die professionelle Recherche am Immobilienmarkt ein, die IOTIQ GmbH ein Software-Werkzeug zum Management mobiler Endgeräte und die HBT GmbH ihre Entwicklung zu Fahrplanauskünften im ÖPNV. Der Einsatz der PermanEnt-Entwicklungen wird es ermöglichen, den Softwareentwicklungsprozess der Partner effizienter zu gestalten, in der Domäne der eigenen Software wirtschaftliche Mehrwerte zu generieren und ggf. das eigene Beratungsportfolio zu erweitern.