From extended feature models to constraint logic programming از ویژگی های گسترش...

30
رانان و همکا احمد سرکJune 2012 نده ده ارائه: حمدید مهدی محم مم خدا به نا

description

از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت از این رو هدف این مقاله معرفی یک روش مپ کردن(Mapping) برای تبدیل ویژگی های گسترش یافته مدل ها شامل درخت روابط متقابل به برنامه نویسی منطقی محدودیت بر روی دامنه محدود می باشد. Constraint Logic Programming برنامه نویسی منطقی محدودیت یعنی برنامه نویسی منطقی با اعمال محدودیت در مساله که ما را قادر می سازد به طور طبیعی بتوانیم مدل هایی دارای روابط را اجرا و تجزیه و تحلیل کنیم.

Transcript of From extended feature models to constraint logic programming از ویژگی های گسترش...

Page 1: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

احمد سرکان و همکاران

June 2012 محمد مهدی محمدی: ارائه دهنده

به نام خدا

Page 2: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مقدمه

پیچیدگی ویژگی های مدل ها در محصوالت واقعی هدف مقاله

EFM To CLP(FD)

نمایش نتایج

Page 3: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

یک مثال برای دید بهتر

Page 4: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

معرفی نرم افزار خط تولید(Software Product Line)

رشد مهندسی در خطوط تولید سود گسترش نرم افزار ها چالش ها نیازها

مروری بر مقاالت قبلی D. Benavides, Automated analysis of feature models 20 years

later: a literature review (2010)

A.S. Karataş, Mapping extended feature models to constraint

logic programming over finite domains 2010

CLP and CLP(FD)

فرضیات

Page 5: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

پس زمینه

ویژگی های مدل ویژگی ویژگی مدل

مجموعه سلسله مراتبی از ویژگی ها○ روابط تعریف قواعد در ویژگی ها○ روابط تعریف محدودیت های درخت متقابل○ (مسائل و تصمیمات)اطالعات اضافی○

روش های نمایش دیاگرام○ درخت○ گراف○

Page 6: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

پس زمینه

(ادامه)های مدل ویژگی رابطهانواع

روابط تجزیه○

روابط درخت متقابل○

Page 7: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

پس زمینه

(ادامه)ویژگی های مدل کاردینالیتی

صفات

Page 8: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

پس زمینه

برنامهههه نویسهههی مندقهههی محهههدودیت بههها دامنهههه ههههای CLP(FD)محدود

Page 9: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

(دستور زبان برای روابط درخت متقابل)سینتکسایجاد روابط بین

ویژگی پیچیده با ویژگی ویژگی با صفت صفت با صفت صفت با صفت روابط

Page 10: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

(دستور زبان برای روابط درخت متقابل)سینتکستعاریف

عملگر رابطه ای(relop)

○= ≠ ≥ ≤ > <

سازگاری شرط (عدم نیاز)مستثنا

○P excludes Q

○P & Q هر دو ویژگی هستند نیازمند

○P requires Q

○P ویژگی است ○Q یک

ویژگی- شرط- ترکیبات ساخته شده از ویژگی ها و یا شرط ها-

Page 11: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

(دستور زبان برای روابط درخت متقابل)سینتکستعاریف

نیازمند و عدم نیاز: مثل

○X excludes Y

○X requires Z

○F requires (X.a > 10)

○F requires (X & not Y & (Z.a < X.a Or Z.a > 100))

محدودیت پیچیده Or(X excludes Z)(X excludes Y): مثال○

نگهبان محدودیت ویژگی ضمنی

X.selected = True , Y.selected = False: مثال○

Page 12: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

گرامر مستقل از متن برای روابط

فرمول بندی روابط موجود در مدل

Page 13: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مپ کردن

صفت ها و متغییر ها دامنه ها و محدودیت ها روابط و قیود

Page 14: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مپ کردنمراحل

مپ کردن روابط تجزیه ارتباط اجباری○ ارتباط اختیاری○ ارتباط یا منطقی○ روابط جایگزین○ کردن روابط تجزیه کاردینالیتیمپ

گروه کاردینالیتی○ ویژگی کاردینالیتی○مپ کردن روابط درخت متقابل

دامنه های صفات○ شرط ها○ روابط نیازمند○ (مستثنا)روابط عدم نیاز○ محدودیت پیچیده○ نگهبان محدودیت○

Page 15: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

Page 16: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

فرض های موجود در درخت متقابل

Page 17: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

مپ کردن دامنه صفات ضمنی MobilePhone.selected ∈ {true, false} ∧

Hardware.selected ∈ {true, false} ∧

TaskScheduler.selected ∈ {true, false} ∧

Games.selected ∈ {true, false} ∧

