مروري بر عامل گرايي در توسعه نرم افزار براي سيستم هاي چند عامله

نویسنده Zohreh Gholami, قبل از ظهر 09:19:31 - 11/22/11

« هکرها چگونه رمزهاي اينترنتي شما را تشخیص می دهند؟ | دانلود بازی مار و پله با سی شارپ, C# »

0 اعضا و 1 مهمان درحال دیدن موضوع.

Zohreh Gholami

مروري بر عامل گرايي در توسعه نرم افزار براي سيستم هاي چند عامله


چكيده
مهندسي نرم افزار راهي براي غلبه بر پيچيدگي طراحي نرم افزار است. متدولوژيهاي گوناگوني در اين حيطه از علم مهندسي كامپيوتر ارائه شده است كه هر كدام معايب و مزاياوكاربردهاي خاص خود را دارد.يكي از متدلوژيهاي جديد كه براي تدوين نرم افزاربراي سيستمهاي مهندسي پيچيده و توزيع شده كه چندعامله هم مي باشندو سيستمهاي باز شبكه اي مانند اينترنت ايجاد شده است، مهندسي نرم افزار عامل گرا مي باشدكه با توجه به خصوصيات اين محيطها ازجمله سرعت متغير، غير قابل پيش بيني يا بازبودن كه احتمال شكست اعمال درآنجا وجود داردبراي آنها مناسب مي باشدوارائه متدلوژيهاي مناسب را مي طلبدكه در اين مقاله به آن مي پردازيم.


مقدمه
مهندسي نرم افزار امروزه كاري بسيار مشكل است و هر روز مشكل تر هم ميشود. بنابراين نياز به متدلوژي هاي جديد براي كاربرد در طراحي و پياده سازي سيستمهاي پيچيده و توزيع شده امروزي امري ضروري به نظر مي رسد. اين مقاله مقدمه اي بر متدلوژي جديدي براي طراحي سيستمهاي توزيع شده و پيچيده به نام متدولوژي عامل گرا است. همانطوركه متدولوژيهاي مهندسي نرم افزار تكنيك
هايي را براي مدلسازي و ساخت سيستم هاي نرم افزاري ارائه مي دهد؛متدلوژي مهندسي نرم افزار عامل گرا نيز امكاناتي را براي طراحي و ساخت سيستم هاي توزيعي پيچيده ارائه مي دهد.


مفهوم عامل
عامل ها اغلب به صورت موجودات نرم افزاري تعريف ميشوند كه به صورت خودمختار عمل كرده و ميتوانند ياد بگيرند. به طور كلي تعاريف گوناگوني براي عامل ارائه شده است:

طبق نظريه Norving و Russel عامل هر چيزي است  كه از طريق حسگرها محيطش را درك مي كند و از طريق تاثيرگذارها بر روي محيط عمل مي كند.

در تعريف ديگري عامل به صورت سيستم هاي محاسباتي خودمختار كه در محيط پيچيده و پويايي قرار مي گيرند، به شكل خودمختار در اين محيط حس و عمل مي كنند و با انجام اين كار به مجموعه اي از اهداف يا وظايفي كه براي آن طراحي شده اند، دست پيدا مي كنند، تشريح مي شود بارزترين خصوصيت براي عامل ها خود مختاري 5 است كه به معني آنست كه عامل مختار است عمل دلخواه خود را انجام دهد. اين خصوصيت، عامل را از ديگر برنامه هاي متداول نرم افزاري كه به آنها گفته مي شود دقيقاً چه كاري انجام دهند متمايز مي كند و بدين دليل از مهمترين مشخصه هاي عامل ها به شمار مي رود.

عامل ها قادر هستند نسبت به انجام يا عدم انجام عمل يا درخواست صادر شده از طرف عامل ديگر تصميم بگيرند؛ در حاليكه در مدل استاندارد شيء 6 بحثي در رابطه با رفتار انعطاف پذير نمي شود.از جمله كاربردهاي عامل مي توان به مديريت شبكه، مديريت اطلاعات در محيط هاي اطلاعاتي، مدل سازي و بهينه سازي فرايند هاي صنعتي، تجارت الكترونيكي، مديريت فرايند هاي تجاري و سازماني، واسط هاي تطبيق پذير كابر و آموزش اشاره كرد.


تحقيقات در زمينه عامل را مي توان به چهار دسته عمده طبقه بندي كرد:
سطح ميكرو: عامل در فن آوري عامل كه شامل معماري هاي كنترل عامل و بنيادهاي عامل بودن است.
سطح ماكرو: جامعه عامل ها در فن آوري عامل كه شامل همكاري، هماهنگي، ارتباط، مذاكره و اصول ساخت سيست مهاي چند عامله است.
پياده سازي سيستم هاي مبتني بر عامل كه شامل محيط ها، بستر هاي آزمايش با زبان هاي برنامه نويسي و ارزيابي است.
مباني توسعه سيستمهاي مبتني بر عامل كه شامل استانداردها، مهندسي نرم افزار مبتني بر عامل، تجاري سازي و مسائل عملي است.
عامل ها به عنوان مدل نسل بعدي براي سيستمهاي مهندسي پيچيده و توزيع شده در نظر گرفته مي شوند. عامل را به اين شكل نيز تعريف مي كنيم كه يك سيستم كامپيوتري است كه در محيطي تعبيه شده است كه قادر است عملي خود مختار انجام دهد كه اين عمل در راستاي رسيدن به اهدافي است كه عامل براي آن طراحي شده است. شكل 1 يك ديد سطح بالا و مجرد از يك عامل را نشان مي دهد.

