مهندسی نرم افزار مبتنی بر عامل
اسلاید 1: هوش مصنوعی توزیع شده1مهندسی نرم افزار مبتنی بر عاملهوش مصنوعي توزيع شده ، نيمسال دوم 84-85ارائه دهنده : پويا جافرياناستاد درس : دكتر عبداله زاده
اسلاید 2: هوش مصنوعی توزیع شده2فهرست مطالبمهندسي نرمافزار مبتني بر عامل مدلهاي فرايند AOSEروشهاي AOSE روشهاي مهندسي نيازها روشهاي تحليل و طراحي روشهاي پياده سازيروشهاي تست ابزارهاي AOSE نتيجه گيري
اسلاید 3: هوش مصنوعی توزیع شده3مهندسي نرم افزار مبتني بر عامل (مقدمه)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.
اسلاید 4: هوش مصنوعی توزیع شده4مهندسي نرمافزار مبتني بر عامل نرمافزارهاي مبتني بر عامل داراي ويژگيهاي مشتركي نظير پيچيدگي، باز بودن و توزيع داده و كنترل هستند. نرمافزارهاي مبتني بر عامل معمولاً در دسته نرمافزارهاي Real-Time و حساس قرار ميگيرند. از عاملها تشكيل شده بنابراين مهمترين Abstraction در اينگونه سيستمها مفهومي به نام عامل است. بنابراين اين سيستمها نيازمند روشهاي مهندسي نرمافزاري بوده كه به طور خاص براي اينگونه سيستمها طراحي شده باشد.
اسلاید 5: هوش مصنوعی توزیع شده5مهندسي نرمافزار مبتني بر عامل مهندسي نرمافزار مبتني بر عامل روشي براي مهندسي و ساخت سيستمهاي مبتني بر عامل ميباشد. مهندسي نرمافزار مبتني بر عامل، بر پايه مفاهيم مهندسي نرمافزار بنا گرديده است. يك تكنولوژي لايهاي محسوب ميشود.
اسلاید 6: هوش مصنوعی توزیع شده6PM-Abs
اسلاید 7: هوش مصنوعی توزیع شده7مدلهاي فرايندهاي توسعه مبتني بر عامل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.
اسلاید 8: هوش مصنوعی توزیع شده8مدلهاي فرايندهاي توسعه مبتني بر عامل اين مدلهاي فرايندها مشخص كننده مراحل لازم براي ساخت به موقع و با كيفيت يك سيستم مبتني بر عامل ميباشند. نمونهها : MASSIVE ( كه يك مدل فرايند تكراري ميباشد. )Tropos ( كه يك مدل فرايند خطي است.)فرايندهاي همراه با چارچوبهاي توليد عامل (مانند فرايند ارائه شده همراه چارچوب Zeus)گسترش مدلهاي فرايند موجود (XP for AO Systems)
اسلاید 9: هوش مصنوعی توزیع شده9روشهاي توسعه سيستمهاي مبتني بر عاملدر كنار مدلهاي فرايند، روشهايي براي به كارگيري در مدلفرايند نيز ضروري ميباشد. روشهايي كه تشكيل دهنده مدلهاي فرايند هستند عبارتند از : روشهاي مهندسي نيازها روشهاي تحليل و طراحي روشهاي پياده سازيروشهاي تست
اسلاید 10: هوش مصنوعی توزیع شده10روش هاي مهندسي نيازها E.S.K. Yu, “Towards modelling and reasoning support for early-phase requirements engineering”, In Proc. of 3rd IEEE International Symposium on Requirements Engineering (RE97), 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.
اسلاید 11: هوش مصنوعی توزیع شده11روشهاي مهندسي نيازها اين روشها، براي به دست آوردن و آناليز نيازهاي مشتري به كار ميروند. نمونههايي از اين روشها: چارچوب i* چارچوب NFRزبان مدلسازي : GRL (Goal Oriented Requirement Language)
اسلاید 12: هوش مصنوعی توزیع شده12چارچوب i* براي مهندسي نيازها چارچوبي براي مهندسي نيازها بر اساس روشهاي مبتني بر عامل اين چارچوب براي مدلسازي نيازها در يك سيستم كه داراي چندين عامل شركت كننده (نرمافزاري يا غير نرمافزاري) با خواستهاي متفاوت باشند، قابل استفاده است. در يافتن اهداف سيستم، اولويت بازيگران سيستم و ارتباط آنها با يكديگر، نحوه و امكان سنجي دستيابي به اهداف سيستم سودمند است.
اسلاید 13: هوش مصنوعی توزیع شده13چارچوب i* براي مهندسي نيازهامرحله نيازهاي اوليه سيستم در اين مرحله، از i* براي مدل سازي قصدهاي بازيگران سيستم و نحوه ارتباط آنها با يكديگر استفاده ميشود. مرحله تحليل در اين مرحله از i* براي مدل سازي عاملهاي نرمافزاري سيستم و نحوه وابستگي و ارتباط آنها با يكديگر استفاده ميشود.
اسلاید 14: هوش مصنوعی توزیع شده14مدل Strategic Dependency در چارچوب i* چرا لازم است جلسات به موقع برنامه ريزي شوند؟ چرا لازم است برنامه ريز جلسات از شركت كنندگان زمانهاي مورد علاقه و زمانهايي را كه نميتوانند شركت كنند دريافت كند؟ ....
اسلاید 15: هوش مصنوعی توزیع شده15
اسلاید 16: هوش مصنوعی توزیع شده16مدل Strategic Rationale در چارچوب i*
اسلاید 17: هوش مصنوعی توزیع شده17
اسلاید 18: هوش مصنوعی توزیع شده18ويژگيهاي ديگر i*امكان ارزيابي هريك از عمليات و اهداف معرفي شده از چهارديدگاه ability، workability، viability و believability تاكيد بر مديريت نيازها در مراحل اوليه توسعه (Early Phase Requirement Engineering)امكان به كارگيري در مديريت نيازهاي سيستمهاي گوناگون مخصوصاً سيستمهاي توزيع شده، سيستمهاي امن و ...
اسلاید 19: هوش مصنوعی توزیع شده19روشهاي تحليل و طراحي سيستمهاي مبتني بر عاملدر این متدولوژی ها سعی شده که ویژگی های مربوط به عامل ها و روش های مرتبط با آن در متدولوژی های موجود اضافه گردد. به دو دسته تقسیم میشوند : متدولوژی هایی که توسعه روش های شیء گرا هستند. متدولوژی هایی که توسعه روش های مهندسی دانش هستند.
اسلاید 20: هوش مصنوعی توزیع شده20راهحلهاي مبتنی بر روشهای مهندسي دانشمزايا توانايي مدل سازي وضعيت ذهني عاملها از طريق مدل سازي دانشامكان استفاده مجدد از ابزارها و كتابخانههاي مربوط به Ontology مواردي كه بايد مد نظر قرار گيرد : روشها براي سيستم مبتني بر دانش مركزي هستند. در اين روشها به ويژگيهاي خودمختاري و پاسخ گويي به تغييرات محيط توجهي نشده است. نمونهها : CommonKADS، MASCommonKADS، CoMoMAS
اسلاید 21: هوش مصنوعی توزیع شده21راهحلهاي مبتنی بر روشهای مهندسي دانش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.
اسلاید 22: هوش مصنوعی توزیع شده22راهحلهاي مبتنی بر روشهای شیء گرامزایا : شباهت میان شی و عامل وجود دارد. روش های شی گرا بسیار متداول است. یادگیری و هزینه کمتری نسبت به سایر روش ها دارد. مواردی که باید مد نظر قرار گیرد : تجرد بالاتر عامل نسبت به شیء عدم توانایی روش های شیء گرا در مدل سازی ویژگی های خاص عامل تفاوت در نوع ارتباط بین اشیاء و عامل ها نمونهها : Gaia، MaSE، MESSAGE، ROADMap، Ex-MaSE
اسلاید 23: هوش مصنوعی توزیع شده23راهحلهاي مبتنی بر روشهای شیء گرا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.
اسلاید 24: هوش مصنوعی توزیع شده24متدولوژي MaSeمتدولوژي تحليل و طراحي سيستمهاي مبتني بر عامل توسط ابزار agentTool پشتيباني ميشود. ويژگيهاي عامل نظير ”خود مختاري“، ”خلاقيت“، ”پيش فعال بودن“ در آن مورد توجه نميباشد. عامل ها به صورت موجوديتهاي نرمافزاري فرض ميشوند كه براي رسيدن به يك هدف خاص با هم همكاري ميكنند.
اسلاید 25: هوش مصنوعی توزیع شده25
اسلاید 26: هوش مصنوعی توزیع شده26مرحله تحليل در MaSEمرحله تعيين اهدافاعمال موارد كاربرد بازبيني نقشها تحليلنيازهانقشهاي موجود در سيستم
اسلاید 27: هوش مصنوعی توزیع شده27تعيين اهدافتشخيص اهدافتشخيص اهداف كلي سيستم با توجه به نيازمنديهاي مشتري طبقه بندي اهداف اهداف كلي به اهداف كوچك تر شكسته ميشود. ساختار سلسله مراتبي اهداف، به كمك نمودار درختي نمايش داده ميشود. اهداف بايد به اندازهاي جزئي شوند كه امكان انجام آنها توسط عاملهايي كه در مرحله طراحي مشخص ميشود، وجود داشته باشد.
اسلاید 28: هوش مصنوعی توزیع شده28
اسلاید 29: هوش مصنوعی توزیع شده29به كارگيري موارد كاربردايجاد موارد كاربردبا توجه به نيازمنديها و اهداف سيستم، مدل مورد كاربرد سيستم مشخص ميگردد. توليد نمودار ترتيب (Sequence Diagram)براي هريك از موارد كاربرد، نقشهاي لازم و همچنين ارتباط بين نقشها براي انجام مورد كاربرد مربوطه، مشخص ميشود.
اسلاید 30: هوش مصنوعی توزیع شده30
اسلاید 31: هوش مصنوعی توزیع شده31بهبود نقشها هدف اين مرحله، تكميل نقشهاي سيستم و مشخصنمودن وظايف هر نقشميباشد. در اين مرحله بايد اطمينان حاصل نمود كه به هر Goal يك نقش اختصاص داده شده است. ميتوان با تركيب نقشها، وظيفه انجام چندين Goal را به يك نقش اختصاص داد.
اسلاید 32: هوش مصنوعی توزیع شده32
اسلاید 33: هوش مصنوعی توزیع شده33مشخص كردن وظايفبراي تبديل نقشها به كلاسهاي عامل در مرحله طراحي، بايد وظايف هر نقش مشخص گردد. براي اين منظور ميتوان از نمودار نقشهاي سيستم را با جزئيات كامل استفاده نمود.
اسلاید 34: هوش مصنوعی توزیع شده34
اسلاید 35: هوش مصنوعی توزیع شده35مرحله طراحيدر اين مرحله مي خواهيم مدلي توليد كنيم كه در مراحل بعدي قابل پياده سازي باشد. طراحي در MaSE شامل مراحل زير است : ايجاد كلاس هاي عامل ساخت گفتگوها تركيب كلاس هاي عامل طراحي سيستم
اسلاید 36: هوش مصنوعی توزیع شده36ايجاد كلاسهاي عاملدر اين مرحله، براي هريك از نقش هاي موجود در سيستم يك كلاس عامل اختصاص داده مي شود. مي توان بين نقش ها و كلاس هاي عامل، نگاشت يك به يك ايجاد نمود يا مجموعه اي از نقش ها را داخل يك كلاس عامل قرار داد. در نمودار كلاس عامل، كلاس ها ( به صورت مربع ) و ارتباط بين كلاس ها با خطوط مشخص مي شود.
اسلاید 37: هوش مصنوعی توزیع شده37
اسلاید 38: هوش مصنوعی توزیع شده38ساخت گفتگوها در اين مرحله، هدف مدل سازي وضعيت داخلي يك عامل در هنگام دريافت يك پيام است. براي اين منظور از نمودارهاي حالت UML استفاده شده و موارد زير بايد مدل شود : پيامي كه با دريافت آن گذر از يك حالت به حالت ديگر صورت ميگيرد.فعاليتي كه در صورت دريافت پيام فعال ميشود.شرايطي كه براي گذر از يك حالت به حالت ديگر بايد برقرار باشد.پيامي كه در حين گذر از يك حالت به حالت ديگر، ارسال ميگردد.
اسلاید 39: هوش مصنوعی توزیع شده39
اسلاید 40: هوش مصنوعی توزیع شده40تركيب كلاسهاي عامل در اين مرحله معماري داخلي عامل مشخص مي شود. براي اين منظور مي توان از زبان هاي توصيف معماري استفاده نمود.
اسلاید 41: هوش مصنوعی توزیع شده41استقرار سيستم در اين مرحله ساختار كلي عامل ها در سيستم مشخص مي شود. براي نمايش نحوه استقرار عامل ها از نمودارهاي استقرار (Deployment Diagram) در UML استفاده ميشود.
اسلاید 42: هوش مصنوعی توزیع شده42روشهاي پياده سازي در اين بخش زبانهايي براي توسعه عاملها ارائه شده است. زبانهاي عامل، زبانهايي هستند كه در توسعه سيستم امكان استفاده از مفاهيم اصلي موجود در عاملها (نظير باورها، اهداف، و ديگر ويژگيهاي ذهني) را به طور مستقيم فراهم ميكنند. نمونههايي از اين زبانها عبارتند از : Agent 0 PLACA 3APL
اسلاید 43: هوش مصنوعی توزیع شده43روشهاي پياده سازي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.
اسلاید 44: هوش مصنوعی توزیع شده44روشهاي تستتست ويژگيهاي عامل تست Unitدر سيستمهاي مبتني بر عامل، كوچكترين واحد قابل تست عامل است. در اين روش، عامل از لحاظ ويژگيهايي كه بايد از ديد ديگر عاملها برآورده سازد، تست ميشود. محيطهايي براي تست خودكار عاملها ( با زبان Java ) ارائه شده است. در اين محيطها امكان ايجاد Test Case هايي مشتق شده از Junit و تست خودكار عامل بر اساس Test Case وجود دارد.
اسلاید 45: هوش مصنوعی توزیع شده45روشهاي تستتست جامعه در اين روش كل سيستم چند عامله تست ميگردد. تست پروتكل هاي ارتباطي تست كاركرد عاملها در هنگام دريافت پيغام از ديگر عاملها تست Validation در اين روش، برآورده شدن نيازهاي مورد انتظار كاربر توسط سيستم چند عامله تست ميگردد.
اسلاید 46: هوش مصنوعی توزیع شده46روشهاي تست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.
اسلاید 47: هوش مصنوعی توزیع شده47معماری سیستم در معماری سیستم دو مورد باید مشخص گردد : معماری عاملمعماری سیستم چند عامله در این زمینه در منابع مختلف، الگوهای معماری گوناگون (نظیر Blackboard، Agency، ... ) معرفی شده است. زبان های توصیف معماری مخصوص عامل ها روش هاي ارزيابي معماري مبتني بر عامل
اسلاید 48: هوش مصنوعی توزیع شده48معماری سیستم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.
اسلاید 49: هوش مصنوعی توزیع شده49ابزارهاي توسعه عاملها اين ابزارها پشتيباني كننده فرايند و روشها هستند.داراي مزايايي از قبيل : افزايش سرعت توسعه، كاهش هزينه پروژه، ياري توسعه دهندگان در مديريت پروژههاي پيچيده مبتني بر عامل و ... ميباشند. انواع ابزارهاي توسعه عاملها : ابزارهاي تحليل و طراحي چارچوبهاي توسعه عاملها ابزارهاي تست و رفع خطا محيط هاي برنامه سازي ابزارهاي نمونهسازي
اسلاید 50: هوش مصنوعی توزیع شده50ابزارهاي تحليل و طراحيابزارهايي براي توليد مدلهاي لازم در حين فرايند تحليل و طراحينمونه : ابزار AgentTool، Rational Rose
اسلاید 51: هوش مصنوعی توزیع شده51چارچوبهاي ساخت عامل چارچوب توسعه عامل، مجموعه اي از محيط اجرايي، كلاسها و بسته هاي لازم براي توليد كد عامل و نرمافزارهاي مبتني بر عامل ميباشد. داراي ويژگيهاي زير است: ارائه مجموعهاي از كلاسها براي پياده سازي ارتباطات، همكاريها و Reasoning ارائه محيط مدل سازي بصري براي توليد مدلهاي تحليل و طراحيابزارهايي براي توليد خودكار كد از مدلهاي بصري ايجاد شده ارائه تعدادي عامل از پيش تعريف شده براي تسهيل عمليات ساخت عامل ارائه ابزارهايي براي تست و رفع خطا ارائه تسهيلاتي براي ارتباط با ديگر سيستمهاي مبتني بر عامل از طريق زبانهايي نظير KQML و استانداردهايي نظير FIPA نمونهها : AgentBuilder, Bond, Decaf, dMars, JiVE, KAos JAF , ZEUS
اسلاید 52: هوش مصنوعی توزیع شده52ابزارهاي تست و خطايابيبراي تست و خطايابي، ابزارهايي در چارچوبهاي معرفي شده وجود دارد. موارد زير در اين ابزارها قابل تست است : تست ساختار سازماني عاملها، نبود منابع، زمان بنديهاي نادرست و ... تست و خطايابي مدلهاي ايجاد شده در ارتباط بين عاملها تستهاي Unit براي تست عوامل به تنهايي
اسلاید 53: هوش مصنوعی توزیع شده53نتيجه گيريسيستمهاي مبتني بر عامل، نظير هر سيستم نرمافزاري نياز به روش هاي مهندسي نرمافزار دارند. براي مهندسي نرمافزار سيستمهاي مبتني بر عامل، مدلهاي فرايند، روشها و ابزارهاي گوناگوني ارائه شده است. روشهاي زيادي در زمينه فعاليتهاي چتري و معماري نرمافزار عاملها ارائه نشده است.
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.