در شرایط مدیریت پروژه های نرم افزاری وتخمین شاخص های یک پروژه فازی و عدم قطعیت با کمک سیستم های خبره

در شرایط مدیریت پروژه های نرم افزاری وتخمین شاخص های یک پروژه فازی و عدم قطعیت با کمک سیستم های خبره فازی
      

       سمیه علیزاده
       دانشجوی دکتری صنایع دانشگاه علم و صنعت
                            S_Alizadeh@mail.iust.ac.ir       
      
سید ابراهیم ابطحی
      عضو هیئت علمی دانشکده کامپیوتر دانشگاه صنعتی شریف
      Abtahi@Sharif.edu      

واژگان کلیدی
      مدیریت پروژه های نرم افزاری، شاخص های کمی نرم افزار، شاخص های کیفی نرم افزار، منطق فازی، سیستم های خبره و داده کاوی.

چکیده
      استفاده از تجربیات و اطلاعات افراد خبره کمک بسیار بزرگی است تا افراد بتوانند تصمیمات دقیقی بگیرند. به عنوان مثال استفاده از تجربیات مدیران پروژه های نرم افزاری می تواند کمک شایانی در برنامه ریزی یک پروژه نرم افزاری جدید باشد بدین منظور اندازه گیری شاخص ها و جمع آوری اطلاعات افراد خبره بسیار مهم می باشد. در شرایطی که این شاخص ها کمی هستند، می توان از روش های کلاسیک اندازه گیری استفاده کرد ولی در شرایط عدم قطعیت و در زمانی که شاخص ها کیفی می باشند
نمی توان آنها را به راحتی اندازه گرفت و در این جاست که می توان از منطق فازی کمک گرفت. در این مقاله به ارایه روشی برای استفاده از سیستم های خبره فازی در مدیریت پروژه های نرم افزاری پرداخته شده است که به مدیران پروژه های نرم افزاری در تصمیم گیری هایشان کمک به سزایی میکند.

مقدمه
مدیریت پروژه های نرم افزاری اولین لایه فرآیند مهندسی نرم افزار است. این مدیریت را یک گام یا یک فعالیت نمی نامند، چرا که در تمامی مراحل پیشرفت پروژه، بر دیگر فعالیتهای پروژه نظارت دارد. بنابراین نام لایه مناسبترین نام برای مدیریت پروژه های نرم افزاری است.
برای موفقیت در تولید نرم افزار، مدیر پروژه باید دید درستی نسبت به کارهایی که می خواهدانجام دهد، داشته باشد از جمله باید بداند چه منابعی در اختیار دارد و چقدر نسبت به منابع ایده آل فاصله دارد، هزینه موثری که برای نرم افزار می بایستی در نظر بگیرد چقدر است و چه برنامه زمانبندی را نسبت به این منابع و هزینه باید در پیش بگیرد تا بتواند نرم افزاری با کیفیت عالی و با هزینه ای مناسب تهیه کند. با توجه به اهمیت مدیریت وبرنامه ریزی پروژه های نرم افزاری باید روشهایی برای کمک به تصمیم گیری مدیران ایجاد شود.

عوامل و پارامترهای اندازه گیری شاخص های نرم افزاری

اندازه گیری پارامترها و شاخص ها کمک می کنند تا مدیران سریعتر به اهداف خود برسندو بتوانند تصمیمات دقیق تری بگیرند. سنجش پارامترها به مدیریت کردن شاخص های مربوطه کمک زیادی می کند و اینکه شاخص های مناسب یک مسئله تشخیص داده شود بسیار اهمیت دارد. عامل مهم دیگراین است که داده های این شاخص ها چگونه جمع آوری می شوند و اگر کیفی هستند چگونه می بایستی اندازه گیری شوند.
تخمین زدن درست شاخص ها، راه حلی است که در اکثر موارد می تواند مفید واقع شود. به عنوان مثال زمانی که یک پروژه نرم افزاری طراحی می شود اگر تعداد افراد مورد نیاز ( در قالب نفر ماه ) تخمین زده شود و یا هزینه و تقویم زمانی به درستی برآورد شود، مراحل طراحی و تولید نرم افزار میتواند به طور دقیقی زمانبندی شود. ولی این تخمین ها و پیش بینی ها اصلا کار ساده ای نیست.
اگر یک پروژه نرم افزاری جدید، از نظر عملکرد و اندازه شبیه پروژه ای باشد که در گذشته انجام گرفته است، این ایده به ذهن می رسد که می توان از تجربیات پروژه قبلی استفاده کرد و به احتمال زیاد می توان گفت پروژه جدید همان زمان تقویمی طول می کشد و هزینه ای به همان میزان دارد. به همین منظور روش های مختلف برآورد، طراحی شده است و همه آنها خصوصیات مهم زیر را دارند:
حوزه و هدف نرم افزار می بایستی شناسایی شود، داده های قدیم به عنوان اطلاعات مبنا به کار می روند و پروژه به تکه های کوچکتری شکسته می شود. بسیاری از مدیران از تکنیکهای مختلفی استفاده می کنند و با استفاده از داده هایی که به وسیله روشهای مختلفی کنترل می شوند و به واقعیت نزدیکتر هستند، تصمیم گیری میکنند.
روشی که در این مقاله به آن اشاره می شود روش اندازه گیری تابعی 2 میباشد که به عنوان یک روش استاندارد برای تخمین پروژه های نرم افزاری به کار می رود.

