دانستنی‌ها

روش/ابزاری برای تضمین/بررسی پیمانه ای بودن یک نرم افزار وجود دارد؟!

نرم افزاری که به روش پیمانه ای (modular) ایجاد شده باشد، از مجموعه ای از پیمانه های مستقل تشکیل شده است. از جمله ویژگی های ارزشمند نرم افزارهای پیمانه ای که منجر به محبوبیت این روش شده است، می توان به این موارد اشاره کرد: به روز رسانی آسان و قابلیت فهم بالا.

نرم افزار مرده به نرم افزاری گفته می شود که قابل استفاده نباشد، با توجه به اینکه عدم به روزرسانی مستمر یک نرم افزار منجر به مرگ آن می شود و نرم افزار پیمانه ای به روز رسانی نرم افزار را تسهیل می کند، ایجادکنندگان نرم افزار در جست و جوی روش هایی هستند که از ایجاد به روش پیمانه ای پشتیبانی کنند.

تعدادی از رویکردهای موجود برای ایجاد نرم افزار بر ایجاد پیمانه ای نرم افزار تأکید دارند و راهکارهایی را برای این منظور ارائه کرده اند. از جمله ی این رویکردها می توان به رویکردهای شئ گرا (object-oriented) و جنبه گرا (aspect-oriented) اشاره کرد. در صورتی که یک نرم افزار به روش شئ گرا ایجاد شود، نمی توان تضمین کرد که تمام وظیفه مندی ها (functionalities) در پیمانه های جداگانه (کلاس ها و توابع جداگانه) پیاده سازی شده باشند؛ بلکه برخی وظیفه مندی ها به صورت ناخواسته/خواسته در پیمانه های مختلف پراکنده اند و اصطلاحاً دغدغه ی متقاطع (cross-cutting concern) نامیده می شوند.

بنابراین بهتر است در کنار استفاده از رویکردهایی که از ایجاد به روش پیمانه ای پشتیبانی می کنند، از روش های مناسب برای کشف و مدیریت دغدغه های متقاطع استفاده شود. یکی از روش های مفید برای کشف دغدغه های متقاطع، استفاده از تکنیک های کاوش مخازن نرم افزاری (Software Repository Mining) است. برای این منظور لازم است بسترهای مناسب بر مبنای اهداف فراهم شوند و تکنیک ها و ابزارهای مناسب مورد استفاده قرار گیرند. به عنوان مثال، در [1] ابزاری برای کشف دغدغه های متقاطع در سیستم های مبتنی بر زبان جاوا ارائه شده است. با توجه به اینکه این ابزار یک سیستم کنترل نسخه (Version Control System) را به عنوان مخزن نرم افزاری استفاده می کند، لازم است از قبل ابزار مناسب کنترل نسخه در سازمان مربوطه استفاده شده باشد.

در نتیجه، استفاده از یک رویکرد خاص در تعدادی از مراحل ایجاد نرم افزار نمی تواند تضمین کننده ی پیمانه ای بودن نرم افزار باشد. بلکه لازم است مجموعه ای از تکنیک ها و رویکردهای مختلف هم برای ایجاد پیمانه ای و هم برای حفظ پیمانه ای بودن نرم افزار استفاده شوند.

با توجه به وسیع بودن مطالب این حوزه، مطالب تکمیلی در پست های بعدی ارسال خواهند شد.

منابع:

 [1] Mulder, F., Zaidman, A. (2010), “Identifying cross-cutting concerns using software repository mining”, Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE), pp. 23-32.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا