بخشی از مقاله

تحلیل و آنالیز متدولوژیهای عاملگرا در قالب مفاهیم پرکاربرد عاملگرایی

 

خلاصه

مهندسی نرمافزار عاملگرا، یکی از روشهای نوین در علوم کامپیوتر میباشد و بهطور گسترده در چند سال اخیر رشد نموده است. متدولوژیهای فراوانی در قالب مهندسی نرمافزار عاملگرا با هدف، فراهم آوردن ابزار و امکاناتی برای تهیهی ساده و نگهداری از نرمافزار- 35 mm های مبتنی بر عامل ارائه شده است، که میبایست برای بهرهگیری از آنها در پروژههای نرمافزاری نقاط قوت و ضعف آنها را استخراج

نمود. در این مقاله ما قصد داریم نقاط قوت و ضعف متدولوژی ROADMAP را نسبت به متدولوژی GAIA، که متدولوژی ROADMAP از آن توسعه یافته است، را استخراج کنیم، بدین منظور برای دقیق بودن نتایج ارزیابی از دو دیدگاه خبرگان و سازندگان متدولوزی بهره خواهیم گرفت و پس از آن نتایج استفاده از این دو متدولوژی در پروژه نرمافزاری مبتنی بر عامل(محاسبات شبکهای، تجارت الکترونیک و وبمعنایی) را مورد بررسی قرار خواهیم داد. نتایج این ارزیابی میتواند، الگوی مناسبی برای مهندسین نرمافزار در انتخاب متدولوژیهای عاملگرا باشد.

کلمات کلیدی: مهندسی نرمافزار عاملگرا، سیستمهای مبتنی بر عامل، GAIA، .ROADMAP

1. مقدمه امروزه دامنهی وسیعی از مدلهای مهندسی نرمافزار (مانند برنامهنویسی ساختاری، مدلهای شیگرا و روش-

های مبتنی بر مؤلفه) با هدف ایجاد تسهیلاتی در پروسه مهندسی برای تولید نرمافزار یا کاهش پیچیدگی کاربردهایی که می توانند ساخته شوند، مطرح می باشد. در حالی که هیچکدام از مدلهای جاری مهندسی نرم-افزار نمیتوانند به طور کامل تکنولوژی نرمافزار را با نیازهای تجاری هماهنگ کنند، مهندسی نرمافزار عامل-

گرا به عنوان مدل قدرتمند جدید در سیستمها و محاسبات پدیدار گشته است.[1] هدف اصلی آن ایجاد متدولوژیها و ابزارهایی است، که توسعه و پشتیبانی از نرمافزارهای مبتنی بر عاملها را معقول و به صرفه نماید.[2] مفاهیم متدولوژیها و ابزارها، از مدلهای عامل، یکی از مناسبترین کاندیدها برای پایهگذاری نسل بعدی سیستمهای نرمافزاری میباشد.[3] در حقیقت مهندسی نرمافزار عاملگرا (AOSE1) مرحله بعدی در سیر
تکاملی مهندسی نرمافزار است، که قدرت و مزایای تکنیکهای دیگر مهندسی نرمافزار مانند شیگرایی را

 

افزایش می دهد. مهندسی نرمافزار شیگرا نمیتواند خاصیتهای مشابه عاملها از قبیل هوشمندی و انعطاف پذیری، ارتباطات و قدرتمند بودن را در محیطهای پیچیده، پویا و محیطهای حساس و توزیع شده و اینترنت داشته باشد.[4]

یکی از مسائل مهم در مهندسی نرمافزار عاملگرا، توسعهی متدولوژیهای عاملگرا به منظور ارائهی نسل بعدی متدولوژیهای عاملگرا میباشد و تاکنون تحقیقات نسبتاً مناسبی در این زمینه صورت گرفته است. یکی از مهمترین متدولوژیهای ارائه شده در بحث مهندسی نرمافزار عاملگرا، متدولوزی [5] GAIA میباشد که در

آن مراحل تحلیل و طراحی ارائه شده است.

متدولوژی GAIA از زمان ارائه تاکنون به صورتهای مختلف بهبود و توسعه یافته است. یکی از بهبودهایی که برای متدولوژی GAIA ارائه شده است، توانایی مدل کردن سیستمهای قابل پیادهسازی در اینترنت میباشد.[4]

در این پژوهش به ویژگیهایی مانند باز بودن و تضاد اهداف عاملهای شرکتکننده در سیستم توجه شده است. با استفاده از بهبود دیگری که بر روی متدولوژی GAIA صورت گرفته است، متدولوژی جدیدی با عنوان ROADMAP ارائه شده است.[6] در این مقاله قصد داریم به تجزیه و تحلیل توانایی متدولوژی ROADMAP نسبت به متدولوژی GAIA بپردازیم. به منظور دقت در تجزیه و تحلیل، سعی شده که از نظرات خبرگان و

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

.2 تفاوت دیدگاه عاملگرایی و شیگرایی

