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

شيوه‌های مورد استفاده‌ی محققين را در سه رده يا طبقه‌ی اصلي سازماندهي کرده، همچنین به معرفی پژوهشگراني که روي تکنيک‌های استخراج خودکار جنبه تحقيق کرده‌اند، خواهیم پرداخت.  
شيوه‌های مورد استفاده‌ی محققين را در سه رده يا طبقه‌ی اصلي سازماندهي می‌کنيم:
تکنيک‌های اوليه‌ی استخراج جنبه. در گذشته، اصلي‌ترين مساله در توسعه‌ی نرم‌افزارهاي جنبه‌گرا، مرحله‌ی پياده‌سازی نرم‌افزار بود. در تحقيقات اوليه‌ای که روي جنبه‌ها صورت پذيرفت سعي بر اين بود تا جنبه‌ها نيز مانند نيازمندي‌ها و تحليل دامنه يا طراحي معماري در مراحل اوليه‌ی چرخه‌ی توليد نرم‌افزار ظاهر شوند. تشخيص و مديريت تکنیک‌های اولیه ی جنبه، هيچ تاثيري در بهبود پيمانه‌بندي نيازمندي‌ها و طراحي معماري ندارد، زيرا در اين حالت، نتيجه‌اي همانند پياده‌سازی جنبه‌ها حاصل می‌شود. در سيستم‌های قديمي که داراي نيازمندي‌ها و مستندات معماري منسوخ شده يا غيرقابل دسترس هستند، تکنيک‌های استخراج جنبه امکان ظهور و تمرکز روي کد را ندارند.
کاوشگرهاي اختصاصي . به دسته‌اي از کاوشگرهاي خاص اطلاق می‌شود که در آن توليد کننده، براي کشف دغدغه‌های تداخلي، کد سيستم را به صورت دستي جهت‌يابي يا کنترل می‌نمايد. هدف اين شيوه‌ها استخراج جنبه‌ها نبوده بلکه هدف اوليه‌ی آن بررسي اختصاصي مستندات و کشف دغدغه‌های تداخلي است که اين کار نيز به نگهداري و تکامل سيستم ترجيح داده می‌شود. از کاوشگرهاي اختصاصي می‌توان براي شناسايي جنبه‌ها در سيستم استفاده کرد.
معمولاً کاربر در کد با دغدغه‌هايي روبرو می‌شود که کشف آن برعهده‌ی کاوشگرهاي اختصاصي است. در چنين کاوشگرهايي، کاربر کانون بحران‌هايی خواهد شد که به دغدغه ترجيح داده می‌شوند، يا اين که کاربر خود با زبان پرس‌وجو دغدغه را به صورت دستي پيدا می‌کند. می‌توان براي مثال شيوه‌هايي مانند گراف‌های دغدغه [1]، ديدهاي Intensional [2]، کاوشگر جنبه [3]، ابزار جنبه‌کاوي (توسعه يافته) [4]، Prism [5]، JQuery و غيره را نام برد.
شناسايي (شبه-) خودکار کانديدهاي جنبه. براي تکميل کاوشگرهاي اختصاصي، تکنيک‌هايي وجود دارد که به عنوان هدف براي فرآيند خودکار شناسايي جنبه‌ها بکار می‌آيند و کاربر به آنها يک يا چند کانديد جنبه را پيشنهاد می‌کند. در نهايت، اين تکنيک‌ها کد سيستم يا داده را استدلال کرده تا با اجرا يا دستکاري کد، جنبه بدست آيد. به نظر می‌رسد براي نشان دادن دغدغه‌های تداخلي، دست‌کم تمام تکنيک‌ها با هم اشتراک دارند. درواقع، تکنيک‌های داده‌کاوي و تحليل داده شبيه تحليل مفهوم رسمي و تحليل خوشه‌بندي، يا تکنيک‌های تحليل کد شبيه برش برنامه، اندازه‌گيري نرم افزار، تشخيص هم نوع، تکنيک‌های تطبيق الگو، تحليل پويا و غيره را بکار می‌برند.
در ادامه نگرشي کلي از کار پژوهشگراني که روي تکنيک‌های استخراج خودکار جنبه تحقيق کرده‌اند، ارائه می‌گردد:
سيلويا بروو و جنز کرينک از تحليل ايستا و پويا براي تشخيص الگوهاي فراخواني تکراري و استخراج دغدغه‌های تداخلي استفاده کردند [6].
ماجيل برونتينک و تام توروو بررسي نمودند که دغدغه‌های تداخلي چطور می‌تواند از مهندسي معکوس برنامه‌های کاربردي صنعتي بزرگ حاصل شود و چگونه تکنيک‌های توسعه‌ی نرم‌افزار جنبه‌گرا می‌توانند کيفيت چنين برنامه‌های کاربردي را بهبود بخشند.
ماريانو سککاتو و پائولو تونللا تکنيک‌های تحليل پويا و تحليل مفهوم رسمي را براي استخراج کد با جنبه‌ها ترکيب نمودند[7].
کريس گيبلز و اندي کللنز تکنيک‌های استخراج جنبه‌ی مبتني بر سلسله مراتب را کشف کردند که از طريق آن به تکنيک برنامه‌نويسي منطق استقرايي خودکار نقاط برش در نرم‌افزار پي بردند.
ماريوس مارين ، لئون مونن و اريه وان درسن تکنيک تحليل ظرفيت ورودي به شناسايي شبه خودکار جنبه‌ها در کد جاوا را مطالعه نمودند که به صورت جنبه‌گرا نوشته نشده است[10].
مارتين روبيللارد و گيل مورفي به استخراج دغدغه با استفاده از وابستگي عضو کلاس پرداختند. در اين روش، دغدغه‌های پيمانه‌بندي شده با تعريف سيستم يا اعضاي کلاس ادغام می‌شوند[12].
کيم منز و تام توروو تکنيک تحليل مفهوم رسمي در کد Smalltalk يا جاوا را براي کشف جنبه‌ها و دغدغه‌های تداخلي، مبتني بر مشابهت در شناسايي متدها و کلاس‌ها ارائه کردند[8].
ديويد شفرد چارچوبي براي ترکيب تحليل استخراج جنبه ارائه داد. همچنين تشخيص همنوعي کد را جهت شناسايي جنبه‌ها مورد استفاده قرار داد[9].
اندي زايدمن از الگوريتم‌های داده‌کاوي براي کشف کلاس‌های مهم در معماري سيستم استفاده کرد که کانديدهاي درجه يک براي جنبه‌ها هستند[11].
منبع:1. M. P. Robillard and G. C. Murphy, “Concern graphs: Finding and describing concerns using structural program dependencies”, Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), Orlando, Florida, 2002.
2. K. Mens, B. Poll and S. Gonz´alez, “Using intentional source-code views to aid software maintenance”, International Conference on Software Maintenance (ICSM’03), IEEE Computer Society Press, 2003.
3. 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, 1999.
4. C. Zhang and H. Jacobsen, “Extended aspect mining tool”, http://www.eecg.utoronto.ca/_czhang/amtex, 2002.
5. C. Zhang and H. Jacobsen, “Prism is research in aspect mining”, OOPSLA, ACM, 2004.
6. 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 2004), Delft, 2004.
7. P. Tonella and M. Ceccato, “Aspect mining through the formal concept analysis of execution traces”, Working Conference on Reverse Engineering (WCRE), 2004.
8. K. Mens and T. Tourw´e, “Delving source-code with formal concept analysis”, Elsevier Journal on Computer Languages, Systems & Structures, 2005.
9. D. Shepherd, T. Tourw´e and L. Pollock, “Using language clues to discover crosscutting concerns”, Workshop on the Modeling and Analysis of Concerns, 2005.
10. M. Marin, A. van Deursen and L. Moonen, “Identifying aspects using fan-in analysis”, Working Conference on Reverse Engineering (WCRE), IEEE Computer Society, 2004.
11. A. Zaidman, T. Calders, S. Demeyer, and J. Paredaens, “Applying web mining techniques to execution traces to support the program comprehension process”, 8th European Conference on Software Maintenance and Reengineering (CSMR), pages 329–338. IEEE Computing Society, 2005.
12. M. P. Robillard and G. C. Murphy, “Concern graphs: Finding and describing concerns using structural program dependencies”, Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), Orlando, Florida, 2002.
برداشت و نگارش: مهندس سیدمصطفی مفیدیان

نظرات (0)

هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید

مطالب مشابه

insert_link

local_library آموزش یوگا - دنیای پر رمز و راز خواب

insert_link

local_library آموزش یوگا - یوگا و درمان سردرد

insert_link

local_library آموزش یوگا - مبحثی در شناخت تمرکز و تربی

insert_link

local_library دستورالعمل های استيل شروع ، قدمها و پرتا