Robson Keemps , Kleinner Farias , Rafael Kunst , Carlos Carbonera , Willian Bolzan
{"title":"SmellDSL:一种特定于领域的语言,帮助开发人员指定代码气味模式","authors":"Robson Keemps , Kleinner Farias , Rafael Kunst , Carlos Carbonera , Willian Bolzan","doi":"10.1016/j.infsof.2025.107760","DOIUrl":null,"url":null,"abstract":"<div><h3>Context:</h3><div>The current literature has widely investigated <em>code smell patterns</em> over the years, which describe specific source code characteristics that indicate potential problems or areas for improvements. Empirical studies suggest that (i) metric-based strategies for code smell detection are not effective and overload the developers with false positives; (ii) code smell specifications are informal, ambiguous, and not supported by traditional IDEs like Eclipse platform; and (iii) the identification of code smells depends on the perception of software development teams.</div></div><div><h3>Objective:</h3><div>This article, therefore, proposes SmellDSL, a tool-supported domain-specific language to assist developers when specifying code smell patterns. SmellDSL benefits developers by introducing Eclipse built-in constructs that enable the specification of team-sensitive code smell patterns. Developers can write rules to specify single or composite architectural problems (<em>e.g., Misplaced Concerns</em>) and suggest code refactorings regarding severe architectural degradation symptoms.</div></div><div><h3>Method:</h3><div>We conducted an empirical study with 35 developers who specified eight code smells using SmellDSL, generating 280 evaluation scenarios.</div></div><div><h3>Results:</h3><div>The main results, supported by statistical tests, suggest that SmellDSL requires low effort to specify code smell patterns and promotes a high rate of correctly code smell specifications.</div></div><div><h3>Conclusion:</h3><div>We contribute with a domain-specific language for the specification of code smell patterns, empirical evidence on its usefulness, and draw worth-investigating research challenges by the research community.</div></div>","PeriodicalId":54983,"journal":{"name":"Information and Software Technology","volume":"184 ","pages":"Article 107760"},"PeriodicalIF":4.3000,"publicationDate":"2025-05-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"SmellDSL: A domain-specific language to assist developers in specifying code smell patterns\",\"authors\":\"Robson Keemps , Kleinner Farias , Rafael Kunst , Carlos Carbonera , Willian Bolzan\",\"doi\":\"10.1016/j.infsof.2025.107760\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><h3>Context:</h3><div>The current literature has widely investigated <em>code smell patterns</em> over the years, which describe specific source code characteristics that indicate potential problems or areas for improvements. Empirical studies suggest that (i) metric-based strategies for code smell detection are not effective and overload the developers with false positives; (ii) code smell specifications are informal, ambiguous, and not supported by traditional IDEs like Eclipse platform; and (iii) the identification of code smells depends on the perception of software development teams.</div></div><div><h3>Objective:</h3><div>This article, therefore, proposes SmellDSL, a tool-supported domain-specific language to assist developers when specifying code smell patterns. SmellDSL benefits developers by introducing Eclipse built-in constructs that enable the specification of team-sensitive code smell patterns. Developers can write rules to specify single or composite architectural problems (<em>e.g., Misplaced Concerns</em>) and suggest code refactorings regarding severe architectural degradation symptoms.</div></div><div><h3>Method:</h3><div>We conducted an empirical study with 35 developers who specified eight code smells using SmellDSL, generating 280 evaluation scenarios.</div></div><div><h3>Results:</h3><div>The main results, supported by statistical tests, suggest that SmellDSL requires low effort to specify code smell patterns and promotes a high rate of correctly code smell specifications.</div></div><div><h3>Conclusion:</h3><div>We contribute with a domain-specific language for the specification of code smell patterns, empirical evidence on its usefulness, and draw worth-investigating research challenges by the research community.</div></div>\",\"PeriodicalId\":54983,\"journal\":{\"name\":\"Information and Software Technology\",\"volume\":\"184 \",\"pages\":\"Article 107760\"},\"PeriodicalIF\":4.3000,\"publicationDate\":\"2025-05-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Information and Software Technology\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0950584925000990\",\"RegionNum\":2,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q2\",\"JCRName\":\"COMPUTER SCIENCE, INFORMATION SYSTEMS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information and Software Technology","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0950584925000990","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
SmellDSL: A domain-specific language to assist developers in specifying code smell patterns
Context:
The current literature has widely investigated code smell patterns over the years, which describe specific source code characteristics that indicate potential problems or areas for improvements. Empirical studies suggest that (i) metric-based strategies for code smell detection are not effective and overload the developers with false positives; (ii) code smell specifications are informal, ambiguous, and not supported by traditional IDEs like Eclipse platform; and (iii) the identification of code smells depends on the perception of software development teams.
Objective:
This article, therefore, proposes SmellDSL, a tool-supported domain-specific language to assist developers when specifying code smell patterns. SmellDSL benefits developers by introducing Eclipse built-in constructs that enable the specification of team-sensitive code smell patterns. Developers can write rules to specify single or composite architectural problems (e.g., Misplaced Concerns) and suggest code refactorings regarding severe architectural degradation symptoms.
Method:
We conducted an empirical study with 35 developers who specified eight code smells using SmellDSL, generating 280 evaluation scenarios.
Results:
The main results, supported by statistical tests, suggest that SmellDSL requires low effort to specify code smell patterns and promotes a high rate of correctly code smell specifications.
Conclusion:
We contribute with a domain-specific language for the specification of code smell patterns, empirical evidence on its usefulness, and draw worth-investigating research challenges by the research community.
期刊介绍:
Information and Software Technology is the international archival journal focusing on research and experience that contributes to the improvement of software development practices. The journal''s scope includes methods and techniques to better engineer software and manage its development. Articles submitted for review should have a clear component of software engineering or address ways to improve the engineering and management of software development. Areas covered by the journal include:
• Software management, quality and metrics,
• Software processes,
• Software architecture, modelling, specification, design and programming
• Functional and non-functional software requirements
• Software testing and verification & validation
• Empirical studies of all aspects of engineering and managing software development
Short Communications is a new section dedicated to short papers addressing new ideas, controversial opinions, "Negative" results and much more. Read the Guide for authors for more information.
The journal encourages and welcomes submissions of systematic literature studies (reviews and maps) within the scope of the journal. Information and Software Technology is the premiere outlet for systematic literature studies in software engineering.