سیویلیکا را در شبکه های اجتماعی دنبال نمایید.

بازسازی خودکار کد زبان اصلی نرم افزار برای رفع پادالگوهای زبان شناختی مربوط به توابع

Publish Year: 1403
Type: Journal paper
Language: Persian
View: 48

This Paper With 26 Page And PDF Format Ready To Download

Export:

Link to this Paper:

Document National Code:

JR_CSJI-9-4_003

Index date: 28 February 2025

بازسازی خودکار کد زبان اصلی نرم افزار برای رفع پادالگوهای زبان شناختی مربوط به توابع abstract

امروزه معیارهای فراوانی برای سنجش کیفیت نرم افزار وجود دارد که هر کدام از جهتی به سنجش آن می پردازند. وجود یا عدم وجود پادالگوها می تواند معیاری برای سنجش کیفیت کد زبان اصلی نرم افزار باشد. برخی پادالگوهای شناخته شده با توجه به تاثیرشان بر روی کارایی، اطمینان پذیری و سایر معیارهای مرتبط مطالعه می شوند. یکی از این معیارها، خوانایی کد زبان اصلی نرم افزار است. سازنده یا سازندگان یک برنامه تنها کسانی نیستند که به توسعه آن می پردازند. به همین دلیل رعایت نکاتی که فهمیدن چگونگی کارکرد برنامه را برای توسعه دهندگان احتمالی ساده تر می کند ضروری است. این مقاله به بررسی پادالگوهای مرتبط با نام گذاری توابع و ارائه راه حل برای رفع خودکار آن ها می پردازد. به پادالگوهایی که مربوط به نام گذاری توابع، متغیرها و سایر اعضا در کد زبان اصلی نرم افزار و همچنین مستندات آن هستند پادالگوهای زبان شناختی گفته می شود. در این مقاله روشی برای تشخیص و رفع خودکار پادالگوهای زبان شناختی به کمک درخت نحو انتزاعی ارائه می شود. سپس روش ارائه شده بر روی کد زبان اصلی چهار نرم افزار متن باز که در مجموع بیش از ۱۵۰۰۰۰ خط کد دارند، آزمایش می شود. در نتیجه این آزمایش ها ۵۱ پادالگو به درستی شناسایی و اصلاح می شوند. اصلاح شدن به گونه ای است که حدود ۵۰ خط کد به مجموعه کد ها اضافه می کند. مزیت این پژوهش نسبت به پژوهش های مشابه، ارائه روشی برای رفع پادالگوها و اعمال تغییرات در کد زبان اصلی است. زیرا بسیاری از پژوهش ها تنها به تشخیص پادالگوهای زبان شناختی اکتفا کرده اند. همچنین، تاثیری که این بازسازی بر روی تعداد خطوط کد زبان اصلی می گذارد نیز بررسی شده است.

بازسازی خودکار کد زبان اصلی نرم افزار برای رفع پادالگوهای زبان شناختی مربوط به توابع Keywords:

بازسازی خودکار کد زبان اصلی نرم افزار برای رفع پادالگوهای زبان شناختی مربوط به توابع authors

مهرداد آشتیانی

استادیار، دانشکده مهندسی کامپیوتر، دانشگاه علم و صنعت، تهران، ایران

محمد امین شهیدی نشرودکلی

دانشجوی کارشناسی ارشد، مهندسی کامپیوتر، دانشگاه علم و صنعت، تهران، ایران

فاطمه بخشی

کارشناسی ارشد مهندسی کامپیوتر، دانشگاه علم و صنعت، تهران، ایران

مراجع و منابع این Paper:

لیست زیر مراجع و منابع استفاده شده در این Paper را نمایش می دهد. این مراجع به صورت کاملا ماشینی و بر اساس هوش مصنوعی استخراج شده اند و لذا ممکن است دارای اشکالاتی باشند که به مرور زمان دقت استخراج این محتوا افزایش می یابد. مراجعی که مقالات مربوط به آنها در سیویلیکا نمایه شده و پیدا شده اند، به خود Paper لینک شده اند :
V. Arnaoudova, "A New Family of Software Anti-Patterns: Linguistic Anti-Patterns," ...
M. Wahler and U. Drofenik, "Improving Code Maintainability: A Case ...
F. Arcelli Fontana, "Metrics and Antipatterns for Software Quality Evaluation," ...
A. Stoianov, "Detecting Patterns and Antipatterns in Software using Prolog ...
C. U. Smith, "Software Performance AntiPatterns," in Proceedings of the ...
Z. Kermansaravi, "Linguistic Anti-Patterns: Impact Analysis on Code Quality," arXiv ...
"Abstract syntax tree," Wikipedia, URL: https://en.wikipedia.org/wiki/Abstract_syntax_tree/, Access Date: ۴ Feb ...
D. v. Leewen, "Comprehensible Method Names: Focusing on the Nouns," ...
D. Steidl and B. Hummel, "Quality analysis of source code ...
D. Souza, "A Study of the Documentation Essentials to Software ...
C. S. Hartzman and C. F. Austin, "Maintenance Productivity: Observations ...
A. D. Lucia and M. D. Penta, "Improving Source Code ...
S. Harry, "Object-oriented COBOL recycling," in Proceedings of the WCRE ...
S. Haiduc and A. Marcus, "On the Use of Domain ...
D. Lawrie, "Quantifying identifier quality: an analysis of trends," Kluwer ...
S. Butler, M. Wermelinger, Y. Yu and H. Sharp, "Relating ...
V. Arnaoudova, "Towards Improving the Code Lexicon and its Consistency ...
L. Kui, "Learning to Spot and Refactor Inconsistent Method Names," ...
V. Arnaoudova, "Linguistic Antipatterns: What They Are and How Developers ...
"Text segmentation," Wikipedia, URL: https://en.wikipedia.org/wiki/Text_segmentation/, Access Date: ۵ Feb ۲۰۲۲ ...
E. Aghajani, C. Nagy, G. Bavota, M. Lanza, “A large-scale ...
نمایش کامل مراجع