شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات رایگان
قیمت
قیمت این مقاله: 32000 تومان (ایران ترجمه - Irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
شماره |
186 |
کد مقاله |
COM186 |
مترجم |
گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی |
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید |
نام انگلیسی |
Neural Networks for Predicting the Duration of New Software Projects |
تعداد صفحه به فارسی |
51 |
تعداد صفحه به انگلیسی |
16 |
کلمات کلیدی به فارسی |
پیش بینی مدت پروژه نرم افزاری, شبکه عصبی تابع پایه شعاعی, شبکه عصبی پیشخورد چند لایه, رگرسیون آماری |
کلمات کلیدی به انگلیسی |
software project duration prediction, radial basis function neural network, multilayer feedforward neural network, statistical regression, ISBSG |
مرجع به فارسی |
دپارتمان سیستم های اطلاعاتی، CUCEA، دانشگاه مکزیکودپارتمان فناوری اطلاعات و مهندسی نرم افزار، دانشگاه فنی، کانادا،ژورنال سیستم ها و نرم افزار |
مرجع به انگلیسی |
The Journal of Systems & Software; NU Information Systems Department, CUCEA, Universidad de Guadalajara; MA; Department of Software Engineering and Information Technology École de technologie supérieure |
سال |
2014 |
کشور |
کانادا – مکزیک |
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
نکات برجسته
-
دو شبکه عصبی جهت پیش بینی مدت توسعه پروژه های نرم افزاری جدید بکار گرفته می شوند.
-
پروژه های نرم افزاری از مجموعه های داده های ISBSG نگارش 11 فراهم آمده اند.
-
نقاط تابع تعدیلی و اندازه تیم به عنوان متغیرهای مستقل برگزیده شده اند.
-
دقت پیش بینی با توجه به باقیمانده های مطلق محاسبه شده اند.
-
دقت پیش بینی شبکه های عصبی حاصله از نقطه نظر آماری بهتر از رگرسیون آماری می باشد.
چکیده
مدت توسعه پروژه های نرم افزاری به عنوان یک مسئله رقابتی مدنظر می باشد. تنها 39% آنها با توجه به برنامه زمانبندی اصلی به موقع به اتمام می رسند. تکنیک های مرتبط با پیش بینی مدت پروژه غالباً بر مبنای قضاوت های تخصصی و مدل های ریاضیاتی، نظیر رگرسیون آماری یا فراگیری ماشینی، می باشند. تعامل این مطالعه در مبحث جاری بررسی این موضوع خواهد بود که آیا دقت پیش بینی مدت حاصله با استفاده از یک مدل شبکه عصبی پیش خورد چند لایه، که همچنین تحت عنوان پرسپترون چند لایه (MLP) خوانده می شوند، و با استفاده از یک مدل شبکه عصبی تابع پایه شعاعی (RBFNN) از نقطه نظر آماری بهتر از موارد حاصل آمده به وسیله مدل رگرسیون خطی متعدد (MLR) به شمار می آیند، آن هم به هنگامی که اندازه کاربردی و اندازه حداکثری تیم توسعه دهنده به عنوان متغیرهای مستقل مورد استفاده قرار گرفته اند یا خیر. سه مدل ذکر شده فوق با استفاده از پیش بینی مدت توسعه پروژه های نرم افزاری جدید و با توجه به مجموعه ای از پروژه ها حاصل آمده از سوی گروه استاندارد معیارسنجی نرم افزارهای بین المللی (ISBSG) نگارش 11، مورد آموزش و آزمایش قرار می گیرند. نتایج بر مبنای باقیمانده های مطلق، Pred(1) و آزمون آماری فریدمن نشان دهنده آن می باشند که دقت پیش بینی با MLP و RBFNN از نقطه نظر آماری بهتر از مدل MLR می باشد.
کلمات کلیدی: پیش بینی مدت پروژه نرم افزاری، شبکه عصبی تابع پایه شعاعی، شبکه عصبی پیشخورد چند لایه، رگرسیون آماری، ISBSG
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
1- مقدمه
مهندسی نرم افزار (SE) متشکل از تعدادی از فعالیت های توسعه محصول، شامل مدیریت مهندسی، می باشد. برنامه ریزی پروژه نرم افزار (SPP) مخاطب قراردهنده فعالیت های اصلی جهت مهیاسازی یک پروژه مهندسی نرم افزار موفق از نقطه نظر مدیریت می باشد. برنامه ریزی پروژه نرم افزار شامل برنامه ریزی فرآیند، مشخص سازی موارد قابل ارائه یا تحویل، پیش بینی نرم افزار (همچنین تحت عنوان ارزیابی نرم افزار نیز خوانده می شود)، مدیریت ریسک، مدیریت کیفیت و مدیریت برنامه ریزی است [1].
این عبارت حاصله با توجه به سه مرحله کلی به دفعات مورد استفاده قرار می گیرد: طراحی، ایجاد و آزمایش. به علاوه عبارت حفظ و نگهداری نیز به ناهنجاری های کشف نشده، تغییرات محیط عملیاتی، و نیازهای اضافه کاربر اشاره دارد که پس از تحویل محصول نرم افزار مطرح می شوند [1]. همانگونه که ذکر شد، پروژه نرم افزاری نیز به عنوان یک پروژه توسعه ارتقاء یافته به شمار می آید [23].
هر دوی مؤلفه های توسعه و حفظ و نگهداری نوعاً با فعالیت های دیگر تکمیل می شوند، نظیر مستندسازی، تحلیل ریسک، تأیید و تصدیق، ارزیابی، و برآورد یا اندازه گیری. برای هر دو مؤلفه های مربوط به توسعه و حفظ و نگهداری، انواع پیش بینی های ذیل را می توان به هنگام مشخص سازی نیازهای نرم افزاری در نظر گرفت [1]:
الف) تعداد ساعات بر حسب نفر که جهت تکمیل ویژگی های توسعه یا حفظ و نگهداری (برنامه های انجام شده) مورد نیاز هستند.
ب) مدت وظایف با توجه به زمان شروع پروژه ، یا مدتی که هر فرد بر روی یک مولفه کار می کند، و زمان پایان آن اشاره دارد. در SPP مسیر بحرانی غالباً تحت عنوان مدت [6]، برنامه زمانی [4]، یا چرخه زمانی [2] خوانده می شود.
ج) هزینه پروژه بر مبنای ضروریات منابع، نظیر افراد درگیر در پروژه یا ابزارهای مورد استفاده مشخص می شود.
پیش بینی مدت برای اهداف بودجه بندی ضروری تلقی شده و نوعاً بر حسب مبنای ماهیانه در سازمان های توسعه نرم افزار مشخص می گردد (یعنی اجاره ساختمان، بهداشت مستخدمین یا بیمه عمر و غیره). مدت پروژه ها همچنین به عنوان مرجعی برای بلوغ فرآیندها در شرکت های نرم افزاری به حساب می آید [2] [4] [21]، چرا که پیش بینی زمان کمتر یا زمان بیشتر پروژه در مرحله طراحی می تواند به طور منفی بر روی بودجه بندی تأثیرگذار باشد.
در مطالعه سال 2013 بر مبنای تحلیل پنجاه هزار پروژه توسعه یافته بین سالیان 2003 و 2012 در محیط های حقیقی از ایالات متحده (60%)، اروپا (25%) و بقیه جاها 15% که معرف مناطق دیگر جهان هستند، مشخص شده است که صرفاً 39% پروژه ها به موقع، بر مبنای بودجه مشخص شده و با ویژگی های ضروری و توابع مناسب تحویل داده شده اند. 43% آنها دارای چالش هایی بوده اند (تحویل دیر، بودجه بیش از حد و / یا برخورداری از ویژگی های کمتر از حد نیاز و توابع کمتر). به علاوه 18% نیز کاملاً با شکست روبرو گردیده اند (کنسل سازی قبل از تکمیل یا ارائه پروژه و عدم استفاده از آن به طور کلی) [11].
ما صرفاً چندین مطالعه را یافته ایم که بر روی پیش بینی مدت در چنین مبحثی تحقیقاتی را انجام داده اند، که در خلال 15 سال اخیر انتشار یافته اند: 2002 [26]، 2007 [9]، 2009 [6]، 2012 [44] و 2013 [31] [49]. Bourque و همکاران [9] گزارش نمودند که مطالعات مدت پروژه قبل از سال 2002 در اواخر دهه 1970 و در طی دهه 1980 انتشار یافته اند. با این وجود، مطالعه سال 2013 اقدام به تحلیل 171 پروژه توسعه یافته به وسیله 1000 شرکت کننده نموده است که در 50 کشور به فعالیت مشغول بوده اند [49]. البته ذکر این نکته ضروری است که در عین آنکه غالب مطالعات مرتبط با دقت چنین فرآیندهایی بر روی پیش بینی ویژگی ها و امورات انجام شده متمرکز بوده اند، مسئله پیش بینی اصلی در عمل و غالباً مدت پروژه تلقی می شود. در حقیقت، مدت توسعه به عنوان یک مسئله رقابتی در بسیاری از صنایع به شمار می آید [4] [21] [49]. بنابراین، مطالعه جاری اقدام به بررسی پیش بینی مدت پروژه های توسعه نرم افزار می نماید.
تکنیک مرتبط با پیش بینی مدت بر مبنای قضاوت های تخصصی مشخص می گردد [26] [49]، که در این زمینه می توان از رگرسیون آماری [6] [9] [26] [31] [35] [44]، شبکه های عصبی مصنوعی [6] [31] [44] و ماشین های بردار پشتیبان [44] نام برد.
یک شبکه عصبی قابلیت یادگیری توابع پیچیده (غیرخطی) را دارد [5]، و ارتباطات غیرخطی غالباً در بین متغیرهای وابسته و مستقل در پروژه های نرم افزاری مدنظر می باشند [10]. نوع شبکه عصبی استفاده شده برای پیش بینی مدت پروژه های نرم افزاری شبکه عصبی پیشخورد چند لایه می باشد که همچنین تحت عنوان پرسپترون چند لایه (MLP) نیز خوانده می شود [6] [31] [44]. در این مطالعه، نوع دیگر شبکه عصبی که تحت عنوان شبکه عصبی تابع پایه شعاعی (RBFNN) خوانده می شود ارائه خواهد شد.
در رشته پیش بینی نرم افزار، کاربرد اندازه نرم افزار به عنوان متغیر مستقل برای پیش بینی امورات مربوط به پروژه یا مولفه های مرتبط با پیش بینی پروژه، و برحسب یک رویه متعارف به شمار آمده، و امورات مربوط به پیش بینی نیز به عنوان متغیر مستقل برای پیش بینی مدت پروژه محسوب می شود [3] [6] [8] [9]. اندازه یک محصول نرم افزاری عمدتاً بر حسب نقاط تابع یا خطوط منبع کدهای برنامه نویسی تعیین می شود [40]، در حالی که مدت یک پروژه نرم افزاری عمدتاً بر حسب ماه برآورد می گردد.
با در نظرگیری آنکه امورات حقیقی مورد نیاز در زمان شروع پروژه دقیقاً مشخص نمی باشند و نمی توان از این مورد به عنوان متغیر مستقل در ارتباط با مدل پیش بینی مدت بهره گرفت [9] [26]، و آنکه مدت یک پروژه نرم افزاری همچنین منوط به تعداد توسعه دهندگان مشارکت کننده در آن نیز می باشد [26]، مدل های پیشنهادی در این مطالعه با استفاده از اندازه پروژه ها و تعداد توسعه دهندگان مشارکت کننده در پروژه به عنوان متغیرهای مستقل، به جای کاربرد امورات توسعه به عنوان متغیر مستقل، تحت آموزش و تست قرار می گیرند. بر این مبنا 16 مجموعه اطلاعاتی موجود عمومی در خصوص پروژه های نرم افزاری برای مشخص سازی دسترس پذیری به این دو متغیر مستقل در ارتباط با اهداف تحقیقاتی ما تحت آنالیز و بررسی قرار گرفته اند: 15 مجموعه اطلاعاتی از مخازن اطلاعاتی PROMISE [38] و نگارش 11 نرم افزار گروه استاندارد معیارسنجی بین المللی نرم افزار (ISBSG) نیز در این راستا مورد استفاده قرار گرفت [23]. در انباره PROMISE ، کلیه 15 مجموعه اطلاعاتی دارای یک ویژگی در ارتباط با اندازه پروژه ها بوده اند (چه به صورت نقاط تابع یا عملکرد یا خطوط کد)، در حالی که هشت مورد از آنها (، نگارش 10، ، و Nasa93) شامل ویژگی مرتبط با مدت (گزارش شده به صورت ماه یا روز) می باشند. مستثنی سازی دو مجموعه اطلاعاتی (COSMIC و ISBSG نگارش 10) متناظر با یک زیر مجموعه داده های ISBSG ، نیز اعمال گردیده است، که در این زمینه هیچ کدام از 14 مجموعه اطلاعاتی PROMISE مورد بررسی دارای ویژگی مرتبط با تعداد توسعه دهندگان نبوده اند. در نگارش 11 مجموعه اطلاعاتی ISBSG ، ویژگی های ضروری مرتبط با اندازه پروژه ها، تعداد توسعه دهندگان، و مدت پروژه های نرم افزاری همگی در دسترس بوده اند. بنابراین، تنها مجموعه اطلاعاتی ISBSG را می توان برای تحقیقات ما در نظر گرفت. به علاوه، مجموعه اطلاعاتی ISBSG همچنین قابلیت شناسایی پروژه های نرم افزاری بر مبنای نوع توسعه آنها (برنامه جدید یا یک برنامه ارتقاء یافته از نگارش قبلی)، بستر یا پلتفرم توسعه، و نوع زبان برنامه نویسی را خواهد داشت [23].
این مطالعه نسبت به بررسی این موضوع اقدام خواهد نمود که آیا دقت پیش بینی مدت حاصل آمده با استفاده از یک MLP و با استفاده از مدل RBFNN می تواند بهتر از موارد حاصل آمده به وسیله رگرسیون خطی متعدد (MLR) باشد یا خیر، آن هم به هنگامی که اندازه کاربردی و اندازه حداکثری تیم توسعه دهندگان به عنوان متغیرهای مستقل مورد استفاده قرار گرفته باشند.
مقایسه بین دقت پیش بینی مدل MLP، RBFNN و MLR با استفاده از باقیمانده های مطلق (AR) و Pred(l) به عنوان معیارهای مشخص سازی دقت اعمال شده است.
علی الخصوص، فرضیه مورد بررسی در این تحقیق به شرح ذیل ارائه گردیده است:
فرضیه 1: دقت پیش بینی مدت با استفاده از MLP و RBFNN از نقطه نظر آماری بهتر از دقت حاصل آمده به وسیله MLR می باشد، آن هم به هنگامی که داده های نقطه تابع تعدیلی و اندازه حداکثری تیم توسعه دهندگان به عنوان متغیرهای مستقل بکار گرفته شده باشند.
ادامه این مقاله به شرح ذیل سازماندهی شده است: بخش 2 ارائه دهنده تحقیقات مرتبط در زمینه پیش بینی مدت پروژه های نرم افزاری می باشد. بخش 3 تشریح کننده و مقایسه کننده مدل های MLP و RBFNN است. بخش 4 ارائه دهنده معیارهایی برای ارزیابی دقت این مدل ها می باشد، و همچنین مشخص کننده معیارهای مربوط به انتخاب داده های ساده از مجموعه اطلاعات ISBSG می باشد. بخش 5 تشریح کننده فرآیندهای آموزش و آزمایش برای سه مدل می باشد. بخش 6 اقدام به مقایسه نتایج دقت حاصله برای این مدل ها می نماید. در نهایت، بخش 7 مباحث ارائه شده را عرضه داشته که شامل نتیجه گیری های ما، محدودیت های این مطالعه و ویژگی های بررسی آتی می باشد.
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
2- تحقیقات مرتبط
در رشته پیش بینی پروژه نرم افزار، تکنیک هایی به طور عمده برای پیش بینی اندازه محصول نرم افزار، امورات مربوط به این پروژه و مدت آن مورد استفاده قرار گرفته اند. این تکنیک های پیش بینی بر روی مدل های غیررسمی نظیر قضاوت های تخصصی، یا مدل های ریاضیاتی، نظیر تکنیک های آماری و فراگیری ماشینی، استوار هستند.
با توجه به پیش بینی اندازه محصول نرم افزاری، این تکنیک های گزارش شده در مبحث جاری به صورت قضاوت تخصصی [46] یا مدل های ریاضیاتی، نظیر رگرسیون آماری [28]، شبکه عصبی [19] و منطق فاری [32] می باشند.
بر مبنای پیش بینی بر حسب امورات انجام شده در پروژه، تکنیک های استفاده شده یا به صورت قضاوت های تخصصی می باشند [20] [30]، یا آنکه به صورت مدل های ریاضیاتی بر مبنای تابع چگالی احتمال [3]، رگرسیون آماری [47] [48]، و همچنین مدل های فراگیری ماشینی، نظیر استدلال موردی مبنا، شبکه های عصبی مصنوعی، درختان تصمیم، شبکه های بیزی، رگرسیون بردار پشتیبان، الگوریتم های ژنتیک، برنامه نویسی ژنتیک، و قواعد مربوط به اعتلاف یا انجمن می باشند [45]. غالب مطالعات مرتبط با پیش بینی نرم افزار تمرکز خود را بر روی امورات انجام گرفته در ارتباط با پیش بینی جبر نمودن: Jorgensen و Shepperd [24] نسبت به تحلیل 304 مطالعه در 76 ژورنال انتشار یافته تا اوایل سال 2004 اقدام نموده و Wen و همکاران [44] 84 مطالعه انتشار یافته از 1991 الی 2010 را مورد بررسی قرار دادند. Jorgensen و Shepperd [24] مطالعاتی را بررسی نمودند که در آنها هرگونه تکنیک پیش بینی مورد استفاده قرار گرفته است، در حالی که Wen و همکاران [45] اقدام به تحلیل صرفاً مطالعاتی نمودند که شامل تکنیک های فراگیری ماشینی می باشد. شبکه های عصبی به عنوان دومین مورد استفاده گسترده در ارتباط با پیش بینی امورات نرم افزاری در این زمینه به شمار می آیند، که در بردارنده یک آمار 26 درصدی است [45]. MLP نیز جهت پیش بینی پروژه نرم افزاری حداقل از سال 1997 مورد استفاده قرار گرفته است [16] و به علاوه در سال 2008 نیز بکار گرفته شده است، MLP نیز به عنوان گسترده ترین مورد استفاده در این زمینه به شمار می آید [37]، و این مورد تا سال 2009 نیز مورد استفاده قرار گرفته است [2]، 2012 [18]، 2013 [12] [27] [34]، و 2014 [29] [33].
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
3- شبکه های عصبی MLP و RBF
یک شبکه عصبی (NN) به عنوان مدلی تلقی می گردد که الهام گرفته بر مبنای پردازش حاصل آمده به وسیله شبکه ای از نورون های بیولوژیکی است. مبنای این ساخت یک شبکه عصبی نورون مصنوعی می باشد. ورودی یک نورون مصنوعی بردار مقادیر عددی می باشد. این نورون اقدام به دریافت بردار نموده و متعاقباً قابلیت درک هر مقدار، یا جزء، آن بردار با یک حساسیت مستقل خاص تحت عنوان وزن را خواهد داشت. پس از دریافت بردار ورودی، نورون مربوطه در ابتدا اقدام به محاسبه وضعیت داخلی آن نموده و متعاقباً مقدار خروجی آن را برآورد می نماید. وضعیت داخلی نورون به عنوان مجموع ضرب داخلی بردار ورودی و بردار وزن به شمار آمده، و مقدار عددی تحت عنوان سوگیری خوانده می شود. این تابع همچنین تحت عنوان تابع انتقال نیز خوانده می شود. خروجی این نورون به عنوان تابع وضعیت داخلی خود به شمار می آید. این تابع تحت عنوان یک تابع فعال خوانده می شود. وظیفه اصلی تابع فعال مقیاس بندی کلیه مقادیر محتمل وضعیت داخلی به یک بازه ای از مقادیر خروجی می باشد. فراگیری در یک نورون مصنوعی به صورت اتوماتیک از طریق تعدیل مقادیر وزن ها و سوگیری ها حاصل می شود. کلاس های اصلی معماری (یا ساختار) شبکه های عصبی به شرح ذیل هستند [22]:
-
کلاس پیش خورد تک لایه، متشکل از یک نورون واحد با وزن ها و سوگیری قابل تعدیل. Minsky و Papert این موضوع را اثبات نموده اند که این نوع از درک به صورت ذاتی قابلیت ایجاد برخی از مفاهیم کلی را نخواهد داشت.
-
کلاس پیش خورد چند لایه، متشکل از مجموعه ای از نورون ها می باشد که ایجاد کننده لایه ورودی، یک یا چند لایه مخفی نورون ها، و یک لایه خروجی از نورون ها می باشد. نوع شبکه عصبی تحت عنوان پرسپترون چند لایه (MLP) خوانده می شود. مدل هر نورون در بردارنده یک تابع فعال سازی غیرخطی می باشد، و این شبکه ارائه دهنده مقدار زیادی از قابلیت اتصال پذیری می باشد.
ویژگی کلیدی یک شبکه عصبی قابلیت آن جهت فراگیری از محیط پیرامونی می باشد. نوع فراگیری به وسیله حالتی مشخص می شود که بر مبنای آن پارامترهای شبکه عصبی اصلاح می گردند (این شبکه پس از هر بار تکرار فرایند یادگیری قابلیت حاصل آوردن دانش بیشتری در خصوص ویژگی پیرامونی را خواهد داشت). دو نوع الگوی یادگیری وجود دارد: یادگیری کنترلی یا نظارتی (با بردار آموزشی) و یادگیری غیرکنترلی یا غیرنظارتی (بدون بردار آموزشی). یک الگوریتم فراگیری تحت تأثیر وظیفه فراگیری می باشد که یک شبکه عصبی می بایست اقدام به انجام آن نماید.
شبکه های تک لایه و MLPها بر مبنای واحدهایی هستند، که قابلیت محاسبه یک تابع غیرخطی ضرب عددی بردار ورودی و بردار وزن آن واحد را داشته، در حالی که در یک RBFNN، فعالسازی یک واحد مخفی به وسیله فاصله (اقلیدوسی) بین بردار ورودی و مرکز آن واحد مشخص می گردد [7]. در مقابل، الگوریتم یک MLP مترادف با کاربرد یک تکنیک بازگشتی آماری تحت عنوان تقریب تصادفی می باشد. در یک RBFNN، الگوریتم مربوطه را می توان به عنوان یک مسئله برازش منحنی (تقریب) در یک فضای ابعادی بالا مدنظر قرار داد [22].
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
4- معیارهای دقت پیش بینی و نمونه داده ها
4ـ1. معیارهای دقت
معیارهای دقت برای ارزیابی مدل های این مطالعه بر مبنای باقیمانده های مطلق (AR) و Pred(1) می باشند. AR به شرح ذیل تعریف می گردد:
ARi = |مدت حقیقی i – مدت پیش بینی شده |i
این ویژگی برای هر مورد مشاهداتی i محاسبه می گردد، که مدت آن بر این مبنا پیش بینی می شود. انباشتگی AR در مشاهدات متعدد (N) را می توان از طریق میانگین (MAR) به شرح ذیل حاصل آورد:
معیار دوم به شرح ذیل محاسبه می شود: Pred(1) = k/N، که در آن k تعداد پروژه های نرم افزاری می باشد که برای آنها AR کمتر یا مساوی با 1 است، و N مجموع کل پروژه های نرم افزاری به حساب می آید. Pred(25) بنابراین ارائه دهنده% پروژه هایی می باشد که با یک AR کمتر یا برابر با 25/0 پیش بینی شده اند.
MdAR مترادف با میانه ARs است. MAR و MdAR به صورت غیرسوگیرانه مشخص شدند، چرا که آنها بر مبنای ضرایب نمی باشند، بر خلاف میانگین بزرگی خطای نسبی (MMRE)، یک معیار مشترک استفاده شده در پیش بینی [45]، که خود منجر به ایجاد نوعی عدم تقارن می گردد [41]. دقت تکنیک پیش بینی به صورت معکوسی در تناسب با MAR و directly می باشد و به صورت مستقیمی در تناسب با Pred(1) است.
4ـ2. نمونه داده ها
در این مطالعه، ما از نگارش 11 نرم افزار [23] استفاده نمودیم، که شامل داده هایی از 5052 پروژه توسعه یافته بین خلال سالیان 1989 و 2009 بوده است. اکثریت (5/70%) مطالعات با استفاده از مجموعه های اطلاعاتی ISBSG در ارتباط با مدل های پیش بینی هستند، اما در عین حال تمرکز غالباً بر روی امورات انجام شده، به جای پیش بینی مدت بوده است، همانگونه که در بخش تحقیقات مرتبط گزارش گردیده است [15]. متغیرهای مستقل انتخاب شده اندازه محصولات نرم افزاری برآورد شده در نقاط تابع تعدیلی (AFP) و تعداد حداکثری اشخاصی می باشد که بر روی این پروژه ها در هر زمانی کار کرده اند (اندازه حداکثری تیم: MTS). یک AFP به عنوان یک مقدار ترکیبی متشکل از 19 متغیر مستقل محسوب می شود [17]. بر این مبنا پنج نوع تابع وجود دارند: فایل های منطقی داخلی، فایل های رابط خارجی، ورودی های خارجی، خروجی های خارجی و پرس و جوهای خارجی. به علاوه چهارده ویژگی نیز وجود دارند که در رابطه با ارتباطات اطلاعاتی، پردازش داده های توزیعی، عملکرد، پیکربندی های کاملاً استفاده شده، نرخ تراکنش ها، ورود داده ها به صورت آنلاین، کارایی کاربر نهایی، به روزرسانی آنلاین، پردازش پیچیده، قابلیت بکارگیری مجدد، آسانی نصب، آسانی عملکرد، سایت های متعدد و تغییر تسهیل کنندگان می باشند. در ISBSG، مدت پروژه بر حسب ماه گزارش می شود.
مزیت های انتخاب نمونه از مجموعه اطلاعاتی ISBSG برای آموزش و تست مدل های پیش بینی به شرح ذیل می باشند: داده های پروژه به صورت عمومی هستند، این داده ها را می توان با استفاده از میزان کیفیت آنها انتخاب نمود، و اندازه کاربردی برآوردها بر مبنای استانداردهای بین المللی می باشد. به علاوه، به پروژه های نرم افزاری اجازه انتخاب شدن از پلتفرم اندازه را می دهد و قابلیت انتخاب زبان های برنامه نویسی و نوع توسعه نیز از جمله موارد به شمار می آیند.
5- مدل های آموزش و تست
روش هایی که غالباً برای ارزیابی سطح کلی یک NN استفاده می شوند شامل روش گسترده (holdout)، روش اعتبارسنجی متقابل با یک نمونه خارج شده (leave- one-out cross-validation)، و روش اعتبارسنجی متقابل چند لایه ای (k-fold cross validation) (k > 1) می باشند [7]. در روش گسترده، نمونه به دو زیر نمونه ناسازگار یا مانعه الجمع تقسیم می شوند، که تحت عناوین آموزش و تست خوانده می شوند. در نمونه اعتبارسنجی متقابل چندتایی یا k ـ تایی (k > 1)، نمونه به k زیر نمونه مانعه الجمع، k – 1، تقسیم گردیده که برای آموزش مورد استفاده قرار گرفته، و k امین زیر نمونه، نیز برای تست بکار گرفته می شود. این فرآیند برای k بار تکرار می گردد، که هر بار با استفاده از یک زیر نمونه مختلف برای تست چنین فرآیندی تکرار خواهد شد. به هنگامی که k مساوی با اندازه نمونه داده گردید، چنین موردی تحت عنوان روش اعتبارسنجی متقابل با یک نمونه خارج شده (LOOCV) خوانده می شود، و چنین موردی به عنوان یک مؤلفه کاملاً مناسب برای کاربردهای SE مدنظر قرار می گیرد، که در آن بهترین داده های موجود به عنوان مجموعه های نسبتاً کوچک تلقی می شوند [42]. LOOCV نیز برای ارزیابی مدل های امور نرم افزاری پیشنهاد شده است [27]. میانگین دقت کلیه پروژه ها بر روی نمونه تیمی نیز جهت ارزیابی سطح کلی این مدل بکار گرفته شده است.
بر مبنای اندازه نمونه تشریح شده در بخش 4ـ2 (49 پروژه)، که نسبتاً اندک تلقی می شوند، روش اعتبارسنجی انتخابی برای این مطالعه LOOCV می باشد. این بدان معنا می باشد که، 49 معادله رگرسیون متعدد ایجاد شده اند، که همگی آنها دارای مقداری برای ضریب تعیین بالاتر 53/0 هستند. به علاوه، دو متغیر مستقل (AFP و MTS) نیز از نقطه نظر آماری در سطح اطمینان 95% در کلیه 49 مورد قرار گرفته اند.
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
6- نتایج
جدول 4 نشان دهنده MAR و MdAR بر حسب مدل Pred(25) و با توجه به سه ویژگی ارائه شده می باشد. یک آزمون آماری برای مقایسه این سه مجموعه AR ها را می بایست با توجه به فرضیه های وابستگی داده ها، بهنجارسازی و واریانس در نظر گرفت [39]:
الف) وابستگی: داده های پروژه نرم افزاری را می بایست به وسیله n مجموعه سه بعدی (Xi, Yi, Zi), I = 1, …, n توصیف نمود، که در آن i به عنوان i امین پروژه، n تعداد پروژه ها، Xi, Yi و Zi ؟؟ AR های حاصله از مدل های MLR، MLP و RBFNN می باشند.
ب) نرمالیته یا بهنجار شدگی: نرمالیته AR در ارتباط با یک مجموعه اطلاعاتی را می توان با استفاده از آزمون های مربع کای، Shapiro-Wilk، چولگی و کشیدگی انجام داد.
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید
7- مباحث و نتایج
یک پیش بینی مدت نادرست در ارتباط با یک پروژه نرم افزاری ممکن است سبب تحویل دیرهنگام یک محصول یا خدمات نرم افزاری شود [49]. تعدادی از تکنیک های خاص جهت پیش بینی مدت بکار گرفته شده اند، نظیر قضاوت متخصصین، رگرسیون آماری، شبکه های عصبی و ماشین های بردار پشتیبان. در این مطالعه، یک شبکه عصبی پیش خورد (MLP) و یک شبکه عصبی تابع پایه شعاعی (RBFNN) ارائه می شوند. نمونه برای آموزش و تست MLP و RBFNN نیز از طریق ملاحظه رهنمودهای ISBSG و نگارش 11 مجموعه اطلاعاتی ISBSG حاصل آمده است.
مقایسه این مطالعه با هفت مورد دیگر که در آنها مدت پروژه های نرم افزاری مقایسه پیش بینی شده اند معرف موارد ذیل می باشد:
-
هیچکدام از این هفت مطالعه RBFNN را پیشنهاد ننموده اند.
-
تنها یک مورد از بین هفت مطالعه [31] اندازه را به عنوان متغیر مستقل همانگونه که در مراجع [9] [26] پیشنهاد شده است ارائه نموده است.
-
هیچ کدام از این هفت مطالعه تعداد اشخاصی که بر روی یک پروژه در هر زمان کار می نموده اند را به عنوان متغیر مستقل دوم در نظر نگرفته اند. کاربرد این متغیر مستقل در مرجع [26] پیشنهاد شده است.
-
آزمایشات آماری را می توان جهت مشاهده این موضوع بکار گرفت که آیا تفاوت های معنی داری بین مدل ها وجود دارند یا خیر. تحلیل آماری برای تفسیر نتایج ضروری می باشد، و برای اعتبار نتیجه گیری های این بررسی نیز مورد نیاز است [37]. سطح اطمینان عمدتاً بین 90%، 95% و 99% گزارش شده است [14]. چهار مورد از هفت مطالعه مشخص کننده یک دقت پیش بینی در مقایسه با انواع تکنیک های بکار گرفته شده می باشند. سه مورد از آنها گزارش کننده نتایج از رویکرد تفاوت معنی دار آماری می باشند. آزمایشات آماری با استفاده از Wilcoxon [6]، آزمون ـ t جفتی [26] و ANOVA [31] با سطوح اطمینان 95%، 99% و 99% به ترتیب اعمال شدند. با این وجود، دو مورد از مطالعات از برآوردهای دقت پیش بینی استفاده نمودند که منجر به ایجاد مؤلفه های نامتقارن شد [6] [31]، که در حالی که سومین مطالعه اقدام به پیش بینی مدت به واسطه امورات انجام شده نرم افزاری [26] به جای کاربرد اندازه پروژه و اندازه تیم توسعه دهندگان نموده است.
با توجه به محدودیت های این مطالعه، ما اقدام به تحلیل 16 مجموعه اطلاعاتی بالقوه عمومی پروژه های نرم افزاری نموده و صرفاً یکی از آنها شامل سه متغیر بکار گرفته شده برای این مطالعه بودند: ISBSG نگارش 11. با این وجود، با آنکه این نگارش ISBSG متشکل از 5052 پروژه می باشد، صرفاً 49 مورد از آنها در ارتباط با معیارهای انتخاب الزامی ما برای این بررسی می باشند. به هنگامی که سعی در شامل نمودن پروژه های ارتقاء یافته نمودیم، متأسفانه قابلیت یافتن یک اندازه مهم معنی دار و تعداد اشخاص مورد نظر جهت شامل سازی به عنوان متغیرهای مستقل در مدل های خود را نداشتیم. ما امید داریم که نگارش های آتی مجموعه اطلاعاتی ISBSG اجازه بکارگیری نمونه های بزرگتر و خواستن را بدهد.
بر مبنای عملکرد هر دو مورد MLP و RBFNN ، که منوط به ساختارهای آنها نیز می باشد، ضرایب آنها، و مسئله خاصی که می بایست حل شود، ما قابلیت اصول نتیجه در سطح اطمینان 0/99% را خواهیم داشت که بر مبنای آن MLP و RBFNN بهتر از MLR برای پروژه های نرم افزاری جدید توسعه یافته بر روی مین فریم ها می باشد که در آن از زمان های برنامه نویسی نسل سوم استفاده شده است.
تحقیقات متعاقب جهت بکارگیری منطق فازی به منظور پیش بینی مدت پروژه های جدید و ارتقاء یافته ضروری می باشند.
شبکه های عصبی برای پیش بینی مدت پروژه های نرم افزاری جدید