{"title":"面向对象软件系统中基于度量和规则的反模式自动检测","authors":"Mehmed Taha Aras, Y. E. Selçuk","doi":"10.1109/CSIT.2016.7549470","DOIUrl":null,"url":null,"abstract":"Patterns are techniques to improve design and enhance reusability. Design patterns are general solutions which are used for common problems in object oriented systems. Code and design smells are symptoms of weak design and development, problems that reside deep in code and reduce the quality of software. The antipattern concept is also introduced as poor solutions to solve recurring problems, even though developers think that they practice a design pattern. It is proven that antipatterns have negative effects on maintainability, flexibility and readability of object oriented software systems. In this research, we propose a metric and a rule based automated antipattern detection system for object oriented software. This system consists of three main mechanisms to detect an antipattern. These mechanisms are “Metric Analyzer”, “Static Code Analyzer” and “Filtering Mechanism”. We specified three antipatterns to analyze; namely Blob, Swiss Army Knife and Lava Flow. Thresholds that are used to detect antipatterns are determined considering six reference projects' results and averages of the analyzed project itself. Detection algorithms have been applied on a set of hand-crafted Java classes and accuracy percentages are measured according to the produced results.","PeriodicalId":210905,"journal":{"name":"2016 7th International Conference on Computer Science and Information Technology (CSIT)","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2016-07-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":"{\"title\":\"Metric and rule based automated detection of antipatterns in object-oriented software systems\",\"authors\":\"Mehmed Taha Aras, Y. E. Selçuk\",\"doi\":\"10.1109/CSIT.2016.7549470\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Patterns are techniques to improve design and enhance reusability. Design patterns are general solutions which are used for common problems in object oriented systems. Code and design smells are symptoms of weak design and development, problems that reside deep in code and reduce the quality of software. The antipattern concept is also introduced as poor solutions to solve recurring problems, even though developers think that they practice a design pattern. It is proven that antipatterns have negative effects on maintainability, flexibility and readability of object oriented software systems. In this research, we propose a metric and a rule based automated antipattern detection system for object oriented software. This system consists of three main mechanisms to detect an antipattern. These mechanisms are “Metric Analyzer”, “Static Code Analyzer” and “Filtering Mechanism”. We specified three antipatterns to analyze; namely Blob, Swiss Army Knife and Lava Flow. Thresholds that are used to detect antipatterns are determined considering six reference projects' results and averages of the analyzed project itself. Detection algorithms have been applied on a set of hand-crafted Java classes and accuracy percentages are measured according to the produced results.\",\"PeriodicalId\":210905,\"journal\":{\"name\":\"2016 7th International Conference on Computer Science and Information Technology (CSIT)\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-07-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"8\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2016 7th International Conference on Computer Science and Information Technology (CSIT)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CSIT.2016.7549470\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 7th International Conference on Computer Science and Information Technology (CSIT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSIT.2016.7549470","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8
摘要
模式是改进设计和增强可重用性的技术。设计模式是用于解决面向对象系统中常见问题的通用解决方案。代码和设计气味是设计和开发薄弱的症状,存在于代码深处的问题降低了软件的质量。反模式概念也是作为解决反复出现的问题的糟糕解决方案引入的,即使开发人员认为他们实践了设计模式。事实证明,反模式对面向对象软件系统的可维护性、灵活性和可读性有负面影响。在本研究中,我们提出了一种基于度量和规则的面向对象软件自动反模式检测系统。该系统由三种检测反模式的主要机制组成。这些机制是“度量分析器”、“静态代码分析器”和“过滤机制”。我们指定了三个要分析的反模式;即Blob, Swiss Army Knife和Lava Flow。用于检测反模式的阈值是根据六个参考项目的结果和所分析项目本身的平均值来确定的。检测算法已应用于一组手工制作的Java类,并根据生成的结果测量准确率百分比。
Metric and rule based automated detection of antipatterns in object-oriented software systems
Patterns are techniques to improve design and enhance reusability. Design patterns are general solutions which are used for common problems in object oriented systems. Code and design smells are symptoms of weak design and development, problems that reside deep in code and reduce the quality of software. The antipattern concept is also introduced as poor solutions to solve recurring problems, even though developers think that they practice a design pattern. It is proven that antipatterns have negative effects on maintainability, flexibility and readability of object oriented software systems. In this research, we propose a metric and a rule based automated antipattern detection system for object oriented software. This system consists of three main mechanisms to detect an antipattern. These mechanisms are “Metric Analyzer”, “Static Code Analyzer” and “Filtering Mechanism”. We specified three antipatterns to analyze; namely Blob, Swiss Army Knife and Lava Flow. Thresholds that are used to detect antipatterns are determined considering six reference projects' results and averages of the analyzed project itself. Detection algorithms have been applied on a set of hand-crafted Java classes and accuracy percentages are measured according to the produced results.