Elsayed Eman K, ElDahshan Kamal A, El-Sharawy Enas E, Ghannam Naglaa E
Department of Mathematical and Computer Science, Faculty of Science, Al-Azhar University, (Girls Branch), Cairo, Egypt.
Department of Mathematical and Computer Science, Faculty of Science, Al-Azhar University, Cairo, Egypt.
PeerJ Comput Sci. 2019 Aug 19;5:e212. doi: 10.7717/peerj-cs.212. eCollection 2019.
Portable-devices applications (Android applications) are becoming complex software systems that must be developed quickly and continuously evolved to fit new user requirements and execution contexts. Applications must be produced rapidly and advance persistently in order to fit new client requirements and execution settings. However, catering to these imperatives may bring about poor outline decisions on design choices, known as anti-patterns, which may possibly corrupt programming quality and execution. Thus, the automatic detection of anti-patterns is a vital process that facilitates both maintenance and evolution tasks. Additionally, it guides developers to refactor their applications and consequently enhance their quality.
We proposed a general method to detect mobile applications' anti-patterns that can detect both semantic and structural design anti-patterns. The proposed method is via reverse-engineering and ontology by using a UML modeling environment, an OWL ontology-based platform and ontology-driven conceptual modeling. We present and test a new method that generates the OWL ontology of mobile applications and analyzes the relationships among object-oriented anti-patterns and offer methods to resolve the anti-patterns by detecting and treating 15 different design's semantic and structural anti-patterns that occurred in analyzing of 29 mobile applications. We choose 29 mobile applications randomly. Selecting a browser is not a criterion in this method because the proposed method is applied on a design level. We demonstrate a semantic integration method to reduce the incidence of anti-patterns using the ontology merging on mobile applications.
The proposed method detected 15 semantic and structural design anti-patterns which have appeared 1,262 times in a random sample of 29 mobile applications. The proposed method introduced a new classification of the anti-patterns divided into four groups. "The anti-patterns in the class group" is the most group that has the maximum occurrences of anti-patterns and "The anti-patterns in the operation group" is the smallest one that has the minimum occurrences of the anti-patterns which are detected by the proposed method. The results also showed the correlation between the selected tools which we used as Modelio, the Protégé platform, and the OLED editor of the OntoUML. The results showed that there was a high positive relation between Modelio and Protégé which implies that the combination between both increases the accuracy level of the detection of anti-patterns. In the evaluation and analyzing the suitable integration method, we applied the different methods on homogeneous mobile applications and found that using ontology increased the detection percentage approximately by 11.3% in addition to guaranteed consistency.
便携式设备应用程序(安卓应用程序)正成为复杂的软件系统,必须快速开发并持续演进,以适应新的用户需求和执行环境。应用程序必须快速生成并持续推进,以适应新的客户需求和执行设置。然而,迎合这些要求可能会在设计选择上做出糟糕的决策,即所谓的反模式,这可能会损害编程质量和执行效果。因此,自动检测反模式是一个至关重要的过程,有助于维护和演进任务。此外,它还能指导开发者重构他们的应用程序,从而提高其质量。
我们提出了一种通用方法来检测移动应用程序的反模式,该方法可以检测语义和结构设计反模式。所提出的方法是通过逆向工程和本体,使用统一建模语言(UML)建模环境、基于网络本体语言(OWL)的平台和本体驱动的概念建模。我们展示并测试了一种新方法,该方法生成移动应用程序的OWL本体,分析面向对象反模式之间的关系,并提供通过检测和处理在分析29个移动应用程序时出现的15种不同设计的语义和结构反模式来解决反模式的方法。我们随机选择了29个移动应用程序。在这种方法中,选择浏览器不是一个标准,因为所提出的方法是在设计层面上应用的。我们展示了一种语义集成方法,通过在移动应用程序上进行本体合并来减少反模式的发生率。
所提出的方法检测到15种语义和结构设计反模式,这些反模式在29个移动应用程序的随机样本中出现了1262次。所提出的方法引入了一种新的反模式分类,分为四组。“类组中的反模式”是反模式出现次数最多的组,“操作组中的反模式”是所提出的方法检测到的反模式出现次数最少的组。结果还显示了我们用作Modelio、Protégé平台和OntoUML的OLED编辑器的所选工具之间的相关性。结果表明,Modelio和Protégé之间存在高度正相关,这意味着两者的结合提高了反模式检测的准确性水平。在评估和分析合适的集成方法时,我们在同类移动应用程序上应用了不同的方法,发现使用本体除了保证一致性外,还将检测百分比提高了约11.3%。