Towards A Dependency-Driven Taxonomy of Software Types

Context: The evidence on software health and ecosystems could be improved if there was a systematic way to identify the types of software for which empirical evidence applies. Results and guidelines on software health are unlikely to be globally applicable: the context and the domain where the evidence has been tested are more likely to influence the results on software maintenance and health. Objective: The objectives of this paper are (i) to discuss the implications of adopting a specific taxonomy of software types, and (ii) to define, where possible, dependencies or similarities between parts of the taxonomy. Method: We discuss bottom-up and top-down taxonomies, and we show how different taxonomies fare against each other. We also propose two case studies, based on software projects divided in categories and sub-categories. Results: We show that one taxonomy does not consistently represent another taxonomy's categories. We also show that it is possible to establish directional dependencies (e.g., 'larger than') between attributes of different categories, and sub-categories. Conclusion: This paper establishes the need of directional-driven dependencies between categories of software types, that have an immediate effect on their maintenance and their relative software health.

[1]  Premkumar T. Devanbu,et al.  On the naturalness of software , 2016, Commun. ACM.

[2]  Georgy Yuryev What can explain the performance of Initial Coin Offerings , 2018 .

[3]  M. Napierala What Is the Bonferroni Correction ? , 2014 .

[4]  Marco Tulio Valente,et al.  What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform , 2018, J. Syst. Softw..

[5]  Jana Polgar,et al.  Object-Oriented Software Metrics , 2005, Encyclopedia of Information Science and Technology.

[6]  Timothy Lethbridge,et al.  A taxonomy of software types to facilitate search and evidence-based software engineering , 2008, CASCON '08.

[7]  Navroop K. Sahdev,et al.  How Value is Created in Tokenized Assets , 2018 .

[8]  Robert L. Glass,et al.  Contemporary Application-Domain Taxonomies , 1995, IEEE Softw..

[9]  Yannis Smaragdakis,et al.  MadMax: surviving out-of-gas conditions in Ethereum smart contracts , 2018, Proc. ACM Program. Lang..

[10]  Yann-Gaël Guéhéneuc,et al.  Domain matters: bringing further evidence of the relationships among anti-patterns, application domains, and quality-related metrics in Java mobile apps , 2014, ICPC 2014.

[11]  Péter Hegedűs,et al.  Towards Analyzing the Complexity Landscape of Solidity Based Ethereum Smart Contracts , 2018, 2018 IEEE/ACM 1st International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB).

[12]  Marco Tulio Valente,et al.  Understanding the Factors That Impact the Popularity of GitHub Repositories , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[13]  Kai Petersen,et al.  Prioritizing agile benefits and limitations in relation to practice usage , 2016, Software Quality Journal.

[14]  Jailton Junior de Sousa Coelho,et al.  Identifying and characterizing unmaintained projects in GitHub , 2019 .

[15]  Andrea Capiluppi,et al.  The relevance of application domains in empirical findings , 2019, SoHeal@ICSE.

[16]  Rabe Abdalkareem,et al.  Why do developers use trivial packages? an empirical case study on npm , 2017, ESEC/SIGSOFT FSE.

[17]  Jesper Andersson,et al.  Information Sources and Their Importance to Prioritize Test Cases in the Heterogeneous Systems Context , 2014, EuroSPI.

[18]  Satoshi Nakamoto Bitcoin : A Peer-to-Peer Electronic Cash System , 2009 .

[19]  E. C. Cagli Explosive behavior in the prices of Bitcoin and altcoins , 2019, Finance Research Letters.

[20]  Alexander Serebrenik,et al.  A Data Set for Social Diversity Studies of GitHub Teams , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[21]  Marcelo de Almeida Maia,et al.  Co-change patterns: A large scale empirical study , 2019, J. Syst. Softw..

[22]  Dietmar Pfahl,et al.  Using Dynamic and Contextual Features to Predict Issue Lifetime in GitHub Projects , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[23]  Alexandru Iosup,et al.  Cloud Usage Patterns: A Formalism for Description of Cloud Usage Scenarios , 2013, ArXiv.

[24]  M. Swan,et al.  Blockchain Economics: Implications of Distributed Ledgers , 2019, Between Science and Economics.

[25]  Ioannis Stamelos,et al.  Reusability of open source software across domains: A case study , 2017, J. Syst. Softw..

[26]  Broderick Crawford,et al.  A systematic literature review of open source software quality assessment models , 2016, SpringerPlus.

[27]  Daniela E. Damian,et al.  The promises and perils of mining GitHub , 2009, MSR 2014.

[28]  Sherali Zeadally,et al.  A survey on privacy protection in blockchain system , 2019, J. Netw. Comput. Appl..

[29]  Tony Gorschek,et al.  An anatomy of requirements engineering in software startups using multi-vocal literature and case survey , 2018, J. Syst. Softw..

[30]  Gabriele Bavota,et al.  On the Impact of Refactoring Operations on Code Naturalness , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).