مفاهیم منطق فازی و سیستم های خبره فازی

شالوده و اساس ریاضیات نادقیق و فازی درسال1965 با ارائه مقاله ای باعنوان مجموعه های نادقیق توسط دکترلطفی زاده پایه گذاری شد. یک مجموعه فازی  A  مجموعه ای از زوج مرتب هایی است که عنصر اول آن عناصر مجموعه وعنصردوم درجه تعلق آنها می باشد

A = {( x,μ A( x )| xU )}


اعدادفازی به صورت های مختلفی تعریف می شوند از جمله عدد فازی مثلثی، عدد فازیذوزنقه ای، دامنه ها و... که هر کدام از این انواع، روش های خاص خود رابرای محاسبات ریاضی دارند. متغیرهای زبانی یکی از مفاهیم اساسی در ریاضیاتنادقیق می باشند. این متغیرها کلمات یا جملاتی هستند که در زبان طبیعی وجوددارند. به عنوان مثال برای متغیر " درستی " مقادیری مثل  کاملا درست"، " درست" و "تقریبا درست" و "نادرست" را می توان در نظر گرفت

سیستمهای خبره، سیستم هایی هستند که با استفاده از اطلاعات افراد خبره به تصمیمگیری کمک می کنند. اجزای مهم این سیستم عبارتند از : قواعد 3، حقایق 4،موتور استنتاج 5 و محیط محاوره ای 6. البته یک سیستم خبره می بایستی درصورت لزوم بتواند روش تصمیم گیری و گام های استنتاج خود را به کاربر نشاندهد سیستم خبره فازی همانطور که از نامش پیداست سیستمی است که اجزا آن فازیباشند به عنوان مثال یک قاعده فازی قاعده ای است که مقدم و تالی آن بااعداد فازی و یا متغیرهای زبانی بیان شود و یک جمله شرطی فازی باشد

روش اندازه گیری تابعی و به کارگیری مفاهیم فازی در این روش

روش اندازه گیری تابعی، روشی است که روند تولید نرم افزار را به طورغیرمستقیم اندازه گیری می کند. این روش با استفاده از رابطه بین شاخص های قابل اندازه گیری و پیچیدگی های نرم افزاری، عددی را ارائه میدهد که با نمادFP نشان داده می شود و این عدد در محاسبه هزینه، کیفیت و بهره وری نرم افزار نقش به سزایی دارد.

        جدول 1 - محاسبهTotal Count

وزن

وزن

تعداد

پارامترهای اندازه گیری

پیچیده

متوسط

ساده

 

عدد فازی 6

عدد فازی4

عدد فازی 3

 

تعداد ورودی های کاربر

 

عدد فازی7

عدد فازی5

عدد فازی4

 

تعداد خروجی های کاربر

 

عدد فازی6

عدد فازی4

عدد فازی3

 

تعداد پرس و جوهای کاربر

 

عدد فازی15

عدد فازی10

عدد فازی7

 

تعداد فایل ها

 

عدد فازی10

عدد فازی7

عدد فازی5

 

تعداد محیط های محاوره ای خارجی

         

تعداد نهایی Total Count

 

 

 

جدول ( 1) دو پارامتر "تعداد" و "وزن" را برای هر کدام از شاخص ها در نظر می گیرد که این دو پارامتر یکی کمی و دیگری کیفی می باشد. پارامتر کیفی "وزن" را می توان با متغیرهای زبانی "کم"، "متوسط" و "زیاد" نشان داد و برای هر کدام از این متغیرهای زبانی یک عدد فازی در نظر گرفت به عنوان مثال وزن تعداد ورودی های "کم" را می توان به شکل زیر نشان داد.

