صفحه 1:
فصل
پرنامه ریزی پروژه CS
نرم افزار
صفحه 2:
۲ bo eo eee ee
*برنامه ريزي شامل تخمین مي باشد يعني تلاش شما براي
تعیین میزان پول ,کار لازم,تعداد منابع و مقدار زمان لازم
براي ايجاد يك سيستم يا محصول خاص مبتني بر نرم افزار.
اد كسس ا کر بر انساع عس ان
1ل نرم افزاري با استفاده از اطلاعات جمع آور 2 Biles
مشتريان و مهندسان نرم افزاري و داده هاي متريك نرم
1 ار حاصل از برويه هاي كذشنه اين كار )0-1 07
دهند.
*منطقي است قبل از شروع به ایجاد نرم افزار,براوردي از
هزینه انجام دهیم.
صفحه 3:
3
sions ۰ كارهابي را كه بايد ت بكبرند تراك 7155
ae شود و هزی,نلاش, نا براي هر يك ارها را تشان مي دهد؛
فهرستي از منایع لازم نیز آرایه مي
* مدیریت پروژه نرم افزار: ي با مجموعه فمالتهيي آغاز بر ۱۳۳
برنامه ريزي پروژه planningl ۳0 نآمیده مي شود.
* قبل از اینکه پ 23 و بتواند آغاز شود مد زمر رو لا زا هی بر
. قرار است | يردءمنايع لازم وزمان لازم از شروع تا آنتها را تخمین بزنند.
* پیچید؟ بروزه تاثير شديدي روي عدم دارد كه در برنامه ريزي نهفته
۴ پچيدگي و سخت بودن کار يك معیار نسبي است که تحت تاثیر آشنايي با کار
و تجربه گذشته است.
0١ | 2 یل برنامه كاربردي پیچیده تجارت الكترونيکي که اولین ۳۱۲
١ ی دهد باید آثرا بسیار مشکل بداند. اما تيم نرم أفزاري كه اين ۱۳5
براي ده بار انجام داده , آن را بسیار سهل مي داند. 1
ادا ترك پروژه عامل مهمي ديگري است که مي تواند بر دفت و کان۳٩۶
تخمین رد
* با افزايش اندازه يزركي وابستگي دروني میان عناصر مختلف نرم افزار به
الجورّعت رشد مي
صفحه 4:
اهداف اصلي طرح رری ودره
Grn” برنامه ريزي پروژه نرم افزاري عبارنست از مهيا كردن
جارجوبي كه مدير را قادر به ارائه تخمين منطقي از منابع
هزينه و زمانبندي
*اين تخمین ها در يك چارچوب زماني در آغاز پروژه صورت
گرفته و مرتبا با پيشروي پروژه بروز ميشوند.
*علاوه بر اين تخمین ها تلاش دارند که بهترین و بدترین مورد
طرح ها را معین کنند تا نتیجه پروژه را بتوان محدود نمود.
صفحه 5:
دامنة ترم افزار 9
"اولين كار در برنامه ريزي يروزه عبارتست از تعيين دامنه آن.
*كاركرد و عملكرد مريوط به نرم افزار در طول مهندسي
سيستم بايد ارزيابي كردد كه غير مبهم و در سطوح مديريتي
و فني قابل درك باشد.كزارشي از اين دامنه بايد يبوست
شود.
دامنه نرم افزار اطلاعات و کنترل مورد پردازش , عملکرد,
کار,.محدودیتها رابط ها و قابلیت اطمینان را توصیف مي كند.
۴الزامات و قیود ae موجود در نرم افزار را بوسیله
سخت افزار خارجي يا حافظه موجود یا دیگر سيستمهاي
موجود شناسايي مي کنند.
صفحه 6:
دلیند نرب [فزلر(لداید)
*رایج ترين تكنيك مورد استفاده .براي برقزاري ۳
عبارتست از بر
*اولین مجموعه سئوالات آزاد روي مشتري متمرکز است.
*مثلا تحلیلگر ممکن است بپرسد
"جه كشي در يشت تقاضاي اين كار است؟
"جه كسي از اين راه حل استفاده ميكند؟
6
*مجموعه سئوالات دیگر تحلیلگر را قادر به شناخت بهتري از
و مشتري میکند.مثلا
*اين راه حل چه مشكلاتي را مورد خطاب قرار مي دهد؟
لت میتوانید محيطي را به من نشان دهید که در آن ۳۱
راه حل استفاده نشود؟
صفحه 7:
دامنه برم ار ۳۱ ۱
*مجموعه سئوالات آخري بر میزان تاثیر جلسه تاکید دارد و آن را
فوق پرسش مینامند و فهرست زیر پيشنهاد میشود :
لا سنوالات زيادي پرسیدم؟
*آیا سئوالات من با مسئله اي که مورد حل قرار داده اید مرتبط
اند؟
الات فوق پرسش کمي به تحرك اولیه مسئله کمل ۳۳۲
ای راکه براي ایجاد دامنه پروژه لازم است ایدار ۳
*بخش سئوال و جواب تنها بايد براي اولين برخورد استفاده شود
و سيس در قالب جلسه اي جايكزين أن شود.كه عناصر حل
مسئله مذاکره و مشخصات را مرتبط ميسازد.
صفحه 8:
ره
۰.. تعیین دامنه كافي نیست.وقتي دامنه فهمیده شد , تیم نرم
افزاري و دیگران باید مشخص سازند که با ابعاد روشن شده
آیا امکان کار وجود دارد يا خیر ؟ که اين خود قسمتي از
فرایند تخمین و برآاورد خواهد بود.
*عملي بودن نرم افزار داراي چهار بعد صرف است
*فن آوري
* مالي
*زمان
*منابع
صفحه 9:
منابع بروزة
© دومين كار در برنامه ريزي نرم افزاري تخمين منابع لازم براي
eae بوايد نرم افزار است.
*هر منبه داراي جهار مشخصه است: _
توصیف منبع , وضعیت دسترسي
آن موقع مورد نیاز است. مدت ز
ميشود.
ن. زمان تقويمي که در
ر گرفته
ابزارهاي سخت افزاري انرم افزاري
صفحه 10:
و
"كار تخمین را نا اواخر پروژه به تعویق بیندازیم.
*برآوردهار را بر پایه پروژه هايي قرار دهیم که هم اکنون
شدند.
کی تسبتاً ساده تفکيك براي ارائه اين برآوردها Pale
*از يك يا جند مدل سلسله مراتبی برای هزینه و تخمین پروژه
استفاده شود.
صفحه 11:
Oh 0
* خطوط كد ( (06وامتيازات كاريردى (6)به عنوان مقباسهاي توصيف شده در
الى ردت Dots ls! see le حساب کرد در طول کار پروژه به دو
1 ور استفاده قرار میگیرند:
۳۱| مغییر تخمینی که برای تعیین اندازه هر عنصر برم افزاری Gite ۳٩
5 مى شود.
5 وان متريك خط بايه كه از روي بروزه هاى قبلی جمع آوری ۰ ٩
clan ee تخفينى براق أراثة كزنيه ومیزان ne ۱9۳
مى شود.
060020 أو" ]فنون متمايزى از تخمين هستند.هردو داراى جند مك يس 01110
هستند .
© برنامه ریز پروژه با وضعیت محدود شده دامنه نرم افزارشروع کرده و از روی
آن تلاش می کند نرم افزار را به صورت توابعی ازمساله در بیاورد که بتوان هر
000 صورت مجزا برآورد کرد.06 او یرای هر تایعی تخمین ۱۳۰
oe
0000 برنامه ریز جز دیگزی را برای تعبین اندازه انتخاب می کند مثل کلا, ۳۶|
اشیا تغییرات یا فرایندهای تجارت تحت تاثیرقرار گرفته
صفحه 12:
* سپس متریک های بهره وری خط مبدا مانند(00/0۴0ایا-۲۳/۵۲۳
0 مخفف نفر-ماه)با متفییر برآورد مناسب بکار گرفته شده و
هزینه يا نیروی کار تابع به دست می آید
*فنون تخمین06 او از نظر جزئیات لازم برای تفکیک و هدف
تقسیم sri با هم متفاوتند
۳ ۵ به عنوان متغیر تخمین استفاده می شود رب تالا
ضروری است و اغلب از نطر جزئیات بررسی می شود.
*هر چه میزان تقسیم بندی بیشتر باشد این احتمال بیشتر است
که تخمین های منطقی دقیقتری از ۱0 ارائه شود.
۴ نورد تخمین های ۳۴ کار جدا سازی به صورت دیگری اس
گلا و بر مرکز تابع هر یک از مشخصه های دامنه اطلاعا ۳
ورودی ها خروجی ها فایلهای اطلاعاتی و...به علاوه 14 مقدار
٩ ببیدگی که در فصل 4 اشاره شد برآورده می ۳
صفحه 13:
*برنامه ریز بدون توجه به متغیر تخمین با برآورد یک سری
ای رای هر یک از تابع ها با مقدار دامته اطلاعاتى رو
می کند.
5 ا اشتفاده از اطلاعات تاربخی يا حدس برنامه ریز انرار؟
بزرگی هر تابع را به صورت خوشبینانه یا از روی بد بینی
تخمین می زند.
*میزان عدم قطعیت هنگامی مهیا می شود که دامنه ای از
اعدادمشخص شوند.سپس یک مقدار مورد انتظار یا aw
امتیازی محاسبه می شود.
#مقدار منتظره برای امتغير تخميئ (اندازه/ک,را می توان به
” |] بكلا قيانكين ارزيابى شده از تخمين هاا جور ١
(6028),دارای احتمال بالا(5۳۳)و تخمین بدبینانه
۳ )ارزيابى كرد .به 50655(
4Sm+Spess)/6+S=(Sopt
صفحه 14:
منالی از برآورد بیط (eve)
* به عنوان نمونه ای از فنون تخمین 00او۲,بسته نرم افزار باید در نظر بگیرید که
قرار است برای یک برنامه کاربردی طراحی با کمک کامپیوتر (0۵0)برای اجزای
مکانیکی تولید شود.
* بازنگری مشخصات سیستم نشانگر این است که نرم افزار قرار است روی یک
ایستگاه مهندسی اجرا شود و باید با محیطهای گرافیکی مختلف کامپیوتری از جمله
موس , صفحه نمایش دارای تفکیک پذیری بالا و چاپگر لیزری ارتباط برقرار کند
نرم افزار ۵0اطلاعات هندسی دو و سه بعدی مهندس را دریافت می کند.
مهندس با سیستم ارتباط برقرار کرده و ۵0را از طریق رابط کاربردی کنترل می
کند که مشخصات یک طراحی Luly متقابل ماشین - انسان را به خوبی نشان
میدهد .
* هم اطلاعات مهندسی و هم دیگر اطلاعات پشتیبان در پایگاه داده ای ۵0)حفظ
می شود.
* پیمانه های تحلیل و طراحی برای تولید خروجی لازم ارائه خواهند شد که روی یک
ی وسایل گراف دار ميشوند. وضعیت دامنه فوق , اقدام اولیه است بعنی
محدود نشده است .
* به طور مثال , قبل از تخمین زدن باید برنامه ریز تعبین کند که" مشخصه های
آطراخی خوب رابط متقابل انسان - ماشین "یعنی چه ؟
© یا اینکه اندازه و میزان پیچیدگی پایگاه داده ای ۵0باید چه باشد.
صفحه 15:
ر دستیابی به اهداف ,ما فرض we
پالایش بیشتری رخ داده و عملکرد ی نرم افزاری زیر
یی شده است :
(rope ae eee تس
1- تسهیلات کنترلی و رابط کاربر(6۳الا)
2- تحلیل هندسی دو بعدى (21038)
3- تحلیل هندسی سه بعدی (3DGA)
(DBM) wl wbl مدریت پایگاه -4
5- تسهیلات نمایشی گرافیک (CGDF) jiguolS
6- کارکرد کنترل دستگاه های (PCF) Guile
7- پیمانه های تحلیل (DAM) selb
صفحه 16:
رتیت مور تسیر مرا ربمت سس ایا
(Log)
ae
تعداد خطوط برآورد
شده برنامه
2300
5300
6800
3350
4950
2100
8400
فانكش.
تسهيلات كنترلى و رابط
(UICF) IS
(2DGA) sax 92 تحلیل هندسی
(3DGA) تحليل هندسى سه بعدى
)081/( مدريت بايكاه اطلاعاتى
تسهيلات نمايشى گرافیک
کامپیوتر(660۴)
کارکرد کنترل دستگاه های جانبی
(PCF)
پیمانه های تجلیل (DAM) 521 bo
صفحه 17:
منالی از برآوزد مبتی بر حطوط برنامه(6وبا)
"به دنبال تکنیک Jgaz7,LOC sly تخمین زننده در جدول 5-3
أمده است.
با استفاده از معادل : 4Sm-+Spess)/6
+S=(Sopt
* مقدار منتظره برای تابع هندسی سه بعدی 6800 می
شود .00اسایر تخمین ها به شیوه ای مشابه مشتق می شود
.با جمع بندی در ستون 06 اتخمینی برآورد 33150 خط کد
برای سیستم ارائه می شود.
صفحه 18:
منالی از برآورد عبت ار کارکردی FP))
*تفکیک سازی در مورد تخمین مبتنی بر ۲۴علاوه بر کارکردهای
نرم افزاری روی مقادیر دامنه اطلاعات نیز متمرکز می شود.
*بایادآوری جدول محاسبه امتیازات عملکردی که در شکل 4-5
آمده ,برنامه ریز پروژه ,ورودی ها ,خروجی
ها,درخواستها,فایلهاو رابطه های خارجی را در مورد نرم افزار
مین می زند.
8 ور اهداف این تخمین ,عامل ارزیابی پیچیدفی Reba
متوسط در نظر گرفته می شود .
صفحه 19:
*نهایتا میزان تخمین زده شده ۲۴به دست می آید:
* میانگین بهره وری سازمانی در مورد سیستم هایی ازاین نوع
می شود 6.5 ۲۳/۵۲۳۰ براساس دستمزد نیروی کار به میزان
0 دلار در ماه ,هزینه هر ۲0 تقریبا 1230دلار می
شود .بر اساس تخمین 106 و اطلاعات
هه ور ,هزینه تخمین زده پروژه 461000 دلار ر ۳
ر تخمینی 58 نفر در ماه است.
صفحه 20:
و دتار یر براررد شدد در سرزد دا
۱ ورن | شمارش | بدبينانه | متوس خوشبینا مقادیر و
3 برآوذد a) kk اطلاعاتى
las
ى
97 | 4 24 30 | 24 0 أتعداد ورودى ها
78 | 5 16 22 | 15 2 اتعداد خروجی ها
88 | 5 22 28 | 22 6 تعداد پرس و 35
ها
42 | 10 4 5 4 4 اتعداديرونده ها
15 | 7 2 3 2 2 آتعداد رابط های
خارجی
320 تعداد کل
صفحه 21:
برآورد مبتنی بر راكد
oi wh” تکنیک تخمین زدن یک پروژه عبارتست از مبنا قرار
دادن تخمین بر اساس شیوه فرایند.
* وقتی کارکردها و فعالتهای فرایندی اعلام شدند برنامه ریز
نیروی کاری را که (مثلا نفر-ماه)برای رسیدن به فرایند هر
11 نرم افزارى لازم است براوردمى كند (شكل 589
5)ميزان متوسط نيروى كار(هزينه/واحد نيروى كار)در نيروى
كار تخمین زده شده برای هر فرایند به کار گرفته می شود.
9 احتمال وجود دارد که میزان نیروی کاردر هر مورد متفاوت
*هزینه و نیروی کار برای هر عملیات و فرایند نرم افزاری به
عنوان آخرین مرحله استفاده می شود.
صفحه 22:
مثالى TE eee ۱
*به منظور تشریح استفاده از تخمین مبتنی بر فرایند نرم افزار
را در نظر می گیریم (مانند مثالهای قبل)
"به جدول 5-5 در اسلاید بعدی مراجعه شود.
*بر اساس میانگین نیروی کار به منظور 5000دلار در
ماه,هزینه تخمین زده کل پروژه 230000دلار بوده و نیروی
کار تخمینی نفر در ماه میباشد.اگر بخواهید میزان نیروی کار
با هر فرایند نرم افزاری يا مهندسی مرتبط شده و جداگانه
محاسبه می شود.
صفحه 23:
> ca a
* نروك تخمينى در ردداميه هاف نرم افزار 3jICAD
ile re 208 0
on از كل سه روش 53نفر -ماه است. حدا
تغییر از متور تخمین زده شده تقریا ۱۳13 ۳
*وقتی میزان سازگاری بٍ ع تخمين ar Ia اس ری
ی 5 ر متفاوت را آعلب می توان به يك يا
دود
1- دامثه يروزه به اندازه كافي شناخته نشده يا برنامه ريز
برداشت نادرستى از ان داشته است
2 کات بهبه وری مورد استفاده برای قنون تین Be
مسالم عر برنامه سب نیستند یا درست مورد استفاده
قرار نگرقته اند؛
صفحه 24:
eles aE 9 ساخنار
"یک مدل تخمینی عادی بااستفاده از تحلیل بازگشتی يا
رگرسیون بر روی اطلاعات جمع آوری شده از پروژه های
5 ,بدست می آید .
*ساختار کلی[مل(8دلواییتبه شکل زیراست: (۸۲94)
۴ (معادله 5-2)
۴ که درآن۸,8,6 ثابت بدست آمده به صورت تجربی هسنند ۴
نیروی کار برحسب نفر-ماه و 6۷متغیر تخمین می باشد
صفحه 25:
مدل کوکومو
*باری بوهوم در کتاب خود "اقتصاد مهندسی نرم افزار" یک
سری مدلهای تخمین نرم افزار معرفی میکند که دارای نام
کوکومو هستند(مدل هزینه ساختاری)
Be ار ار
ای ول در طول مراحل اولیه مهندسی نرم افزار ب- BIS
میرود.
*هنگامی که نمونه های اولیه رابط کاربر مدلسازی میشوند با
در نظر گرفتن رابطه متقابل سیستم و نرم افزار بر اورد
عملکرد و ارزیابی بلوغ فناوری که البته بسیار حجیم و عظیمند.
8 شلهاوليه طراحى
* وقتى بكار ميرود كه نياز منديها مشخص و معمارى مقدماتى
نرم افزار ايجاد شده است.
صفحه 26:
مدل مرحله آخر معماری
8 طول ساخت نرم افزار بکار میرود.نیازمند اطلاعات اندازه گیری
اك سه زنه از نظر آندرهبهعنوان بخ از a tal
شده اند:امتياز شى وامتياز كاركردى و خطوط كد
اه رس Pee
ene) سر ات میسن رشست وت رای برای
ساخت برنامه لازمند محاسبه میشود.هر مورد شی در سطوح پیچیدگی یکی
00 تكردهيتدى ميشود.در اصل بيجيدكى تابعى از ندز ۰ 2 9۳
لا تالت خادم/مخدوم است كه براى توليد صفحه يا كزارش لآرم 7007
تعداد دیدگاهها با بخش ها بعنوان بخشی از صفحه با گزارش ارایه شده آند.
* "امتياز جديد شى":
(NOP=(object points)(100-%reuse)/100 *
* برای بدست آوردن تخمین نیروی کار بر اساس مقداربالا باید
وری" را بدست آورد:
PROD=NOP/person-month *
* "تخمین نیروی کار پروژه ":
estimated effort=NOP/PROD *
میزان بهره
صفحه 27:
۱۱:۵3 تا ore ene ey
10
وزن پیچیدگی
متوسط
2
ساده
نوع
نمايشكر
گزارش
مولفه
صفحه 28:
eer C es toe ا
اشبا[80196]
خيلى بالا | بالا | متوسط | کم | خیلی کم | قابلیت /تجربه
محیط
o+¢:(PROD) 4 7 13 25 50
وری
صفحه 29:
معادلة نرم افرار,
معادلهنرم افزاریک مدل ديناميى جند متغيره است كه توزيع
نيروى معينى را در طول حيات يروزه توليد نرم افزار
فرض ميكيرد.
ول تخمینی:
28> م ال ve oe
۴ < مدنپروژه به سالیا ما
Jole B=" مهارتهای
تن هرد وریکه منعکسک ننده موارد زیر است
جح کلی فرایند و شیوه های مدیریتی
لا ۶ عقباسی که نسبت به آن روشهای و ۳۳
Cam میت وند.
انهای برنا ی مورد استفاده.
“ae محیط نرم افزا
*- مهارتها و تجربه تیم نرم افزاری .
*- پیچیدگی برنامه کاربردی .
صفحه 30:
معادله نرم افزاری دارای دو پارامتر مستقل است :
-تخمینی از (LOC) ojlail
*-نشانگری از مدت پروژه به ماهها یا سالهای تقویمی .
*حد اقل زمان تولید :
tain > 6Mont ۳ 20141100 را
F=186¢ E>20
صفحه 31:
تصمیم گیری سناخت /خرید
”در حوزه هاى متعددى از برنامه هلي كاربردى مقرون نه صرقم
تر است که sly تولید ترم افزار کامپیوتر آن را خریداری
*مدیران مهندسی نرم افزآر با تصمیم گیری در خرید یا
مواجه هستند که میتواند با چند گزینه در مورد خرید پیچیده تر
شود:
سکن آست نرم افزار بصورت آماده خریداری شود"
sljzl -2° افزاری بت "با تجربه کامل"یا لبا تجربه
{aos ee صلاح شده و بکپار ۶ ۳۳ نیازها
ا أورده سازند.
1 ممکن | افزار توسط ببمانكارى خارج از سازما
طبق سقارش ساخله هده باشد ۳ ee
ازد.
صفحه 32:
9 رد eae نرم افزاری گرانتر رهنمودهای زیر را میتوان
31 مشخصاتى برای کارکرد و عملکرد نرم افزار ما ۲۱۱۱۲۳
ات ادليه نا نوليد و تاريخ تحويل را میگوید.
9 الف سهیا چهار برنامه نموته انتكاب ميكتد 0005 POU!
soso jos Lek sly See
*- ب اجزای نرم افزاری قابل استفاده مجددی انتخاب میکند که
لت برناهت مورد نیاز شما را باری
40“ شبکه مقایسه ای تشکیل میدهد که نمايانكر مقايسه سر به
0 ات اضلی است.
۴ هر بسته نرم افزاری یا مولفه را بر اساس کیفیت محصول
له يشتيبانى ی ی مخصول و Mel
* 6- با سایر کاربران ترم افزار تماس گرفته نظراتشان را جویا
شود
صفحه 33:
ایجاد یک درخت تصمیم گیری ۲
"مراحل توصیف شده فوق را میتوان با استفاده از فنون آماری
در تصمیم گیری ارزیابی کرد.
هزینه مورد نظرح (مسیر احتمالی)*(هزینه مسیر تخمینی)
صفحه 34:
استفاده از منابع خارجی
" منابع خارجی از نظر مفهوم بسیار ساده هستند.کارهای
طراحی نرم افزار با شخص ثالثی قرارداد بسته میشوند که
این شخص کمترین هزینه و بالاترین کیفیت کار را انجام دهد.
*معمولا پس اندازهای هزینه ای با کاهش تعداد افراد مربوطه
به کار نرم افزاری حاصل میگردد که از آنها حمایت میکنند.از
جنبه منفی شرکت کنترل نرم افزاری را که به آن نیاز دارد از
دست ميدهد.
صفحه 35:
ارهای خود کار برآورد
ag S* بزارهای تخمین خودکا بسیاری وجود دارند اما همه
ن داده و همه شش عملکرد
oF ای
که sll es
۴*- اندازه بندی موارد قابل تحویل پروژه.
2°- انتخاب فعالیتهای پروژه.
۴ پیش بینی میزان کارکنان.
0 بینی نیروی کاری نرم افزار.
* 5- ييش بينى هزينه نرم افزار.
00 شي بینی جداول زمانی کار.
*معمولا تخمین های دقیق د یک پروژه | حد اقل د سه
.ىك دوق استقاذه ميكنتد با مقايسه و بررسى Bis
شده از فثون مختلف Mel برنامو تخمین دقیقتمی
بروذه نرم اقزارى هركز علم «قيقى نبست إمأ
0 ار ۱ ريخى خوب و فنون نظام مند است که
eee میزان دقت,راردر ان بهبود بخشند.
فصل
برنامه ریزی پروژه
نرم افزار
5
برنامه ريزي پروژه نرم افزاري چيست؟
برنام ه ريزي شام ل تخمي ن م ي باش د يعن ي تالش شما براي
تعيي ن ميزان پول ،كار الزم،تعداد منابع و مقدار زمان الزم
براي ايجاد يك سيستم يا محصول خاص مبتني بر نرم افزار.
چه كسي اين كار را انجام مي دهد؟
مديران نرم افزاري با استفاده از اطالعات جمع آوري شده از
مشتريان و مهندس ان نرم افزاري و داده هاي متريك نرم
افزاري حاص ل از پروژ ه هاي گذشت ه اي ن كار را انجام مي
دهند.
منطق ي اس ت قب ل از شروع به ايجاد نرم افزار،برآوردي از
هزينه انجام دهيم.
2
محصول نهايي
جدول ساده اي كه جزييات كارهايي را كه بايد صورت بگيرند،توابعي كه بايد
ايجاد شوند،و هزينه،تالش،زمان الزم براي هر يك کارها را نشان مي دهد،
فهرستي از منابع الزم نيز ارايه مي گردد.
مديريت پروژه نرم افزاري با مجموعه فعاليتهايي آغاز مي شود كه جمعا ً
برنامه ريزي پروژه يا project planningناميده مي شود.
قبل از اينكه پروژه بتواند آغاز شود مدير و تيم نرم افزاري بايد كاري را كه
قرار است انجام گيرد،منابع الزم وزمان الزم از شروع تا انتها را تخمين بزنند.
پيچيدگي پروژه تاثير شديدي روي عدم قطعيت دارد كه در برنامه ريزي نهفته
است.
پچيدگي و سخت بودن كار يك معيار نسبي است كه تحت تاثير آشنايي با كار
و تجربه گذشته است.
توليد كننده يك برنامه كاربردي پيچيده تجارت الكترونيكي كه اولين بار آن را
انجام مي دهد بايد آنرا بسيار مشكل بداند ،اما تيم نرم افزاري كه اين كار را
براي ده بار انجام داده ،آن را بسيار سهل مي داند.
اندازه بزرگي پروژه عامل مهمي ديگري است كه مي تواند بر دقت و كارآيي
تخمين ها تاثير بگذارد.
با افزايش اندازه بزرگي وابستگي دروني ميان عناصر مختلف نرم افزار به
سرعت رشد مي كنند.
3
اهداف اصلي طرح ريزي پروژه
هدف برنامه ريزي پروژه نرم افزاري عبارتست از مهيا كردن
چارچوبي كه مدير را قادر به ارائه تخمين منطقي از منابع
هزينه و زمانبندي كند.
اين تخمين ها در يك چارچوب زماني در آغاز پروژه صورت
گرفته و مرتبا ً با پيشروي پروژه بروز ميشوند.
عالوه بر اين تخمين ها تالش دارند كه بهترين و بدترين مورد
طرح ها را معين كنند تا نتيجه پروژه را بتوان محدود نمود.
4
دامنه نرم افزار
اولين كار در برنامه ريزي پروژه عبارتست از تعيين دامنه آن.
كاركرد و عملكرد مربوط به نرم افزار در طول مهندسي
سيستم بايد ارزيابي گردد كه غير مبهم و در سطوح مديريتي
و فني قابل درك باشد.گزارشي از اين دامنه بايد پيوست
شود.
دامنه نرم افزار اطالعات و كنترل مورد پردازش ،عملكرد،
كار،محدوديتها رابط ها و قابليت اطمينان را توصيف مي كند.
الزامات و قيود ،محدوديتهاي موجود در نرم افزار را بوسيله
سخت افزار خارجي يا حافظه موجود يا ديگر سيستمهاي
موجود شناسايي مي كنند.
5
دامنه نرم افزار(ادامه)
رايج ترين تكنيك مورد استفاده براي برقراري ارتباط بين
مشتري و توليدكننده و شروع فرآيند عبارتست از برگزاري
يكك جلسه يا مصاحبه.
اولين مجموعه سئواالت آزاد روي مشتري متمركز است.
مثال ً تحليلگر ممكن است بپرسد
چه كشي در پشت تقاضاي اين كار است؟
چه كسي ا ز اين راه حل استفاده ميكند؟
...
مجموعه سئواالت ديگر تحليلگر را قادر به شناخت بهتري از
مسئله و مشتري ميكند.مثال ً
اين راه حل چه مشكالتي را مورد خطاب قرار مي دهد؟
آيا شما ميتوانيد محيطي را به من نشان دهيد كه در آن اين
راه حل استفاده نشود؟
6
دامنه نرم افزار(ادامه)
مجموعه سئواالت آخري بر ميزان تاثير جلسه تاكيد دارد و آن را
فوق پرسش مينامند و فهرست زير پيشنهاد ميشود :
آيا من سئواالت زيادي پرسيدم؟
آيا سئواالت من با مسئله اي كه مورد حل قرار داده ايد مرتبط
اند؟
...
سئواالت فوق پرسش كمي به تحرك اوليه مسئله كمك كرده و
ارتباطي را كه براي ايجاد دامنه پروژه الزم است ايجاد ميكند.
بخش سئوال و جواب تنها بايد براي اولين برخورد استفاده شود
و سپس در قالب جلسه اي جايگزين آن شود.كه عناصر حل
مسئله مذاكره و مشخصات را مرتبط ميسازد.
7
امكان سنجي
...تعيين دامنه كافي نيست.وقتي دامنه فهميده شد ،تيم نرم
افزاري و ديگران بايد مشخص سازند كه با ابعاد روشن شده
آيا امكان كار وجود دارد يا خير ؟ كه اين خود قسمتي از
فرآيند تخمين و برآورد خواهد بود.
عملي بودن نرم افزار داراي چهار بعد صرف است
فن آوري
مالي
زمان
منابع
8
منابع پروژه
دومين كار در برنامه ريزي نرم افزاري تخمين منابع الزم براي
نيل به كار توليد نرم افزار است.
هر منبع داراي چهار مشخصه است:
توصيف منبع ،وضعيت دسترسي به آن ،زمان تقويمي كه در
زماني كه منبع بكار گرفته
آن موقع مورد نياز است ،مدت
افرا
ميشود.
د
اجزا ومولفه هاي
نرم افزاري قابل
استفاده مجدد
ابزار هاي سخت افزاري /نرم افزاري
9
برآورد پروژه هاي نرم افزاري
كار تخمين را تا اواخر پروژه به تعويق بيندازيم.
برآوردهار را بر پايه پروژه هايي قرار دهيم كه هم اكنون
تكميل شدند.
از فنون نسبتا ً ساده تفكيك براي ارائه اين برآوردها استفاده
كنيم.
از يك يا چند مدل سلسله مراتبی برای هزینه و تخمین پروژه
استفاده شود.
10
برآورد مبتنی بر مساله
خطوط کد ( (LOCوامتیازات کاربردی()FPبه عنوان مقیاسهای توصیف شده در
فصل 4که روی آنها می توان متریک را حساب کرد در طول کار پروژه به دو
صورت مورد استفاده قرار میگیرند:
-1به عنوان متغییر تخمینی که برای تعیین اندازه هر عنصر نرم افزاری استفاده
می شود.
-2به عنوان متریک خط پایه که از روی پروژه های قبلی جمع آوری شده و در
ارتباط با متغییرهای تخمینی برای ارائه هزینه و میزان نیروی کار پروژه استفاده
می شود.
براوردLOCوFPفنون متمایزی از تخمین هستند.هردو دارای چندمشخصه مشترک
هستند .
برنامه ریز پروژه با وضعیت محدود شده دامنه نرم افزارشروع کرده و از روی
آن تالش می کند نرم افزار را به صورت توابعی ازمساله در بیاورد که بتوان هر
کدام را به صورت مجزا براورد کردLOC.وFPبرای هر تابعی تخمین زده می
شود.
بعد برنامه ریز جز دیگری را برای تعیین اندازه انتخاب می کند مثل کالسها یا
اشیا تغییرات یا فرایندهای تجارت تحت تاثیرقرار گرفته .
11
سپس متریک های بهره وری خط مبدا مانند(LOC/pmیاFP/pm-
pmمخفف نفر-ماه)با متغییر برآورد مناسب بکار گرفته شده و
هزینه یا نیروی کار تابع به دست می آید
فنون تخمینLOCو FPاز نظر جزئیات الزم برای تفکیک و هدف
تقسیم بندی با هم متفاوتند
وقتی LOCبه عنوان متغیر تخمین استفاده می شود تجزیه کامال
ضروری است و اغلب از نطر جزئیات بررسی می شود.
هر چه میزان تقسیم بندی بیشتر باشد این احتمال بیشتر است
که تخمین های منطقی دقیقتری از LOCارائه شود.
در مورد تخمین های FPکار جدا سازی به صورت دیگری است
عالوه بر تمرکز تابع هر یک از مشخصه های دامنه اطالعات یعنی
ورودی ها خروجی ها فایلهای اطالعاتی و...به عالوه 14مقدار
تطابق پیچیدگی که در فصل 4اشاره شد برآورده می شود.
12
برنامه ریز بدون توجه به متغیر تخمین با برآورد یک سری
مقادیر برای هر یک از تابع ها یا مقدار دامنه اطالعاتی شروع
می کند.
با استفاده از اطالعات تاریخی یا حدس برنامه ریز اندازه
بزرگی هر تابع را به صورت خوشبینانه یا از روی بد بینی
تخمین می زند.
میزان عدم قطعیت هنگامی مهیا می شود که دامنه ای از
اعدادمشخص شوند.سپس یک مقدار مورد انتظار یا سه
امتیازی محاسبه می شود.
مقدار منتظره برای متغیر تخمینی (اندازه),Sرا می توان به
عنوان یک میانگین ارزیابی شده از تخمین های خوشینانه
(,)Soptدارای احتمال باال()Smو تخمین بدبینانه
() Spessارزیابی کرد .به طور مثال:
4Sm+Spess)/6+S=(Sopt
13
مثالی از برآورد مبتنی بر خطوط بر5نامه()LOC
به عنوان نمونه ای از فنون تخمین LOCو,FPبسته نرم افزار باید در نظر بگیرید که
قرار است برای یک برنامه کاربردی طراحی با کمک کامپیوتر ()CADبرای اجزای
مکانیکی تولید شود.
بازنگری مشخصات سیستم نشانگر این است که نرم افزار قرار است روی یک
ایستگاه مهندسی اجرا شود و باید با محیطهای گرافیکی مختلف کامپیوتری از جمله
موس ,صفحه نمایش دارای تفکیک پذیری باال و چاپگر لیزری ارتباط برقرار کند.
نرم افزار CADاطالعات هندسی دو و سه بعدی مهندس را دریافت می کند.
مهندس با سیستم ارتباط برقرار کرده و CADرا از طریق رابط کاربردی کنترل می
کند که مشخصات یک طراحی رابط متقابل ماشین – انسان را به خوبی نشان
میدهد .
هم اطالعات مهندسی و هم دیگر اطالعات پشتیبان در پایگاه داده ای CADحفظ
می شود.
پیمانه های تحلیل و طراحی برای تولید خروجی الزم ارائه خواهند شد که روی یک
سری وسایل گرافیکی نمودار میشوند .وضعیت دامنه فوق ,اقدام اولیه است یعنی
محدود نشده است .
به طور مثال ,قبل از تخمین زدن باید برنامه ریز تعیین کند که" مشخصه های
طراحی خوب رابط متقابل انسان – ماشین "یعنی چه ؟
یا اینکه اندازه و میزان پیچیدگی پایگاه داده ای CADباید چه باشد.
14
مثالی از برآورد مبتنی بر خطوط برنامه()LOC
به منظور دستیابی به اهداف مدنظر ,ما فرض می کنیم که
پاالیش بیشتری رخ داده و عملکردهای نرم افزاری زیر
شناسایی شده است :
-1
-2
-3
-4
-5
-6
-7
15
تسهیالت کنترلی و رابط کاربر()UICF
تحلیل هندسی دو بعدی ()2DGA
تحلیل هندسی سه بعدی ()3DGA
مدریت پایگاه اطالعاتی ()DBM
تسهیالت نمایشی گرافیک کامپیوتر()CGDF
کارکرد کنترل دستگاه های جانبی ()PCF
پیمانه های تحلیل طراحی()DAM
جدول 5-3برآورد و تخمین برای روش تعداد خطوط
برنامه ()LOC
تعداد خطوط برآورد
شده برنامه
2300
5300
6800
3350
4950
2100
16
8400
فانکشن
تسهیالت کنترلی و رابط
کاربر()UICF
تحلیل هندسی دو بعدی ()2DGA
تحلیل هندسی سه بعدی ()3DGA
مدریت پایگاه اطالعاتی ()DBM
تسهیالت نمایشی گرافیک
کامپیوتر()CGDF
کارکرد کنترل دستگاه های جانبی
()PCF
پیمانه های تحلیل طراحی()DAM
مثالی از برآورد مبتنی بر خطوط برنامه()LOC
به دنبال تکنیک برای ,LOCجدول تخمین زننده در جدول 5-3
آمده است.
4Sm+Spess)/6
با استفاده از معادل :
+S=(Sopt
مقدار منتظره برای تابع هندسی سه بعدی 6800می
شود LOC.سایر تخمین ها به شیوه ای مشابه مشتق می شود
.با جمع بندی در ستون LOCتخمینی برآورد 33150خط کد
برای سیستم ارائه می شود.
17
مثالی از برآورد مبتنی بر امتیاز کارکردی ((FP
تفکیک سازی در مورد تخمین مبتنی بر FPعالوه بر کارکردهای
نرم افزاری روی مقادیر دامنه اطالعات نیز متمرکز می شود.
بایادآوری جدول محاسبه امتیازات عملکردی که در شکل 4-5
آمده ,برنامه ریز پروژه ,ورودی ها ,خروجی
ها,درخواستها,فایلهاو رابطه های خارجی را در مورد نرم افزار
CADتخمین می زند.
در مورد اهداف این تخمین ,عامل ارزیابی پیچیدگی به طور
متوسط در نظر گرفته می شود .
18
نهایتا میزان تخمین زده شده FPبه دست می آید:
میانگین بهره وری سازمانی در مورد سیستم هایی ازاین نوع
می شود FP/pm 6.5براساس دستمزد نیروی کار به میزان
8000دالر در ماه ,هزینه هر FPتقریبا 1230دالر می
شود .بر اساس تخمین LOCو اطالعات
بهره وری ,هزینه تخمین زده پروژه 461000دالر و نیروی
کار تخمینی 58نفر در ماه است.
19
جدول 4-5مقادیر برآورد شده در حوزه اطالعات
امتیا وزن
ز
عمل
ی
شمارش
برآوذد
بدبینانه متوس
ط
خوشبینا مقادیر حوزه
اطالعاتی
نه
97
4
24
30
24
20
تعداد ورودی ها
78
5
16
22
15
12
تعداد خروجی ها
88
5
22
28
22
16
تعداد پرس و جو
ها
42
10
4
5
4
4
تعدادپرونده ها
15
7
2
3
2
2
تعداد رابط های
خارجی
32020
تعداد کل
برآورد مبتنی بر فرایند
رایج ترین تکنیک تخمین زدن یک پروژه عبارتست از مبنا قرار
دادن تخمین بر اساس شیوه فرایند.
وقتی کارکردها و فعالتهای فرایندی اعالم شدند برنامه ریز
نیروی کاری را که (مثال نفر-ماه)برای رسیدن به فرایند هر
کارکرد نرم افزاری الزم است براوردمی کند (شکل -5
)5میزان متوسط نیروی کار(هزینه/واحد نیروی کار)در نیروی
کار تخمین زده شده برای هر فرایند به کار گرفته می شود.
این احتمال وجود دارد که میزان نیروی کاردر هر مورد متفاوت
باشد.
هزینه و نیروی کار برای هر عملیات و فرایند نرم افزاری به
عنوان آخرین مرحله استفاده می شود.
21
مثالی مبتنی بر فرایند
به منظور تشریح استفاده از تخمین مبتنی بر فرآیند نرم افزار
CADرا در نظر می گیریم (مانند مثالهای قبل)
به جدول 5-5در اسالید بعدی مراجعه شود.
بر اساس میانگین نیروی کار به منظور 5000دالر در
ماه,هزینه تخمین زده کل پروژه 230000دالر بوده و نیروی
کار تخمینی نفر در ماه میباشد.اگر بخواهید میزان نیروی کار
با هر فرایند نرم افزاری یا مهندسی مرتبط شده و جداگانه
محاسبه می شود.
22
مثالی مبتنی بر فرایند
نیروی کار کل تخمینی در مورد دامنه های نرم افزاری CADاز
حداقل 46نفر در ماه تا حداکثر 58نفر می رسد.میانگین
برآورد از کل سه روش 53نفر –ماه است .حداکثر میزان
تغییر از متوسط تخمین زده شده تقریبا 13درصد است.
وقتی میزان سازگاری بین تخمین ها ناچیز است چه اتفاقی
رخ داده؟تخمین های بسیار متفاوت را اغلب می توان به یک یا
دودلیل پیگیری نمود:
-1دامنه پروژه به اندازه کافی شناخته نشده یا برنامه ریز
برداشت نادرستی از آن داشته است
-2اطالعات بهره وری مورد استفاده برای فنون تخمین مبتنی بر
مساله ,از نظر برنامه مناسب نیستند یا درست مورد استفاده
قرار نگرفته اند.
23
ساختار مدل های برآورد
یک مدل تخمینی عادی بااستفاده از تحلیل بازگشتی یا
رگرسیون بر روی اطالعات جمع آوری شده از پروژه های
قبلی ,بدست می آید .
مدلهاییEبه شکل زیراست}MAT94{:
ساختار کلی cچنین
)A BX(ev
( معادله )5-2
که درآن A,B,Cثابت بدست آمده به صورت تجربی هستند E
نیروی کار برحسب نفر-ماه و evمتغیر تخمین می باشد
24
مدل کوکومو
باری بوهوم در کتاب خود "اقتصاد مهندسی نرم افزار" یک
سری مدلهای تخمین نرم افزار معرفی میکند که دارای نام
کوکومو هستند(مدل هزینه ساختاری)
مدل ترکیبی کاربردی
این مدل در طول مراحل اولیه مهندسی نرم افزار به کار
میرود.
هنگامی که نمونه های اولیه رابط کاربر مدلسازی میشوند با
در نظر گرفتن رابطه متقابل سیستم و نرم افزار بر اورد
عملکرد و ارزیابی بلوغ فناوری که البته بسیار حجیم و عظیمند.
مدل مرحله اولیه طراحی
وقتی بکار میرود که نیاز مندیها مشخص و معماری مقدماتی
نرم افزار ایجاد شده است.
25
مدل مرحله آخر معماری
در طول ساخت نرم افزار بکار میرود.نیازمند اطالعات اندازه گیری
است.سه گزینه از نظر اندازه به عنوان بخشی از سلسله مراتب مدل مهیا
شده اند:امتیاز شی وامتیاز کارکردی و خطوط کد منبع.
امتیاز شی یک معیار نرم افزاری غیر مستقیم است که با استفاده از
شمارش تعداد -1صفات نمایش -2گزارشات و -3اجزایی که احتماال برای
ساخت برنامه الزمند محاسبه میشود.هر مورد شی در سطوح پیچیدگی یکی
از این سه گروهبندی میشود.در اصل پیچیدگی تابعی از تعداد و منبع جدول
اطالعات خادم/مخدوم است که برای تولید صفحه یا گزارش الزم بوده و
تعداد دیدگاهها یا بخش ها بعنوان بخشی از صفحه یا گزارش ارایه شده اند.
" امتیاز جدید شی":
)NOP=(object points)(100-%reuse)/100
برای بدست آوردن تخمین نیروی کار بر اساس مقدارباال باید "میزان بهره
وری" را بدست آورد:
PROD=NOP/person-month
" تخمین نیروی کار پروژه ":
estimated effort=NOP/PROD
26
وزن پیچیدگی برای انواع اشیا[]BOE96
وزن پیچیدگی
27
نوع
مشکل
متوسط
ساده
3
2
1
نمایشگر
8
5
2
گزارش
10
-
-
مولفه
نرخ های بهره وری برای امتیازات
اشیا[]BOE96
خیلی باال
باال
متوسط
کم
خیلی کم
قابلیت /تجربه
خیلی باال
باال
متوسط
کم
خیلی کم
قابلیت/بلوغ
محیط
50
25
13
7
4
()PRODبهره
وری
28
معادله نرم افزار
معادله نرم افزاریک مدل دینامیک چند متغیره است که توزیع
نیروی کار معینی را در طول حیات پروژه تولید نرم افزار
فرض میگیرد.
مدل تخمینی:
=E نیروی کاری فرد در ماه یا سال
ل ا ماه
مدت روژه ب ه س ا ی
پ
= T
B = عامل مهارتهای ویژه
= P پ ارامتر ب هره وریک ه م نعکسک ننده موارد زیر است
- تکامل کلی فرایند و شیوه های مدیریتی
- میزان و مقیاسی که نسبت به آن روشهای خوب مهندسی
نرم افزاری استفاده میشوند.
- سطح زبانهای برنامه نویسی مورد استفاده.
- وضعیت محیط نرم افزاری .
- مهارتها و تجربه تیم نرم افزاری .
- پیچیدگی برنامه کاربردی .
29
معادله نرم افزاری دارای دو پارامتر مستقل است :
-1 تخمینی از اندازه ()LOC
-2 نشانگری از مدت پروژه به ماهها یا سالهای تقویمی .
حد اقل زمان تولید :
tmin 6month
E 20
30
0.43
)tmin 8.14(LOC/ P
3
E 180Bt
تصمیم گیری ساخت /خرید
در حوزه های متعددی از برنامه های کاربردی مقرون به صرفه
تر است که بجای تولید نرم افزار کامپیوتر آن را خریداری کنیم .
مدیران مهندسی نرم افزار با تصمیم گیری در خرید یا تولید
مواجه هستند که میتواند با چند گزینه در مورد خرید پیچیده تر
شود:
-1 ممکن است نرم افزار بصورت آماده خریداری شود.
-2 اجزای نرم افزاری بصورت "با تجربه کامل"یا "با تجربه
نسبی"بدست آیند و سپس اصالح شده و یکپارچه گردند تا نیازها
را بر آورده سازند.
-3 ممکن است نرم افزار توسط پیمانکاری خارج از سازمان
طبق سفارش ساخته شده باشد تا نیازهای خریدار را مرتفع
سازد.
31
در مورد محصوالت نرم افزاری گرانتر رهنمودهای زیر را میتوان
بکار گرفت :
- 1 مشخصاتی برای کارکرد و عملکرد نرم افزار مطلوب ارایه
میدهد.
-2 هزینه اولیه تا تولید و تاریخ تحویل را میگوید.
- 3 الف سه یا چهار برنامه نمونه انتخاب میکند که به بهترین نحو
با مشخصه های شما جور میشود.
-3 ب اجزای نرم افزاری قابل استفاده مجددی انتخاب میکند که
در ساخت برنامه مورد نیاز شما را یاری میکنند.
- 4 شبکه مقایسه ای تشکیل میدهد که نمایانگر مقایسه سر به
سر عملیات اصلی است.
-5 هر بسته نرم افزاری یا مولفه را بر اساس کیفیت محصول
گذشته پشتیبانی فروشنده راهنمای محصول و ...ارزیابی میکند.
- 6 با سایر کاربران نرم افزار تماس گرفته نظراتشان را جویا
میشود
32
ایجاد یک درخت تصمیم گیری
مراحل توصیف شده فوق را میتوان با استفاده از فنون آماری
در تصمیم گیری ارزیابی کرد.
هزینه مورد نظر= (مسیر احتمالی)*(هزینه مسیر تخمینی)
33
استفاده از منابع خارجی
منابع خارجی از نظر مفهوم بسیار ساده هستند.کارهای
طراحی نرم افزار با شخص ثالثی قرارداد بسته میشوند که
این شخص کمترین هزینه و باالترین کیفیت کار را انجام دهد.
معموال پس اندازهای هزینه ای با کاهش تعداد افراد مربوطه
به کار نرم افزاری حاصل میگردد که از آنها حمایت میکنند.از
جنبه منفی شرکت کنترل نرم افزاری را که به آن نیاز دارد از
دست میدهد.
34
ابزارهای خود کار برآورد
گرچ ه ابزارهای تخمی ن خودکار بس یاری وجود دارن د ام ا همه
مشخصه های عمومی یکسانی نشان داده و همه شش عملکرد
کلی زیر را اجرا میکنند:
-1 اندازه بندی موارد قابل تحویل پروژه.
-2 انتخاب فعالیتهای پروژه.
-3 پیش بینی میزان کارکنان.
-4 پیش بینی نیروی کاری نرم افزار.
-5 پیش بینی هزینه نرم افزار.
-6 پیش بینی جداول زمانی کار.
معموال تخمی ن های دقی ق در ی ک پروژ ه از ح د اق ل دو ت ا سه
تکنیک فوق استفاده میکنند با مقایسه و بررسی تخمینهای ارایه
شده از فنون مختل ف احتماال برنام ه ری ز ب ه تخمین دقیقتری
میرسد.تخمین پروژه نرم افزاری هرگز علم دقیقی نیست اما
ترکیبی ار اطالعات تاریخی خوب و فنون نظام مند است که
میتوانند میزان دقت را در آن بهبود بخشند.
35