370 likes | 566 Views
مهندسی نرم افزار مبتنی بر عامل. رئوس مطالب. مهندسي نرم افزار مبتني بر عامل فرايند هاي توسعه مبتني بر عامل روش هاي توسعه سيستم هاي مبتني بر عامل روش هاي مهندسي نياز ها چارچوب i* زبان GRL (زبان مدل سازي نياز ها) چارچوب NFR
E N D
رئوس مطالب • مهندسي نرمافزار مبتني بر عامل • فرايندهاي توسعه مبتني بر عامل • روشهاي توسعه سيستمهاي مبتني بر عامل • روشهاي مهندسي نيازها • چارچوب 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