CPU1.selected ∈ {true, false} ∧

CPU2.selected ∈ {true, false} ∧

. . .∧

Tetris.selected ∈ {true, false}

Page 18: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

مپ کردن دامنه دیگر صفات ThreeGConn.speed ∈ {2, . . . , 14} ∧

Screen.resolution ∈ {1, . . . , 4} ∧

RAM.size ∈ {1, . . . , 2048} ∧

VideoCall.mpc ∈ {2, . . . , 8} ∧

CPU1.speed ∈ {800, . . . , 2400} ∧

CPU2.speed ∈ {800, . . . , 2400}

Page 19: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

روابط اجباری: مپ کردن روابط تجزیه (MobilePhone.selected⇔Hardware.selected) ∧

(Hardware.selected⇔Screen.selected) ∧

(Hardware.selected⇔Processors.selected) ∧

(Hardware.selected⇔RAM.selected)

Page 20: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

روابط اختیاری: مپ کردن روابط تجزیه (VideoCall.selected⇒MobilePhone.selected) ∧

(Games.selected⇒MobilePhone.selected) ∧

. . . ∧

(GPU.selected⇒Processors.selected)

Page 21: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

روابط : مپ کردن روابط تجزیهOR (Chess.selected ∨ ThreeDCRace.selected ∨

Tetris.selected)⇔Games.selected

Page 22: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

کاردینالیتیروابط : مپ کردن روابط تجزیه (Processors.selected⇔CPU1.selected) ∧

(CPU2.selected⇒Processors.selected)

Page 23: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

روابط درخت متقابل: مپ کردن روابط تجزیه

C1: (CPU1.selected ∧ CPU2.selected)

⇒TaskScheduler.selected

C2:

(VideoCall.mpc ≥ 4 ∧ VideoCall.selected)⇒

(VideoCall.selected⇒Screen.resolution ≥ 3 ∧

Screen.selected ∧

ThreeGConn.speed ≥ 6 ∧ ThreeGConn.selected)

Page 24: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

روابط درخت متقابل: مپ کردن روابط تجزیه C3: ThreeDCRace.selected⇒

(GPU.selected ∧ RAM.size ≥ 512 ∧ RAM.selected) ∨

(RAM.size ≥ 1024 ∧ RAM.selected)

C4:

(Screen.resolution < 3 ∧ Screen.selected)⇒

¬(Screen.selected ∧ GPS.selected)

C5:

TaskScheduler.selected⇒

(CPU1.speed ≥ CPU2.speed ∧ CPU1.selected ∧ CPU2.selected)

Page 25: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

مثال مپ کردن

در نهایت فرمول نهایی با ترکیب مپ های بدست آمده تولید شده و بدست می .آید

Page 26: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

تجزیه و تحلیل مدل نمونه

مشخصات مدل 100 ویژگی 209 صفت 68 روابط تجزیه 125 متقابلروابط درخت

Page 27: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

تجزیه و تحلیل مدل نمونه

آزمون ها دارد؟محصولی آیا مدل : مدلویژگی خالی ؟ویژگی مدل استآیا محصول متعلق به محصوالت ارائه شده توسط : محصول معتبر

یعنی )به مدل ویژگیبا توجه معتبر است آیا تندیمات جزئی: تندیمات جزئی معتبر ؟( هیچ تناقضی را شامل نمی شود

ویژگی های مدلمحاسبه تمام محصوالت ارائه شده توسط : محصوالت همه

ویژگی های مدلارائه شده توسط محصوالت محاسبه تعداد : محصوالت تعداد

ارائه شده استتحقق دستیابی به تابع هدف در محصوالت محاسبه : سازی بهینه.

Page 28: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

تجزیه و تحلیل مدل نمونه

نتایج

Page 29: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

تحقیقات آینده

گزارهتجزیه و تحلیل مبتنی بر منطق مفصلتجزیه و تحلیل مبتنی بر منطق محدودیتتجزیه و تحلیل مبتنی بر برنامه نویسی

Page 30: From extended feature models to constraint logic programming  از ویژگی های گسترش یافته مدل ها به برنامه نویسی منطقی محدودیت

بحث ها و چالش ها

به برنامه یافته مدل ها های گسترش ویژگی ارائه یک مپ برای تبدیل محدودیتنویسی منطقی

در کاردینالیتی ویژگی مدل پایه و مبتنی بر همچنین به طور کامل بر روی شدپیشنهادی بحث طرح

ایجاد یک گرامر مستقل از متن برای ایجاد روابطی که در مپ کردن اجازه نمایش دارند

تنها محدودیت روش آن است که دامنه صفات مورد نیاز باید محدود و ثابت باشد