مهندسی نرم افزار مبتنی بر عامل
آزمایشگاه سیستمهای هوشمند رئوس مطالب مهندسي نرمافزار مبتني بر عامل فرايندهاي توسعه مبتني بر عامل روشهاي توسعه سيستمهاي مبتني بر عامل روشهاي مهندسي نيازها چارچوب i* زبان GRL (زبان مدل سازي نيازها) چارچوب NFR روشهاي تحليل و طراحي سيستمهاي مبتني بر عامل راهحلهاي مبتنی بر روشهای شیء گرا آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند رئوس مطالب (ادامه) متدولوژي MaSe مرحله تحليل در MaSE مرحله تعيين اهداف اعمال موارد كاربرد بازبيني نقشها مرحله طراحي ايجاد كلاس هاي عامل ساخت گفتگوها تركيب كلاس هاي عامل طراحي سيستم روشهاي پياده سازي روشهاي تست آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
مهندسي نرمافزار مبتني بر عامل نرمافزارهاي مبتني بر عامل داراي ويژگيهاي مشتركي نظير پيچيدگي، باز بودن و توزيع داده و كنترل هستند. نرمافزارهاي مبتني بر عامل معمولاً در دسته نرمافزارهاي Real-Time و حساس قرار ميگيرند. از عاملها تشكيل شده بنابراين مهمترين Abstraction در اينگونه سيستمها مفهومي به نام عامل است. بنابراين اين سيستمها نيازمند روشهاي مهندسي نرمافزاري بوده كه به طور خاص براي اينگونه سيستمها طراحي شده باشد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
مهندسي نرمافزار مبتني بر عامل (ادامه) مهندسي نرمافزار مبتني بر عامل مهندسي نرمافزار سيستمهاي مبتني بر عامل است. مهندسي نرمافزار مبتني بر عامل، علاوه بر كاربرد در توسعه سيستمهاي مبتني بر عامل، براي توسعه سيستمهايي كه داراي ويژگيهايي نظير سيستمهاي مبتني بر عامل هستند، قابل كاربرد است. مهندسي نرمافزار مبتني بر عامل، يك تكنولوژي لايهاي محسوب ميشود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
فرايندهاي توسعه مبتني بر عامل اين فرايندها مشخص كننده مراحل لازم براي ساخت به موقع و با كيفيت يك سيستم مبتني بر عامل ميباشند. نمونهها : MASSIVE ( مدل فرايند تكراري ) Tropos (مدل فرايند خطي) فرايندهاي همراه با چارچوبهاي توليد عامل (Zeus) گسترش مدلهاي فرايند موجود (XP for AO Systems) آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
روشهاي توسعه سيستمهاي مبتني بر عامل در كنار فرايند، روشهايي براي به كارگيري در مدلفرايند نيز ضروري ميباشد. روشها عبارتند از : روشهاي مهندسي نيازها روشهاي تحليل و طراحي روشهاي پياده سازي روشهاي تست آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
روشهاي مهندسي نيازها اين روشها، براي به دست آوردن و آناليز نيازهاي مشتري به كار ميروند. نمونههايي از اين روشها: چارچوب i* زبان GRL (زبان مدل سازي نيازها) چارچوب NFR آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
چارچوب i* براي مهندسي نيازها چارچوبي براي مهندسي نيازها بر اساس روشهاي مبتني بر عامل اين چارچوب براي مدلسازي نيازها در يك سيستم كه داراي چندين عامل شركت كننده (نرمافزاري يا غير نرمافزاري) با خواستهاي متفاوت باشند، قابل استفاده است. در يافتن اهداف سيستم، اولويت بازيگران سيستم و ارتباط آنها با يكديگر، نحوه و امكان سنجي دستيابي به اهداف سيستم سودمند است. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
مدل Strategic Dependency در چارچوب i* چرا لازم است جلسات به موقع برنامه ريزي شوند؟ چرا لازم است برنامه ريز جلسات از شركت كنندگان زمانهاي مورد علاقه و زمانهايي را كه نميتوانند شركت كنند دريافت كند؟ .... آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
مدل Strategic Rationale در چارچوب i* آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند ويژگيهاي ديگر i* امكان ارزيابي هريك از عمليات و اهداف معرفي شده از چهارديدگاه ability، workability، viability و believability تاكيد بر مديريت نيازها در مراحل اوليه توسعه (Early Phase Requirement Engineering) امكان به كارگيري در مديريت نيازهاي سيستمهاي گوناگون مخصوصاً سيستمهاي توزيع شده، سيستمهاي امن و ... آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
روشهاي تحليل و طراحي سيستمهاي مبتني بر عامل در این متدولوژی ها سعی شده که ویژگی های مربوط به عامل ها و روش های مرتبط با آن در متدولوژی های موجود اضافه گردد. به دو دسته تقسیم میشوند : متدولوژی هایی که توسعه روش های شیء گرا هستند. متدولوژی هایی که توسعه روش های مهندسی دانش هستند. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
راهحلهاي مبتنی بر روشهای شیء گرا مزایا : شباهت میان شی و عامل وجود دارد. روش های شی گرا بسیار متداول است. یادگیری و هزینه کمتری نسبت به سایر روش ها دارد. مواردی که باید مد نظر قرار گیرد : تجرد بالاتر عامل نسبت به شیء عدم توانایی روش های شیء گرا در مدل سازی ویژگی های خاص عامل تفاوت در نوع ارتباط بین اشیاء و عامل ها آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند متدولوژي MaSe متدولوژي تحليل و طراحي سيستمهاي مبتني بر عامل توسط ابزار agentTool پشتيباني ميشود. ويژگيهاي عامل نظير ”خود مختاري“، ”خلاقيت“، ”پيش فعال بودن“ در آن مورد توجه نميباشد. عامل ها به صورت موجوديتهاي نرمافزاري فرض ميشوند كه براي رسيدن به يك هدف خاص با هم همكاري ميكنند. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند مرحله تحليل در MaSE مرحله تعيين اهداف اعمال موارد كاربرد بازبيني نقشها تحليل نقشهاي موجود در سيستم نيازها آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند تعيين اهداف تشخيص اهداف تشخيص اهداف كلي سيستم با توجه به نيازمنديهاي مشتري طبقه بندي اهداف اهداف كلي به اهداف كوچك تر شكسته ميشود. ساختار سلسله مراتبي اهداف، به كمك نمودار درختي نمايش داده ميشود. اهداف بايد به اندازهاي جزئي شوند كه امكان انجام آنها توسط عاملهايي كه در مرحله طراحي مشخص ميشود، وجود داشته باشد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
به كارگيري موارد كاربرد ايجاد موارد كاربرد با توجه به نيازمنديها و اهداف سيستم، مدل مورد كاربرد سيستم مشخص ميگردد. توليد نمودار ترتيب (Sequence Diagram) براي هريك از موارد كاربرد، نقشهاي لازم و همچنين ارتباط بين نقشها براي انجام مورد كاربرد مربوطه، مشخص ميشود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند بهبود نقشها هدف اين مرحله، تكميل نقشهاي سيستم و مشخصنمودن وظايف هر نقشميباشد. در اين مرحله بايد اطمينان حاصل نمود كه به هر Goal يك نقش اختصاص داده شده است. ميتوان با تركيب نقشها، وظيفه انجام چندين Goal را به يك نقش اختصاص داد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند مشخص كردن وظايف براي تبديل نقشها به كلاسهاي عامل در مرحله طراحي، بايد وظايف هر نقش مشخص گردد. براي اين منظور ميتوان از نمودار نقشهاي سيستم را با جزئيات كامل استفاده نمود. همچنين وظايف را ميتوان با استفاده از نمودارهاي حالت مدلسازي نمود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند مرحله طراحي در اين مرحله مي خواهيم مدلي توليد كنيم كه در مراحل بعدي قابل پياده سازي باشد. طراحي در MaSE شامل مراحل زير است : ايجاد كلاس هاي عامل ساخت گفتگوها تركيب كلاس هاي عامل طراحي سيستم آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند ايجاد كلاسهاي عامل در اين مرحله، براي هريك از نقش هاي موجود در سيستم يك كلاس عامل اختصاص داده مي شود. مي توان بين نقش ها و كلاس هاي عامل، نگاشت يك به يك ايجاد نمود يا مجموعه اي از نقش ها را داخل يك كلاس عامل قرار داد. در نمودار كلاس عامل، كلاس ها ( به صورت مربع ) و ارتباط بين كلاس ها با خطوط مشخص مي شود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند ساخت گفتگوها در اين مرحله، هدف مدل سازي وضعيت داخلي يك عامل در هنگام دريافت يك پيام است. براي اين منظور از نمودارهاي حالت UML استفاده شده و موارد زير بايد مدل شود : "پيامي" كه با دريافت آن گذر از يك حالت به حالت ديگر صورت ميگيرد. "فعاليتي" كه در صورت دريافت پيام فعال ميشود. شرايطي كه براي گذر از يك حالت به حالت ديگر بايد برقرار باشد. پيامي كه در حين گذر از يك حالت به حالت ديگر، ارسال ميگردد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند طراحي داخلي عامل در اين مرحله معماري داخلي عامل مشخص مي شود. براي اين منظور مي توان از زبان هاي توصيف معماري استفاده نمود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند استقرار سيستم در اين مرحله ساختار كلي عامل ها در سيستم مشخص مي شود. براي نمايش نحوه استقرار عامل ها از نمودارهاي استقرار (Deployment Diagram) در UML استفاده مي شود. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند روشهاي پياده سازي در اين بخش زبانهايي براي توسعه عاملها ارائه شده است. زبانهاي عامل، زبانهايي هستند كه در توسعه سيستم امكان استفاده از مفاهيم اصلي موجود در عاملها (نظير باورها، اهداف، و ديگر ويژگيهاي ذهني) را به طور مستقيم فراهم ميكنند. نمونههايي از اين زبانها عبارتند از : Agent 0 PLACA 3APL آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند روشهاي تست تست ويژگيهاي عامل تست Unit در سيستمهاي مبتني بر عامل، كوچكترين واحد قابل تست عامل است. در اين روش، عامل از لحاظ ويژگيهايي كه بايد از ديد ديگر عاملها برآورده سازد، تست ميشود. محيطهايي براي تست خودكار عاملها ( با زبان Java ) ارائه شده است. در اين محيطها امكان ايجاد Test Case هايي مشتق شده از Junit و تست خودكار عامل بر اساس Test Case وجود دارد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند روشهاي تست تست جامعه در اين روش كل سيستم چند عامله تست ميگردد. تست پروتكل هاي ارتباطي تست كاركرد عاملها در هنگام دريافت پيغام از ديگر عاملها تست Validation در اين روش، برآورده شدن نيازهاي مورد انتظار كاربر توسط سيستم چند عامله تست ميگردد. آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab
آزمایشگاه سیستمهای هوشمند معماری سیستم در معماری سیستم دو مورد باید مشخص گردد : معماری عامل معماری سیستم چند عامله در این زمینه در منابع مختلف، الگوهای معماری گوناگون (نظیر Blackboard، Agency، ... ) معرفی شده است. زبان های توصیف معماری مخصوص عامل ها آزمایشگاه سیستمهای هوشمند www.ceit.aut.ac.ir/islab