مهندسی نرم افزار مبتنی بر عامل هوش مصنوعي توزيع شده ، نيمسال دوم 84-85 ارائه دهنده : پويا جافريان استاد درس : دكتر عبداله زاده هوش مصنوعی توزیع شده
فهرست مطالب مهندسي نرمافزار مبتني بر عامل مدلهاي فرايند AOSE روشهاي مهندسي نيازها روشهاي تحليل و طراحي روشهاي پياده سازي روشهاي تست ابزارهاي AOSE نتيجه گيري هوش مصنوعی توزیع شده
مهندسي نرم افزار مبتني بر عامل (مقدمه) 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. هوش مصنوعی توزیع شده
مهندسي نرمافزار مبتني بر عامل نرمافزارهاي مبتني بر عامل داراي ويژگيهاي مشتركي نظير پيچيدگي، باز بودن و توزيع داده و كنترل هستند. نرمافزارهاي مبتني بر عامل معمولاً در دسته نرمافزارهاي Real-Time و حساس قرار ميگيرند. از عاملها تشكيل شده بنابراين مهمترين Abstraction در اينگونه سيستمها مفهومي به نام عامل است. بنابراين اين سيستمها نيازمند روشهاي مهندسي نرمافزاري بوده كه به طور خاص براي اينگونه سيستمها طراحي شده باشد. هوش مصنوعی توزیع شده
مهندسي نرمافزار مبتني بر عامل مهندسي نرمافزار مبتني بر عامل روشي براي مهندسي و ساخت سيستمهاي مبتني بر عامل ميباشد. مهندسي نرمافزار مبتني بر عامل، بر پايه مفاهيم مهندسي نرمافزار بنا گرديده است. يك تكنولوژي لايهاي محسوب ميشود. هوش مصنوعی توزیع شده
PM-Abs هوش مصنوعی توزیع شده
مدلهاي فرايندهاي توسعه مبتني بر عامل 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. هوش مصنوعی توزیع شده
مدلهاي فرايندهاي توسعه مبتني بر عامل اين مدلهاي فرايندها مشخص كننده مراحل لازم براي ساخت به موقع و با كيفيت يك سيستم مبتني بر عامل ميباشند. نمونهها : MASSIVE ( كه يك مدل فرايند تكراري ميباشد. ) Tropos ( كه يك مدل فرايند خطي است.) فرايندهاي همراه با چارچوبهاي توليد عامل (مانند فرايند ارائه شده همراه چارچوب Zeus) گسترش مدلهاي فرايند موجود (XP for AO Systems) هوش مصنوعی توزیع شده
روشهاي توسعه سيستمهاي مبتني بر عامل در كنار مدلهاي فرايند، روشهايي براي به كارگيري در مدلفرايند نيز ضروري ميباشد. روشهايي كه تشكيل دهنده مدلهاي فرايند هستند عبارتند از : روشهاي مهندسي نيازها روشهاي تحليل و طراحي روشهاي پياده سازي روشهاي تست هوش مصنوعی توزیع شده
روش هاي مهندسي نيازها 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, Non-functional requirements in software engineering, Kluwer Academic Press, Boston et al., 2000. هوش مصنوعی توزیع شده
روشهاي مهندسي نيازها اين روشها، براي به دست آوردن و آناليز نيازهاي مشتري به كار ميروند. نمونههايي از اين روشها: چارچوب i* چارچوب NFR زبان مدلسازي : GRL (Goal Oriented Requirement Language) هوش مصنوعی توزیع شده
چارچوب i* براي مهندسي نيازها چارچوبي براي مهندسي نيازها بر اساس روشهاي مبتني بر عامل اين چارچوب براي مدلسازي نيازها در يك سيستم كه داراي چندين عامل شركت كننده (نرمافزاري يا غير نرمافزاري) با خواستهاي متفاوت باشند، قابل استفاده است. در يافتن اهداف سيستم، اولويت بازيگران سيستم و ارتباط آنها با يكديگر، نحوه و امكان سنجي دستيابي به اهداف سيستم سودمند است. هوش مصنوعی توزیع شده
چارچوب i* براي مهندسي نيازها مرحله نيازهاي اوليه سيستم در اين مرحله، از i* براي مدل سازي قصدهاي بازيگران سيستم و نحوه ارتباط آنها با يكديگر استفاده ميشود. مرحله تحليل در اين مرحله از i* براي مدل سازي عاملهاي نرمافزاري سيستم و نحوه وابستگي و ارتباط آنها با يكديگر استفاده ميشود. هوش مصنوعی توزیع شده
مدل Strategic Dependency در چارچوب i* چرا لازم است جلسات به موقع برنامه ريزي شوند؟ چرا لازم است برنامه ريز جلسات از شركت كنندگان زمانهاي مورد علاقه و زمانهايي را كه نميتوانند شركت كنند دريافت كند؟ .... هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
مدل Strategic Rationale در چارچوب i* هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
ويژگيهاي ديگر i* امكان ارزيابي هريك از عمليات و اهداف معرفي شده از چهارديدگاه ability، workability، viability و believability تاكيد بر مديريت نيازها در مراحل اوليه توسعه (Early Phase Requirement Engineering) امكان به كارگيري در مديريت نيازهاي سيستمهاي گوناگون مخصوصاً سيستمهاي توزيع شده، سيستمهاي امن و ... هوش مصنوعی توزیع شده
روشهاي تحليل و طراحي سيستمهاي مبتني بر عامل در این متدولوژی ها سعی شده که ویژگی های مربوط به عامل ها و روش های مرتبط با آن در متدولوژی های موجود اضافه گردد. به دو دسته تقسیم میشوند : متدولوژی هایی که توسعه روش های شیء گرا هستند. متدولوژی هایی که توسعه روش های مهندسی دانش هستند. هوش مصنوعی توزیع شده
راهحلهاي مبتنی بر روشهای مهندسي دانش مزايا توانايي مدل سازي وضعيت ذهني عاملها از طريق مدل سازي دانش امكان استفاده مجدد از ابزارها و كتابخانههاي مربوط به Ontology مواردي كه بايد مد نظر قرار گيرد : روشها براي سيستم مبتني بر دانش مركزي هستند. در اين روشها به ويژگيهاي خودمختاري و پاسخ گويي به تغييرات محيط توجهي نشده است. نمونهها : CommonKADS، MASCommonKADS، CoMoMAS هوش مصنوعی توزیع شده
راهحلهاي مبتنی بر روشهای مهندسي دانش C. A. Iglesias, M. Garijo, J. C. Gonzalez, and J. R. Velasco, “Analysis and design of multi-agent systems using MAS-CommonKADS’, 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. هوش مصنوعی توزیع شده
راهحلهاي مبتنی بر روشهای شیء گرا مزایا : شباهت میان شی و عامل وجود دارد. روش های شی گرا بسیار متداول است. یادگیری و هزینه کمتری نسبت به سایر روش ها دارد. مواردی که باید مد نظر قرار گیرد : تجرد بالاتر عامل نسبت به شیء عدم توانایی روش های شیء گرا در مدل سازی ویژگی های خاص عامل تفاوت در نوع ارتباط بین اشیاء و عامل ها نمونهها : Gaia، MaSE، MESSAGE، ROADMap، Ex-MaSE هوش مصنوعی توزیع شده
راهحلهاي مبتنی بر روشهای شیء گرا 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 Agent-oriented 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. هوش مصنوعی توزیع شده
متدولوژي MaSe متدولوژي تحليل و طراحي سيستمهاي مبتني بر عامل توسط ابزار agentTool پشتيباني ميشود. ويژگيهاي عامل نظير ”خود مختاري“، ”خلاقيت“، ”پيش فعال بودن“ در آن مورد توجه نميباشد. عامل ها به صورت موجوديتهاي نرمافزاري فرض ميشوند كه براي رسيدن به يك هدف خاص با هم همكاري ميكنند. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
مرحله تحليل در MaSE تحليل مرحله تعيين اهداف اعمال موارد كاربرد بازبيني نقشها تحليل نقشهاي موجود در سيستم نيازها هوش مصنوعی توزیع شده
تعيين اهداف تشخيص اهداف طبقه بندي اهداف تشخيص اهداف كلي سيستم با توجه به نيازمنديهاي مشتري طبقه بندي اهداف اهداف كلي به اهداف كوچك تر شكسته ميشود. ساختار سلسله مراتبي اهداف، به كمك نمودار درختي نمايش داده ميشود. اهداف بايد به اندازهاي جزئي شوند كه امكان انجام آنها توسط عاملهايي كه در مرحله طراحي مشخص ميشود، وجود داشته باشد. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
به كارگيري موارد كاربرد ايجاد موارد كاربرد با توجه به نيازمنديها و اهداف سيستم، مدل مورد كاربرد سيستم مشخص ميگردد. توليد نمودار ترتيب (Sequence Diagram) براي هريك از موارد كاربرد، نقشهاي لازم و همچنين ارتباط بين نقشها براي انجام مورد كاربرد مربوطه، مشخص ميشود. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
بهبود نقشها هدف اين مرحله، تكميل نقشهاي سيستم و مشخصنمودن وظايف هر نقشميباشد. در اين مرحله بايد اطمينان حاصل نمود كه به هر Goal يك نقش اختصاص داده شده است. ميتوان با تركيب نقشها، وظيفه انجام چندين Goal را به يك نقش اختصاص داد. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
مشخص كردن وظايف براي تبديل نقشها به كلاسهاي عامل در مرحله طراحي، بايد وظايف هر نقش مشخص گردد. براي اين منظور ميتوان از نمودار نقشهاي سيستم را با جزئيات كامل استفاده نمود. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
مرحله طراحي در اين مرحله مي خواهيم مدلي توليد كنيم كه در مراحل بعدي قابل پياده سازي باشد. طراحي در MaSE شامل مراحل زير است : ايجاد كلاس هاي عامل ساخت گفتگوها تركيب كلاس هاي عامل طراحي سيستم هوش مصنوعی توزیع شده
ايجاد كلاسهاي عامل در اين مرحله، براي هريك از نقش هاي موجود در سيستم يك كلاس عامل اختصاص داده مي شود. مي توان بين نقش ها و كلاس هاي عامل، نگاشت يك به يك ايجاد نمود يا مجموعه اي از نقش ها را داخل يك كلاس عامل قرار داد. در نمودار كلاس عامل، كلاس ها ( به صورت مربع ) و ارتباط بين كلاس ها با خطوط مشخص مي شود. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
ساخت گفتگوها در اين مرحله، هدف مدل سازي وضعيت داخلي يك عامل در هنگام دريافت يك پيام است. براي اين منظور از نمودارهاي حالت UML استفاده شده و موارد زير بايد مدل شود : "پيامي" كه با دريافت آن گذر از يك حالت به حالت ديگر صورت ميگيرد. "فعاليتي" كه در صورت دريافت پيام فعال ميشود. شرايطي كه براي گذر از يك حالت به حالت ديگر بايد برقرار باشد. پيامي كه در حين گذر از يك حالت به حالت ديگر، ارسال ميگردد. هوش مصنوعی توزیع شده
هوش مصنوعی توزیع شده
تركيب كلاسهاي عامل در اين مرحله معماري داخلي عامل مشخص مي شود. براي اين منظور مي توان از زبان هاي توصيف معماري استفاده نمود. هوش مصنوعی توزیع شده
استقرار سيستم در اين مرحله ساختار كلي عامل ها در سيستم مشخص مي شود. براي نمايش نحوه استقرار عامل ها از نمودارهاي استقرار (Deployment Diagram) در UML استفاده ميشود. هوش مصنوعی توزیع شده
روشهاي پياده سازي در اين بخش زبانهايي براي توسعه عاملها ارائه شده است. زبانهاي عامل، زبانهايي هستند كه در توسعه سيستم امكان استفاده از مفاهيم اصلي موجود در عاملها (نظير باورها، اهداف، و ديگر ويژگيهاي ذهني) را به طور مستقيم فراهم ميكنند. نمونههايي از اين زبانها عبارتند از : Agent 0 PLACA 3APL هوش مصنوعی توزیع شده
روشهاي پياده سازي 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. هوش مصنوعی توزیع شده
روشهاي تست تست ويژگيهاي عامل تست Unit در سيستمهاي مبتني بر عامل، كوچكترين واحد قابل تست عامل است. در اين روش، عامل از لحاظ ويژگيهايي كه بايد از ديد ديگر عاملها برآورده سازد، تست ميشود. محيطهايي براي تست خودكار عاملها ( با زبان Java ) ارائه شده است. در اين محيطها امكان ايجاد Test Case هايي مشتق شده از Junit و تست خودكار عامل بر اساس Test Case وجود دارد. هوش مصنوعی توزیع شده
روشهاي تست تست جامعه تست Validation در اين روش كل سيستم چند عامله تست ميگردد. تست پروتكل هاي ارتباطي تست كاركرد عاملها در هنگام دريافت پيغام از ديگر عاملها تست Validation در اين روش، برآورده شدن نيازهاي مورد انتظار كاربر توسط سيستم چند عامله تست ميگردد. هوش مصنوعی توزیع شده
روشهاي تست 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. هوش مصنوعی توزیع شده
معماری سیستم در معماری سیستم دو مورد باید مشخص گردد : معماری عامل معماری سیستم چند عامله در این زمینه در منابع مختلف، الگوهای معماری گوناگون (نظیر Blackboard، Agency، ... ) معرفی شده است. زبان های توصیف معماری مخصوص عامل ها روش هاي ارزيابي معماري مبتني بر عامل هوش مصنوعی توزیع شده
معماری سیستم 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, “Architecture-Centric Object-Oriented Design Method for Multi-Agent Systems”, In Proc. of the Fourth International Conference on Multi-agent Systems (ICMAS-2000), 2000. هوش مصنوعی توزیع شده
ابزارهاي توسعه عاملها اين ابزارها پشتيباني كننده فرايند و روشها هستند. داراي مزايايي از قبيل : افزايش سرعت توسعه، كاهش هزينه پروژه، ياري توسعه دهندگان در مديريت پروژههاي پيچيده مبتني بر عامل و ... ميباشند. انواع ابزارهاي توسعه عاملها : ابزارهاي تحليل و طراحي چارچوبهاي توسعه عاملها ابزارهاي تست و رفع خطا محيط هاي برنامه سازي ابزارهاي نمونهسازي هوش مصنوعی توزیع شده
ابزارهاي تحليل و طراحي ابزارهايي براي توليد مدلهاي لازم در حين فرايند تحليل و طراحي نمونه : ابزار AgentTool، Rational Rose هوش مصنوعی توزیع شده
چارچوبهاي ساخت عامل چارچوب توسعه عامل، مجموعه اي از محيط اجرايي، كلاسها و بسته هاي لازم براي توليد كد عامل و نرمافزارهاي مبتني بر عامل ميباشد. داراي ويژگيهاي زير است: ارائه مجموعهاي از كلاسها براي پياده سازي ارتباطات، همكاريها و Reasoning ارائه محيط مدل سازي بصري براي توليد مدلهاي تحليل و طراحي ابزارهايي براي توليد خودكار كد از مدلهاي بصري ايجاد شده ارائه تعدادي عامل از پيش تعريف شده براي تسهيل عمليات ساخت عامل ارائه ابزارهايي براي تست و رفع خطا ارائه تسهيلاتي براي ارتباط با ديگر سيستمهاي مبتني بر عامل از طريق زبانهايي نظير KQML و استانداردهايي نظير FIPA نمونهها : AgentBuilder, Bond, Decaf, dMars, JiVE, KAos JAF , ZEUS هوش مصنوعی توزیع شده
ابزارهاي تست و خطايابي براي تست و خطايابي، ابزارهايي در چارچوبهاي معرفي شده وجود دارد. موارد زير در اين ابزارها قابل تست است : تست ساختار سازماني عاملها، نبود منابع، زمان بنديهاي نادرست و ... تست و خطايابي مدلهاي ايجاد شده در ارتباط بين عاملها تستهاي Unit براي تست عوامل به تنهايي هوش مصنوعی توزیع شده
نتيجه گيري سيستمهاي مبتني بر عامل، نظير هر سيستم نرمافزاري نياز به روش هاي مهندسي نرمافزار دارند. براي مهندسي نرمافزار سيستمهاي مبتني بر عامل، مدلهاي فرايند، روشها و ابزارهاي گوناگوني ارائه شده است. روشهاي زيادي در زمينه فعاليتهاي چتري و معماري نرمافزار عاملها ارائه نشده است. هوش مصنوعی توزیع شده