Open-source software product line extraction processes: the ArgoUML-SPL and Phaser cases
Creators
- 1. Universidade Federal de Minas Gerais
- 2. Johannes Kepler University of Linz
- 3. Association of Electronic and Information Technologies
- 4. Tecnalia
Description
Abstract Software Product Lines (SPLs) are rarely developed from scratch. Commonly, they emerge from one product when there is a need to create tailored variants, or from existing variants created in an ad-hoc way once their separated maintenance and evolution become challenging. Despite the vast literature about re-engineering systems into SPLs and related technical approaches, there is a lack of detailed analysis of the process itself and the effort involved. In this paper, we provide and analyze empirical data of the extraction processes of two open-source case studies, namely ArgoUML and Phaser. Both cases emerged from the transition of a monolithic system into an SPL. The analysis relies on information mined from the version control history of their respective source-code repositories and the discussion with developers that took part in the process. Unlike previous works that focused mostly on the structural results of the final SPL, the contribution of this study is an in-depth characterization of the processes. With this work, we aimed at providing a deeper understanding of the strategies for SPL extraction and their implications. Our results indicate that the source code changes can range from almost a fourth to over half of the total lines of code. Developers may or may not use branching strategies for feature extraction. Additionally, the problems faced during the extraction process may be due to lack of tool support, complexity on managing feature dependencies and issues with feature constraints. We made publicly available the datasets and the analysis scripts of both case studies to be used as a baseline for extractive SPL adoption research and practice.
Translated Descriptions
Translated Description (Arabic)
نادرًا ما يتم تطوير خطوط منتجات البرامج المجردة (SPLs) من الصفر. عادة، تظهر من منتج واحد عندما تكون هناك حاجة لإنشاء متغيرات مخصصة، أو من المتغيرات الحالية التي تم إنشاؤها بطريقة مخصصة بمجرد أن تصبح صيانتها وتطورها المنفصلين صعبة. على الرغم من الأدبيات الواسعة حول أنظمة إعادة الهندسة في SPLs والنهج التقنية ذات الصلة، هناك نقص في التحليل التفصيلي للعملية نفسها والجهد المبذول. في هذه الورقة، نقدم ونحلل البيانات التجريبية لعمليات الاستخراج لدراستي حالة مفتوحتي المصدر، وهما ArgoUML و Phaser. ظهرت كلتا الحالتين من انتقال نظام متجانس إلى SPL. يعتمد التحليل على المعلومات المستخرجة من تاريخ التحكم في الإصدار لمستودعات رموز المصدر الخاصة بهم والمناقشة مع المطورين الذين شاركوا في العملية. على عكس الأعمال السابقة التي ركزت في الغالب على النتائج الهيكلية للخطاب النهائي، فإن مساهمة هذه الدراسة هي توصيف متعمق للعمليات. من خلال هذا العمل، نهدف إلى توفير فهم أعمق لاستراتيجيات استخراج SPL وآثارها. تشير نتائجنا إلى أن تغييرات التعليمات البرمجية المصدر يمكن أن تتراوح بين ما يقرب من ربع إلى أكثر من نصف إجمالي سطور التعليمات البرمجية. قد يستخدم المطورون أو لا يستخدمون استراتيجيات التفرع لاستخراج الميزات. بالإضافة إلى ذلك، قد تكون المشكلات التي تتم مواجهتها أثناء عملية الاستخراج ناتجة عن نقص دعم الأدوات والتعقيد في إدارة تبعيات الميزات والمشكلات المتعلقة بقيود الميزات. لقد أتحنا للجمهور مجموعات البيانات ونصوص التحليل لكلتا دراستي الحالة لاستخدامها كخط أساس لبحوث وممارسات اعتماد SPL الاستخراجية.Translated Description (French)
Les gammes de produits logiciels abstraits (SPL) sont rarement développées à partir de zéro. Généralement, ils émergent d'un seul produit lorsqu'il est nécessaire de créer des variantes sur mesure, ou de variantes existantes créées de manière ad hoc une fois que leur maintenance et leur évolution séparées deviennent difficiles. Malgré la vaste littérature sur la réingénierie des systèmes en SPL et les approches techniques connexes, il y a un manque d'analyse détaillée du processus lui-même et de l'effort impliqué. Dans cet article, nous fournissons et analysons des données empiriques des processus d'extraction de deux études de cas open source, à savoir ArgoUML et Phaser. Les deux cas sont issus de la transition d'un système monolithique en un SPL. L'analyse s'appuie sur les informations extraites de l'historique de contrôle de version de leurs référentiels de code source respectifs et sur la discussion avec les développeurs qui ont participé au processus. Contrairement aux travaux précédents qui se sont concentrés principalement sur les résultats structurels du SPL final, la contribution de cette étude est une caractérisation approfondie des processus. Avec ce travail, nous avons cherché à mieux comprendre les stratégies d'extraction des SPL et leurs implications. Nos résultats indiquent que les changements de code source peuvent aller de près d'un quart à plus de la moitié du total des lignes de code. Les développeurs peuvent ou non utiliser des stratégies de ramification pour l'extraction de caractéristiques. En outre, les problèmes rencontrés au cours du processus d'extraction peuvent être dus au manque de prise en charge des outils, à la complexité de la gestion des dépendances des fonctionnalités et aux problèmes liés aux contraintes de fonctionnalités. Nous avons mis à la disposition du public les ensembles de données et les scripts d'analyse des deux études de cas pour les utiliser comme base de référence pour la recherche et la pratique de l'adoption des SPL extractives.Translated Description (Spanish)
Las líneas abstractas de productos de software (SPL) rara vez se desarrollan desde cero. Comúnmente, surgen de un producto cuando existe la necesidad de crear variantes a medida, o de variantes existentes creadas de manera ad-hoc una vez que su mantenimiento y evolución separados se vuelven desafiantes. A pesar de la vasta literatura sobre la reingeniería de sistemas en SPL y enfoques técnicos relacionados, existe una falta de análisis detallado del proceso en sí y del esfuerzo involucrado. En este artículo, proporcionamos y analizamos datos empíricos de los procesos de extracción de dos estudios de caso de código abierto, a saber, ArgoUML y Phaser. Ambos casos surgieron de la transición de un sistema monolítico a un SPL. El análisis se basa en la información extraída del historial de control de versiones de sus respectivos repositorios de código fuente y la discusión con los desarrolladores que participaron en el proceso. A diferencia de trabajos anteriores que se centraron principalmente en los resultados estructurales del SPL final, la contribución de este estudio es una caracterización en profundidad de los procesos. Con este trabajo, nuestro objetivo era proporcionar una comprensión más profunda de las estrategias para la extracción de SPL y sus implicaciones. Nuestros resultados indican que los cambios en el código fuente pueden variar de casi un cuarto a más de la mitad del total de líneas de código. Los desarrolladores pueden o no utilizar estrategias de ramificación para la extracción de características. Además, los problemas que se enfrentan durante el proceso de extracción pueden deberse a la falta de soporte de herramientas, la complejidad en la gestión de las dependencias de las características y los problemas con las restricciones de las características. Pusimos a disposición del público los conjuntos de datos y los guiones de análisis de ambos estudios de caso que se utilizarán como referencia para la investigación y la práctica de la adopción extractiva de SPL.Files
s10664-021-10104-3.pdf.pdf
Files
(1.6 MB)
Name | Size | Download all |
---|---|---|
md5:496a1036403930b1232547c22291cee5
|
1.6 MB | Preview Download |
Additional details
Additional titles
- Translated title (Arabic)
- عمليات استخراج خط إنتاج البرامج مفتوحة المصدر: حالات ArgoUML - SPL و Phaser
- Translated title (French)
- Processus d'extraction de la gamme de produits logiciels libres : les cas ArgoUML-SPL et Phaser
- Translated title (Spanish)
- Procesos de extracción de líneas de productos de software de código abierto: los casos ArgoUML-SPL y Phaser
Identifiers
- Other
- https://openalex.org/W4225857455
- DOI
- 10.1007/s10664-021-10104-3
References
- https://openalex.org/W105563407
- https://openalex.org/W1512360405
- https://openalex.org/W1539495021
- https://openalex.org/W176908942
- https://openalex.org/W1784687733
- https://openalex.org/W1913969462
- https://openalex.org/W1949851419
- https://openalex.org/W1976124035
- https://openalex.org/W1984769393
- https://openalex.org/W1987119662
- https://openalex.org/W1988546540
- https://openalex.org/W1990531060
- https://openalex.org/W1991849845
- https://openalex.org/W1993344876
- https://openalex.org/W1993745482
- https://openalex.org/W2023746780
- https://openalex.org/W2031425482
- https://openalex.org/W2033803742
- https://openalex.org/W2041381656
- https://openalex.org/W2042289462
- https://openalex.org/W2061937509
- https://openalex.org/W2070238527
- https://openalex.org/W2075642720
- https://openalex.org/W2077833033
- https://openalex.org/W2097341407
- https://openalex.org/W2098161545
- https://openalex.org/W2099213660
- https://openalex.org/W2105438268
- https://openalex.org/W2110307645
- https://openalex.org/W2123265769
- https://openalex.org/W2129874612
- https://openalex.org/W2156062547
- https://openalex.org/W2164024695
- https://openalex.org/W2168591543
- https://openalex.org/W2171002355
- https://openalex.org/W2192020386
- https://openalex.org/W2466182331
- https://openalex.org/W2525970656
- https://openalex.org/W2586191823
- https://openalex.org/W2751553114
- https://openalex.org/W2756040459
- https://openalex.org/W2809008746
- https://openalex.org/W2888865644
- https://openalex.org/W2893113314
- https://openalex.org/W2908117070
- https://openalex.org/W2969129166
- https://openalex.org/W2970820711
- https://openalex.org/W2979591158
- https://openalex.org/W3011335320
- https://openalex.org/W3028000186
- https://openalex.org/W3087055053
- https://openalex.org/W3094600382
- https://openalex.org/W3127915060
- https://openalex.org/W3197661957
- https://openalex.org/W3213059076
- https://openalex.org/W3215241433
- https://openalex.org/W4200590748
- https://openalex.org/W4254691308
- https://openalex.org/W4291213652