دانلود - FUMblog

Download Report

Transcript دانلود - FUMblog

AOSE(Agent Oriented Software Engineering)
‫مهندس ی نرم افزار عامل گرا‬
‫‪ ‬امروزه استفاده از عاملها‪ ,‬به صورت قابل مالحظهاي در ساخت سيستمهاي كامپيوتري‬
‫افزايش يافته است‪.‬‬
‫‪ ‬باز بودن‪ ,‬پيچيدگي باالي نرمافزار‪ ,‬منابع دادهاي و انعطافپذيري باال‪ ,‬ويژگيهاي سيستمهايي‬
‫هستند كه تكنولوژي عامل امكان توليد آنها را فراهم ميكند‪.‬‬
‫‪ ‬براساس ويژگيهايی که در اساليد های بعدی ذکر خواهد شد‪ ،‬سيستمهاي مبتنی بر عامل به‬
‫عنوان نسل بعدي سيستمهاي نرمافزاري مطرح ميباشند‪.‬‬
‫‪ ‬تصميم گيری در مورد نيازمندی هايش‬
‫‪ ‬در محيطی پويا‪،‬که امکان مواجه با شکست وجود دارد عمل کند‬
‫‪ ‬برای رسين به اهدافی که برايش طراحی شده قادر به تعامل با ديگر عامل ها باشد‬
‫‪ ‬اولين بار در دهه ی ‪1940‬‬
‫‪ ‬اين ايده ‪ ،‬سال ‪ 1980‬به طور رسمی شروع به کار و رشد کرد و موضوع‬
‫عامل های نرم افزاری و سيستم های چند عامله (‪ )Multi Agent System‬مطرح شد‪.‬‬
‫عامل يک سيستم کامپيوتری مبتنی بر نرم افزار است ‪ ،‬که در يک محيط قرار گرفته‬
‫(‪ )situated‬و قادر به فعاليت های خود مختار (‪ )autonomy‬در آن محيط برای رسيدن‬
‫به اهدافش است‪.‬‬
‫با اين تعاريف می توان گفت يک عامل يک ربات نرم افزاری است که در دنيای‬
‫ديگر عامل‪:‬‬
‫خصوصيات‬
‫فعاليت می کند‪.‬‬
‫زندگی و‬
‫کامپيوتر‬
‫‪ ‬فعال و موثر بودن(‪)proactive‬‬
‫‪ ‬واکنش پذيری(‪)reactive‬‬
‫‪ ‬يادگيری(‪)learning‬‬
‫‪ ‬توانايی اجتماعی(‪)Social ability‬‬
‫مثال هایی از عامل نرم افزاری‪:‬‬
‫‪ ‬ويروس های کامپيوتری ( عامل های مخرب )‬
‫‪ ‬بازيکن های مصنوعی در بازی های کامپيوتری‬
‫‪OBJECT‬‬
‫‪AGENT‬‬
‫رفتارها بوسيله موجوديت های خارجی‬
‫کنترل می شوند‬
‫خودمختار است و خود کنترل خودش را‬
‫به عهده دارد‬
‫قدرت «نه» گفتن ندارد‬
‫اجازه ی «نه» گفتن دارد‬
‫رفتارهای قابل پيش بينی _کارکرد هايش غير قابل پيش بينی است _ در‬
‫سناريوهای مختلف رفتارهای مختلفی‬
‫ايستا است‬
‫دارد‬
‫‪ ‬هدف اصلی مهندسی نرم افزار عامل گرا ساختن متدلوژی ها و ابزار هايی است‬
‫تا توسعه و نگهداری نرم افزار های عامل به صورت ارزان ممکن شود‪.‬‬
‫‪ ‬نرم افزار حاصل انعطاف پذير بوده و کار کردن با آن ساده و آسان باشد و در ضمن از‬
‫کيفيت و کارايی بااليی هم برخوردار با شد ‪.‬‬
‫‪‬‬
‫هدف متدولوژی ها اين است که طراح را از مراحل اوليه تعريف سيستم تا پياده سازی‬
‫سيستم عامل گرا هدايت کند‪.‬‬
‫‪‬‬
‫در اين متدولوژی ها سعی شده که ويژگی های مربوط به عامل ها و روش های مرتبط با آن‬
‫در متدولوژی های موجود اضافه گردد‪.‬‬
‫‪‬‬
‫به دو دسته تقسيم ميشوند ‪:‬‬
‫◦ متدولوژی هايی که توسعه روش های شیء گرا هستند‪.‬‬
‫◦ متدولوژی هايی که توسعه روش های مهندسی دانش هستند‪.‬‬
‫‪‬‬
‫مزايا ‪:‬‬
‫◦ شباهت ميان شی و عامل وجود دارد‪.‬‬
‫◦ روش های شی گرا بسيار متداول است‪.‬‬
‫◦ يادگيری و هزينه کمتری نسبت به ساير روش ها دارد‪.‬‬
‫‪‬‬
‫مواردی که بايد مد نظر قرار گيرد ‪:‬‬
‫◦ تجرد باالتر عامل نسبت به شیء‬
‫◦ عدم توانايی روش های شیء گرا در مدل سازی ويژگی های خاص عامل‬
‫‪‬‬
‫نمونهها ‪Ex-MaSE ،ROADMap ،MESSAGE ، MaSE ،Gaia :‬‬
‫هدف ‪ )Multiagent Systems Engineering( MaSE‬اين بود که طراح را از مراحل‬
‫اوليه تعريف سيستم تا پياده سازی سيستم عامل گرا هدايت کند‪.‬‬
‫‪‬‬
‫‪‬‬
‫اهداف‬
‫مرحله تعيين‬
‫عاملی اول‬
‫مرحله‬
‫خالقيت“‪” ،‬پيش فعال بودن“ در آن مورد توجه‬
‫مختاري“‪” ،‬‬
‫نظير )”خود‬
‫‪‬هاي‬
‫ويژگي‬
‫باشد‪.‬مرحله ی دوم ) تعيين موارد کاربرد‬
‫نمي ‪‬‬
‫‪ ‬فاز سوم ) پااليش نقش ها‬
‫عامل ها به صورت موجوديتهاي نرمافزاري فرض ميشوند كه براي رسيدن به يك هدف‬
‫کالس های عامل‬
‫ايجاد‬
‫فاز چهارم‬
‫كنند‪.‬‬
‫همكاري) مي‬
‫خاص‪‬با هم‬
‫‪ ‬فاز پنجم ) ايجاد يک گفتگو‬
‫‪ ‬فاز ششم ) اسمبل کردن کالسهای عامل‬
‫‪ ‬فاز هفتم ) طراحی سيستم‬
‫نقشهاي موجود در‬
‫سیستم‬
‫تحلیل‬
‫نیازها‬
‫‪ )1‬تعیین اهداف‬
‫‪ )2‬تعيين موارد کاربرد‬
‫‪ )3‬بهبود نقش ها‬
‫برای اين منظور بايد مشخصات الزم برای ايجاد سيستم اوليه تعيين شده و در طی يک ساختار‬
‫سلسله مراتبی به سيستم نهايی تبديل شود‪ .‬اهداف بايد به اندازهاي جزئي شوند كه امكان انجام‬
‫آنها توسط عاملهايی كه در مرحله طراحی مشخص می شود‪ ،‬وجود داشته باشد‪.‬‬
‫‪ )1‬تعيين اهداف‬
‫‪ )2‬تعیین موارد کاربرد‬
‫‪ )3‬بهبود نقش ها‬
‫‪.‬مورد کاربرد ها نشان دهنده واکنش متقابل منطقی نقش های مختلف خود سيستم با يکديگر‬
‫مسئوليت پذيری‬
‫است‪ .‬برای حداقل سازی تعداد پيام هايی که بايد بين سيستم ها رد و بدل شود ‪ ،‬دياگرام ترتيب‬
‫به کار برده می شود ‪.‬‬
‫صفت های هر نقش‬
‫مجوزها‬
‫فعاليت ها‬
‫‪ )1‬تعيين اهداف‬
‫‪ )2‬تعيين موارد کاربرد‬
‫‪ )3‬بهبود نقش ها‬
‫اين مرحله نقشهايی را به وجود می آورد که پاسخگوی اهداف تعيين شده در فاز اول خواهند بود‪.‬‬
‫در اين مرحله بايد اطمينان حاصل نمود كه به هر هدف يک نقش اختصاص داده شده است‪.‬‬
‫‪ )4‬ایجاد کالس های عامل‬
‫‪)5‬ايجاد يک گفتگو‬
‫‪)6‬ترکيب کالس‬
‫ها عامل‬
‫‪)7‬طراحی سيستم‬
‫در اين مرحله‪ ،‬براي هريك از نقش هاي موجود در سيستم يك كالس عامل اختصاص داده‬
‫مي شود‪.‬‬
‫مي توان بين نقش ها و كالس هاي عامل‪ ،‬نگاشت يك به يك ايجاد نمود يا مجموعه اي از نقش‬
‫ها را داخل يك كالس عامل قرار داد‪.‬‬
‫در نمودار كالس عامل‪ ،‬كالس ها ( به صورت مربع ) و ارتباط بين كالس ها با خطوط‬
‫مشخص مي شود‪.‬‬
‫‪)4‬ايجاد کالس های‬
‫عامل‬
‫‪)5‬ایجاد یک گفتگو‬
‫‪)6‬ترکيب کالس ها‬
‫عامل‬
‫‪)7‬طراحی سيستم‬
‫‪ State Diagram‬‬
‫تعريف يک پروتکل هماهنگ به فرم نمودارهای حالت برای بيان وضعيت هر گفتگو در تأثير‬
‫متقابل عامل ها‬
‫‪)4‬ايجاد کالس عامل‬
‫‪)5‬ايجاد يک گفتگو‬
‫‪ )6‬ترکیب کالس ها عامل‬
‫در اين مرحله معماري داخلي عامل مشخص مي شود‪.‬‬
‫يعنی توابع و وظايف داخل کالسهای عامل در اين مرحله ايجاد می شوند ‪.‬‬
‫‪ )7‬طراحی سيستم‬
‫‪)4‬ايجاد کالس عامل‬
‫‪)5‬ايجاد يک گفتگو‬
‫‪)6‬ترکيب کالس ها‬
‫عامل‬
‫‪ )7‬طراحی سیستم‬
‫‪‬‬
‫در اين مرحله ساختار كلي عامل ها در سيستم مشخص مي شود‪.‬‬
‫‪‬‬
‫برای نمايش نحوه استقرار عامل ها از نمودارهای استقرار (‪)Diagram Deployment‬‬
‫در ‪ UML‬استفاده میشود‪.‬‬
‫‪ (1‬عدم مدلسازی دانش برای نقشها‬
‫‪‬‬
‫عدم توجه به شناسايی و طراحی دانش مورد نياز يک عامل برای رسيدن به اهداف‬
‫‪ (2‬كمبودهای مستندسازی‬
‫‪‬‬
‫مستندسازی شرح هر نقش‪ ,‬نيازهای اطالعاتی‪ ,‬نحوه ارائه هوشمندی و خودمختاری و وظايفی كه نقش‬
‫برعهده دارد‬
‫‪ (3‬تبديل كليه نقشهای موجود در سيستم به عامل‬
‫‪‬‬
‫مدل نمودن همه موجوديتهای سيستم به صورت عامل ممكن است كه از نظر مفهومی مناسب باشد اما‬
‫منجر به پيادهسازی سيستمهای كارا نمیگردد‪.‬‬
‫‪ ‬يك سيستم پيچيده و باز با روشهای بر مبنای عامل با سهولت بيشتری پياده‬
‫سازی گردد‪.‬‬
‫‪ ‬سيستمهای مبتنی برعامل نياز به متدولوژيهای مهندسی نرمافزار بر اساس‬
‫ويژگيهای منحصر به فرد عاملها دارند ‪.‬‬