Lehman Beladys Laws on Continuing Growth and Increasing Complexity
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)
- et al.
Modeling the evolution of operating systems: an empirical study
J. Syst. Softw.
(2007)
- et al.
Factors affecting the success of Open Source Software
J. Syst. Softw.
(2012)
-
On understanding laws, evolution, and conservation in the large-program life cycle
J. Syst. Softw.
(1979)
- et al.
The Linux kernel as a case study in software evolution
J. Syst. Softw.
(2010)
- et al.
Evolution of the mobile enterprise app: a design perspective
Procedia Manuf.
(2015)
- et al.
Software evolution—Background, theory, practice
Inf. Process. Lett.
(2003)
- et al.
The evolution of mobile apps: an exploratory study
2013 Int. Work.
(2013)
- et al.
Potential advantages and disadvantages of multiplatform development frameworks - a vision on mobile environments
- 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)
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)
How about an app store? enablers and constraints in platform strategies for mobile network operators
Software Engineering Principles
Fundam. Softw. Eng.
(2002)
Software maintenance cost estimation and modernization support
(2003)
Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices
(2003)
Software engineering
A Br. Hist. Comput.
(2004)
Mobile application and its global impact
Int. J. Eng. Technol.
(2010)
Software analytics for mobile applications - Insights & lessons learned
Software evolution
Software evolution and feedback: Theory and practice
(2006)
Programs, life cycles, and laws of software evolution
Proc. IEEE
(1980)
Software Evolution
(2008)
The DeLone and McLean model of information systems success: a ten-year update
J. Manag. Inf. Syst. / Spring
(2003)
Proofs and refutations: The logic of Mathematical Discovery
(2015)
The evolution of open-source mobile applications: an empirical study
J. Softw. Evol. Process
(2017)
The Commenting Practice of Open Source
(2009)
Models for the evolution of OS projects
IEEE Int. Conf. Softw. Mainten., ICSM
(2003)
Studying the evolution of open source systems at different levels of granularity: two case studies
Easier said than done: an empirical investigation of software design and quality in open source software development
Hawaii Int. Conf. Syst. Sci.
(2009)
Towards a better understanding of software evolution: an empirical study on open source software
A model of large program development
IBM Syst. J.
(1976)
Empirical study of object-oriented metrics
J. Object Technol.
(2006)
Empirical validation of object-oriented metrics on open source software for fault prediction
IEEE Trans. Softw. Eng.
(2005)
Studying the relationship between source code quality and mobile platform dependence
Softw. Qual. J.
(2015)
Evolution in open source software: a case study
Studying the laws of software evolution in a long-lived FLOSS project
J. Softw. Evol. Process
(2014)
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)
A metrics suite for object oriented design
IEEE Trans. Softw. Eng.
(1994)
Some complexity metrics for object-oriented programs based on information flow: a study of C++ programs
J. Inf. Sci. Eng.
(1994)
Maintenance metrics for the object oriented paradigm
Object-oriented software metrics
J. Syst. Softw.
(1994)
Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review
Emp. Softw. Eng.
(2015)
A validation of object-oriented design metrics as quality indicators
IEEE Trans. Softw. Eng.
(1996)
Assessment of maintainability metrics for object-oriented software system
ACM SIGSOFT Softw. Eng. Notes
(2011)
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)
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)
"An evaluation of code metrics for object-oriented programs."
(1996)
Classifying Code Comments in Java Open-Source Software Systems
Effect of coupling on software faults: an empirical study
Cited by (9)
Recommended articles (6)
© 2019 Elsevier B.V. All rights reserved.
Source: https://www.sciencedirect.com/science/article/abs/pii/S0950584918301290
0 Response to "Lehman Beladys Laws on Continuing Growth and Increasing Complexity"
Postar um comentário