Plat_Forms: Erkundung emergenter Eigenschaften verschiedener Plattformen für Web-Entwicklung
Zusammenfassung der Projektergebnisse
Die zahlenmäßig vermutlich größte Kategorie moderner Softwareprojekte betrifft Webanwendungen. Dafür wird eine große Palette verschiedener Technologiebausteine eingesetzt, die sich konzeptionell zu Plattformen bündeln lassen, in deren Zentrum jeweils eine Programmiersprache steht; gängig sind hier z.B. C#, Java, Javascript, Perl, PHP, Python, Ruby und Scala. Trotz der enormen praktischen Bedeutung dieser Plattformen gibt es so gut wie keine wissenschaftlichen Untersuchungen über deren relative Vor- und Nachteile oder sonstige typische Eigenschaften. Dass Plat_Forms-Projekt (dem eine Pilotstudie vorangegangen war) sollte erstens eine Methodik erarbeiten, wie man praxisrelevante solche Untersuchungen durchführen könne, und zweitens zwei davon durchführen. Dabei bauen eingespielte Dreierteams professioneller Softwareentwickler (drei oder vier nach hoher Kompetenz ausgewählte Teams pro Plattform, in Wettbewerbsform) eine komplette kleine Webanwendung innerhalb von zwei Tagen. Untersucht werden Prozess und Produkt. Hier stichwortartig die wichtigsten Ergebnisse und Anmerkungen: • Plat_Forms 2011. Es gibt so etwas wie eine Plattformkultur: Manche Entwurfsentscheidungen werden auf eine Weise getroffen, die typisch ist für eine Plattform (und anders als bei einer anderen), aber überhaupt nicht durch Technologieeigenschaften bedingt. • Das wirkt sich beispielsweise auf den Codeumfang und die Wartbarkeit aus. • Manche Plattformen erlauben, so effizient automatisierte Tests zu schreiben, dass dies selbst schon bei der kurzen Projektdauer von nur zwei Tagen nicht aufwändiger ist als manuelles Testen (gleich hoher Zeitanteil für Testaktivitäten, gleich gutes Resultat). • Die Programmiersprache ist ein zu ungenauer Stellvertreter für “Plattform”; die Eigenschaften des jeweiligen Web-Frameworks spielen eine große Rolle. • Plat_Forms 2012/I. Die Zeit für einen Wettbewerb für REST APIs auf Basis von Amazon-Cloud-Technologien (um den Einfluss der Web-Frameworks zurückzudrängen) war 2012 noch nicht reif; wir mussten ihn mangels Teaminteresse absagen. • Plat_Forms 2012/II. Eine Klassifikation von Eigenschaften der Web-Frameworks (um dann diese Eigenschaften anstatt der Programmiersprachen als plattformbildende Merkmale zu verwenden) ist möglich, aber so mehrdeutig, dass vertrauenswürdige Ergebnisse mit den verfügbaren Teamanzahlen nicht zu erzielen sind. • Methodik. Ein Wettbewerbsformat kann geeignet sein, professionelle Teams zur Mitwirkung an Experimentstudien mit recht guter Glaubwürdigkeit zu bewegen, was große geldäquivalente Mittel mobilisiert. • Methodik. Das kritischste Element dabei ist die Auswahl der Aufgabe. • Methodik. Ein nicht randomisiertes Experiment (“Quasi-Experiment”) ist für technologielastige Fragestellungen eventuell einem voll kontrollierten Experiment überlegen, anstatt nur eine Notlösung zu sein. Das kommt daher, dass die Prägung der Versuchspersonen (hier: “Plattformkultur”) Einfluss auf die Ergebnisse haben muss, wenn die Ergebnisse praxisrelevant sein sollen (ökologische Gültigkeit).
Projektbezogene Publikationen (Auswahl)
- Plat_Forms 2011: Finding emergent properties of web application development platforms. Proc. 6th ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), Lund, ACM, September 2012
Ulrich Stärk, Lutz Prechelt, Ilija Jolevksi
- Plat_Forms: Contests as an Alternative Approach to SE Empirical Studies in Industry. Proc. 1st International Workshop on Conducting Empirical Studies in Industry (CESI), ICSE, San Francisco, IEEE CS Press, May 2013
Lutz Prechelt, Ulrich Stärk