1 / 46

مقدمه

به نام خدا ارائه درس درستي يابي سيستم هاي واكنشي موضوع : Rebeca ( Re active O b j ec t L a nguage) ارائه دهنده : محمد ابراهيمي mebrahimi76@gmail.com فرودين 1384. مقدمه.

lapis
Download Presentation

مقدمه

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. به نام خداارائه درس درستي يابي سيستم هاي واكنشيموضوع : Rebeca (Reactive Object Language)ارائه دهنده : محمد ابراهيميmebrahimi76@gmail.comفرودين 1384

  2. مقدمه • يكي از ملزومات درستي يابي رسمي براي اطمينان از درستي سيستم ها داشتن يك روش كارآمد و مناسب براي مدل سازي سيستم هاي همروند و توزيع شده است.Rebeca يك زبان actor-base براي مدلسازي اين سيستم ها است. در واقع Rebeca تلاش ميكند همانند پلي ارتباطي ميان درستي يابي رسمي و application هاي واقعي عمل نمايد. Rebeca formal verification real applications

  3. Rebeca مي تواند بر پايه يك مفسر قابل استفاده براي مدل actor به عنوان مدل مرجع براي محاسبات هم روند، استفاده شود، همچنين Rebeca مي تواند عملا پايگاهي براي توسعه سيستم هاي هم روند شي گرا باشد. • Rebeca مشابه مدل actor مي باشد كه درآن: • active object ها مستقل. • message passing ها غير هم زمان • بافر ها نا محدود. • تغيير topology و توليد active object ها به صورت dynamic است • تعريف class به syntax اضافه شده و class ها عملا شبيه الگوهايي براي states، behaviorو active object interfase هستند. • component ها به عنوان active object هايي كه به صورت غير هم زمان اجرا مي شوند تصور شده اند. • در rebeca نقش active object هاي داخلي و خارجي متفاوت با مدل actor واقعي است. • Objectها واكنشي و self-contaend هستند كه به آنها rebec اتلاق مي شود. as a referencemodel Rebeca platform for developing Concurrent Cmputation object-based concurrent systems

  4. Rebeca و يا (Reactive Object Language) حاصل تحقيقات و پايان نامه خانم دكتر مرجان سيرجاني از اساتيد فعلي دانشكده فني و مهندسي دانشگاه تهران و دانشجوي آقاي دكتر موقر در دانشگاه صنعتي شريف مي باشد. همچنين تحقيقات صورت گرفته براي تكامل Rebeca حاصل تلاش گروهي از دانشجويان دانشگاه صنعتي شريف و دانشگاه تهران مي باشد.Rebeca يك مدل نسبتا جديد و در حال تكامل است اين مدل براي اولين بار در سال 2002با ارائه مقاله اي تحت عنوانSimulation in Rebeca در كنفرانس بين الملليParallel and Distributed Processing Techniques and Applications(PDPTA’02)مطرح شد و در اوريل همان سال در سمينارAutomated Verification of Critical Systems (AVoCS'02)در دانشگاهBirmingham ارائه شد.

  5. مقالات Rebeca در كنفرانسها و سمينارهاي بين المللي ارائه شده و تعدادي از آنها منتشر شده است . 2003 • M. Sirjani, A. Movaghar, H. Iravanchi, M.M. Jaghoori, A. Shali Model Checking in Rebecain theProceedings of The 2003 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'03), CSREA Press, June 2003.   • M. Sirjani, A. Movaghar, H. Iravanchi, M.M. Jaghoori, A. Shali.Model Checking Rebeca by SMVin theProceedings of the Workshop on Automated Verification of Critical Systems (AVoCS'03), University of Southampton, April 2003. 2002 • M. Sirjani and A. Movaghar, Simulation in RebecainProceedings of The 2002 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'02), CSREA Press, June 2002. Also presented on Automated Verification of Critical Systems (AVoCS'02), University of Birmingham, April 2002. • 2001 • M. Sirjani, A. Movaghar, and M.R. Mousavi, Compositional Verification of an Actor-Based Model for Reactive SystemsinProceedings of Workshop on Automated Verification of Critical Systems (AVoCS'01), Oxford University, April 2001.

  6. تعاريف rebec : در Rebeca مدل سازي توسط reactive objects صورت مي گيرد . واژه rebec نيز از حروف re و bec كه در recatve object وجود دارد گرفته شده است. در rebeca به object ها rebec تلاق ميشود. هر rebec معرف يك activecalss بوده و يك thread منحصر به فرد دارد. Message : پيامها در واقع عاملي براي انجام محاسبات تلقي مي شوند و تمامي محاسبات با ارسال پيام صورت گرفته و توسط احضار متد مربوط به پيام اجرا مي شوند. Method : هر پيام يك تابع نگهدارنده (method-handler) دارد كه متد ( method ) ناميده مي شود. پيامها با احضار اين متد ها ارسال و دريافت مي شوند. Inbox : هر rebec براي پيامهاي خود يك بافر نامحدود دارد كه به آن صف يا inbox اتلاق ميشود. وقتي كه يك پيام به ابتداي صف يك rebec رسيده باشد متد مربوطه احضار شده و پيام از صف حذف ميشود.

  7. تعاريف Class : هر Class الگويي براي حالات ( State )، رفتار (( behavior و رابطهايي براي recatveobject مي باشد. Activeclass : هر activeclass شامل knownobject ها، متغيرهاي حالت(statevariabels) و تعدادي messageserver است.

  8. تعاريف knownobject: Knownobject ها در واقعrebecهايي هستند كه مي توان به آنها پيام ارسال كرد و هر پيام شامل calleeid ، messageidوpassedparameters به سوي callee مي باشد. Rebecamodel : برنامه هاي Rebeca شامل تعاريف (re)activeclass ها و يك بدنه اصلي مي باشد ودر بدنه اصلي rebec ها بوسيله activeclass ها معرفي مي شوند. ‍‍Closemodel : در Rebeca ، model از مجموعة محدودي rebec تشكيل شده كه به صورت موازي اجرا مي شوند. اگر تمامي درخواستهاي احضار متد در داخل model و به rebec هاي داخل مدل آدرس دهي شده ويا از rebec هاي داخل model سرچشمه گرفته باشد ، به چنين مدلي closemodel اتلاق مي شود . برعكس اين حالت openmodel ويا Component اتلاق مي شود.

  9. Syntax Notation :

  10. Syntax كد Rebeca شامل مجموعه اي ازتعاريف activeclass كه از يك بلاك اصلي تبعيت مي كنند مي باشد . هر rebec توسط activeclass هايش معرفي مي شود. اجباراً تمامي rebec ها بايستي ابتدا تعريف شوند.

  11. Syntax Notation :recativeclasses

  12. Syntax Notation :knownobject • Knownobject هاي يك activeclass ، rebec هايي هستند كه هر نمونه activeclass مي تواند به آنها پيام ارسال كند. Synatx تعريف شده براي هر knownobject به صورت زير است: • هنگام تعريف rebec ها تعيين Knownobject ها در بلاك اصلي الزامي است.

  13. Syntax Notation :statevars Notation :body • تعريف متد : • هر پيام يك message-handler وابسته دارد كه متد ( method ) ناميده مي شود. هر پيام به سبب احضار يك متد خواهد رسيد. Syntax تعريف شده براي متد ها به شكل زير است: Notation :metod

  14. پيامها ممكن است پارامترهايي از type هايي كه در heder متد مشخص شده است داشته باشد. بدنة msgsrv شامل برخي جملات rebec مي باشد.

  15. هر activeclass شامل چند knownobject ، بيان متغير هاي حالت و مجموعه اي از سرويس دهنده هاي پيام يا متد مي باشد. هنگام معرفي rebecها تمامي activeclass ها بايستي يك سرويس دهنده پيام مشخص اوليه براي سرويس دادن به پيامهاي اوليه كه در صف پيامهاي rebec قرار دارند داشته باشند.

  16. Syntax Notation :parametrs Notation :var • تمامي متغير ها قبل از استفاده بايستي تعريف شوند. متغير ها بايستي با يك حرف و يا يك زير خط شروع شوند همچنين ممكن است با هر تركيبي از حروف ، اعداد و زير خط تعريف شوند. Rebeca نسبت به كوچك و بزرگ بودن حروف حساس است.

  17. Syntax • Statement ها در Rebeca از اعمال پايه كه شامل ارسال و دريافت، تعاريف نوع داده، عبارات، عبارات مركب و كنترل ها مي باشند، ساخته شده است. دستورات توسط semicolon ها ( ; ) از هم تفكيك مي شوند و پايان هر خط لزوماً پايان دستورات نيست. Notation :Statement عبارات ( Expressions ) عبارات شامل عملگر هاي رياضي، منطقي و مقايسه اي مطابق جدول زير هستند:

  18. Syntax Notation :mir (method invocation request)

  19. دستورات ارسال و دريافت (Send and Receive statements ) : • Syntax ، دستورات ارسال و دريافت به صورت زير است: اجراي يك دستورِ ارسال پيام شامل نام پيام با پارامتر هاي واقعي Par1 و ... به يك knownobject است. از آنجايي كه message passing در rebeca به صورت غير هم زمان رخ مي دهد ، ممكن است پيام ها بعد از اينكه caller اقدامات خود را با محاسبات مربوط به خود انجام داد، در يك صف نا محدود callee ذخيره شود. وقتي كه اين پيام توسط callee خوانده شد متد متناظر احضار شده و اجرا مي شود. همانطور كه در بالا ديديم دو نوع دستور ارسال وجود دارد؛ اولي پيام به knownobject ارسال مي شود و دومي پيام توسط caller به خودش ارسال مي شود، callee نيز ممكن است يك knownobject و يا خودِ caller باشد. در نوع دوم caller ، پيامها را در صف خودش قرار داده و با دستور بعدي كار خود را ادامه داد كه اين دو نوع ارسال پيامتفاوتي معنايي با هم ندارند.

  20. Syntax Notation :create Notation :model وقتي كه rebec ها از active class هاي متناضر معرفي مي شوند لزوما بايستي knownobject ها در بلاك اصلي تعريف شوند. Syntax معرفي rebec ها به صورت زير است: Notation : rebec

  21. Syntax شكل زير binding، knownobject ها را تشريح مي كند: فلش هاي قرمز binding، known object ها را در بلاك اصلي نمايش مي دهد.

  22. Syntax توضيحات (Comments ) Syntax توضيحات به شكل زير است: // single line comment/*multi line comment*/

  23. Syntax • ساختار كنترل ( control structure ) • Rebeca توسط يك ساختار كنترلي تحت عنوان ساختار if پشتيباني مي شود. اين ساختار يك ساختار تكراري نيست ولي روشي است براي شبيه سازي معنايي تكرار. جلوتر ساختار if و شبيه سازي تكرار توضيح داده خواهد شد. • ساختار if • Syntax ساختار if به صورت زير است: شرايط ممكن است عبارات مقايسه اي و يا منطقي باشند. اگر شرط اول برقرار باشدبلاك بدنه if اجرا مي شود. به عبارت ديگر ممكن است كنترل به بعد از بلاك if پرش كند و با عبارت بعدي ادامه يابد. در بلاك دوم if ، اگر شرط دوم برقرار نباشد بدنة else اجرا خواهد شد. ممكن است If هاي تو در تو نيز داشته باشيم.

  24. Syntax • شبيه سازي ساختار تكرار (simulation of repetition structure ) • با يك مثال نمونه اين متد توضيح داده مي شود: در اين مثال موارد زير اتفاق مي افتد: متغير k با صفر مقدار دهي مي شود. ابتدا k<5است و بلاك if اجرا مي شود. سپس k افزايش مي يابد. براي تكرار افزايش k، rebec ، پيام جاري را ( دراينجاRepeat() )به خودش ارسال مي كند. وقتي rebec متد متناظر را بوسيله msgsrv Repeat() احضار مي كند، k هنوز كمتر از 5 است و اجراي بلاك if تا زماني كه مقدار k بزرگتر از 5 شود ادامه خواهد داشت. زماني كه مقدار k بزرگتر از 5 شود جمله else اجرا شده و rebec ، message() را براي knownobject ارسال خواهد كرد.

  25. مثال • يك مدل Rebeca يك فايل با پسوند .rebeca است. • اين فايل شامل تعريف classes(re)active و سپس يك قسمت اصلي است. در قسمت اصلي ، rebec ها از classesactive تعريف شده و binding بين rebec ها تعريف شده است. يك مثال نمونه در زير نمايش داده شده است. • اين مثال يك راه حل نمونه براي مسئله (( توليد كننده . مصرف كننده )) ارائه مي كند. در اين مسئله توليد كننده ، محصولاتي را توليد كرده و مصرف كننده آنها را مصرف مي كند. اين دو موجوديت بوسيله دو classactive مدل شده اند. • اين كلاسها Producer و Consumer نام دارند.

  26. Active class ،Producer صفي به طول 2 دارد كه به اين معني است كه هر rebec معرفي شده از اين كلاس مي تواند حداكثر 2 پيام در صف مربوطه ذخيره كند. Knownobject آن يك object از كلاس Consumer بوده و تحت عنوان Knownconsumer است. Productsent متغير حالت آن است كه نشان مي دهد توليدات به Consumer ارسال شده است يا خير. در متد Initial() متغير حالت، تعريف اوليه شده و Producer به خودش پيام، Produce() را ارسال مي كند. با دريافت اين پيام ( با احضار متد متناظر) Producer ، پيامِ ‍Consume() را به Consumer ارسال مي كند. ارسال و دريافت Produce() عملا به معني توليد كردن محصول توسط توليد كننده است. در نهايت توليد كننده با مقدار دهي true به Productsent حالت خود را به روز مي كند. Active class ، Consumer نيز صفي به طول 2 دارد. Knownobject آن توسط كلاس Producer مشخص شده و يك متغير حالت تحت عنوان productrecieved دارد. در متد initial() ، اين متغير مقدار دهي اوليه شده ومصرف كننده پيامِ consume() را براي خودش ارسال مي كند. با دريافت اين پيام مصرف كننده پيامِ produce()را به توليد كننده ارسال مي كند تا توليد كننده توليدات خود را آغاز كند. سپس مصرف كننده حالت خود را با مقدار دهي متغير حالت خود با مقدار true تغيير مي دهد. دوباره ارسال و دريافت consume() نشان دهنده مصرف توليدات توسط مصرف كننده است. در نهايت در در بدنه اصلي ، rebec ها معرفي شده و rebec هاي شناخته شده رخ مي دهند.

  27. semantic Semantic يك reactive سيستم مي تواند بوسيله labeled transition معرفي شود . Labeled transition system يك مجموعه چهار تايي از مجموعه حالات (S)، مجموعه label ها (L) و transition relation on state (T) و در نهايت مجموعه حالات اوليه سيستم ( S0 ) هستند. در semantic عملي Rebeca ابتدا تعريف rebec ها رسميت يافته است.

  28. semantic

  29. Operational semantics of a Rebeca model semantic

  30. ابزارهاي پشتيبان Rebaca Rebeca توسط ابرازهاي بازبيني كننده Rebeca پشتيباني مي شود. اين نرم افزار ها براي ترجمه كدها به زبانهاي وارسي مدلِ موجود و بازبيني مشخصات آنها، ايجاد شده است.Modular Verification و تكنيك هاي انتزاعي براي كاهش فاصله حالت ها و امكان درستي يابي سيستم هاي واكنشي پيچيده استفاده مي شود.

  31. Rebeca Verifier ابزارهاي درستي بابي Rebeca به عنوان يك نرم افزار نهايي براي ايجاد مدل Rebeca ايجاد شده است. اين نرم افزار شامل دو code generator ، يكcomponent creator و property handler مي باشد كه به عنوان يك وارسي كننده مدل back-end براي درستي يابي مشخصات مدل استفاده مي شود. Rebeca از NuSMV وSpin استفاده مي كند. همچنين اين ابزارها توسط تكنيك هاي انتزاعي مشروط((abstraction techniques provided و پيمانه بندي (modularization )پشتيباني مي شوند. The Use Case Diagram Rebeca Verifier

  32. The Rebeca Verifier Component Diagram

  33. Roudabeh • Roudabeh يك ابزار front-end براي توليد و ويرايش مدل هاي Rebeca است. اين ابزار به صورت گرافيكي قادر به تعريف مدل و همچنين ترجمه مدل هاي Rebeca به SMV يا Promela را دارد. با استفاده از منو و toolbar طراحي شده براي اين ابزار آموزش لازم براي كار با اين نرم افزار داده مي شود. • Toolbar • در قسمت زير منو كليد هايي براي انجام عمليات مختلف طراحي شده است

  34. پنجره ويرايش پنجره ويرايش، محلي است براي بازكردن و ويرايش كد و فايل هاي ديگر. هر فايل كه براي ويرايش در يك tab جداگانه باز مي شود .همچنين مي توان چندين فايل را در يك لحضه باز كرده و ويرايش كرد.

  35. پنجره پيام اين پنجره براي نمايش پيامهاي مختلف از قبيل error ، info و پيغامهاي هشدار استفاده مي شود. Status Bar در Status Bar موقعيت خط و ستون نمايش داده مي شود.

  36. نمايي از ابزار Rodabeh كه در آن مسئله فيلسوفها به صورت گرافيكي مدل سازي شده است.

  37. R2SMV - مترجم rebeca به SMV • NuSMV يك وارسي كننده مدل سمبوليك است كه صحت مشخصات يك سيستم با حالات محدود را درستي يابي مي كند. اين سيستم بايد با زبان نهفته NuSMV كه SMV ناميده مي شود مدل سازي شده و مشخصات آن بايستي در CTL يا LTL تعريف شود.نگاشت ساختار هاي Rebeca به SMV در جدول زير نمايش داده شده است. نگاشت ساختار Rebeca به SMV

  38. R2P - مترجم Rebeca به Promela • Spin يك وارسي كننده الگو است كه از طراحي و درستي يابي فرآيند هاي سيستم هاي غير هم زمان پشتيباني مي كند.در Spin اثرات متقابل پردازش مي توانند توسط ملاقات هاي اوليةپيام هاي گذرنده غير همزمان به واسطه كانالهاي بافردار، متغير هاي مشترك و همچنين تركيبات آنها مشخص شوند. در درستي ياب Rebeca ، كد هاي Promela از مدل Rebeca توسط توليد كننده كد Promela توليد مي شود. نگاشت ساختار rebeca به Promela در جدول زير نمايش داده شده است. نگاشت ساختار Rebeca به Promela

  39. اعضاء گروه Rbeca • Rebeca Case Study team • M. M. Jaghoorijaghoori@mehr.sharif.edu • S. Forghanizadehs_frz@yahoo.com • M. Mojdehmona_mojdeh@yahoo.com • N. Razaviniloo_razavi@yahoo.com • Niusha Hakimipournew_f_p@yahoo.com • Rebeca: Language, Theory, and Tool • A. Movagharmovaghar@sharif.edu • M. Sirjanimsirjani@cwi.nl • H. Iravanchiirideous@yahoo.com • M. M. Jaghoorijaghoori@mehr.sharif.edu • A. Shaliamshali@yahoo.com • S. Mesdaghiniasmesdaghinia@yahoo.com

  40. Rebeca2Promela team • A.Shaliamshali@yahoo.com • E. Moosavieli_msi@yahoo.com • S. Forghanizadehs_frz@yahoo.com • Hossein Hojathajhossein81@yahoo.com • Rebeca2SMV team • M. M. Jaghoorijaghoori@mehr.sharif.edu • Kamyar Rafatikamyar_raftai@yahoo.com • Fatemeh Alavizadehf_alavizadeh@yahoo.com • Rebeca2Java team • Ehsan KhamesPanahekhamespanah@yahoo.com • Elham Moazenelmoeng81@yahoo.com

  41. Rebeca Model Checkerteam • A.Shaliamshali@yahoo.com • M. M. Jaghoorijaghoori@mehr.sharif.edu Rebeca Validator • Azin Moallemmoallem00@yahoo.com • A.Shaliamshali@yahoo.com • Roudabeh project team • A.Shaliamshali@yahoo.com

  42. Refrence M. Sirjani, A. Shali, M.M. Jaghoori, H. Iravanchi, A. Movaghar. A Front-End Tool for Automated Abstraction and Modular Verification of Actor-Based Models, in theInternational Conference on Application of Concurrency to System Design (ACSD) , June 2004.M. Sirjani, M.M. Jaghoori, S. Forghanizadeh, M. Mojdeh, A. Movaghar. Model Checking CSMA/CD Protocol using an Actor-Based Language , in theProceedings of the International Conference on Software Engineering, WSEAS, February 2004. M. Sirjani, A. Movaghar, H. Iravanchi, M.M. Jaghoori, A. Shali. Model Checking in Rebeca, in theProceedings of The 2003 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'03) , CSREA Press, June 2003.

  43. M. Sirjani, A. Movaghar, H. Iravanchi, M.M. Jaghoori, A. Shali. Model Checking Rebeca by SMV, in theProceedings of the Workshop on Automated Verification of Critical Systems (AVoCS'03), University of Southampton, April 2003. M. Sirjani, A. Movaghar. An Object-Based Model for Agents, inProceedings of Workshop on Agents for Information Management, Austrian Computer Society, October 2002. M. Sirjani and A. Movaghar. Simulation in Rebeca, inProceedings of The 2002 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'02), CSREA Press, June 2002. Also presented on Automated Verification of Critical Systems (AVoCS'02), University of Birmingham, April 2002. M. Sirjani, A. Movaghar, and M.R. Mousavi. Compositional Verification of an Actor-Based Model for Reactive Systems, inProceedings of Workshop on Automated Verification of Critical Systems (AVoCS'01), Oxford University, April 2001.

  44. Web Site http://khorshid.ece.ut.ac.ir/~rebeca http://sharif.edu/~movaghar http://mehr.sharif.edu/~msirjani/

  45. پايان

More Related