Mobile applications have become a high priority for software developers. Researchers and practitioners are working toward improving and optimizing the energy efficiency and performance of mobile applications due to the capacity limitation of mobile device processors and batteries. In addition, mobile applications have become popular among end-users, developers have introduced a wide range of features that increase the complexity of application code.

To improve and enhance the maintainability, extensibility, and understandability of application code, refactoring techniques were introduced. However, implementing such techniques to mobile applications affects energy efficiency and performance. To evaluate and categorize software implementation and optimization efficiency, several metrics are introduced, such as the Greenup, Powerup, and Speedup (GPS-UP) metrics. The first contribution in my work is to quantitatively evaluate the impact of several refactoring techniques on the energy efficiency and performance of Fowler's sample code in mobile environments. In addition, I introduce two new categories to the GPS-UP metrics to better categorize the impact of refactoring techniques on mobile applications. Moreover, I explain the interrelationship between energy efficiency and performance to provide more knowledge and insight for mobile application developers.

Hence Fowler's sample code is simple and does not reflect an accurate evaluation of the refactoring techniques, I extend my work through presenting a case study that evaluates and categorizes the impact of refactoring techniques when they are applied to open-source mobile applications. In addition, I provide a comparison of the effect of refactoring techniques between the results of Fowler's sample and open-source mobile applications. The results of this contribution will allow software engineers and developers to understand the trade-offs between performance, energy efficiency, and maintainability when implementing refactoring techniques.

The second contribution in my work is to modify the Orthogonal Defect Classification (ODC) model to accommodate defects of mobile applications. The ODC model enables developers to classify defects and track the process of inspection and testing. However, ODC was introduced to classify defects of traditional software. Mobile applications differ from traditional applications in many ways; they are susceptible to external factors, such as screen and network changes, notifications, and phone interruptions, which affect the applications' functioning. The adapted ODC model allows me to address newly introduced application defects found in the mobile domain, such as energy, notification, and Graphical User Interface (GUI). In addition, based on the new model, I classify found defects of two well-known mobile applications. Moreover, I discuss one-way and two-way analyses. This contribution provides developers with a suitable defect analysis technique for mobile applications.

Software reliability is an important quality attribute, and software reliability models are frequently used to measure and predict software maturity. The nature of mobile environments differs from that of PC and server environments due to many factors, such as the network, energy, battery, and compatibility. Evaluating and predicting mobile application reliability are real challenges because of the diversity of the mobile environments in which the applications are used, and the lack of publicly available defect data. In addition, bug reports are optionally submitted by end-users. In the third contribution of my dissertation, I propose assessing and predicting the reliability of a mobile application using known software reliability growth models (SRGMs). Four software reliability models are used to evaluate the reliability of an open-source mobile application through analyzing bug reports. The results of my work enable software developers and testers to assess and predict the reliability of mobile software applications.

Degree Date

Fall 12-19-2020

Document Type


Degree Name



Computer Science and Engineering


LiGuo Huang

Second Advisor

Jeff Tian

Third Advisor

Jennifer Dworak

Fourth Advisor

Corey Clark

Fifth Advisor

John Medellin

Subject Area

Computer Science

Number of Pages




Creative Commons License

Creative Commons Attribution-Noncommercial 4.0 License
This work is licensed under a Creative Commons Attribution-Noncommercial 4.0 License