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

Post on 30-Jun-2015

108 views 1 download

description

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

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

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

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

به نام خدا

مقدمه

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

EFM To CLP(FD)

نمایش نتایج

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

معرفی نرم افزار خط تولید(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)

فرضیات

پس زمینه

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

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

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

پس زمینه

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

روابط تجزیه○

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

پس زمینه

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

صفات

پس زمینه

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

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

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

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

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

○= ≠ ≥ ≤ > <

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

○P excludes Q

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

○P requires Q

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

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

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

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

○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: مثال○

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

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

مپ کردن

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

مپ کردنمراحل

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

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

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

مثال مپ کردن

مثال مپ کردن

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

مثال مپ کردن

مپ کردن دامنه صفات ضمنی 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}

مثال مپ کردن

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

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

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

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

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

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

مثال مپ کردن

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

(Hardware.selected⇔Screen.selected) ∧

(Hardware.selected⇔Processors.selected) ∧

(Hardware.selected⇔RAM.selected)

مثال مپ کردن

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

(Games.selected⇒MobilePhone.selected) ∧

. . . ∧

(GPU.selected⇒Processors.selected)

مثال مپ کردن

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

Tetris.selected)⇔Games.selected

مثال مپ کردن

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

(CPU2.selected⇒Processors.selected)

مثال مپ کردن

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

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)

مثال مپ کردن

روابط درخت متقابل: مپ کردن روابط تجزیه 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)

مثال مپ کردن

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

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

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

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

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

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

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

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

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

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

نتایج

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

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

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

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

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

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

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