این عدد فازی با برشα_ CUT  به صورت ذیل تعریف می شود:

 

 

 

این عدد فازی به دو صورت دامنه 7و عدد فازی ذوزنقه ای نیز قابل تعریف است:

تعریف عدد فازی مذکور به صورت عدد فازی ذوزنقه أی:                               [ 10 ،7 ،3، 1 ]

تعریف عدد فازی مذکور به صورت دامنه:                                         [ 7 , 3 ]

 در این جدول عدد "تعداد نهایی" ( Total-Count) به صورت زیر محاسبه می شود:

( تعداد×وزن )Total_Count= Σ

تعداد پارامترهای هر ردیف یک عدد کمی است ولی "وزنیک مقدارکیفی می باشد که به صورت عدد فازی تعریف شده و سپس طبق فرمول ضرب عدد  Crispدرعدد فازی و جمع آنها ، فرمول فوق قابل محاسبه می باشد. البته متغیر"تعداد" نیزمی تواند به صورت کیفی ونهایتا"به صورت عدد فازی تعریف شده وفرمول فوق ضرب دوعدد فازی وجمع آنها را محاسبه کند که درهردومورد عدد"تعداد نهایی" یک عدد فازی می باشد.

پس ازمحاسبه  Total countپارامترکلیدی FPطبق فرمول زیر محاسبه می شود :

FP = Total – Count ×[0/65 + %1 ×Sum (Fi)]

 قابل ذکر است کهSum (Fi)از مجموع امتیازات سوالات زیر محاسبه میشود:

1.آیا ذخیره و بازیابی سامانه مطمئن است ؟
2. آیا ارتباط بین داده ها احتیاج است ؟
3. آیا در سامانه توابع توزیع شده مورد نیاز است ؟
4. آیا کارایی سامانه حیاتی وخیلی حساس است ؟
5. آیا سامانه در یک محیط عملیاتی موجود اجرا می شود ؟
6. آیا سامانه به ورود داده ای به هنگام، نیاز دارد ؟
7. آیا این داده های ورودی به هنگام، به تراکنش های زیادی نیاز دارند ؟
8. آیا اطلاعات اصلی همزمان به روز می شوند ؟
9. آیا ورودی ها، خروجی ها و پرس و جوها پیچیده هستند ؟
10 . آیا پردازش های داخلی پیچیده می باشد ؟
11 . آیا کد طراحی شده، دوباره قابل استفاده است ؟
12 . آیا مرحله نصب نرم افزار در طراحی آن دیده شده است ؟
13 . آیا سامانه برای نصب در سازمانهای مختلف طراحی شده است ؟
14 . آیا برنامه طراحی شده به سهولت قابل تغییر است و به راحتی توسط کاربر استفاده می شود ؟

همانطور که از ماهیت سئوالات فوق مشخص است، این سئوالات مفاهیم کیفی دارند و با یک عدد خاص نمیتوان به آنها امتیاز داد بنابراین در فرمول مذکور بخش(Sum(Fi

نیز جمع یکسری عدد فازی است.

طبق شکل زیر برای محاسبه FPدوسری عدد فازی دخیل هستند.

 

بنابراین FPنیز خود یک عدد فازی می شود و به همین ترتیب متغیرهای بهره وری، کیفیت و هزینه و میزان مستندسازی نیز با توجه به فرمول های زیر فازی می شوند.

Productivity = FP/Person-month

Quality = Defects/FP

Cost = $/FP

Documentation = Page of Document/FP

روش های پیشنهادی برای ارزیابی پارامترهای اندازه گیری نرم افزار در شرایط فازی

-1-5  استفاده ازسیستم های خبره فازی در ارزیابی پارامترهای اندازه گیری نرم افزار

اطلاعات پروژه های نرم افزاری قدیمی، نقش به سزایی در تخمین پارامترهای یک پروژه جدید دارند. این اطلاعات از افراد خبره و مدیران پروژه های مذکور جمع آوری می شوند. واضح است که این افراد نمی توانند تاثیر این عوامل را به صورت یک عدد دقیق بیان کنند ولی می توانند تاثیر این پارامترها بر یکدیگر را به وسیله یک سری متغیرهای زبانی و جملات شرطی بیان کنند. به عنوان مثال مدیر یک پروژه نرم افزاری می تواند بیان کند که :

هرچه تعداد ورودی ها و خروجی ها و محیط های محاوره ای یک سیستم کامپیوتری زیادتر شود کاربر راحت تر می تواند با آن سیستم ارتباط برقرار کند و به همین دلیل بهره وری استفاده از نرم افزار افزایش چشم گیری خواهد داشت و همچنین هزینه تولید و نگهداری نرم افزار نیز کاهش می یابد.
در جمله بالا یک سری روابط علل و معلول فازی بین پارامترهای "تعداد ورودی"، "تعداد خروجی" و "بهره وری" و "هزینه تولید" وجود دارد که می توانیم این روابط علل و معلولی را به سادگی تبدیل به یک سری قواعد فازی کرده و به عنوان ورودی های یک سیستم خبره فازی از آنها استفاده کنیم. شکل زیر نشان می دهد که چگونه می توان از اطلاعات افراد خبره در زمینه مدیریت و تولید نرم افزار استفاده کرده و یک سیستم خبره ایجاد نمود.

 

هر فردی که بخواهد از این سیستم استفاده کند از طریق محیط محاوره ای با سیستم خبره ارتباط برقرار می کند و داده های خود را به سیستم می دهد. سیستم نیز با توجه به اطلاعاتی که در اختیار دارد پردازش های مربوطه را انجام داده و با کمک اطلاعات موجود در پایگاه دانش فازی خود، اطلاعات ارزنده ای در اختیار کاربر قرار می دهد. با توجه به قابلیت مغز انسان، یک فرد درک بهتری از متغیرهای زبانی در مقایسه با اعداد و ارقام دارد و با کمک این نوع اطلاعات، بهتر می تواند تصمیم گیری کند.

بنابراین طبق گام های ایجاد یک سیستم خبره، برای تولید این نوع سیستم خبره نیز می بایستی ابتدا اطلاعات مربوطه را از افراد خبره جمع آوری کنیم و سپس سیستم خبره را توسط یک نرم افزار سیستم خبره (Shell) مثلا Fuzzy Clipsپیاده سازی کنیم. با توجه به گذشت زمان و اضافه کردن اطلاعات دیگر افراد خبره در زمینه تولید نرم افزار، پس از مدتی این سیستم تبدیل به یک سیستم غنی از اطلاعات مربوط به تولید نرم افزار خواهد شد.

2-5-استفاده از داده کاوی در سیستم خبره مدیریت پروژه نرم افزاری

سیستم های خبره جهت تصمیم گیری نیاز به اطلاعات و دانش دارند. این اطلاعات در سیستمهای خبره به طور معمول از افراد خبره جمع آوری میشود. داده های مربوط به پروژه های مشابه نیز به نوعی میتوانند در تصمیم گیریها کمک نمایند به این ترتیب که با تحلیل این داده ها میتوان تخمینهای مناسبی برای زمان و هرینه و دیگر منابع پروژه داشت. با ازدیاد تعداد پروژه های مشابه و رشد داده های مربوط به آنها تحلیل این داده ها کار ساده ای نمی باشد و میبایستی از ابزارهای مناسبی استفاده شود. داده کاوی ابزار بسیار قوی در تحلیل داده های تاریخی و استخراج دانش پنهان از این داده ها میباشد. با استخراج دانش از داده های مربوط به پروژه ها میتوان این دانش را به عنوان ورودی به سیستمهای خبره داد و به نوعی مخزن اطلاعاتی سیستمهای خبره را غنی کرد. شکل زیر چگونگی ارتباط سیستمهای خبره با ابزار فازی را نشان میدهد:

 

  

شکل فوق تشریح میکند که اطلاعات وارده به این سیستم خبره از دو بخش متفاوت ایجاد میشود یکی دانش استخراج شده از داده های تاریخی دیگر پروژه ها و دیگری، دانش تجربی افراد خبره . این مدل[ 13 ] که مدل هیبرید سیستمهای خبره و داده کاوی نامیده میشود باعث میشود ورودی سیستمهای خبره شامل دانش غنی شده ای از دو بخش متفاوت باشد.

3-5-استفاده از ریاضیات فازی در ارزیابی پارامترهای اندازه گیری نرم افزار

در بخشی از نرم افزاری که در مرجع شماره [ 12 ] برای مدیریت پروژه های نرم افزاری ارائه شده است، شاخص های نرم افزاری تخمین زده می شوند. در این سامانه، داده هایی که از کاربر پرسیده میشوند به صورت عددی می باشند ولی اگر کاربر قادر باشد به جای اعداد و ارقام دقیق، یکسری جملات و متغیرهای زبانی را به عنوان ورودی به سیستم وارد کرده و در آخر نیز سیستم به جای خروجی های دقیق، متغیر های فازی به کاربر ارائه کند، او با استفاده از این اطلاعات بهتر میتواند تصمیم گیری کند. همانطور که در بخش ( 2) اشاره شد فرمول هایی برای محاسبات پارامترهای مختلف مربوط به ارزیابی نرم افزار وجود دارد که اگر برخی از پارامترهای این فرمول فازی باشند با توجه به جمع و ضرب اعداد فازی می توانیم محاسبات فازی این فرمول ها را انجام داده و خروجی این محاسبات نیز یک عدد فازی می شود.

نتیجه گیری
داشتن اطلاعات کافی و درست مهمترین عامل در تصمیم گیری مدیران است. اگر یک مدیر در ابتدا دید درستی از حجم کار داشته باشد به راحتی می تواند آن پروژه را زمانبندی کند، منابع مناسبی برای فعالیت های آن پروژه تخصیص بدهد و برآورد درستی از هزینه پروژه داشته باشد. استفاده از تجربیات افراد خبره عامل مهمی در این زمینه می باشد. سیستم های خبره نقش جمع آوری و نگهداری و پردازش اطلاعات افراد خبره را بر عهده دارند و مدیران را در تصمیم گیری ها کمک می کنند. با توجه به اینکه
اطلاعات حاصله از افراد در بیشتر موارد غیردقیق می باشد، منطق فازی و سیستم های خبره فازی ابزارهای مناسبی برای تحلیل و پردازش این نوع اطلاعات می باشند. به همین منظور استفاده از ریاضیات فازی در محاسبات و یا تولید سیستم خبره ای که اطلاعات پایگاه دانش آن از افراد خبره و مدیران پروژه های نرم افزاری جمع آوری شده باشد، بهترین کمک را در تخمین پروژه ها به مدیران پروژه های نرم افزاری می کند.

مراجع

1. Roger S.Pressman, Software engineering third Edition, 1994 MC Grow-Hil

2. Zimmerman,H.J., Fuzzy set theory and it's applications, Klawer – Nighoff Publishing.

3. A.K.Sinha, Application of fuzzy theary to software Metrics, Thirty Fourth Annual

Convention of ORSI(2001).

4. Osias de Souza Lima Jnior, Maintenance Project Assesments uding Fuzzy Function Point

Analysis.

5. Abran, A., Reliability of Function Points Productivity Model For Enhancerr. (A Field

Study), 1993

6. Aprill, A., Abran, A, Industrial Research in Software Maintenance: Productivity Models,

Guide Summer’95 Conference and Solutions Fair, B

7. Belchior, A, D., A Fuzzy Model to Software Quality Evaluation, Th UFRJ/COPPE, May,

1997; in Poruguese.

8. Bourque P., Maya M., Abran A., A Sizing Measure for Adaptative Main Products, IFPUG

Spring Conference, Atlanta, April, 1996.

9. Lima, O.S.J., Farias, P.P.M., Belchior, A.D., Fuzzy Functions Points. –Dasma, Germany,

May, 2001.

10. Lerary R.R and Lin C.Y: Modelling the Software Development Process using an Expert

Simulation system having Fuzzy Logic Software-Practice and Experience, 21(1991), 133-

148.

11. Wernick P. and lehman M.M. : Software Process White Box Modelling for FEAST/1, Proc.

Work shop on Software Process Simulation and Modelling, Pro Sim, 98, june 22-24, Silver

(Falls, OR(1998

12. پایان نامه کارشناسی سمیه علیزاده، " طراحی و تولید گروه ابزاری برای کنترل و مدیریت پروژه های نرم افزاری"، تیر 77 دانشگاه صنعتی شریف، دانشکده کامپیوتر. استاد راهنما سید ابراهیم ابطحی عضو هیئت علمی دانشگاه صنعتی شریف دانشکده کامپیوتر.

13. سمیه علیزاده ، مهدی غضنفری، امیر آمای ، " ارائه یک سیستم هوشمند در تصمیم گیری برای انتخاب سبد سهام" اولین کنفرانس تجارت الکترونیک،آبان 83

برچسب ها : داده پرداز - مقاله - کنترل پروژه - مدیریت پروژه های نرم افزاری - شاخص های کمی نرم افزار - منطق فازی - سیستم های خبره و داده کاوی
h1

دیدگاه:

نام
پست الکترونیک
سایت
دیدگاه
کد امنیتی :
h1