AOSE مرحلهی بعدی در سیر تکاملی مهندسی نرمافزار برای سیستمهای توزیعشده، باز و شبکهای میباشد.[7] در واقع میتوان گفت AOSE قدرت و مزایای OO1 را افزایش میدهد، اما نمیتواند جایگزین آن شود. اشیا در جهان واقعی بهعنوان تجریدی برای موجودیتهای غیرفعال میباشند.[8] برنامهنویسان آشنا با زبانهای شیگرا مانندجاوا، غالباً دچار این ابهام میشوند که در تکنولوژی عاملگرا ایدهی جدیدی وجود ندارد. اما هنگامی که این دو تکنولوژی را با توجه به اصول مبنایی هر یک از آنها، با هم مقایسه کنیم، تفاوتهای موجود آشکار میشود. در ادامه به تعدادی از این تفاوتها [9 -11] اشاره خواهیم کرد.

در حالیکه شباهتهای بسیاری بین شی و عامل وجود دارد، به طوریکه میتوان عامل را یک شی با ویژگیهای خاص عامل دانست، تفاوتهای بارزی نیز موجود میباشند. اولین تفاوت در میزان خودمختاری عاملها و اشیا میباشد. آنطور که از اصول طراحی شیگرا میتوان استنباط نمود، حداکثر کنترلی که یک شی میتواند بر روابط خود با دیگر اشیا داشته باشد از طریق سیاستهای کپسولهسازی2 و به کمک تعیین نحوهی دسترسی (Protected, Public, Private) به اعضای کلاس میباشد. اما یک شی لزوماً بر رفتار خود دارای کنترل محسوسی نمیباشد. برای مثال هنگامی که یک شی متدی را برای استفاده توسط اشیای دیگر به اشتراک میگذارد، آن اشیا میتوانند در هر زمانی که بخواهند آنرا فراخوانی نمایند و شی به اشتراک گذارنده، هیچ کنترل خاصی بر اجرا شدن یا اجرا نشدن آن متد ندارد. اگرچه در ظاهر اینطور به نظر میرسد که اعمال چنین سیاستی در یک سیستم شیگرا چندان پیچیده نیست، اما نکتهی اصلی در آنجا است که خودمختاری از این نوع، جز اصول شناخته شده و اجباری در طراحی شیگرا نمیباشد. در حالیکه در طراحی عاملگرا رعایت این اصل در تبیین ارتباطات میان عاملها، ضروری میباشد. دومین اختلاف اساسی بین عامل و شی در رفتار انعطافپذیری میباشد، که عاملها با استفاده از خصیصههای خودآغازی و عکسالعملی، میتوانند از خود نشان دهند. این در حالی است که در اصول سیستمهای شیگرا به وجود چنین خصیصهای اشاره نشده است. سومین اختلاف اساسی که بین تعریف سیستمهای عاملگرا و سیستمهای شیگرا وجود دارد، این است که یک عامل میبایست بر بند اجرایی3 خود کنترل داشته باشد، در حالی که این ویژگی در طراحی شیگرا، از اهمیت چندانی برخوردار نیست. چهارمین تفاوت بین عامل و شی را میتوان در نحوهی مدلسازی آنها، جستجو کرد. بهطور معمول یک عامل با استفاده از نمادهای

 

هوشمندانه در قالب یک مجموعه دانش، آگاهی1، اهداف و وظایف مدل میشود. در حالی که یک شی را میتوان تنها با توجه به مجموعهای از متدها و ویژگیهایی که بیان کنندهی رفتار داخلی آنها میباشند، مدل نمود.[9 -11]

علاوه بر موارد ذکر شده، یکی از تفاوتهای بارز بین شی و عامل را میتوان در نحوهی ارتباطات بین آنها دانست.بر خلاف اشیا که معمولاً ارتباطات آنها بر اساس تبادل پیغامهای ساده میباشد، عاملها بهطور معمول هنگام برقراری ارتباط با یکدیگر، درگیر گفتگوهایی میشوند.[10][9]

3. متدولوژیهای مورد بررسی

3.1 متدولوژی [5] GAIA

GAIA یکی از اولین متدولوژیهایی است که برای آنالیز و طراحی سیستمهای مبتنی بر عامل بهکار برده میشود. هدف اصلی این متدولوژی فراهم آوردن چارچوب مدلسازی و تکنیکهای مختلف برای طراحی سیستمهای مبتنی بر عامل میباشد. GAIA پروسهی توسعهی نرمافزار را به دو مرحلهی تحلیل و طراحی تفکیک مینماید. تحلیل شامل ساختن مدل ادراکی از سیستم مورد نظر و فاز طراحی، انتقال این ساختار مجرد به موجودیتهای بههم پیوسته، بهطوری که بتواند با نگاشتی مستقیم به کد تبدیل شود میباشد. شکل (1) مراحل تحلیل و طراحی را در متدولوژی GAIA نمایش میدهد.

شکل:1 مراحل تحلیل و طراحی در متدولوژی GAIA
- مرحله تحلیل

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

- مرحله طراحی

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

