مهندسی نرم افزار مبتنی بر عامل
2
رئوس مطالب
مهندسی نرم افزار مبتنی بر عامل
فرایند های توسعه مبتنی بر عامل
روش های توسعه سیستم های مبتنی بر عامل
روش های مهندسی نیاز ها
چارچوب i*
زبان GRL (زبان مدل سازی نیاز ها)
چارچوب NFR
روش های تحلیل و طراحی سیستم های مبتنی بر عامل
راه حل های مبتنی بر روشهای شیء گرا
3
رئوس مطالب (ادامه)
متدولوژی MaSe
مرحله تحلیل در MaSE
مرحله تعیین اهداف
اعمال موارد کاربرد
بازبینی نقش ها
مرحله طراحی
ایجاد کلاس های عامل
ساخت گفتگوها
ترکیب کلاس های عامل
طراحی سیستم
روش های پیاده سازی
روش های تست
4
مهندسی نرم افزار مبتنی بر عامل
نرم افزار های مبتنی بر عامل دارای ویژگی های مشترکی نظیر پیچیدگی، باز بودن و توزیع داده و کنترل هستند.
نرم افزار های مبتنی بر عامل معمولاً در دسته نرم افزار های Real-Time و حساس قرار می گیرند.
از عامل ها تشکیل شده بنابراین مهمترین Abstraction در اینگونه سیستم ها مفهومی به نام عامل است.
بنابراین این سیستم ها نیازمند روش های مهندسی نرم افزاری بوده که به طور خاص برای اینگونه سیستم ها طراحی شده باشد.
5
مهندسی نرم افزار مبتنی بر عامل (ادامه)
مهندسی نرم افزار مبتنی بر عامل مهندسی نرم افزار سیستم های مبتنی بر عامل است.
مهندسی نرم افزار مبتنی بر عامل، علاوه بر کاربرد در توسعه سیستم های مبتنی بر عامل، برای توسعه سیستم هایی که دارای ویژگی هایی نظیر سیستم های مبتنی بر عامل هستند، قابل کاربرد است.
مهندسی نرم افزار مبتنی بر عامل، یک تکنولوژی لایه ای محسوب می شود.
6
7
فرایند های توسعه مبتنی بر عامل
این فرایند ها مشخص کننده مراحل لازم برای ساخت به موقع و با کیفیت یک سیستم مبتنی بر عامل می باشند.
نمونه ها :
MASSIVE ( مدل فرایند تکراری )
Tropos (مدل فرایند خطی)
فرایند های همراه با چارچوب های تولید عامل (Zeus)
گسترش مدل های فرایند موجود (XP for AO Systems)
8
روش های توسعه سیستم های مبتنی بر عامل
در کنار فرایند، روش هایی برای به کارگیری در مدل فرایند نیز ضروری می باشد.
روش ها عبارتند از :
روش های مهندسی نیاز ها
روش های تحلیل و طراحی
روش های پیاده سازی
روش های تست
9
روش های مهندسی نیاز ها
این روش ها، برای به دست آوردن و آنالیز نیاز های مشتری به کار می روند.
نمونه هایی از این روش ها:
چارچوب i*
زبان GRL (زبان مدل سازی نیاز ها)
چارچوب NFR
10
چارچوب i* برای مهندسی نیاز ها
چارچوبی برای مهندسی نیاز ها بر اساس روش های مبتنی بر عامل
این چارچوب برای مدل سازی نیاز ها در یک سیستم که دارای چندین عامل شرکت کننده (نرم افزاری یا غیر نرم افزاری) با خواست های متفاوت باشند، قابل استفاده است.
در یافتن اهداف سیستم، اولویت بازیگران سیستم و ارتباط آنها با یکدیگر، نحوه و امکان سنجی دستیابی به اهداف سیستم سودمند است.
11
مدل Strategic Dependency در چارچوب i*
چرا لازم است جلسات به موقع برنامه ریزی شوند؟
چرا لازم است برنامه ریز جلسات از شرکت کنندگان زمان های مورد علاقه و زمان هایی را که نمی توانند شرکت کنند دریافت کند ؟
….
12
مدل Strategic Rationale در چارچوب i*
13
ویژگی های دیگر i*
امکان ارزیابی هریک از عملیات و اهداف معرفی شده از چهاردیدگاه ability، workability، viability و believability
تاکید بر مدیریت نیاز ها در مراحل اولیه توسعه (Early Phase Requirement Engineering)
امکان به کارگیری در مدیریت نیاز های سیستم های گوناگون مخصوصاً سیستم های توزیع شده، سیستم های امن و …
14
روش های تحلیل و طراحی سیستم های مبتنی بر عامل
در این متدولوژی ها سعی شده که ویژگی های مربوط به عامل ها و روش های مرتبط با آن در متدولوژی های موجود اضافه گردد.
به دو دسته تقسیم میشوند :
متدولوژی هایی که توسعه روش های شیء گرا هستند.
متدولوژی هایی که توسعه روش های مهندسی دانش هستند.
15
راه حل های مبتنی بر روشهای شیء گرا
مزایا :
شباهت میان شی و عامل وجود دارد.
روش های شی گرا بسیار متداول است.
یادگیری و هزینه کمتری نسبت به سایر روش ها دارد.
مواردی که باید مد نظر قرار گیرد :
تجرد بالاتر عامل نسبت به شیء
عدم توانایی روش های شیء گرا در مدل سازی ویژگی های خاص عامل
تفاوت در نوع ارتباط بین اشیاء و عامل ها
16
متدولوژی MaSe
متدولوژی تحلیل و طراحی سیستم های مبتنی بر عامل
توسط ابزار agentTool پشتیبانی می شود.
ویژگی های عامل نظیر ”خود مختاری“، ”خلاقیت“، ”پیش فعال بودن“ در آن مورد توجه نمی باشد.
عامل ها به صورت موجودیت های نرم افزاری فرض می شوند که برای رسیدن به یک هدف خاص با هم همکاری می کنند.
17
18
مرحله تحلیل در MaSE
مرحله تعیین اهداف
اعمال موارد کاربرد
بازبینی نقش ها
تحلیل
نیاز ها
نقش های موجود در سیستم
19
تعیین اهداف
تشخیص اهداف
تشخیص اهداف کلی سیستم
با توجه به نیاز مندی های مشتری
طبقه بندی اهداف
اهداف کلی به اهداف کوچک تر شکسته می شود.
ساختار سلسله مراتبی اهداف، به کمک نمودار درختی نمایش داده می شود.
اهداف باید به اندازه ای جزئی شوند که امکان انجام آنها توسط عامل هایی که در مرحله طراحی مشخص می شود، وجود داشته باشد.
20
21
به کارگیری موارد کاربرد
ایجاد موارد کاربرد
با توجه به نیاز مندی ها و اهداف سیستم، مدل مورد کاربرد سیستم مشخص می گردد.
تولید نمودار ترتیب (Sequence Diagram)
برای هریک از موارد کاربرد، نقش های لازم و همچنین ارتباط بین نقش ها برای انجام مورد کاربرد مربوطه، مشخص می شود.
22
بهبود نقش ها
هدف این مرحله، تکمیل نقش های سیستم و مشخص نمودن وظایف هر نقش می باشد.
در این مرحله باید اطمینان حاصل نمود که به هر Goal یک نقش اختصاص داده شده است.
می توان با ترکیب نقش ها، وظیفه انجام چندین Goal را به یک نقش اختصاص داد.
23
24
مشخص کردن وظایف
برای تبدیل نقش ها به کلاس های عامل در مرحله طراحی، باید وظایف هر نقش مشخص گردد.
برای این منظور می توان از نمودار نقش های سیستم را با جزئیات کامل استفاده نمود.
همچنین وظایف را می توان با استفاده از نمودار های حالت مدل سازی نمود.
25
26
27
مرحله طراحی
در این مرحله می خواهیم مدلی تولید کنیم که در مراحل بعدی قابل پیاده سازی باشد.
طراحی در MaSE شامل مراحل زیر است :
ایجاد کلاس های عامل
ساخت گفتگوها
ترکیب کلاس های عامل
طراحی سیستم
28
ایجاد کلاسهای عامل
در این مرحله، برای هریک از نقش های موجود در سیستم یک کلاس عامل اختصاص داده می شود.
می توان بین نقش ها و کلاس های عامل، نگاشت یک به یک ایجاد نمود یا مجموعه ای از نقش ها را داخل یک کلاس عامل قرار داد.
در نمودار کلاس عامل، کلاس ها ( به صورت مربع ) و ارتباط بین کلاس ها با خطوط مشخص می شود.
29
30
ساخت گفتگوها
در این مرحله، هدف مدل سازی وضعیت داخلی یک عامل در هنگام دریافت یک پیام است.
برای این منظور از نمودارهای حالت UML استفاده شده و موارد زیر باید مدل شود :
"پیامی" که با دریافت آن گذر از یک حالت به حالت دیگر صورت می گیرد.
"فعالیتی" که در صورت دریافت پیام فعال می شود.
شرایطی که برای گذر از یک حالت به حالت دیگر باید برقرار باشد.
پیامی که در حین گذر از یک حالت به حالت دیگر، ارسال می گردد.
31
32
طراحی داخلی عامل
در این مرحله معماری داخلی عامل مشخص می شود.
برای این منظور می توان از زبان های توصیف معماری استفاده نمود.
33
استقرار سیستم
در این مرحله ساختار کلی عامل ها در سیستم مشخص می شود.
برای نمایش نحوه استقرار عامل ها از نمودارهای استقرار (Deployment Diagram) در UML استفاده می شود.
34
روش های پیاده سازی
در این بخش زبان هایی برای توسعه عامل ها ارائه شده است.
زبان های عامل، زبان هایی هستند که در توسعه سیستم امکان استفاده از مفاهیم اصلی موجود در عامل ها (نظیر باور ها، اهداف، و دیگر ویژگی های ذهنی) را به طور مستقیم فراهم می کنند.
نمونه هایی از این زبان ها عبارتند از :
Agent 0
PLACA
3APL
35
روش های تست
تست ویژگی های عامل
تست Unit
در سیستم های مبتنی بر عامل، کوچکترین واحد قابل تست عامل است.
در این روش، عامل از لحاظ ویژگی هایی که باید از دید دیگر عامل ها برآورده سازد، تست می شود.
محیط هایی برای تست خودکار عامل ها ( با زبان Java ) ارائه شده است. در این محیط ها امکان ایجاد Test Case هایی مشتق شده از Junit و تست خودکار عامل بر اساس Test Case وجود دارد.
36
روش های تست
تست جامعه
در این روش کل سیستم چند عامله تست می گردد.
تست پروتکل های ارتباطی
تست کارکرد عامل ها در هنگام دریافت پیغام از دیگر عامل ها
تست Validation
در این روش، برآورده شدن نیاز های مورد انتظار کاربر توسط سیستم چند عامله تست می گردد.
37
معماری سیستم
در معماری سیستم دو مورد باید مشخص گردد :
معماری عامل
معماری سیستم چند عامله
در این زمینه در منابع مختلف، الگوهای معماری گوناگون (نظیر Blackboard، Agency، … ) معرفی شده است.
زبان های توصیف معماری مخصوص عامل ها
پایان
38