Variability mechanisms in software ecosystems

被引:45
|
作者
Berger, Thorsten [1 ]
Pfeiffer, Rolf-Helge [2 ]
Tartler, Reinhard [3 ]
Dienst, Steffen [4 ]
Czarnecki, Krzysztof [1 ]
Wasowski, Andrzej [2 ]
She, Steven [1 ]
机构
[1] Univ Waterloo, Waterloo, ON N2L 3G1, Canada
[2] IT Univ, DK-2300 Copenhagen, Denmark
[3] Univ Erlangen Nurnberg, Dept Comp Sci 4, D-91058 Erlangen, Germany
[4] Univ Leipzig, Fac Math & Comp Sci, D-04109 Leipzig, Germany
关键词
Software ecosystems; Empirical software engineering; Software product lines; Variability management; Mining software repositories; DOMAIN;
D O I
10.1016/j.infsof.2014.05.005
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: Software ecosystems are increasingly popular for their economic, strategic, and technical advantages. Application platforms such as Android or iOS allow users to highly customize a system by selecting desired functionality from a large variety of assets. This customization is achieved using variability mechanisms. Objective: Variability mechanisms are well-researched in the context of software product lines. Although software ecosystems are often seen as conceptual successors, the technology that sustains their success and growth is much less understood. Our objective is to improve empirical understanding of variability mechanisms used in successful software ecosystems. Method: We analyze five ecosystems, ranging from the Linux kernel through Eclipse to Android. A qualitative analysis identifies and characterizes variability mechanisms together with their organizational context. This analysis leads to a conceptual framework that unifies ecosystem-specific aspects using a common terminology. A quantitative analysis investigates scales, growth rates, and-most importantly-dependency structures of the ecosystems. Results: In all the studied ecosystems, we identify rich dependency languages and variability descriptions that declare many direct and indirect dependencies. Indirect dependencies to abstract capabilities, as opposed to concrete variability units, are used predominantly in fast-growing ecosystems. We also find that variability models-while providing system-wide abstractions over code work best in centralized variability management and are, thus, absent in ecosystems with large free markets. These latter ecosystems tend to emphasize maintaining capabilities and common vocabularies, dynamic discovery, and binding with strong encapsulation of contributions, together with uniform distribution channels. Conclusion: The use of specialized mechanisms in software ecosystems with large free markets, as opposed to software product lines, calls for recognition of a new discipline variability encouragement. (C) 2014 Elsevier B.V. All rights reserved.
引用
收藏
页码:1520 / 1535
页数:16
相关论文
共 50 条
  • [41] Software ecosystems - A systematic literature review
    Manikas, Konstantinos
    Hansen, Klaus Marius
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2013, 86 (05) : 1294 - 1306
  • [42] What Characterizes an Influencer in Software Ecosystems?
    Farias, Victor
    Wiese, Igor
    Santos, Rodrigo
    [J]. PROCEEDINGS OF THE XXXIII BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING, SBES 2019, 2019, : 5 - 5
  • [43] A reference architecture for Farm Software Ecosystems
    Kruize, J. W.
    Wolfert, J.
    Scholten, H.
    Verdouw, C. N.
    Kassahun, A.
    Beulens, A. J. M.
    [J]. COMPUTERS AND ELECTRONICS IN AGRICULTURE, 2016, 125 : 12 - 28
  • [44] A Survey of Modeling Approaches for Software Ecosystems
    Pettersson, Oskar
    Andersson, Jesper
    [J]. SOFTWARE BUSINESS, (ICSOB 2016), 2016, 240 : 79 - 93
  • [45] Software ecosystems: Taking software development beyond the boundaries of the organization
    Bosch, Jan
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2012, 85 (07) : 1453 - 1454
  • [46] Social and Technical Evolution of Software Ecosystems
    Constantinou, Eleni
    Mens, Tom
    [J]. ACM PROCEEDINGS OF THE 10TH EUROPEAN CONFERENCE ON SOFTWARE ARCHITECTURE WORKSHOPS (ECSA-W), 2016,
  • [47] Continuous API Design for Software Ecosystems
    Hammouda, Imed
    Knauss, Eric
    Costantini, Leonardo
    [J]. 2015 IEEE/ACM 2ND INTERNATIONAL WORKSHOP ON RAPID CONTINUOUS SOFTWARE ENGINEERING (RCOSE), 2015, : 30 - 33
  • [48] Open CrowdRE Challenges in Software Ecosystems
    Johnson, David
    Tizard, James
    Damian, Daniela
    Blincoe, Kelly
    Clear, Tony
    [J]. 2020 4TH INTERNATIONAL WORKSHOP ON CROWD-BASED REQUIREMENTS ENGINEERING (CROWDRE 2020), 2020, : 1 - 4
  • [49] Towards Reverse Engineering Software Ecosystems
    Lungu, Mircea
    [J]. 2008 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2008, : 428 - 431
  • [50] Power dynamics in software platform ecosystems
    Hurni, Thomas
    Huber, Thomas L.
    Dibbern, Jens
    [J]. INFORMATION SYSTEMS JOURNAL, 2022, 32 (02) : 310 - 343