Reverse engineering approach for improving Mobile 2 Applications ' Quality 3 4
semanticscholar(2019)
摘要
40 elements can occasionally affect the quality of design (Parnas D. L, 1994). This aspect is known 41 as software degeneration, which can exist in the form of design flaws or anti-patterns (Eick S. G. 42 et al. 2001). 43 One of the most important factors in the development of software systems is improving software 44 quality. The success of software design depends on the availability of quality elements such as 45 maintainability, manageability, testability, and performance. These elements are adversely 46 affected by anti-patterns. Anti-patterns are bad practice in software design that impede 47 maintenance and degrade performance. Many tools and methods have been introduced for 48 measuring the quality of software products. The automatic detection of anti-patterns is a good 49 way to support maintenance, uncomplicate evolution tasks and improve usability and software 50 quality. We noted many other approaches were interested in detecting code smell or other code 51 anti-patterns. although it has been noted that anti-pattern detection at the design level reduces 52 many code anti-patterns and is more general. 53 According to Raja, V. (2008), engineering is the process of designing, manufacturing, 54 assembling, and maintaining products and systems. Engineering has two types, forward 55 engineering and reverse engineering. The term Reverse Engineering (RE) according to our 56 approach, refers to the process of generating UML diagrams followed by generating OWL 57 ontologies of mobile apps through importing and analyzing the source code. 58 Generally, we can use ontology re-engineering for direct incorporation as an ontology 59 development method (Obrst et al., 2014) by allowing the designer to analyze the common 60 components dependence. The low barriers between ontologies provide reusability. 61 Designing a high-quality mobile application pattern remains an ongoing research challenge. The 62 proposed approach aims to detect structure and semantic anti-patterns in the design of a high63 quality mobile application pattern, and to show which method is better for the integration of 64 apps. 65 Motivated by the research mentioned above, the major contributions of this paper are seven-fold: 66 Presenting a new method for generating OWL Ontology of mobile apps. 67 Presenting a general method for designing a high-quality mobile application pattern. 68 Illustrating how the proposed method can detect both structure and semantic anti-patterns in the 69 design of mobile applications. 70 Describing how we evaluate the proposed method in 29 publicly available mobile applications. 71 Showing how it detects and treats 15 designs’ semantic and structure anti-patterns that appeared 72 1262 times. 73 Presenting the integration of mobile apps using two different scenarios to improve the contents 74 and quality of the apps. 75 Showing how semantic integration among mobile apps decreases the accuracy of anti-patterns 76 in the generated OWL Ontology pattern when compared to the original apps. 77 Analyzing the relationships among the object-oriented anti-patterns. 78 In the rest of the paper, we subsequently present the related work. Next, we present some basic 79 definitions, and the details of the proposed approach is described. After that, the empirical 80 validations of the proposed method are presented, followed by the results and discussion. And, 81 finally, the concluding remarks are given, along with scope for future work, in the last section. 82 83 Related Work 84 RE methodology is important because it offers good benefits. RE allows for the understanding of 85 the construction of the user interface and algorithms of applications. Additionally, we can know 86 all of the properties of the app, its activities, permissions and can read the Mainfest.xml of the 87 apps. RE methodology has been used in many approaches for many purposes. According to 88 Song, L. et al. (2017), the RE technique was used to improve the security of Android apps. They 89 introduced the AppIS system that can effectively enhance the app’s security and its strength 90 against repackaging and cumulative attack. Zhou, X. et al. (2018) used the RE technique to 91 detect logging classes, and to remove logging calls and unnecessary instructions. Arnatovich, Y. 92 L et al. (2018) used RE to perform a program analysis on a textual form of the executable source, 93 and to represent it with an intermediate language (IL). This (IL) has been introduced to represent 94 applications executable Dalvik (dex) bytecode in a human-readable form. 95 Many empirical studies have demonstrated the negative impact of anti-patterns on change96 proneness, fault-proneness, and energy efficiency (Romano et al., 2012; Khomh et al., 2012; 97 Morales et al., 2016). In addition to that, Hecht et al. (2015); Chatzigeorgiou & Manakos (2010); 98 Hecht et al. (2016) observed an improvement in the user interface and memory performance of 99 mobile apps when correcting Android anti-patterns. They found that anti-patterns were prevalent 100 in the evolution of mobile apps. They also confirmed that anti-patterns tend to remain in systems 101 through several releases, unless a major change is performed on the system. Many efficient 102 approaches have been proposed in the literature to detect mobile applications’ anti-patterns. 103 Alharbi et al. (2014) detected the inconsistency anti-patterns in mobile applications that were 104 only related to camera permissions and similarities. Joorabch et al. (2015) detected the 105 inconsistency anti-patterns in mobile applications using a tool called CHECKCAMP that was 106 able to detect 32 valid functional and data inconsistencies between app versions. Hecht et al. 107 (2015) used the Paprika approach to detect some popular object-oriented anti-patterns in mobile 108 applications. Linares-Vásquez et al. (2014) detected 18 OO anti-patterns in 1,343 java mobile 109 apps by using DÉCOR. This study focused on the relationship between smell anti-patterns and 110 application domain. Also, they showed that the presence of anti-patterns negatively impacts 111 software quality metrics, in particular, metrics related to fault-proneness. Yus, R., & Pappachan, 112 P. (2015) analyzed more than 400 semantic Web papers, and they found that more than 36 113 mobile apps are semantic mobile apps. They showed that the existence of semantic helps in 114 better local storage and battery consumption. So we believe that the detection of semantic anti115 patterns will support these factors in some way. Palomba et al. (2017) proposed an automated 116 tool called A DOCTOR. This tool can identify 15 Android code smells. They made an empirical 117 study conducted on the source code of 18 Android applications, and revealed that the proposed 118 tool reached 98% precision and 98% recall. A DOCTOR detected almost all the code smell 119 instances existing in Android apps. Hecht et al. (2015) introduced the PAPRIKA tool to monitor 120 the evolution of mobile app quality based on anti-patterns. They detected the common anti121 patterns in the code of the analyzed apps. They detected seven anti-patterns, three of them were 122 OO anti-patterns and four were mobile anti-patterns. 123 124 Ontology and Software Engineering 125 According to the IEEE Standard Glossary (1990), software engineering is defined as "the 126 application of a systematic, disciplined, quantifiable approach to the development, operation, and 127 maintenance of software". 128 Also, from the knowledge engineering community perspective, computational ontology is 129 defined as "explicit specifications of a conceptualization". According to Calero et al. (2006); 130 Happel. J., & Seedorf, S. (2006), the importance of sharing knowledge to move software to more 131 advanced levels requires a explicit definition to help machines interpret this knowledge. So they 132 decided that ontology is the most promising way to address software engineering problems. 133 El-sayed et al., 2016 proofed the similarities in infrastructures between UML and ontology 134 components. They proposed checking some UML quality features using ontology and ontology 135 reasoning services in order to check consistency and redundancies over UML models. This 136 would lead to a strong relationship between software design and ontology development. 137 In software engineering, ontologies have a wide range of applications, including model 138 transformations, cloud security engineering, decision support, search and semantic integration 139 (Kappel et al., 2006; Aljawarneh et al., 2017; Maurice et al., 2017; Bartussek et al., 2018; De 140 Giacomo et al. 2018). Semantic integration is the process of merging the semantic contents of 141 multiple ontologies. The integration may be between applications that have the same domain or 142 have different domains in order to take the properties of both applications. We make ontology 143 integration for many reasons: to reuse the existing semantic content of applications, to reduce 144 effort and cost, to improve the quality of the source content or the content itself, and to fulfill 145 user requirements that the original ontology does not satisfy. 146 147 Proposed Method 148 In this section, we introduce the key components of the proposed method for analyzing the 149 design of mobile apps to detect design anti-patterns, and for making semantic integration 150 between mobile apps via ontology reengineering. 151 Anti-pattern Detection 152 The proposed method for anti-pattern detection consists of three phases and is summarized in 153 'Fig. 1'. 154 1. The first phase presents the process of reformatting the mobile application to Java format. 155 2. The second phase presents the reverse-engineering process. In this phase, we used RE to 156 reverse the Java code of the mobile apps generating UML class diagram models. Additionally, a 157 lot of design anti-patterns are detected. 158 3. The third phase c
更多查看译文
AI 理解论文
溯源树
样例
![](https://originalfileserver.aminer.cn/sys/aminer/pubs/mrt_preview.jpeg)
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要