2.3 متدولوژی [6] ROADMAP

ROADMAP متدولوژی عاملگرای توسعهیافته از متدولوژی GAIA است که شامل مدلهای رسمی از دانش و محیط است. این متدولوژی تمرکز زیادی بر تحلیل و طراحی دارد، در فاز تحلیل شامل مدل نقش، مدل واکنش متقابل و مدل قوانین اجتماعی میباشد. هدف فاز طراحی در این متدولوژی تولید مدل عامل، مدل سرویس و مدل هماهنگکننده میباشد. شکل (2) مراحل تحلیل و طراحی در متدولوژی ROADMAP را نشان میدهد.


شکل:2 مراحل تحلیل و طراحی در متدولوژی ROADMAP

.4 تحلیل و آنالیز متدولوژیهای مورد بررسی

برای مشخص کردن نقاط قوت و ضعف دو متدولوژی لازم است که ابتدا پارامترهایی را مشخص کنیم و بر اساس آنها به تحلیل و آنالیز دو متدولوژی بپردازیم. در این مقاله از هفت پارامتر مهم و تأثیرگذار در متدولوژیهای عاملگرا استفاده شده است. هر چند میتوان از دیدگاههای دیگر نیز متدولوژیهای عاملگرا را مورد آنالیز و تحلیل قرار داد[14][13][12]، اما میتوان گفت، پارامترهای مورد استفاده در این مقاله از مهمترین پارامترهای مفاهیم عاملگرایی میباشند که در این مقاله بر روی آنها متمرکز خواهیم شد.

1.4 مفاهیم عاملگرایی

مفاهیم عاملگرا، تجرد یا تصوری استنباط شده از نمونههای مشخص شده درون حوزه مسأله میباشند. این مفاهیم در مورد تصورات اساسی از عاملها و سیستمهای عاملگرا میباشد.

پارامترهای عاملگرایی شامل:[12] الف) خودمختاری: به عامل، قدرت تصمیمگیری مستقل انجام کار در حالات داخلی سیستم، بدون ناظر و کنترل خارجی را میدهد. ب) هدفگرا بودن: قابلیت نمایش رفتار هدفگرا، به وسیله کارهای ابتکاری، در عوض پاسخگویی صرف، به رویدادها میباشد. یعنی سیستمهای عاملگرا و خود عاملها، دارای اهدافی میباشند که عاملها، رسیدن به آنها را دنبال میکنند. پ) واکنشدار بودن: قابلیت ادراک محیط و پاسخگویی به تغییراتی که در آن اتفاق میافتد، میباشد. ت)هم اجرایی: قابلیت عامل برای سر و کار داشتن با چندین هدف و یا حادثه در زمان مشابه، میباشد. ث) همکاری: این معیار مدلهایی که توسط متدولوژی حمایت میشود را بیان میکند. ج) پروتکل: این معیار سطوح پشتیبانی برای تعریف مذاکرات مجاز بر حسب رشتهی معتبر از پیامهای مبادله شده میان دو عامل را بررسی میکند. چ) کار تیمی: گرچه متدولوژیها همه از عاملها حمایت میکند ولی هیچکدام از آنها، از گروه عاملها در کار تیمی پشتیبانی نمی کنند. کار تیمی بالاترین سطح از همکاری عاملها میباشد و همهی عاملها در تیم برای رسیدن به اهداف مشترک با هم کار میکنند.

2.4 نتایج تحلیل و آنالیز از دیدگاه سازندگان و خبرگان

الف) خودمختاری: سازندگان متدولوژی [5] GAIA اعتقاد دارند که خودمختاری در این متدولوژی بهخوبی پشتیبانی میشود، در حالی که خبرگان اعتقاد دارند بهدلیل عدم برنامهریزی برای رسیدن به اهداف، این پارامتر در GAIA بهصورت متوسط پوشش داده میشود. در متدولوژی ROADMAP بهدلیل اضافه شدن مدل هماهنگ کننده این پارامتر بهخوبی پوشش داده میشود. دلیل این امر از دیدگاه خبرگان این است که در مدل هماهنگ کننده مکانیزمهایی وجود دارد که واکنشهای متقابل عاملها نسبت به درخواستها را مدل مینماید.

ب) هدفگرا بودن: از دیدگاه سازندگان متدولوژی [5] GAIA این متدولوژی این پارامتر را تا حدودی پوشش میدهد اما از دیدگاه خبرگان این موضوع کاملاً منتفی میباشد چرا که این متدولوزی به هیچ وجه مدلی را برای اهداف ارائه نمیدهد، در تجربهی عملی نیز این موضوع کاملاً مشهود است که این متدولوزی برای مدل کردن اهداف هیچ راهحلی را ارائه نداده است، در متدولوژی ROADMAP نیز این پارامتر پشتیبانی نمیشود.

پ) واکنشدار بودن: این مورد هم از دیدگاه سازندگان و هم از دیدگاه خبرگان بهخوبی در متدولوژی GAIA و ROADMAP پوشش داده میشود

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید