یکشنبه, ۹ اردیبهشت, ۱۴۰۳ / 28 April, 2024
مجله ویستا

شیوه‌های استخراج جنبه و معرفی پژوهشگران مشهور


شیوه‌های استخراج جنبه و معرفی پژوهشگران مشهور
شیوه‌های مورد استفاده‌ی محققین را در سه رده یا طبقه‌ی اصلی سازماندهی کرده، همچنین به معرفی پژوهشگرانی که روی تکنیک‌های استخراج خودکار جنبه تحقیق کرده‌اند، خواهیم پرداخت.
شیوه‌های مورد استفاده‌ی محققین را در سه رده یا طبقه‌ی اصلی سازماندهی می‌کنیم:
تکنیک‌های اولیه‌ی استخراج جنبه. در گذشته، اصلی‌ترین مساله در توسعه‌ی نرم‌افزارهای جنبه‌گرا، مرحله‌ی پیاده‌سازی نرم‌افزار بود. در تحقیقات اولیه‌ای که روی جنبه‌ها صورت پذیرفت سعی بر این بود تا جنبه‌ها نیز مانند نیازمندی‌ها و تحلیل دامنه یا طراحی معماری در مراحل اولیه‌ی چرخه‌ی تولید نرم‌افزار ظاهر شوند. تشخیص و مدیریت تکنیک‌های اولیه ی جنبه، هیچ تاثیری در بهبود پیمانه‌بندی نیازمندی‌ها و طراحی معماری ندارد، زیرا در این حالت، نتیجه‌ای همانند پیاده‌سازی جنبه‌ها حاصل می‌شود. در سیستم‌های قدیمی که دارای نیازمندی‌ها و مستندات معماری منسوخ شده یا غیرقابل دسترس هستند، تکنیک‌های استخراج جنبه امکان ظهور و تمرکز روی کد را ندارند.
کاوشگرهای اختصاصی . به دسته‌ای از کاوشگرهای خاص اطلاق می‌شود که در آن تولید کننده، برای کشف دغدغه‌های تداخلی، کد سیستم را به صورت دستی جهت‌یابی یا کنترل می‌نماید. هدف این شیوه‌ها استخراج جنبه‌ها نبوده بلکه هدف اولیه‌ی آن بررسی اختصاصی مستندات و کشف دغدغه‌های تداخلی است که این کار نیز به نگهداری و تکامل سیستم ترجیح داده می‌شود. از کاوشگرهای اختصاصی می‌توان برای شناسایی جنبه‌ها در سیستم استفاده کرد.
معمولاً کاربر در کد با دغدغه‌هایی روبرو می‌شود که کشف آن برعهده‌ی کاوشگرهای اختصاصی است. در چنین کاوشگرهایی، کاربر کانون بحران‌هایی خواهد شد که به دغدغه ترجیح داده می‌شوند، یا این که کاربر خود با زبان پرس‌وجو دغدغه را به صورت دستی پیدا می‌کند. می‌توان برای مثال شیوه‌هایی مانند گراف‌های دغدغه [۱]، دیدهای Intensional [۲]، کاوشگر جنبه [۳]، ابزار جنبه‌کاوی (توسعه یافته) [۴]، Prism [۵]، JQuery و غیره را نام برد.
شناسایی (شبه-) خودکار کاندیدهای جنبه. برای تکمیل کاوشگرهای اختصاصی، تکنیک‌هایی وجود دارد که به عنوان هدف برای فرآیند خودکار شناسایی جنبه‌ها بکار می‌آیند و کاربر به آنها یک یا چند کاندید جنبه را پیشنهاد می‌کند. در نهایت، این تکنیک‌ها کد سیستم یا داده را استدلال کرده تا با اجرا یا دستکاری کد، جنبه بدست آید. به نظر می‌رسد برای نشان دادن دغدغه‌های تداخلی، دست‌کم تمام تکنیک‌ها با هم اشتراک دارند. درواقع، تکنیک‌های داده‌کاوی و تحلیل داده شبیه تحلیل مفهوم رسمی و تحلیل خوشه‌بندی، یا تکنیک‌های تحلیل کد شبیه برش برنامه، اندازه‌گیری نرم افزار، تشخیص هم نوع، تکنیک‌های تطبیق الگو، تحلیل پویا و غیره را بکار می‌برند.
در ادامه نگرشی کلی از کار پژوهشگرانی که روی تکنیک‌های استخراج خودکار جنبه تحقیق کرده‌اند، ارائه می‌گردد:
سیلویا بروو و جنز کرینک از تحلیل ایستا و پویا برای تشخیص الگوهای فراخوانی تکراری و استخراج دغدغه‌های تداخلی استفاده کردند [۶].
ماجیل برونتینک و تام توروو بررسی نمودند که دغدغه‌های تداخلی چطور می‌تواند از مهندسی معکوس برنامه‌های کاربردی صنعتی بزرگ حاصل شود و چگونه تکنیک‌های توسعه‌ی نرم‌افزار جنبه‌گرا می‌توانند کیفیت چنین برنامه‌های کاربردی را بهبود بخشند.
ماریانو سککاتو و پائولو تونللا تکنیک‌های تحلیل پویا و تحلیل مفهوم رسمی را برای استخراج کد با جنبه‌ها ترکیب نمودند[۷].
کریس گیبلز و اندی کللنز تکنیک‌های استخراج جنبه‌ی مبتنی بر سلسله مراتب را کشف کردند که از طریق آن به تکنیک برنامه‌نویسی منطق استقرایی خودکار نقاط برش در نرم‌افزار پی بردند.
ماریوس مارین ، لئون مونن و اریه وان درسن تکنیک تحلیل ظرفیت ورودی به شناسایی شبه خودکار جنبه‌ها در کد جاوا را مطالعه نمودند که به صورت جنبه‌گرا نوشته نشده است[۱۰].
مارتین روبیللارد و گیل مورفی به استخراج دغدغه با استفاده از وابستگی عضو کلاس پرداختند. در این روش، دغدغه‌های پیمانه‌بندی شده با تعریف سیستم یا اعضای کلاس ادغام می‌شوند[۱۲].
کیم منز و تام توروو تکنیک تحلیل مفهوم رسمی در کد Smalltalk یا جاوا را برای کشف جنبه‌ها و دغدغه‌های تداخلی، مبتنی بر مشابهت در شناسایی متدها و کلاس‌ها ارائه کردند[۸].
دیوید شفرد چارچوبی برای ترکیب تحلیل استخراج جنبه ارائه داد. همچنین تشخیص همنوعی کد را جهت شناسایی جنبه‌ها مورد استفاده قرار داد[۹].
اندی زایدمن از الگوریتم‌های داده‌کاوی برای کشف کلاس‌های مهم در معماری سیستم استفاده کرد که کاندیدهای درجه یک برای جنبه‌ها هستند[۱۱].
منبع:
۱. M. P. Robillard and G. C. Murphy, “Concern graphs: Finding and describing concerns using structural program dependencies”, Proceedings of the ۲۴th International Conference on Software Engineering (ICSE ۲۰۰۲), Orlando, Florida, ۲۰۰۲.
۲. K. Mens, B. Poll and S. Gonz´alez, “Using intentional source-code views to aid software maintenance”, International Conference on Software Maintenance (ICSM’۰۳), IEEE Computer Society Press, ۲۰۰۳.
۳. W. Griswold, Y. Kato and J. Yuan, “Aspect browser: Tool support for managing dispersed aspects”, Workshop on Multi-Dimensional Separation of Concerns in Object-oriented Systems, ۱۹۹۹.
۴. C. Zhang and H. Jacobsen, “Extended aspect mining tool”, http://www.eecg.utoronto.ca/_czhang/amtex, ۲۰۰۲.
۵. C. Zhang and H. Jacobsen, “Prism is research in aspect mining”, OOPSLA, ACM, ۲۰۰۴.
۶. J. Krinke and S. Breu, “Control-flow-graph-based aspect mining”, Proceedings of the First Workshop on Aspect Reverse Engineering at Working onference on Reverse Engineering (WCRE ۲۰۰۴), Delft, ۲۰۰۴.
۷. P. Tonella and M. Ceccato, “Aspect mining through the formal concept analysis of execution traces”, Working Conference on Reverse Engineering (WCRE), ۲۰۰۴.
۸. K. Mens and T. Tourw´e, “Delving source-code with formal concept analysis”, Elsevier Journal on Computer Languages, Systems & Structures, ۲۰۰۵.
۹. D. Shepherd, T. Tourw´e and L. Pollock, “Using language clues to discover crosscutting concerns”, Workshop on the Modeling and Analysis of Concerns, ۲۰۰۵.
۱۰. M. Marin, A. van Deursen and L. Moonen, “Identifying aspects using fan-in analysis”, Working Conference on Reverse Engineering (WCRE), IEEE Computer Society, ۲۰۰۴.
۱۱. A. Zaidman, T. Calders, S. Demeyer, and J. Paredaens, “Applying web mining techniques to execution traces to support the program comprehension process”, ۸th European Conference on Software Maintenance and Reengineering (CSMR), pages ۳۲۹–۳۳۸. IEEE Computing Society, ۲۰۰۵.
۱۲. M. P. Robillard and G. C. Murphy, “Concern graphs: Finding and describing concerns using structural program dependencies”, Proceedings of the ۲۴th International Conference on Software Engineering (ICSE ۲۰۰۲), Orlando, Florida, ۲۰۰۲.
برداشت و نگارش: مهندس سیدمصطفی مفیدیان
منبع : سایت مقالات علمی ایران


همچنین مشاهده کنید