‫مهندسی نرم افزار مبتنی بر عامل‬
‫هوش مصنوعی توزيع شده ‪ ،‬نيمسال دوم ‪85-84‬‬
‫ارائه دهنده ‪ :‬پويا جافريان‬
‫استاد درس ‪ :‬دكتر عبداله زاده‬
‫‪1‬‬
‫هوش مصنوعی توزیع شده‬
‫فهرست مطالب‬
‫‪ ‬مهندسی نرمافزار مبتنی بر عامل‬
‫‪ ‬مدلهاي فرايند ‪AOSE‬‬
‫‪ ‬روشهاي ‪AOSE‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫روشهاي مهندسی نيازها‬
‫روشهاي تحليل و طراحی‬
‫روشهاي پياده سازي‬
‫روشهاي تست‬
‫‪ ‬ابزارهاي ‪AOSE‬‬
‫‪ ‬نتيجه گيري‬
‫‪2‬‬
‫هوش مصنوعی توزیع شده‬
)‫مهندسی نرم افزار مبتنی بر عامل (مقدمه‬
 M. R. Ayatollahzadeh Shirazi and Abdollahzadeh
Barfouroush A., "Agent-based Software Engineering
as a Layered Technology", in Proc. First Eurasian
Conference on Advances in Information and
Communication Technology,Agents in Information
Management (AIM) Workshop, Shiraz, Iran,
October 2002.
 R.
Pressman
R.,
Software
Engineering,
A
Practitioner’s Approach, McGraw-Hill, Sixth Edition,
2006.
‫هوش مصنوعی توزیع شده‬
3
‫مهندسی نرمافزار مبتنی بر عامل‬
‫‪ ‬نرمافزارهاي مبتنی بر عامل داراي ويژگیهاي مشتركی نظير‬
‫پيچيدگی‪ ،‬باز بودن و توزيع داده و كنترل هستند‪.‬‬
‫‪ ‬نرمافزارهاي مبتنی بر عامل معموالً در دسته نرمافزارهاي ‪Real-‬‬
‫‪ Time‬و حساس قرار میگيرند‪.‬‬
‫‪ ‬از عاملها تشكيل شده بنابراين مهمترين ‪ Abstraction‬در‬
‫اينگونه سيستمها مفهومی به نام عامل است‪.‬‬
‫‪ ‬بنابراين اين سيستمها نيازمند روشهاي مهندسی نرمافزاري بوده كه‬
‫به طور خاص براي اينگونه سيستمها طراحی شده باشد‪.‬‬
‫‪4‬‬
‫هوش مصنوعی توزیع شده‬
‫مهندسی نرمافزار مبتنی بر عامل‬
‫‪ ‬مهندسی نرمافزار مبتنی بر عامل روشی براي مهندسی و ساخت‬
‫سيستمهاي مبتنی بر عامل میباشد‪.‬‬
‫‪ ‬مهندسی نرمافزار مبتنی بر عامل‪ ،‬بر پايه مفاهيم مهندسی نرمافزار بنا‬
‫گرديده است‪.‬‬
‫‪ ‬يك تكنولوژي اليهاي محسوب میشود‪.‬‬
‫‪5‬‬
‫هوش مصنوعی توزیع شده‬
‫‪PM-Abs‬‬
‫‪6‬‬
‫هوش مصنوعی توزیع شده‬
‫مدلهاي فرايندهاي توسعه مبتنی بر عامل‬




J. Lind , “The MASSIVE Development Method for Multi-agent
Systems”, German Research Center for AI (DFKI), 2000.
P. Bresciani, A. Perini, P. Giorgini, F. Giunchiglia, and John
Mylopoulos, “A Knowledge Level Software Engineering
Methodology for Agent Oriented Programming”, in Proc. of
the Fifth International Conference of Autonomous Agents
(Agents 2001), 2001.
H. Nwana, D.Ndumu, L.L and J.Collis, “ZEUS: A Toolkit for
Building Distributed Multi-Agent Systems”, Applied Artificial
Intelligence Journal, Vol.13 (1), 129-186, 1999.
H. Knublauch, Extreme Programming of Multi-Agent
Systems, In Proceedings of AAMAS’02, July 15-19, Bologna,
Italy, 2002.
‫هوش مصنوعی توزیع شده‬
7
‫مدلهاي فرايندهاي توسعه مبتنی بر عامل‬
‫‪ ‬اين مدلهاي فرايندها مشخص كننده مراحل الزم براي ساخت به‬
‫موقع و با كيفيت يك سيستم مبتنی بر عامل میباشند‪.‬‬
‫‪ ‬نمونهها ‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪8‬‬
‫‪ ( MASSIVE‬كه يك مدل فرايند تكراري میباشد‪) .‬‬
‫‪ ( Tropos‬كه يك مدل فرايند خطی است‪).‬‬
‫فرايندهاي همراه با چارچوبهاي توليد عامل (مانند فرايند ارائه شده‬
‫همراه چارچوب ‪)Zeus‬‬
‫گسترش مدلهاي فرايند موجود (‪)XP for AO Systems‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي توسعه سيستمهاي مبتنی بر عامل‬
‫‪ ‬در كنار مدلهاي فرايند‪ ،‬روشهايی براي به كارگيري در‬
‫مدلفرايند نيز ضروري میباشد‪.‬‬
‫‪ ‬روشهايی كه تشكيل دهنده مدلهاي فرايند هستند عبارتند از ‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪9‬‬
‫روشهاي مهندسی نيازها‬
‫روشهاي تحليل و طراحی‬
‫روشهاي پياده سازي‬
‫روشهاي تست‬
‫هوش مصنوعی توزیع شده‬
‫روش هاي مهندسی نيازها‬



E.S.K. Yu, “Towards modelling and reasoning support
for early-phase requirements engineering”, In Proc.
of 3rd IEEE International Symposium on
Requirements Engineering (RE'97), pages 226-235,
1997.
E.S.K. Yu, “Agent orientation as a modelling
paradigm”, Wirtschaftsinformatik, 43(2):123-132,
2001.
L. Chung, B.A. Nixon, E. Yu, and J. Mylopoulos, Nonfunctional requirements in software engineering,
Kluwer Academic Press, Boston et al., 2000.
‫هوش مصنوعی توزیع شده‬
10
‫روشهاي مهندسی نيازها‬
‫‪ ‬اين روشها‪ ،‬براي به دست آوردن و آناليز نيازهاي مشتري به كار‬
‫میروند‪.‬‬
‫‪ ‬نمونههايی از اين روشها‪:‬‬
‫‪ ‬چارچوب *‪i‬‬
‫‪ ‬چارچوب ‪NFR‬‬
‫‪ ‬زبان مدلسازي ‪:‬‬
‫‪)Goal Oriented Requirement Language( GRL ‬‬
‫‪11‬‬
‫هوش مصنوعی توزیع شده‬
‫چارچوب *‪ i‬براي مهندسی نيازها‬
‫‪ ‬چارچوبی براي مهندسی نيازها بر اساس روشهاي مبتنی بر عامل‬
‫‪ ‬اين چارچوب براي مدلسازي نيازها در يك سيستم كه داراي‬
‫چندين عامل شركت كننده (نرمافزاري يا غير نرمافزاري) با‬
‫خواستهاي متفاوت باشند‪ ،‬قابل استفاده است‪.‬‬
‫‪ ‬در يافتن اهداف سيستم‪ ،‬اولويت بازيگران سيستم و ارتباط آنها با‬
‫يكديگر‪ ،‬نحوه و امكان سنجی دستيابی به اهداف سيستم سودمند‬
‫است‪.‬‬
‫‪12‬‬
‫هوش مصنوعی توزیع شده‬
‫چارچوب *‪ i‬براي مهندسی نيازها‬
‫‪ ‬مرحله نيازهاي اوليه سيستم‬
‫‪ ‬در اين مرحله‪ ،‬از *‪ i‬براي مدل سازي قصدهاي بازيگران سيستم و نحوه‬
‫ارتباط آنها با يكديگر استفاده میشود‪.‬‬
‫‪ ‬مرحله تحليل‬
‫‪ ‬در اين مرحله از *‪ i‬براي مدل سازي عاملهاي نرمافزاري سيستم و نحوه‬
‫وابستگی و ارتباط آنها با يكديگر استفاده میشود‪.‬‬
‫‪13‬‬
‫هوش مصنوعی توزیع شده‬
‫*‪ i‬است جلسات به موقع برنامه ريزي‬
‫الزم‬
‫مدل ‪ Strategic Dependency‬در• چرا‬
‫چارچوب‬
‫شوند؟‬
‫• چرا الزم است برنامه ريز جلسات از شركت‬
‫كنندگان زمانهاي مورد عالقه و زمانهايی را كه‬
‫نمیتوانند شركت كنند دريافت كند؟‬
‫• ‪....‬‬
‫‪14‬‬
‫هوش مصنوعی توزیع شده‬
‫‪15‬‬
‫هوش مصنوعی توزیع شده‬
‫مدل ‪ Strategic Rationale‬در چارچوب *‪i‬‬
‫‪16‬‬
‫هوش مصنوعی توزیع شده‬
‫‪17‬‬
‫هوش مصنوعی توزیع شده‬
‫ويژگیهاي ديگر *‪i‬‬
‫‪ ‬امكان ارزيابی هريك از عمليات و اهداف معرفی شده از‬
‫چهارديدگاه ‪ viability ،workability ،ability‬و‬
‫‪believability‬‬
‫‪ ‬تاكيد بر مديريت نيازها در مراحل اوليه توسعه ( ‪Early‬‬
‫‪)Phase Requirement Engineering‬‬
‫‪ ‬امكان به كارگيري در مديريت نيازهاي سيستمهاي گوناگون‬
‫مخصوصاً سيستمهاي توزيع شده‪ ،‬سيستمهاي امن و ‪...‬‬
‫‪18‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي تحليل و طراحی سيستمهاي مبتنی بر عامل‬
‫‪ ‬در اين متدولوژي ها سعی شده كه ويژگی هاي مربوط به عامل ها‬
‫و روش هاي مرتبط با آن در متدولوژي هاي موجود اضافه گردد‪.‬‬
‫‪ ‬به دو دسته تقسيم ميشوند ‪:‬‬
‫‪ ‬متدولوژي هايی كه توسعه روش هاي شیء گرا هستند‪.‬‬
‫‪ ‬متدولوژي هايی كه توسعه روش هاي مهندسی دانش هستند‪.‬‬
‫‪19‬‬
‫هوش مصنوعی توزیع شده‬
‫راهحلهاي مبتنی بر روشهاي مهندسی دانش‬
‫‪ ‬مزايا‬
‫‪ ‬توانايی مدل سازي وضعيت ذهنی عاملها از طريق مدل سازي دانش‬
‫‪ ‬امكان استفاده مجدد از ابزارها و كتابخانههاي مربوط به ‪Ontology‬‬
‫‪ ‬مواردي كه بايد مد نظر قرار گيرد ‪:‬‬
‫‪ ‬روشها براي سيستم مبتنی بر دانش مركزي هستند‪.‬‬
‫‪ ‬در اين روشها به ويژگیهاي خودمختاري و پاسخ گويی به تغييرات محيط توجهی‬
‫نشده است‪.‬‬
‫‪ ‬نمونهها ‪:‬‬
‫‪CoMoMAS ،MASCommonKADS ،CommonKADS ‬‬
‫‪20‬‬
‫هوش مصنوعی توزیع شده‬
‫راهحلهاي مبتنی بر روشهاي مهندسی دانش‬
 C. A. Iglesias, M. Garijo, J. C. Gonzalez,
and J. R. Velasco, “Analysis and design of
multi-agent systems using MASCommonKADS’, Intelligent Agent IV: Agent
Theories, Architectures, and Languages,
Springer Verlag, 1998.
 N. Glaser , Contribution to Knowledge
Modeling in a Multi-Agent Framework (the
Co-MoMAS Approach), PhD thesis,
L’Universtit´ e Henri Poincar´ e, Nancy I,
France, November 1996.
‫هوش مصنوعی توزیع شده‬
21
‫راهحلهاي مبتنی بر روشهاي شیء گرا‬
‫‪ ‬مزايا ‪:‬‬
‫‪ ‬شباهت ميان شی و عامل وجود دارد‪.‬‬
‫‪ ‬روش هاي شی گرا بسيار متداول است‪.‬‬
‫‪ ‬يادگيري و هزينه كمتري نسبت به ساير روش ها دارد‪.‬‬
‫‪ ‬مواردي كه بايد مد نظر قرار گيرد ‪:‬‬
‫‪ ‬تجرد باالتر عامل نسبت به شیء‬
‫‪ ‬عدم توانايی روش هاي شیء گرا در مدل سازي ويژگی هاي خاص عامل‬
‫‪ ‬تفاوت در نوع ارتباط بين اشياء و عامل ها‬
‫‪ ‬نمونهها ‪،ROADMap ،MESSAGE ،MaSE ،Gaia :‬‬
‫‪Ex-MaSE‬‬
‫‪22‬‬
‫هوش مصنوعی توزیع شده‬
‫راهحلهاي مبتنی بر روشهاي شیء گرا‬





S. A.DeLoach, “Analysis and Design using MaSE and agentTool”, In Proc of
the 12th Midwest Artificial Intelligence and Cognitive Science Conference
(MAICS 2001), Miami University, Oxford, Ohio, 2001.
M. Wooldridge, N. R. Jennings, D. Kinny, The Gaia Methodology for Agentoriented Analysis and Design, Autonomous Agents and Multi-Agent
Systems, 2000.
G. Caire, F. Leal, P. Chainho, R. Evans, F. Garijo, J. Gomez, J. Pavon, P.
Kearney, J.Stark, P. Massonet :Agent Oriented Analysis using
MESSAGE/UML, In: Proc. of the Agent-oriented Software Engineering
(AOSE) 2001, Agents 2001, 101-108, 2001.
T. Juan, Pearce A., Sterling L., “ROADMAP: Extending the Gaia Methodology
for Complex Open Systems”, Proc. of the Autonomous Agents and Multi
Agent Systems (AAMAS’02), July 2002.
S. Vafadar, A. Abdollahzadeh Barfouroush, M. R. Ayatollahzadeh Shirazi,
"Towards a more Expressive and Refinable Multiagent Software Engineering
Methodology", P. Giorgini, B. Henderson-Sellers, and M. Winikoff
(Eds.) Agent-Oriented Information Systems, Lecture Notes in Artificial
Intelligence, Vol. 3030, Springer Verlag, 2004.
‫هوش مصنوعی توزیع شده‬
23
‫متدولوژي ‪MaSe‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪24‬‬
‫متدولوژي تحليل و طراحی سيستمهاي مبتنی بر عامل‬
‫توسط ابزار ‪ agentTool‬پشتيبانی میشود‪.‬‬
‫ويژگیهاي عامل نظير ”خود مختاري“‪” ،‬خالقيت“‪” ،‬پيش فعال‬
‫بودن“ در آن مورد توجه نمیباشد‪.‬‬
‫عامل ها به صورت موجوديتهاي نرمافزاري فرض میشوند كه‬
‫براي رسيدن به يك هدف خاص با هم همكاري میكنند‪.‬‬
‫هوش مصنوعی توزیع شده‬
‫‪25‬‬
‫هوش مصنوعی توزیع شده‬
‫مرحله تحليل در ‪MaSE‬‬
‫‪ ‬مرحله تعيين اهداف‬
‫‪ ‬اعمال موارد كاربرد‬
‫‪ ‬بازبينی نقشها‬
‫نقشهاي‬
‫موجود در‬
‫سيستم‬
‫‪26‬‬
‫تحليل‬
‫هوش مصنوعی توزیع شده‬
‫نيازها‬
‫تعيين اهداف‬
‫‪ ‬تشخيص اهداف‬
‫‪ ‬تشخيص اهداف كلی سيستم‬
‫‪ ‬با توجه به نيازمنديهاي مشتري‬
‫‪ ‬طبقه بندي اهداف‬
‫‪ ‬اهداف كلی به اهداف كوچك تر شكسته میشود‪.‬‬
‫‪ ‬ساختار سلسله مراتبی اهداف‪ ،‬به كمك نمودار درختی نمايش داده‬
‫میشود‪.‬‬
‫‪ ‬اهداف بايد به اندازهاي جزئی شوند كه امكان انجام آنها توسط‬
‫عاملهايی كه در مرحله طراحی مشخص میشود‪ ،‬وجود داشته باشد‪.‬‬
‫‪27‬‬
‫هوش مصنوعی توزیع شده‬
‫‪28‬‬
‫هوش مصنوعی توزیع شده‬
‫به كارگيري موارد كاربرد‬
‫‪ ‬ايجاد موارد كاربرد‬
‫‪ ‬با توجه به نيازمنديها و اهداف سيستم‪ ،‬مدل مورد كاربرد سيستم‬
‫مشخص میگردد‪.‬‬
‫‪ ‬توليد نمودار ترتيب (‪)Sequence Diagram‬‬
‫‪ ‬براي هريك از موارد كاربرد‪ ،‬نقشهاي الزم و همچنين ارتباط بين‬
‫نقشها براي انجام مورد كاربرد مربوطه‪ ،‬مشخص میشود‪.‬‬
‫‪29‬‬
‫هوش مصنوعی توزیع شده‬
‫‪30‬‬
‫هوش مصنوعی توزیع شده‬
‫بهبود نقشها‬
‫‪ ‬هدف اين مرحله‪ ،‬تكميل نقشهاي سيستم و مشخصنمودن‬
‫وظايف هر نقشمیباشد‪.‬‬
‫‪ ‬در اين مرحله بايد اطمينان حاصل نمود كه به هر ‪ Goal‬يك‬
‫نقش اختصاص داده شده است‪.‬‬
‫‪ ‬میتوان با تركيب نقشها‪ ،‬وظيفه انجام چندين ‪ Goal‬را به يك‬
‫نقش اختصاص داد‪.‬‬
‫‪31‬‬
‫هوش مصنوعی توزیع شده‬
‫‪32‬‬
‫هوش مصنوعی توزیع شده‬
‫مشخص كردن وظايف‬
‫‪ ‬براي تبديل نقشها به كالسهاي عامل در مرحله طراحی‪ ،‬بايد‬
‫وظايف هر نقش مشخص گردد‪.‬‬
‫‪ ‬براي اين منظور میتوان از نمودار نقشهاي سيستم را با جزئيات‬
‫كامل استفاده نمود‪.‬‬
‫‪33‬‬
‫هوش مصنوعی توزیع شده‬
‫‪34‬‬
‫هوش مصنوعی توزیع شده‬
‫مرحله طراحی‬
‫‪ ‬در اين مرحله می خواهيم مدلی توليد كنيم كه در مراحل بعدي‬
‫قابل پياده سازي باشد‪.‬‬
‫‪ ‬طراحی در ‪ MaSE‬شامل مراحل زير است ‪:‬‬
‫‪ ‬ايجاد كالس هاي عامل‬
‫‪ ‬ساخت گفتگوها‬
‫‪ ‬تركيب كالس هاي عامل‬
‫‪ ‬طراحی سيستم‬
‫‪35‬‬
‫هوش مصنوعی توزیع شده‬
‫ايجاد كالسهاي عامل‬
‫‪ ‬در اين مرحله‪ ،‬براي هريك از نقش هاي موجود در سيستم يك‬
‫كالس عامل اختصاص داده می شود‪.‬‬
‫‪ ‬می توان بين نقش ها و كالس هاي عامل‪ ،‬نگاشت يك به يك‬
‫ايجاد نمود يا مجموعه اي از نقش ها را داخل يك كالس عامل‬
‫قرار داد‪.‬‬
‫‪ ‬در نمودار كالس عامل‪ ،‬كالس ها ( به صورت مربع ) و ارتباط بين‬
‫كالس ها با خطوط مشخص می شود‪.‬‬
‫‪36‬‬
‫هوش مصنوعی توزیع شده‬
‫‪37‬‬
‫هوش مصنوعی توزیع شده‬
‫ساخت گفتگوها‬
‫‪ ‬در اين مرحله‪ ،‬هدف مدل سازي وضعيت داخلی يك عامل در‬
‫هنگام دريافت يك پيام است‪.‬‬
‫‪ ‬براي اين منظور از نمودارهاي حالت ‪ UML‬استفاده شده و موارد‬
‫زير بايد مدل شود ‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪38‬‬
‫"پيامی "كه با دريافت آن گذر از يك حالت به حالت ديگر صورت‬
‫میگيرد‪.‬‬
‫"فعاليتی" كه در صورت دريافت پيام فعال میشود‪.‬‬
‫شرايطی كه براي گذر از يك حالت به حالت ديگر بايد برقرار باشد‪.‬‬
‫پيامی كه در حين گذر از يك حالت به حالت ديگر‪ ،‬ارسال میگردد‪.‬‬
‫هوش مصنوعی توزیع شده‬
‫‪39‬‬
‫هوش مصنوعی توزیع شده‬
‫تركيب كالسهاي عامل‬
‫‪ ‬در اين مرحله معماري داخلی عامل مشخص می شود‪.‬‬
‫‪ ‬براي اين منظور می توان از زبان هاي توصيف معماري استفاده‬
‫نمود‪.‬‬
‫‪40‬‬
‫هوش مصنوعی توزیع شده‬
‫استقرار سيستم‬
‫‪ ‬در اين مرحله ساختار كلی عامل ها در سيستم مشخص می شود‪.‬‬
‫‪ ‬براي نمايش نحوه استقرار عامل ها از نمودارهاي استقرار‬
‫(‪ )Deployment Diagram‬در ‪ UML‬استفاده‬
‫میشود‪.‬‬
‫‪41‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي پياده سازي‬
‫‪ ‬در اين بخش زبانهايی براي توسعه عاملها ارائه شده است‪.‬‬
‫‪ ‬زبانهاي عامل‪ ،‬زبانهايی هستند كه در توسعه سيستم امكان‬
‫استفاده از مفاهيم اصلی موجود در عاملها (نظير باورها‪ ،‬اهداف‪ ،‬و‬
‫ديگر ويژگیهاي ذهنی) را به طور مستقيم فراهم میكنند‪.‬‬
‫‪ ‬نمونههايی از اين زبانها عبارتند از ‪:‬‬
‫‪Agent 0 ‬‬
‫‪PLACA ‬‬
‫‪3APL ‬‬
‫‪42‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي پياده سازي‬
 Y. Shoham, “Agent-oriented programming”,
Artificial Intelligence , 60(1) 51–92, 1993.
 S. R. Thomas, Y. Shoham, A. Schwartz,
and S. Kraus, “Preliminary thoughts on an
agent description language”, International
Journal of Intelligent Systems, 6 497–508,
1991.
 K. V. Hindriks, F.S. de Boer, W. van der
Hoek and J.-J.Ch. Meyer, “Agent
programming in 3APL”, Autonomous
Agents and Multi-Agent Systems, 2(4):
357-401, 1999.
‫هوش مصنوعی توزیع شده‬
43
‫روشهاي تست‬
‫‪ ‬تست ويژگیهاي عامل‬
‫‪ ‬تست ‪Unit‬‬
‫‪ ‬در سيستمهاي مبتنی بر عامل‪ ،‬كوچكترين واحد قابل تست عامل است‪.‬‬
‫‪ ‬در اين روش‪ ،‬عامل از لحاظ ويژگیهايی كه بايد از ديد ديگر عاملها‬
‫برآورده سازد‪ ،‬تست میشود‪.‬‬
‫‪ ‬محيطهايی براي تست خودكار عاملها ( با زبان ‪ ) Java‬ارائه شده‬
‫است‪ .‬در اين محيطها امكان ايجاد ‪ Test Case‬هايی مشتق شده از‬
‫‪ Junit‬و تست خودكار عامل بر اساس ‪ Test Case‬وجود دارد‪.‬‬
‫‪44‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي تست‬
‫‪ ‬تست جامعه‬
‫‪ ‬در اين روش كل سيستم چند عامله تست میگردد‪.‬‬
‫‪ ‬تست پروتكل هاي ارتباطی‬
‫‪ ‬تست كاركرد عاملها در هنگام دريافت پيغام از ديگر عاملها‬
‫‪ ‬تست ‪Validation‬‬
‫‪ ‬در اين روش‪ ،‬برآورده شدن نيازهاي مورد انتظار كاربر توسط سيستم‬
‫چند عامله تست میگردد‪.‬‬
‫‪45‬‬
‫هوش مصنوعی توزیع شده‬
‫روشهاي تست‬
 H. Knublauch, Extreme Programming of
Multi-Agent Systems, In Proceedings of
AAMAS’02, July 15-19, Bologna, Italy,
2002.
 DeLoach S. A., “Analysis and Design using
MaSE and agentTool”, In Proc. of the 12th
Midwest Artificial Intelligence and Cognitive
Science Conference (MAICS 2001), Miami
University, Oxford, Ohio, 2001.
‫هوش مصنوعی توزیع شده‬
46
‫معماري سيستم‬
‫‪ ‬در معماري سيستم دو مورد بايد مشخص گردد ‪:‬‬
‫‪ ‬معماري عامل‬
‫‪ ‬معماري سيستم چند عامله‬
‫‪ ‬در اين زمينه در منابع مختلف‪ ،‬الگوهاي معماري گوناگون (نظير‬
‫‪ ) ... ،Agency ،Blackboard‬معرفی شده است‪.‬‬
‫‪ ‬زبان هاي توصيف معماري مخصوص عامل ها‬
‫‪ ‬روش هاي ارزيابی معماري مبتنی بر عامل‬
‫‪47‬‬
‫هوش مصنوعی توزیع شده‬
‫معماري سيستم‬




Nii, H Penny, The Blackboard Model of Problem Solving
and the Evolution of Blackboard Architectures, AI
Magazine, 7(2), 38-53, 1986.
F. Amigoni, Somalvico, M., And Zanisi, D., A theoretical
framework for the conception of agency. International
Journal of Intelligent Systems, 14(5): 449–474, 1999.
S. Wood S. and Barbacci, M. R.: Architectural Evaluation of
Collaborative Agent-based systems, Software Engineering
Institute, Technical Report, CMU/SEI-99-TR-025, 1999.
H. Yim, K. Cho, K. Jongwoo and S. Park, “ArchitectureCentric Object-Oriented Design Method for Multi-Agent
Systems”, In Proc. of the Fourth International Conference
on Multi-agent Systems (ICMAS-2000), 2000.
‫هوش مصنوعی توزیع شده‬
48
‫ابزارهاي توسعه عاملها‬
‫‪ ‬اين ابزارها پشتيبانی كننده فرايند و روشها هستند‪.‬‬
‫‪ ‬داراي مزايايی از قبيل ‪ :‬افزايش سرعت توسعه‪ ،‬كاهش هزينه پروژه‪ ،‬ياري‬
‫توسعه دهندگان در مديريت پروژههاي پيچيده مبتنی بر عامل و ‪ ...‬میباشند‪.‬‬
‫‪ ‬انواع ابزارهاي توسعه عاملها ‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ابزارهاي تحليل و طراحی‬
‫چارچوبهاي توسعه عاملها‬
‫ابزارهاي تست و رفع خطا‬
‫محيط هاي برنامه سازي‬
‫‪ ‬ابزارهاي نمونهسازي‬
‫‪49‬‬
‫هوش مصنوعی توزیع شده‬
‫ابزارهاي تحليل و طراحی‬
‫‪ ‬ابزارهايی براي توليد مدلهاي الزم در حين فرايند تحليل و طراحی‬
‫‪ ‬نمونه ‪ :‬ابزار ‪Rational Rose ،AgentTool‬‬
‫‪50‬‬
‫هوش مصنوعی توزیع شده‬
‫چارچوبهاي ساخت عامل‬
‫‪ ‬چارچوب توسعه عامل‪ ،‬مجموعه اي از محيط اجرايی‪ ،‬كالسها و بسته هاي الزم براي توليد كد‬
‫عامل و نرمافزارهاي مبتنی بر عامل میباشد‪.‬‬
‫‪ ‬داراي ويژگیهاي زير است‪:‬‬
‫‪ ‬ارائه مجموعهاي از كالسها براي پياده سازي ارتباطات‪ ،‬همكاريها و ‪Reasoning‬‬
‫‪ ‬ارائه محيط مدل سازي بصري براي توليد مدلهاي تحليل و طراحی‬
‫‪ ‬ابزارهايی براي توليد خودكار كد از مدلهاي بصري ايجاد شده‬
‫‪ ‬ارائه تعدادي عامل از پيش تعريف شده براي تسهيل عمليات ساخت عامل‬
‫‪ ‬ارائه ابزارهايی براي تست و رفع خطا‬
‫‪ ‬ارائه تسهيالتی براي ارتباط با ديگر سيستمهاي مبتنی بر عامل از طريق زبانهايی نظير‬
‫‪ KQML‬و استانداردهايی نظير ‪FIPA‬‬
‫‪ ‬نمونهها ‪AgentBuilder, Bond, Decaf, dMars, JiVE, KAos :‬‬
‫‪JAF , ZEUS‬‬
‫‪51‬‬
‫هوش مصنوعی توزیع شده‬
‫ابزارهاي تست و خطايابی‬
‫‪ ‬براي تست و خطايابی‪ ،‬ابزارهايی در چارچوبهاي معرفی شده‬
‫وجود دارد‪.‬‬
‫‪ ‬موارد زير در اين ابزارها قابل تست است ‪:‬‬
‫‪ ‬تست ساختار سازمانی عاملها‪ ،‬نبود منابع‪ ،‬زمان بنديهاي نادرست و ‪...‬‬
‫‪ ‬تست و خطايابی مدلهاي ايجاد شده در ارتباط بين عاملها‬
‫‪ ‬تستهاي ‪ Unit‬براي تست عوامل به تنهايی‬
‫‪52‬‬
‫هوش مصنوعی توزیع شده‬
‫نتيجه گيري‬
‫‪ ‬سيستمهاي مبتنی بر عامل‪ ،‬نظير هر سيستم نرمافزاري نياز به روش‬
‫هاي مهندسی نرمافزار دارند‪.‬‬
‫‪ ‬براي مهندسی نرمافزار سيستمهاي مبتنی بر عامل‪ ،‬مدلهاي فرايند‪،‬‬
‫روشها و ابزارهاي گوناگونی ارائه شده است‪.‬‬
‫‪ ‬روشهاي زيادي در زمينه فعاليتهاي چتري و معماري نرمافزار‬
‫عاملها ارائه نشده است‪.‬‬
‫‪53‬‬
‫هوش مصنوعی توزیع شده‬
Descargar

Document