خلاصه پایان نامه بهبود میزان تخمین هزینه پروژه های نرم افزاری در مدل COCOMO II مبتنی بر الگوریتم های منطق فازی
پایان نامه جهت اخذ مدرک کارشناسی ارشد
در رشته مهندسی کامپیوتر – گرایش نرمافزار
چکیده
در تمامی پروژه هایی که امروزه انجام میشوند بحث مدیریت مسألهای بسیار تعیین کننده است. پروژههای نرمافزاری نیز از این قاعده مستثنی نیستند. از مهمترین جنبههای فعالیت توسعه نرمافزاری بحث مدیریت زمان و هزینه است. با توجه به اینکه در مراحل ابتدایی توسعه نرمافزار اطلاعات دقیقی نسبت به جنبههای مختلف توسعه وجود ندارد؛ تخمینی دقیقتر از هزینههای پیشرو میتواند امری حیاتی در موفقیت یک نرمافزار باشد. در این پژوهش توانستم با بکارگیری مدل COCOMO II، که از شناختهشدهترین روشهای تخمینِ هزینههای توسعه نرمافزاری مبتنی بر مدلهای الگوریتمی است، و ترکیب آن با منطقفازی، مدلی را ایجاد کرده که با توجه به برخی پارامترهای موجود در فازهای اولیهی توسعه، تخمینهای دقیقتری نسبت به هزینه انجام میدهد. پیادهسازی آن در نرمافزار MATLAB و با کمک دادههای مصنوعی صورت گرفته شده است. بررسی صحت دادههای ایجاد شده نیز در نرمافزار SPSS صورت گرفته است. همچنین اینکه از دادههای 2 Dataset رسمی COCOMO II برای ارزیابی مدل پیشنهادی استفاده شدهاند که نتایج حاصله با استفاده از تکنیکهای MMRE و PRED مورد بررسی واقع شدهاند که خروجیهای تولید شده نشان میدهند سیستم پیشنهادی در مقایسه با مدل اصلی COCOMO II که میانگین بهبودی معادل 5.901% داشته است.
کلمات کلیدی: مدل COCOMO II، تخمین هزینه، بهینه سازی، منطقفازی
فصل اول
فصل1 کلیات پژوهش
1-1. مقدمه
طبق مطالعات انجام شده در زمینه مهندسی نرمافزار سیستمهای کامپیوتری، به هنگام ساخته شدن سیستمها و محصولات مبتنی بر کامپیوتر، مدیریت همچنان فعالیتی ضروری خواهد بود. مدیریت پروژه با طرحریزی، نظارت و کنترل افراد، فرایندها و رخدادهایی که با پدیدار شدن نرمافزار از مفاهیم اولیه تا اجرای عملی مطرح میشوند، مرتبط است.[1]
ساختن نرمافزار کامپیوتری کار پیچیدهای است خصوصاً اگر افراد بسیاری در آن دخیل باشند و برای مدت نسبتاً طولانی بر روی آن کار کنند. بدین دلیل است که باید پروژههای نرمافزاری را اداره و کنترل کنیم. مراحل مدیریت همان درک کردن چهار P یعنی افراد، محصول، پروسه و پروژه است. افراد باید برای انجام درست کار نرمافزار، سازماندهی شوند. پروژه باید با برآورده کردن نیرو و زمان مورد نیاز برای انجام کار، تشریح محصولات، انجام کنترل کیفیت و تعیین مکانیزمهای نظارت و کنترل کارِ تشریح شده در طرح، طراحی شود. برنامهریزی یک پروژه نرمافزاری شامل بحث تخمین، یعنی تلاش شما برای تعیین میزان پول، کار لازم، تعداد منابع و مقدار زمان لازم برای ایجاد یک سیستم یا محصول خاص مبتنی بر نرمافزار میباشد[1].
همانگونه که میدانیم در بحث مدیریت پروژه نرمافزاری موضوع تخمین که شامل تخمین تلاش، زمانبندی و هزینه مورد نیاز است، یکی از فازهای مهم در توسعه نرمافزار است و یک تخمین دقیق شرایطی را فراهم میآورد که روند توسعه نرمافزاری با پایهای قدرتمند شروع شود[1،2]. دقت تخمین نرمافزار به این دلیل مهم است که میتواند به پیشبینی میزان نیروی انسانی مورد نیاز و زمانبندی پروژه و بطور کلی هزینه پروژه به منظور معین کردن منابعی که در آینده مورد نیاز خواهند بود، کمک کند[2]. همچنین تخمین هزینه نرمافزاری دقیق در بودجهبندی، برنامهریزی پروژه، کنترل پروژه و در نهایت مدیریت پروژه بصورت موثر، بسیار اهمیت دارد[1،2].
در دهههای اخیر بسیاری از مدلهای تخمین هزینههای نرمافزاری توسعه داده شدهاند[3]. این مدلها از دو تکنیک مبتنی بر تجربه و مبتنی بر مدلهای الگوریتمی برای این تخمین استفاده میکنند. تکنیکهای مبتنی بر تجربه عبارتند از تخمین میزان نیروی انسانی مورد نیاز، توسط مدیر پروژه بر اساس تجربیات خود از پروژههای گذشته؛ و تکنیک مبتنی بر مدل الگوریتمی عبارت است از یک فرمول که برای محاسبهی میزان نیروی انسانی مورد نیاز یک پروژه بر اساس تخمینی از خصوصیات محصول نظیر اندازه، و خصوصیات فرآیند نظیر تجربهی افراد درگیر در پروژه مورد استفاده قرار میگیرد[2-4] . این فرمولها میتوانند بوسیله تحلیل هزینهها و ویژگیهای پروژههای کامل شده قبلی، ساخته شوند و نزدیکترین فرمول به تجربههای واقعی را پیدا کنند[3].
در این پژوهش ما یک مدل ترکیبی مبتنی بر الگوریتمهای منطقفازی ارائه نمودهایم؛ که میتواند با تکیه بر تواناییهای منطقفازی و آموزشهای اعمال شده بر آن بواسطهی Datasetی که بصورت مصنوعی ایجاد کردهایم تخمینهای دقیقتری را ارائه دهد.
تخمین بر اساس هدف مورد انتظار، میتواند در فازهای مختلف پروژه محاسبه شود. بنابراین ما به یک مدل خوب برای محاسبه این پارامترها نیاز داریم. یک مدل تخمین با دقت قابل قبول، امکان ایجاد چالش بین ذیالنفعان را در مراحل توسعه پروژه کاهش میدهد.
[1]COCOMO یکی از شناخته شدهترین مدلهای مبتنی بر مدل الگوریتمی است که در سال 1981 توسط Barry Boehm ارائه گردید. این مدل از آنالیز 63 پروژه نرمافزاری ایجاد شده است. اندازه تعداد خطوط پروژههای مورد مطالعه در محدوده بین 2000 تا 100000 خط کد بودهاند که از زبانهای برنامهنویسی مختلفی استفاده کرده بودند[18,20،25]. متدولوژی مورد استفاده در این نرمافزارها به دلیل رایج بودن در آن زمان، مدل آبشاری بوده است. این مدل اغلب به نام COCOMO 81 معروف است. Boehm سه سطح به نامهای COCOMO پایه ای، COCOMO میانی و COCOMO مشخصات را برای این الگوریتم (COCOMO 81) پیشنهاد نمود.
در سال 1995 مدل COCOMO II جانشین 81 COCOMO شد و بعد از آن در سال 2000 کتاب Software Cost Estimation with COCOMO II انتشار یافت. با توجه به نحوه محاسبات این نسخه به نظر میرسد که این مدل برای تخمین هزینه نرمافزاری در پروژههای نرمافزاری مدرن مناسبتر است. این مدل حمایت بیشتری را از فرایندهای توسعه نرمافزاری مدرن و پایگاه دادههای پروژههای بهروز شده انجام میدهد[11,18,29]. نیاز به مدل جدید از آنجایی آغاز شد که تکنولوژی توسعه نرمافزار، از پردازندههای مرکزی[2] و پردازش دستهای به سمت توسعه نرمافزارهای رومیزی[3]، قابلیت استفاده مجدد کدها و استفاده از مؤلفههای نرمافزاری در دسترس، منتقل گردید[22].
منطقفازی در 1965 برای اولینبار در مقالهای به همین نام، توسط پروفسور «لطفی عسگرزاده» ارائه شد و در حال حاضر کاربردهای فراوانی دارد و در حیطه مدیریت نیز جای خاصی را به خود اختصاص داده است. این منطق برای سنجش مسائل و الگوهای کیفی، کاربرد فراوانی دارد و پاسخگوی مسائل زیادی در رشتههای علوم انسانی بویژه مدیریت است. منطقفازی راهکاری است که بوسیله آن میتوان سیستمهای پیچیده را که مدلسازی آنها با استفاده از ریاضیات و روشهای مدلسازی کلاسیک غیرممکن بوده و یا بسیار مشکل است، به آسانی و با انعطاف بسیار بیشتر، مدلسازی کرد[14,25,26].
در سیستمهای دارای عدم قطعیت زیاد و پیچیدگیهای بالا، منطقفازی روشی مناسب برای مدلسازی به شمار میرود. همانگونه که ذکر شد تخمین دقیقتر در بحث مدیریت منابع هنگام توسعه پروژههای نرمافزاری امری است بسیار مهم و قابل توجه، لذا هدف این پژوهش این است که با مطالعه و بکارگیری منطقفازی، یک تابع فازی مناسب استخراج کرده، که این تابع بواسطهی ساختن ترکیبی مناسب از قوانین میان بخشی از 23 پارامتر ذکر شده در COCOMO II نظیر محرکهای هزینه (مثل CPLX که بیانگر پیچیدگی نرمافزار، PCAP که بیانگر قابلیت برنامهنویس است و غیره)، فاکتورهای مقیاس (نظیر TEAM که بیانگر انسجام تیمی افراد دخیل در پروژه است) و اندازهی نرمافزار، حاصل میگردد، سپس با بررسی و استفاده از قوانین بدست آمده و انجام مراحل مربوط به فازیسازی، با استفاده از یک موتور استنتاج فازی در یکی از نرمافزارهای شبیهسازی MATLAB یا SPSS تستهایی با تعدادی از دادههای موجود در مجموعه دادههای[4] نمونه از جمله مجموعه دادههای COCOMO81، COCOMO II یا نسخههای COCOMONASA انجام داده و خروجیهای مدنظر را بدست آوریم. در آخر نیز بین خروجیهای تولید شده توسط مدل فازی پیشنهادی، و مدل اصلی COCOMO II مقایسهای مبتنی بر برخی تکنیکهای مشهور نظیر دامنهی خطای نسبی (MMRE) صورت خواهد گرفت.
به منظور دستیابی به ساختاری منسجم و مناسب برای انجام تحقیق، در ادامه این فصل به بیان مهمترین اصول و پاسخگویی به سوالات اصلی یک تحقیق علمی، پرداخته خواهد شد.
1-2. تعریف مساله و سوال اصلی تحقیق
در راستای افزایش دقت تخمین هزینههای یک پروژه با استفاده از منطقفازی سوال زیر مطرح است:
چگونه میتوان با استفاده از منطقفازی دقت میزان تخمین هزینه پروژههای نرمافزاری را در مدل COCOMO II بهبود بخشید؟
1-3. فرضیهها
1. با استفاده از منطقفازی میتوان برای تنظیم پارامترهای تخمین تلاش در مدل COCOMO II قوانین ایجاد نمود.
2. با استفاده از منطقفازی میتوان مدلی را پیادهسازی کرد که بصورت کاربردی قابل استفاده باشد.
3. با استفاده از ترکیب منطقفازی و مدل COCOMO II میتوان مدلی را پیادهسازی کرد که دقت تخمینهای آن نسبت به خود مدل COCOMO II بهینهتر باشد.
1-4. اهداف تحقیق
قصد داریم تا با نوآروی در راستای منطقفازی در جهت بهبود دقت تخمین هزینههای توسعه نرمافزار به اهداف دیگری نیز که در ادامه به آنها اشاره شده دست بیابیم:
ارائه روشی جهت بهبود روش تخمین هزینههای نرمافزاری در مراحل ابتدایی پروژه
کمک به مدیر پروژه برای موفقیت در پروژههای بزرگ با بهبود تخمین هزینههای توسعه نرمافزار
کاهش چالشهای میان ذیالنفعان در مراحل توسعه پروژه
بهینه نمودن منابع(انسانی، سختافزاری، نرمافزاری و زمان)
کمک به بالا بردن سود شرکت با توجه به استفاده بهینه از منابع
1-5. روش تحقیق
روش کار بصورت کتابخانهای میباشد. در این روش اسناد مرتبط در کتابهای کتابخانههای دانشگاهی (دانشگاه)، مقالات و مجلات معتبر(Springer, IEEE, …)، سایتها و سیستمهای اطلاعرسانی اینترنتی و نشریههای رسمی دولتی میباشد. روش انجام تحقیق به صورت تاریخی، از طریق مطالعه طرحها و روشهای مختلف موجود در راستای موضوع تحقیق و نیز به صورت تطبیقی از طریق مقایسه با روشهای مرتبط موجود خواهد بود.
1-6. مراحل انجام تحقیق
ابتدا با مطالعات پیمایشی در بین منابع دیجیتالی و غیر دیجیتالی سعی در فهم و مشخص نمودن الگوریتم و پارامترهای موثر در تخمین هزینههای نرمافزار با استفاده از COCOMO II خواهیم نمود.
پس از آن با مطالعات دقیقتر روی چگونگی کار مبحث منطقفازی و چگونگی استفاده از این روش برای این مسأله به دنبال یافتن موارد زیر خواهیم بود.
یافتن پارامترهای صحیح برای استفاده در این روش.
یافتن تابع فازی کارآمد برای بکارگیری در حل مسأله که این تابع بواسطهی ساختن ترکیبی مناسب از قوانین میان بخشی از 23 پارامتر ذکر شده در COCOMO II نظیر محرکهای هزینه (مثل CPLX که بیانگر پیچیدگی نرمافزار، PCAP که بیانگر قابلیت برنامهنویس است و غیره)، فاکتورهای مقیاس(نظیر TEAM که بیانگر انسجام تیمی افراد دخیل در پروژه است) و اندازهی نرمافزار حاصل می گردد.
بررسی موارد بدست آمده در منطقفازی با استفاده از یک موتور استنتاج فازی در یکی از نرمافزارهای شبیهسازی MATLAB یا SPSS و آزمایش کردن با تعدادی از دادههای موجود در Dataset و بدست آوردن خروجیهای مدنظر در نرمافزار MATLAB یا SPSS
بررسی نتایج بدست آمده با دادههای تست Dataset و مقایسهای مبتنی بر برخی تکنیکهای مشهور نظیر دامنه ی خطای نسبی(MMRE).
استخراج دادهها و مقایسه آنها با سایر کارهای مرتبط صورت گرفته.
ارائه و تجزیه و تحلیل نتایج بدست آمده.
1-7. ساختار پایاننامه
فصل دوم مبانی تحقیق و مروری بر تحقیقات پیشین است که در آن به بررسی مدل COCOMO II، منطقفازی، خوشهبندی فازی و نیز مروری بر کارهای مرتبط پرداختهایم. فصل سوم ارائه و معرفی مدل پیشنهادی مبتنی بر منطقفازی و همچنین معرفی و تعیین اعتبار Dataset مورد استفاده قرار گرفته میباشد. فصل چهارم به معرفی شاخصهای ارزیابی و ارائه نتایج شبیهسازی مدل پیشنهادی بواسطهی این شاخصها بهمراه نمودار و جدول اختصاص خواهد یافت. فصل پنجم شامل جمعبندی و ارائه پیشنهادهایی برای انجام تحقیقات بیشتر خواهد بود.
فصل2 روش پیشنهادی
2-1. فرضیات الگوریتم
مدل پیشنهادی جدید مبتنی بر مدل COCOMO II بوده است. این مدل در واقع یک روش تخمین تلاش پروژه، مبتنی بر الگوریتمهای منطقفازی است که تصمیمگیری راجع به خروجی خود را برمبنای متغیرهای زبانی ورودی تعیین مینماید. ورودیهای این مدل، ترکیبی از پارامترهای موجود در مدل COCOMO II هستند که پس از انتخاب وضعیت و اعمال عملیات جمع و یا ضرب مربوط به آنها، به عنوان سه گروه جداگانه به سیستم وارد میگردند تا سیستم بر مبنای وضعیت جاری آنها تصمیمگیری نماید.
فرض الگوریتم آن است که شخصی که به انتخاب پارامترهای سیستم میپردازد شخصی مدیر و آگاه از شرایط وضعیت فعلی خود، پروژه و تیمی است که با آن مشغول به کار است. همچنین اینکه فرض شده که اندازهی محصول ورودی نیز تقریباً با استفاده از روشهای موجود بدرستی پیشبینی شده است.
2-2. معرفی EST-COCOMO II
فهرست پایان نامه بهبود میزان تخمین هزینه پروژه های نرم افزاری در مدل COCOMO II مبتنی بر الگوریتم های منطق فازی
فهرست:
فصل1 کلیات پژوهش... 1
1-1. مقدمه. 2
1-2. تعریف مساله و سوال اصلی تحقیق.. 5
1-3. فرضیهها 5
1-4. اهداف تحقیق.. 5
1-5. روش تحقیق.. 6
1-6. مراحل انجام تحقیق.. 6
1-7. ساختار پایاننامه. 7
فصل2 روش پیشنهادی.. 8
2-1. فرضیات الگوریتم.. 9
2-2. معرفی EST-COCOMO II 9
2-3. بررسی پیادهسازی مدل ترکیبی EST-COCOMO II 11
2-3-1. معرفی ابزار MATLAB. 11
2-3-1-1. اندازهگیری دقیق.. 12
2-3-1-2. قدرت Matlab. 13
2-3-2. تشریح کلی پیادهسازی سیستم.. 14
2-3-2-1. روش آزمون و خطا 14
2-3-2-2. روش جداول ارجاع. 14
2-3-2-3. روش ANFIS. 15
2-3-3. روند پیادهسازی سیستم در نرمافزار MATLAB. 16
2-3-3-1. تشکیل Dataset مصنوعی.. 18
2-3-3-2. طراحی ANFIS. 21
2-3-4. معرفی و ارزیابی Dataset مصنوعی ایجاد شده. 28
2-3-4-1. آزمون تحلیل واریانس مقایسه چند جامعه مستقل (ANOVA) 28
2-3-5. شاخصهای EST-COCOMO II 31
2-4. جمعبندی.. 32
فصل3 مبانی تحقیق و مروری بر تحقیقات پیشین.. 33
3-1. برآورد پروژههای نرمافزاری.. 34
3-1-1. تکنیکهای مبتنی بر تجربه. 35
3-1-2. تکنیک مبتنی بر مدل الگوریتمی.. 35
3-2. مدل COCOMO II 36
3-2-1. مقدمه. 36
3-2-2. اندازهگیری.. 38
3-2-3. تخمین تلاش.... 43
3-2-3-1. محرکهای هزینه در مدل Post Architecture. 44
3-2-3-2. محرکهای مدل Early Design. 61
3-2-4. تخمین هزینه. 63
3-3. منطقفازی.. 63
3-3-1. مجموعههای قطعی.. 64
3-3-2. مجموعههای فازی.. 65
3-3-3. تابع عضویت... 65
3-3-3-1. اشکال مختلف توابع عضویت... 66
3-3-4. عملیات اساسی روی مجموعههای فازی (t-norm, co-norm): 70
3-3-5. متغیرهای زبانی.. 71
3-3-6. روابط فازی.. 73
3-3-7. کنترل فازی.. 73
3-3-7-1. مزایای کنترل فازی.. 74
3-3-7-2. مراحل طراحی یک سیستم فازی.. 75
3-3-7-3. بررسی فرایند طراحی تعدادی از نمونههای واقعی.. 75
3-3-8. موتور استنتاج.. 77
3-3-8-1. روشهای غیر فازی سازی.. 78
3-3-8-2. محتملترین در مقابل سازگارترین روش... 78
3-4. خوشهبندی فازی C-Means. 81
3-4-1. مقدمه. 81
3-4-2. هدف از خوشهبندی.. 82
3-4-3. خوشهبندی فازی.. 82
3-4-3-1. الگوریتم خوشهبندی فازی C-Means. 84
3-4-4. بررسی نمونه تست... 88
3-5. مروری بر برخی کارهای مرتبط... 88
3-5-1. جمعبندی.. 90
3-6. نتیجهگیری.. 92
فصل4 بررسی سیستم و ارزیابی نتایج آن.. 93
4-1. شاخصهای ارزیابی و شبیهسازی.. 94
4-2. روند بررسی و نتایج خروجی.. 96
4-3. جمع بندی.. 100
فصل5 جمعبندی و پیشنهادها 102
5-1. یافتههای تحقیق.. 103
5-2. نوآوری تحقیق.. 104
5-3. پیشنهادها 105
مراجع.. 106
واژهنامه. 112
منبع:
[1] Pressman, R.S. (2005). ”Software Engineering: A Practitioner's Approach”, Boston.
[2] McConnell, S. (1996). “Rapid development: taming wild software schedules”, Microsoft Press.
[3] Anupama Kaushik, A.C., Deepak Mittal, Sachin Gupta. (2012). “COCOMO Estimates Using Neural Networks. I.J. Intelligent Systems and Applications”, pp. 22-28.
[4] Sommerville, I. (2007). ” Software Engineering, Addison-Wesley”.
[5] Ali Bou Nassif and Luiz Fernando Capretz, D.H. (2012). “Software Effort Estimation in the Early Stages of the Software Life Cycle Using a Cascade Correlation Neural Network Model”, 13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, IEEE, pp. 589-594.
[6] Chintala Abhishek, V.P.K., Harish Vitta, Praveen Ranjan Srivastava. (2010). “Test Effort Estimation Using Neural Network”, J. Software Engineering & Applications, pp. 331-340.
[7] Divya Kashyap, A.T., Prof. A. K. Misra. (2012). “Software Development Effort and Cost Estimation: Neuro-Fuzzy Model”, IOSR Journal of Computer Engineering (IOSRJCE), pp. 12-14.
[8] Jagannath Singh, B.S.,”Software Effort Estimation with Different Artificial Neural Network”, pp. 815-818.
[9] Jaswinder Kaur, S.S., Dr. Karanjeet Singh Kahlon, Pourush Bassi. (2010). “Neural Network-A Novel Technique for Software Effort Estimation”. International Journal of Computer Theory and Engineering, pp. 13-17.
[10] Kirti Seth, A.S., Ashish Seth. (2010). “Component Selection Efforts Estimation– a Fuzzy Logic Based Approach”, International Journal of Computer Science and Security, (IJCSS), pp. 210-215.
[11] Kunal Gaurav, P.J., K.S.Patnaik, PhD. (2013). “Analyzing Effort Estimation in Multistage based FL-COCOMO II Framework using various Fuzzy Membership Functions”, International Journal of Computer Applications, pp. 35-39.
[12] Manpreet Kaur, S.G. (2012). “Analysis of Neural Network based Approaches for Software effort Estimation and Comparison with Intermediate COCOMO”. International Journal of Engineering and Innovative Technology (IJEIT), pp. 197-200.
[13] Prasad Reddy, Rama Sree P and Ramesh. (2010). “Software Effort Estimation using Radial Basis and Generalized Regression Neural Networks”, JOURNAL OF COMPUTING, pp. 87-92.
[14] Prasad Reddy, Rama Sree. (2011). “Application of Fuzzy Logic Approach to Software Effort Estimation”, (IJACSA) International Journal of Advanced Computer Science and Applications, pp. 87-92.
[15] Raju. (2010). “An Optimal Neural Network Model for Software Effort Estimation”, Int.J. Of Software Engineering, IJSE, pp. 63-78.
[16] Roheet Bhatnagar, Vandana Bhattacharjee. (2011). “A Novel Approach to the Early Stage Software Development Effort Estimations using Neural Network Models: A Case Study”, IJCA Special Issue on “Artificial Intelligence Techniques - Novel Approaches & Practical Applications”, pp. 8-11.
[17] Roheet Bhatnagar, M.K.G., Vandana Bhattacharjee. (2010). “Software Development Effort Estimation – Neural Network vs. Regression Modeling Approach”. International Journal of Engineering Science and Technology, pp. 2950-2956.
[18] Sandeep Kad, V.C. (2011). “Fuzzy Logic based framework for Software Development Effort Estimation”. An International Journal of Engineering Sciences, pp. 330-342.
[19] Shiyna Kumar, V.C. (2013). “Neural Network and Fuzzy Logic based framework for Software Development Effort Estimation”, International Journal of Advanced Research in Computer Science and Software Engineering, pp. 19-24.
[20] Vishal Sharma, H.K.V. (2010). “Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development”, IJCSI International Journal of Computer Science, pp. 30-38.
[21] Xishi Huang, D.H., Jing Ren, Luiz F. Capretz. (2005). “Improving the COCOMO model using a neuro-fuzzy approach”, Elsevier, pp. 29-40.
[22] Ali Idri, A.A., Laila Kjiri. (2000). “COCOMO Cost Model Using Fuzzy Logic”, in 7th International Conference on Fuzzy Theory & Technology, New Jersy, pp. 1-4.
[23] Barry Boehm, B.C., Ellis Horowitz, Chris Westland, Ray Madachy, Richard Selby. (1995). “Cost Models for Future Software Life Cycle Processes: COCOMO 2.0”, Science Publishers, Amsterdam, The Netherlands.
[24] Hamdy, A. (2012). “Fuzzy Logic for Enhancing the Sensitivity of COCOMO Cost Model”, Journal of Emerging Trends in Computing and Information Sciences, pp. 1292-1297.
[25] Kasabov, N.K. (1998). “Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering”, The MIT Press.
[26] Attarzadeh, I.H.O., Siew. (2009). “Proposing a new high performance model for Software Cost estimation”, in Second international Conference on Computer and electrical Engineering, pp. 112-116.
[27] K.S.Patnaik and P.J.a. (2012). “Comparative Analysis of COCOMO81 using various Fuzzy Membership Functions”, International Journal of Computer Applications, pp. 20-27.
[28] Vishal Sharma and Harsh Kumar Verma. (2010). “Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development”, IJCSI International Journal of Computer Science Issues, pp. 30-38.
[29] Barry W. Boehm, Chris Abts, A. Winsor Brown, Sunita Chulani, Bradford K. Clark, Ellis Horowitz, Ray Madachy, Donald Reifer, and Bert Steece. (2000). “Software Cost Estimation with COCOMO II”, Prentice Hall, Englewood Cliffs, N.J.
[30] R. Royce. (1998). “Software Project Management A Unified Framework”, Addison-Wesley, Reading, Ma.
[31] M. Paulk, C. Weber, B. Curtis, and M. Chrissis. (1995). “The Capability Maturity Model: Guidelines for Improving the Software Process”, Addison-Wesley.
[32] Boehm, B., Clark, B., Horowitz, E., Westland, C., Madachy, R., Selby, R. (1995), “Cost Models for Future Software Life-cycle Processes: COCOMO 2.0” Annals of Software Engineering Special Volume on Software Process and Product Measurement, J.D. Arthur and S.M. Henry (Eds.), J.C. Baltzer AG, Science Publishers, Amsterdam, The Netherlands , pp. 45-60.
[33] Zadeh L.A. (1965). “Fuzzy sets”. Information and Control 8: pp. 338-353.
[34] Novák, V., Perfilieva, I. and Močkoř, J. (1999). “Mathematical principles of fuzzy logic Dodrecht: Kluwer Academic”, 320 pp. ISBN 0-7923-8595-0.
[35] Ahlawat, Nishant, Ashu Gautam, and Nidhi Sharma. (2014). “Use of Logic Gates to Make Edge Avoider Robot”. International Journal of Information & Computation Technolog, pp. 629-632.
[36] (2008). “Fuzzy Logic”. Stanford Encyclopedia of Philosophy. Stanford University.
[37] Pelletier, Francis Jeffry. (2000). “Review of Metamathematics of fuzzy logics”. JSTOR 421060. The Bulletin of Symbolic Logic 6 (3): pp. 342-346.
[38] Zadeh, L. A. et al. (1996). “Fuzzy Sets, Fuzzy Logic, Fuzzy Systems”. World Scientific Press, ISBN 981-02-2421-4
[39] (2014). “The L-Shaped Membrane”. MathWorks.
[40] (2013). “System Requirements and Platform Availability”. MathWorks.
[41] Richard Goering. (2004). “Matlab edges closer to electronic design automation world”. EE Times.
[42] M. Halkidi, Y. Batistakis and M. Vazirgiannis. (2001). “On Clustering Validation Techniques", Journal of Intelligent Systems, pp. 107-145.
[43] George E. Tsekouras and Haralambos Sarimveis. (2004). “A new approach for measuring the validity of the fuzzy c-means algorithm”. Advances in Engineering Software 35, pp. 567-575.
[44] N. Zahid, M. Limouri and A. Essaid. (1999). “A new cluster-validity for fuzzy clustering”, Pattern Recognition 32, pp. 1089-1097.
[45] M. Ramze Rezaee, B.P.F. Lelieveldt, J.H.C. Reiber. (1998). “A new cluster validity index for the fuzzy c-mean”. Pattern Recognition Letters 19, pp. 237-246.
[46] Bezdek, J.C. (1981). “Pattern Recognization with Fuzzy Objective Function Algorithms”. Plenum press, New York.
[47] Bezdek JC. (1973). “Fuzzy mathematics in pattern classification”. PhD dissertation, Cornell University, Ithaca, NY, pp 125-138.
[48] S.L. Chiu. (1994). “Fuzzy model identification based on cluster estimation", J. Intell. Fuzzy Systems 2, pp. 267- 278.
[49] Banker R. D., Chang H., Kemerer C. (1994). “Evidence on Economies of Scale in Software Development”, Information and Software Technology, 1994, pp. 275-282.