بخشی از مقاله
چکیده
پروژه های نرم افزاری ذاتا دارای ریسک ها و خطراتی هستند. پیچیده بودن تجزیه و تحلیل ریسک و برنامه ریزی، مدیریت موثر ریسک از طریق قضاوت ذهنی را دشوار می سازد. در حال حاضر، تحقیقات تجربی فراوانی بر مدل های پشتیبانی تصمیم گیری هوشمند برای تجزیه و تحلیل ریسک در پروژه های نرم افزاری وجود دارد. این مطالعه، جهت کمک به کمینه سازی اثرات ریسکهای پروژه و دستیابی به خروجی پروژه با قابلیت پیش بینی بهتر، چارچوبی یکپارچه برای برنامه ریزی هوشمند ریسک پروژه نرم افزاری پیشنهاد می کند. این چارچوب شامل دو جزء اصلی است، یعنی، ماژول تجزیه و تحلیل ریسک و ماژول برنامه ریزی ریسک.
ماژول تجزیه و تحلیل ریسک برای پیش بینی این است که آیا یک پروژه موفق خواهد بود یا نه. ماژول برنامه ریزی برای تولید مقرون به صرفه ترین مجموعه فعالیت ها برای کنترل ریسک بر اساس ماژول تجزیه و تحلیل ریسک است. در نهایت ما این چارچوب را در یکی از بزرگترین شرکتهای نرم افزاری کشور بکار گرفته و نشان دادیم که چگونه این مدل می تواند به منظور کنترل موثر ریسک ها بوسیله یکپارچه سازی تجزیه و تحلیل و برنامه ریزی ریسک برای ذینفعان پروژه یک ابزار هوشمند پشتیبانی تصمیم فراهم آورد.
-1 مقدمه
پروژههای نرم افزاری دارای عدم قطعیتها و ریسکهای ذاتی هستند.[1] علاوه بر این، توسعه نرم افزاری نرخ شکست بالایی دارد. گروه استندیش، در گزارششان"خلاصه آشوب "2009 نشان دادند که میزان موفقیت پروژههای نرم افزار جهانی تنها حدود 32٪ است.[2] توسعه نرم افزار در معرض انواع ریسکها قرار دارد، که به طور کلی به عنوان مجموعه ای از عوامل و یا شرایط که به طور جدی اتمام موفقیت آمیز یک پروژه نرم افزاری را تهدید میکنند تعریف شدهاند
ضرورت شناسایی و مقابله با این ریسکها بطور چشمگیری در میان محققان دانشگاهی و دست اندرکاران ایجاد علاقه کرده است .[4] تحقیق صورت گرفته توسط شرکت مایکروسافت نشان داد که قرار دادن 5٪ کار به مدیریت ریسک موثر میتواند 50٪ تا 75٪ فرصت برای تکمیل پروژه قبل از موعد مقرر ایجاد کند.[5] این امر کمک میکند تا از بلایایی نظیر دوبارهکاری و فراتر رفتن از حدود یک پروژه نرم افزاری جلوگیری شود.
تجزیه و تحلیل و برنامهریزی ریسک دو فرآیند بسیار مهم در مدیریت ریسک پروژه نرم افزاری - SPRM - هستند. تجزیه و تحلیل ریسک شامل بررسی روابط بین عوامل ریسک و خروجی پروژه میباشد، که برای کنترل موثر ریسک حیاتی است
تحقیقات قابل توجهی در مدلهای تجزیه و تحلیل ریسک بر اساس فنآوریهای هوشمند نظیرموجود هستند 8]،9،10،11،.[12 توجه داشته باشید که این مقاله قصد ندارد تا در مورد مقولات قابلیت اطمینان نرم افزار، امنیت، هزینه/تلاش و غیره، مانند آنهایی که در ذکر شده بحث نماید.
برنامه ریزی ریسک شامل توسعه برنامهای موثر برای مقابله با بحرانیترین ریسکها و بهینهسازی تخصیص منابع پروژه است . هرچند برنامهریزی ریسک برای مدیریت ریسک حیاتی است، مطالعات رو به جلو کمی انجام شده و هیچ ابزار یا مدل مورد پذیرش عمومی برای پشتیبانی از آن وجود ندارد
بوهم معتقد است که برنامهریزی ریسک نه تنها باید " طرحی برای هر مورد ریسک داشته باشد " بلکه همچنین باید قادر به "ادغام برنامه-های مدیریت ریسک برای هر مورد ریسک با یکدیگر و با طرح کلی پروژه باشد" بنابراین، به منظور بهینه سازی تخصیص منابع هنگام بیشینه سازی خروجی پروژه، در نظر گرفتن اثر ترکیبی عوامل ریسک بر خروجی پروژه و همچنین هزینه کل اجرای اقدامات کنترل ریسک انتخاب شده ضروری است. در نتیجه تلاش محاسباتی فوق العاده، مدلها/ ابزارهای پشتیبانی تصمیم گیری هوشمند بر قضاوت ذهنی متخصص در رسیدن به تصمیم گیری موثر و اقتصادی طی برنامهریزی و تجزیه و تحلیل ریسک ترجیح داده میشود.
مطالعاتی که برای برنامهریزی ریسک، تکنولوژیهای برنامهریزی عدد صحیح را برگزیدند- مانند بن- دیوید و راز [4] و پان و چن -[15] قصد از بین بردن تمام انواع ریسکها را دارند. با این حال، در وضعیتی با منابع محدود، به دلیل هزینه های بالای کنترل تمام ریسکها، چنین هدفی عملی نیست. علاوه بر این، کنترل تمام ریسکها لازم نیست زیرا تنها تعداد کمی از ریسکها میتواند به طور مستقیم نتیجه پروژه را تحت تاثیر قرار دهند. این مطالعات نمیتواند ریسکهای کلیدی را شناسایی کنند زیرا آنها از مزیت روابط بین عوامل ریسک و خروجی پروژه، که بوسیله یک مدل تجزیه و تحلیل ریسک هوشمند مشخص میشود، استفاده نمیکنند.
جهت غلبه بر محدودیتهای فوق، مطالعه حاضر چارچوبی تجربی و هوشمند که میتواند یک تجزیه و تحلیل و برنامهریزی ریسک یکپارچه را در SPRM فراهم کند، پیشنهاد میدهد. ما ابتدا اجزا و مراحل استفاده از چارچوب را معرفی میکنیم. با توجه به یک پروژه خاص، نتیجه پروژه پیش بینی شده و پس از آن، بر اساس مکانیزم پیش بینی و زمینه برنامهریزی، یک برنامه کنترل ریسک با کمترین هزینه، تعیین می شود. در نهایت ما چارچوب پیشنهاد شده را پیاده کرده و برای نشان دادن کاربرد چارچوب پیشنهادی یک مطالعه موردی واقعی از پروژه نرم افزاری ارائه نمودیم.
-2 پیشینه تحقیق
-1-2 مدیریت ریسک پروژه نرمافزاری
بوهم و چارته مدیریت ریسک را به مدیریت پروژه نرمافزار معرفی کردند[16] وSPRM .[17] یک سری از قوانین و یا اعمالی است که میتواند عوامل ریسک را شناسایی، تجزیه و تحلیل و پایش کرده و میزان موفقیت پروژه را افزایش دهدSPRM .[16] می تواند بطور مثبتی بودجه، برنامه، دامنه پروژه و غیره را تحت تاثیر قرار دهد .[19] به طور کلی، SPRMشامل دو مرحله است
مرحله اول: ارزیابی ریسک شامل شناسایی، تجزیه و تحلیل و اولویت بندی ریسک است. شناسایی ریسک به شناسایی سیستماتیک و طبقه بندی عوامل ریسک نیاز دارد. تجزیه و تحلیل ریسک وضعیت هر یک از عوامل ریسک شناسایی شده را ارزیابی کرده و روابط میان عوامل ریسک، و بین عوامل ریسک و خروجی پروژه را تجزیه و تحلیل مینماید. اولویت بندی ریسک ترتیب اولویت در کنترل هر یک از عوامل ریسک را مشخص میسازد.
مرحله دوم :کنترل ریسک شامل برنامهریزی و پایش ریسک است. برنامهریزی ریسک نه تنها شامل برنامهریزی برای هر عامل ریسک است،
بلکه برنامههای مجزا را نیز با یکدیگر هماهنگ میکند. پایش مستمر عوامل ریسک، بررسی اثر بخشی برنامه کنترل ریسک، و کشف سریع ریسکهای قریب الوقوع در طول و بعد از اجرای برنامه مورد نیاز است.
-2-2 برنامهریزی و تجزیه و تحلیل ریسک پروژه نرم افزاری
اخیرا، تعداد قابل توجهی از مطالعات مرتبط به تجزیه و تحلیل و برنامهریزی ریسک در زمینه SPRM در دسترس قرار گرفتهاند. این مقاله بر تجزیه و تحلیل ریسک مبتنی بر دادههای تاریخی تمرکز دارد، به خصوص در پیش بینی احتمال موفقیت برای پروژههای توسعه نرم افزاری؛ در نتیجه مطالعات انجام شده بر مبنای تجزیه و تحلیل ذهنی و یا قضاوت خبره؛ که اغلب روشهای مورد استفاده در مدیریت ریسک پروژه هستند ؛ کنار گذاشته شدهاند. همچنین مطالعات مربوط به تجزیه و تحلیل قابلیت اطمینان نرم افزار، هزینه، ایمنی، و غیره حذف شدهاند. ادبیات موضوعی مطرح شده در جدول 1 خلاصه شده است. تا آنجا که ما میدانیم مطالعه خاصی در مورد موضوع مدیریت ریسک هوشمند برای پروژه نرم افزار اجتماعی وجود ندارد. تجزیه و تحلیل ریسک به طور گستردهای مورد مطالعه قرار گرفته و روشهای مدل سازی به طور عمده شامل استفاده از تجزیه و تحلیل آماری و داده کاوی هستند.
-1 تحقیقات بر اساس روش های آماری
به عنوان مثال، والاس و همکاران مدلسازی معادلات ساختاری - SEM - را برای توسعه یک مدل اکتشافی برای آزمایش و برآورد روابط بین ریسک-های پروژه نرمافزاری و عملکرد پروژه بکار بردند .[3] درو پروکاچینو و همکاران چندین عامل ریسک اولیه و اثرات آنها بر موفقیت پروژه نرم افزاری را با استفاده از تجزیه و تحلیل رگرسیون ارزیابی کردند.
تحقیقات آنها نشان داد که وجود یک اسپانسر متعهد و سطح اعتماد مشتریان و کاربران به مدیر پروژه و تیم توسعه از مهمترین عوامل برای موفقیت پروژه میباشند. جیانگ و کلاین با ارائه مدلی با استفاده از تجزیه و تحلیل مولفههای اصلی - PCA - و بر اساس یک نظرسنجی از 86 مدیر پروژه، روابط بین اندازههای موفقیت و عوامل ریسک را مورد بررسی قرار دادند.[12] در پایان، این مطالعات به جای پیشبینی سطح ریسک کلی پروژه در حال انجام، قصد کشف دانش فراگیر در مورد ریسکها - یعنی همبستگی و روابط علت و معلولی بین عوامل ریسک و خروجی پروژه - را دارد.
-2 تحقیقات بر اساس روشهای داده کاوی به عنوان مثال، آگویلار-رویز و همکاران با استفاده از یک شبیه ساز پروژه
نرمافزار و محاسبات تکاملی یک روش ارائه کردند.[26] مدل آنها پیش بینی میکند که آیا میتوان یک پروژه را در هزینه، کیفیت و طول مدت هدف نگه داشت یا نه. ژانگ و همکاران جهت پیش بینی تغییر وضع بد پروژه یک سیستم هشدار دهنده ساختند. آنها دریافتند که شبکههای عصبی در امر پیش بینی، نسبت به مدل رگرسیون لجستیک دارای برتری است، چرا که میتواند روابط غیر خطی بین عوامل ریسک و خروجی پروژه را بپذیرد. با این حال، شبکه یک "جعبه سیاه" است، و در نتیجه نمیتواند دانش تصمیم گیری صریح و روشن را به مدیران ارائه دهد. فن و یو یک مدل تجزیه و تحلیل ریسک با استفاده از شبکهبیزی ارائه کردند.
لوریا و دوشسی با استفاده از دادههای مطالعاتی و به منظور اجرای فنآوری اطلاعات - - IT روشی برای ساخت شبکهبیزی ارائه کرده و آن برای پیش بینی دستیابی به مزایای IT بکارگرفتند.[10] مورنو گارسیا و همکاران [9] از فنآوری قوانین وابستگی به منظور ارزیابی تاثیر برخی سیاستهای مدیریت پروژه بر کیفیت، مدت زمان و تلاش برای توسعه پروژه نرم افزار استفاده کردند. در نهایت، مدلهای مبتنی بر روشهای داده کاوی میتوانند سطح ریسک پویای پروژههای در حال انجام را تجزیه و تحلیل و پیش بینی نمایند.
جدول-1 مطالعات تجربی در مدلهای برنامهریزی و تجزیه و تحلیل ریسک پروژه نرمافزاری 1996 - تا . - 2011
توضیحات
تحلیل آماری جهت جستجوی دانش عمومی درباره ارتباط میان فاکتورهای ریسک و نتیجه پروژه و داده کاوی جهت تحلیل ریسک پویا و هوشمند بکار می-رود.
- پیش بینی و طبقهبندی برای ارزیابی اولیه از نتیجه پروژه استفاده میشوند.
- تحلیل خوشهای برای شناسایی ریسک در میان سطوح نتیجه پروژه بکار میرود.
- تحلیل وابستگی برای یافتن وابستگی میان ریسک و نتیجه پروژه استفاده میشود.
- تصدیق اثربخشی اقدامات کنترل ریسک به روی فاکتورهای ریسک
- ایجاد مجموعه اقدام کنترل ریسک
-3 طراحی چارچوب یکپارچه برای برنامهریزی هوشمند ریسک پروژه نرمافزاری
برای رسیدن به مدیریت ریسک یکپارچهای که بتواند پشتیبانی تصمیم گیری را برای تجزیه و تحلیل ریسک تا برنامهریزی فراهم کند، چارچوبی یکپارچه برای برنامهریزی هوشمند ریسک پروژه نرم افزار - IF-ISPRP - پیشنهاد کرده ایم که در شکل 1 نشان داده شده است.
شکل -1 چارچوب یکپارچه برای برنامهریزی هوشمند ریسک پروژه نرم افزاری