در اين شكل عامل در محيط خود نشان داده شده است و با عمل خروجي خود باعث تغييري در وضعيت محيط پيرامون خود مي شود. محيط نيز در اثر انجام گرفتن اين عمل از سوي عامل، عمل خروجي از عامل را به عنوان ورودي خود تلقي مي كند و پاسخ خود را در جواب به عامل ابراز مي دارد. سپس عامل از طريق ورودي حسگر خود، پاسخ محيط را حس مي كند و دومرتبه عملي انجام ميدهد كه اين عمل به ورودي محيط منتقل مي شود و چرخه بالا از سر گرفته مي شود.
1.png
شكل 1: يك عامل در محيط خود
[/center]

مهندسي نرم افزار عامل گرا
مهندسي نرم افزار اساساً كار مشكلي است كه هر روز سخت تر هم مي شود. به چند دليل ازجمله زمان توسعه كمتر، نياز هاي غير عاقلانه بيشتر و نامطمئن كه در فضاي بيشتري تغيير مي كنند، و محيط هاي خطرناك بيشتر مانند اينترنت و سيستم هاي گوناگون مقياس پذير و توزيع شده در شبكه كه در آنها پويايي و باز بودن سيستم افزايش يافته است. متدولوژي مهندسي نرم افزار عامل گرا امكاناتي را براي طراحي و ساخت سيستم هاي توزيعي پيچيده ارائه مي دهد.

آناليز و طراحي وپياده سازي نرم افزار به عنوان يك مجموعه ازعاملهاي داراي اثر متقابل بر يكديگر و مستقل يك آينده روشن جهت ايجاد پيشرفت در مهندسي نرم افزار را نشان مي دهد. از آنجاكه نرم افزارهاي صنعتي بطور ذاتي پيچيده مي باشند و ذاتاً به وسيله يك تعداد زيادي از بخش ها كه بر روي يكديگر اثر متقابل هم دارند مشخص مي شوند، اين پيچيدگي يك صفت ذاتي براي انواع وظايف و كارهايي است كه نرم افزار براي آن ها بكار مي رود. نقش مهندسي نرم افزار در اين ميان تهيه و آماده سازي ساختارها و تكنيك هايي است كه دستكاري كردن و كار با اين پيچيدگي را ساده تر نمايدكه البته خود اين پيچيدگي يك تعداد قواعد و ترتيب هاي مهم را ارائه مي دهدكه غالباً شكل و تركيب يك ساختار سلسله مراتبي را دارد و قابل تجزيه و تحليل به مجموعه هاي متوالي از زير سيستم ها مي باشدكه هر يك از آنها نيزبه نوبه خود يك توالي ديگر را تشكيل مي دهند.

يك نمايش قانوني از يك سيستم پيچيده به صورت شكل 2 مي باشد:
2.png
شكل 2: نمايش يك سيستم پيچيده
[/center]

با معرفي اين مشاهدات، مهندسان نرم افزار يك تعداد ابزارهاي قوي جهت مديريت كردن اين پيچيدگي هاي ارائه شده، اختراع نموده اندكه همانطوركه در شكل 3 هم مشهود است عاملها ازآن حمايت مي كنندوتطابق ميان اين سيستمهاي پيچيده با سيستمهاي چندعامله را نشان مي دهد. اين ابزارهاي قوي مديريتي به صورت مكانيسم هاي اصلي زير مي باشد.


1-3 مكانيسم هاي اصلي مديريت سيستمهاي پيچيده نرم افزاري
1-1-3 تجزيه كردن:
اصلي ترين روش جهت دستكاري كردن يك مساله بزرگ اين است كه آنرابه قسمت هاي كوچكتر و البته قابل مديريت كردن كه هركدام از آن ها مي تواند در تجريه و تحليل هاي نسبي مورد بحث واقع شوند تقسيم بندي كنيم.

2-1-3 انتزاع:
فرآيند تعريف يك مدل ساده شده از سيستم كه بر روي برخي از جزئيات يا خصوصيات، تاكيد مي كند و از برجسته جلوه نمودن سايرين جلوگيري مي نمايد.

3-1-3 سازمان دهي
به فرآيند تشخيص و مديريت نمودن روابط داراي اثر متقابل در هم كه ميان مسائل متعددي كه مولفه ها را حل مي نمايند، گفته مي شود. دو نكته اساسي وجود دارندكه ازنظر كيفي موجب تفاوت اثرات متقابلي كه عامل ها بر همديگردارند از اثرات متقابلي كه درسايرالگوهاي مهندسي نرم افزار رخ ميدهند مي شوند.

