Elsevier

Information and Software Technology

Internal and external quality in the evolution of mobile software: An exploratory study in open-source market

Abstract

Context

Mobile applications evolve rapidly and grow constantly to meet user requirements. Satisfying these requirements may lead to poor design choices that can degrade internal quality and performance, and consequently external quality and quality in use. Therefore, monitoring the characteristics of mobile applications through their evolution is important to facilitate maintenance and development.

Objective

This study aims to explore internal quality, external quality and the relation between these two by carrying out an embedded, multiple case study that includes two cases in different functional domains. In each case study, the evolution of three open-source mobile applications having similar features in the same domain and platform is investigated with the analysis of a number of code-based and community-based metrics, to understand whether they are significantly related to quality characteristics.

Method

A total of 105 releases of the six mobile applications are analyzed to understand internal quality, where code-based characteristics are employed in the light of Lehman's Increasing Complexity, Continuous Growth, and Decreasing Quality laws. External quality is explored by adapting DeLone and McLean model of information system success and using community-based metrics, when data is available for the included releases, to derive a corresponding success index. Finally, internal and external quality relationship is investigated by applying Spearman's correlation analysis on metrics data from 91 corresponding releases.

Results

The analysis of Lehman's laws shows that only the law of Continuous Growth is validated for the selected mobile applications in both case studies. Spearman's analysis results indicate that the internal quality attribute of 'Understandability' is negatively related to 'Success Index' for Case Study A and 'LCOM' is negatively related to 'Success Index' for Case Study B. No other significant relationship between the internal quality attributes and the Success Index is observed; but specific to community-based metrics, some significant relationships with code-based attributes were determined.

Conclusion

Our exploratory study is unique for the method it employs for exploring the relationship between internal and external quality in the evolution of mobile applications. Yet, our findings should be used with caution as they are derived from a limited number of applications. Therefore, this study should be considered to provide initial evidence for applicability of the method and a degree of confidence for repeating similar studies in wider contexts.

Introduction

Over the last decade, demand for mobile applications has increased, with application stores becoming a leading channel for spreading mobile application products [1], [2], [3]. By 2017, there are 3.5 million mobile apps on Google Play, 2.2 million on the Apple App Store, and about 385 thousand mobile apps on the Amazon App Store [3]. A significant portion of these mobile applications is offered to users as open source software (OSS). OSS is software that have licenses allowing users to run the software for various purposes, modify them in line with their needs, and to distribute the basic or modified release of the software [4]. The increasing number of mobile applications and ensuring the continuity of these applications in the market has led to the question of how to be successful on the market with functional applications that not only meet user expectations and also exceed the competitors' offerings [5]. Throughout the product lifecycle, it is necessary to take steps to meet new requirements, adapt to new platforms, correct mistakes, or improve software design. Some studies show that the costs associated with software maintenance and development vary from 50% to 90% of the total cost [6], [7], [8]; while other studies show that these costs are up to several times the cost of the first release of the software [9]. As the popularity of mobile applications keeps growing incrementally, the need to research the evolution of mobile applications with the aim to decrease development costs, promote successful development, and increase quality has arisen [10], [11], [12].

The quality of software is addressed through two main perspectives: quality from the perspective of the customer and quality from the perspective of the software developer. Customers generally want the software they buy to be easy to use, accurate, meet their requirements, and have adequate performance. Software developers, on the other hand, demand that development and maintenance costs of software parts are low and they can be used in the next projects. Similarly, quality in the mobile application domain is a major concern for developers, users and application markets. Mobile developers want to develop apps that satisfy the end user, which can affect a wider range of customers and potentially generate higher revenue [7]. Users want to have high-quality applications that meet expectations and do not harm their devices or risk their privacy. Application stores want to maintain a high level in sales and prestige; poor quality applications may not be accepted or may be removed by the service provider.

Software quality, therefore, is a concept that is intertwined with software evolution. Evolution reflects the "ongoing process of change in the attributes of an entity, or in one or more of its constituent elements" [13]. According to this definition, it is called 'software evolution' that a software system can easily adapt to changes over time. If the software does not support the change, it gradually becomes useless [14]. The software evolution enables new requirements to be incorporated into software systems in order to meet stakeholders' business objectives. According to all software development processes, the software should be developed in response to the need to adapt to the environment or maintain user satisfaction [15].

Based on the expectations and difficulties described above, this study aims to explore internal quality, external quality and the relation between these two, through the evolution of six mobile applications that are grouped with respect to similar functional features in two case studies A and B, and selected from the open-source mobile market. A number of code-based and community-based metrics available in the literature are collected and analyzed to understand whether they are significantly related to quality characteristics. More specifically, a total of 105 releases of the six mobile applications (which correspond to 61 and 44 respective releases of three mobile applications of the cases A and B) are analyzed to understand internal quality, where code-based characteristics are employed in the light of Lehman's three laws [16], namely increasing complexity, continuous growth, and decreasing quality. External quality is explored by adapting DeLone and McLean model [17] of information system success and using community-based metrics, when data is available for the included releases, to derive a corresponding success index. Finally, the relation between internal and external quality is investigated by applying Spearman's correlation analysis on metrics data from 91 releases that correspond to 47 and 44 respective releases of the case studies A and B.

The remaining of this article is organized as follows. First, the background is presented followed by the section in which relationships to the existing literature are pointed out. Then, related works on software evolution and mobile software evolution are briefly summarized in Section 3. Research method of the study, research goals and questions are given in Section 4, and experimental results are given in Section 5. The paper ends with a discussion of the overall findings, limitations of the present study and suggestions for future work.

Section snippets

Software evolution

One of the most important works of software evolution was initiated by Lehman and his colleagues in the mid-70 s and is spreading through a 40-year process up to today. During this period, eight software development laws have emerged which are the focus of a number of studies [14]. These laws are; 1) Continuous change, 2) Increasing complexity, 3) Self-regulation, 4) Conservation of organizational stability, 5) Conservation of familiarity, 6) Continuing growth, 7) Declining quality, and 8)

Related work

Lehman making a series of observations about the size and complexity of a system formulated a set of software development evolution laws in his researches [23], [31], [65], [66], which define the nature and characteristics of a software in its own evolutionary process. The results of a newer research on a Financial Transactions System [71] were compared with the findings of previous OS / 360 studies; the new research did not fully support or refute the laws of software evolution. For example,

Research goal and questions

This study aims to "understand the change of quality during the evolution of open source mobile software". The mobile products are evaluated in two dimensions, namely code-based (internal quality) and community-based (external quality), similar to the studies that were examined in the literature survey. The research questions (RQ) that serve the study objective have been formulated as follows:

RQ 1. How does internal quality evolve through the evolution of mobile applications?

RQ 2. How does

RQ1 – results for evolution of internal quality

Observations on the evolution of complexity, size and internal quality during the evolution of mobile applications of Case Study A have been reported in a recent study of us [104]. In this section, the findings of this study and similar observations regarding the applications of Case Study B are summarized in response to RQ 1.

Evaluation of overall findings

The first research question examined the internal quality development during the evolution of the applications. During the measurement phase, several hypotheses were generated in the light of the existing Lehman laws on the evolution of software (increasing complexity, continuing growth, and declining quality) and the Mann-Kendall trend analysis was conducted to test these hypotheses with respect to two different case studies, each consisting of three applications with similar functionalities.

Conclusion and future work

This study examined within the perspective of two case studies consisting of three applications each, whether Lehman's three software evolution laws were valid for open source mobile applications and whether there was a relation between code-based and community-based aspects of the mobile applications in their evolution process.

A two-dimensional evaluation was carried out with a code base (internal quality) and a community base (external quality). Within the scope of the internal quality

References (112)

  • et al.

    The attraction of contributors in free and open source software projects

    J. Strateg. Inf. Syst.

    (2013)

  • Y. Peng et al.

    Modeling the evolution of operating systems: an empirical study

    J. Syst. Softw.

    (2007)

  • V. Midha et al.

    Factors affecting the success of Open Source Software

    J. Syst. Softw.

    (2012)

  • M.M. Lehman

    On understanding laws, evolution, and conservation in the large-program life cycle

    J. Syst. Softw.

    (1979)

  • A. Israeli et al.

    The Linux kernel as a case study in software evolution

    J. Syst. Softw.

    (2010)

  • R. Newhook et al.

    Evolution of the mobile enterprise app: a design perspective

    Procedia Manuf.

    (2015)

  • M.M. Lehman et al.

    Software evolution—Background, theory, practice

    Inf. Process. Lett.

    (2003)

  • J. Zhang et al.

    The evolution of mobile apps: an exploratory study

    2013 Int. Work.

    (2013)

  • L. Corral et al.

    Potential advantages and disadvantages of multiplatform development frameworks - a vision on mobile environments

  • M.N. Cortimiglia et al.

    Mobile applications and their delivery platforms

    IT Prof

    (2011)

  • Number of apps available in leading app stores as of July 2014

    Statista

    (2014)

  • I. Eser

    Usage of free software in public: an evaluation through examples in the World and Turkey

    An Unpublished Graduate Dissertation), Ankara: Radio and Television Supreme Council

    (2011)

  • V. Gonçalves et al.

    How about an app store? enablers and constraints in platform strategies for mobile network operators

  • C. Ghezzi et al.

    Software Engineering Principles

    Fundam. Softw. Eng.

    (2002)

  • J. Koskinen et al.

    Software maintenance cost estimation and modernization support

    (2003)

  • R.C. Seacord et al.

    Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices

    (2003)

  • I. Sommerville

    Software engineering

    A Br. Hist. Comput.

    (2004)

  • R. Islam et al.

    Mobile application and its global impact

    Int. J. Eng. Technol.

    (2010)

  • R. Minelli et al.

    Software analytics for mobile applications - Insights & lessons learned

  • M. Lehman et al.

    Software evolution

    Software evolution and feedback: Theory and practice

    (2006)

  • M.M. Lehman

    Programs, life cycles, and laws of software evolution

    Proc. IEEE

    (1980)

  • T. Mens et al.

    Software Evolution

    (2008)

  • W.H. DeLone et al.

    The DeLone and McLean model of information systems success: a ten-year update

    J. Manag. Inf. Syst. / Spring

    (2003)

  • I. Lakatos

    Proofs and refutations: The logic of Mathematical Discovery

    (2015)

  • D. Li et al.

    The evolution of open-source mobile applications: an empirical study

    J. Softw. Evol. Process

    (2017)

  • O. Arafat et al.

    The Commenting Practice of Open Source

    (2009)

  • A. Capiluppi

    Models for the evolution of OS projects

    IEEE Int. Conf. Softw. Mainten., ICSM

    (2003)

  • A. Capiluppi et al.

    Studying the evolution of open source systems at different levels of granularity: two case studies

  • C.A. Conley et al.

    Easier said than done: an empirical investigation of software design and quality in open source software development

    Hawaii Int. Conf. Syst. Sci.

    (2009)

  • G. Xie et al.

    Towards a better understanding of software evolution: an empirical study on open source software

  • L.A. Belady et al.

    A model of large program development

    IBM Syst. J.

    (1976)

  • K.K. Aggarwal et al.

    Empirical study of object-oriented metrics

    J. Object Technol.

    (2006)

  • T. Gyimothy et al.

    Empirical validation of object-oriented metrics on open source software for fault prediction

    IEEE Trans. Softw. Eng.

    (2005)

  • M.D. Syer et al.

    Studying the relationship between source code quality and mobile platform dependence

    Softw. Qual. J.

    (2015)

  • M.W. Godfrey et al.

    Evolution in open source software: a case study

  • J.M. Gonzalez-Barahona et al.

    Studying the laws of software evolution in a long-lived FLOSS project

    J. Softw. Evol. Process

    (2014)

  • D. Firesmith

    ISO/IEC 9126-2 Software engineering - product quality - part 2: external metrics

    Quality

    (2003)

  • ISO/IEC 25010:2011 - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models

    International Standard ISOIEC 25010 (2011)

    (2011)

  • S.R. Chidamber et al.

    A metrics suite for object oriented design

    IEEE Trans. Softw. Eng.

    (1994)

  • Y.S. Lee et al.

    Some complexity metrics for object-oriented programs based on information flow: a study of C++ programs

    J. Inf. Sci. Eng.

    (1994)

  • W. Li et al.

    Maintenance metrics for the object oriented paradigm

  • M. Lorenz et al.

    Object-oriented software metrics

    J. Syst. Softw.

    (1994)

  • R. Jabangwe et al.

    Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review

    Emp. Softw. Eng.

    (2015)

  • V.R. Basili et al.

    A validation of object-oriented design metrics as quality indicators

    IEEE Trans. Softw. Eng.

    (1996)

  • S.K. Dubey et al.

    Assessment of maintainability metrics for object-oriented software system

    ACM SIGSOFT Softw. Eng. Notes

    (2011)

  • H.M. Olague et al.

    Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly Iterative or agile software development processes

    IEEE Trans. Softw. Eng.

    (2007)

  • T. Erçelebi Ayyıldız et al.

    Açık Kaynak Kodlu Yazılımların Problem ve Çözüm Alanı Ölçüleri Arasındaki İlinti

    Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Derg

    (2017)

  • R. Harrison et al.

    "An evaluation of code metrics for object-oriented programs."

    (1996)

  • L. Pascarella et al.

    Classifying Code Comments in Java Open-Source Software Systems

  • S. Anwer et al.

    Effect of coupling on software faults: an empirical study

  • Cited by (9)

    View full text