اولا اينكه: تعاملات بر مبناي عامل ها، عموما از طريق يك زبان سطح بالا كه ارتباط ميان عامل ها را فراهم مي نمايد يعني يك زبان توصيفي صورت مي پذيرد. درنتيجه تعاملات معمولا دريك سطح دانش بر حسب اينكه چه اهدافي مي بايست در چه زماني و به وسيله چه
افرادي دنبال شوند،جريان مي يابندو به وسيله متدهاي رسيدگي و بازرسي يا فراخواني هاي تابعي كه دريك سطح گرامري دقيق عمل مي نمايد،انجام مي شوند.

ثانيا اينكه: عامل ها جهت حل مسائل انعطاف پذير بوده وپاسخ به تعاملات نيزلازمست دريك حالت داراي انعطاف پذيري مشابه صورت پذيرد. پذيرفتن روش مبتني بر عامل به عنوان يك روش مهندسي نرم افزار به معني تجزيه و تقسيم نمودن مساله به اجزاي متعددي است كه داراي اثرات متقابل برهم بوده و خودمختار و مستقل نيز عمل نمايندو داراي وجود خارجي معيني جهت انجام دادن باشندوشامل عامل ها و روابط و اثرات متقابل آنها بر يكديگر و سازمان دهي آنها و مكانيسم هاي واضح جهت توصيف و مديريت نمودن روابط سازماني پيچيده و متغيري كه ميان عامل ها وجود دارند،مي باشد.

با مشاهده اين واقعيت كه مهندسي نرم افزار عاملگرا براي سيستمهاي چندعامله يك شيوه جديد و سريعاً درحال رشد است، اين خطراحتمالي وجود دارد كه محققان در مورد توانايي عاملگرايي بيش از حد، خوشبين باشند. برهمين اساس Wooldridge و Jennings در مورد اين خطرات هشدارداده اند.
3.png
شكل 3: سيستم چند عامله معادل با سيستم پيچيده
[/center]


سیستم های توزیع شده, سیستم های پیچیده نرم افزاری, طراحی سطح عامل, متولوژی سیستم های چند عامله, مفهوم عامل, مقایسه ی عامل و اشیا, مهندسی نرم افزار عامل گرا, مکانیسم های ارتباطی در میان عامل ها در سیستم های چند عامله, نرم افزار های صنعتی, کنفرانس ملی مهندسی نرم افزار ایران, سيستم پيچيده نرم افزاري, سيستمهاي چندعامله, عامل, متدلوژي, مهندسي نرم افزارعامل گرا, پیشگامان متا, meta4u.com

Tags:

Share via facebook Share via linkedin Share via telegram Share via twitter Share via whatsapp

https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
سيستم توسعه يافته برنامه ريزي بنگاه هاي اقتصادي ERPII (بخش اول)

نویسنده Zohreh Gholami در مقالات مدیریت, Management Articles

1 ارسال
2048 مشاهده
آخرین ارسال: بعد از ظهر 20:25:21 - 06/28/11
توسط
Zohreh Gholami
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
نرم افزار سیستم‌عامل چیست...؟

نویسنده Amir Shahbazzadeh در نرم افزار سیستم عامل, Operating System

0 ارسال
7569 مشاهده
آخرین ارسال: قبل از ظهر 00:26:20 - 08/23/11
توسط
Amir Shahbazzadeh
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
اصطلاحات کاربردی توسعه نرم‌ افزار - Software Development Glossary

نویسنده متا در زبان های برنامه نویسی

86 ارسال
327 مشاهده
آخرین ارسال: بعد از ظهر 23:30:38 - 03/15/24
توسط
متا
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
مروري بر ويژگي‌هاي ويندوز فون 7

نویسنده Zohreh Gholami در موبایل و کامپیوتر جیبی, Mobile & Pocket PC

0 ارسال
2044 مشاهده
آخرین ارسال: بعد از ظهر 12:55:01 - 06/18/11
توسط
Zohreh Gholami
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
عرضه تلفن هوشمند با سيستم عامل ويندوز از سوی سامسونگ

نویسنده Zohreh Gholami در فناوری اطلاعات و ارتباطات (IT)

0 ارسال
1348 مشاهده
آخرین ارسال: بعد از ظهر 15:42:46 - 09/27/11
توسط
Zohreh Gholami
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
چند ترکیب کلید مفید در نرم افزار word( ورد)

نویسنده Amir Shahbazzadeh در آموزش Word

0 ارسال
1932 مشاهده
آخرین ارسال: قبل از ظهر 10:48:30 - 09/18/11
توسط
Amir Shahbazzadeh
https://www.meta4u.com/forum/Themes/Comet/images/post/xx.png
نرم افزار مولتی بوت همزمان چند ویندوز از جمله 7 و 8 در کنار هم EasyBCD

نویسنده Amir Shahbazzadeh در نرم افزار سیستم عامل, Operating System

0 ارسال
1476 مشاهده
آخرین ارسال: بعد از ظهر 20:39:00 - 07/26/13
توسط
Amir Shahbazzadeh