صفحه 1:
درس مهندسی نرم‌افزار ۲ فصل ۲۳ دکتر احمد عبداله زاده بارفروش تهيه كننده : بويا جافريان 0 وا سر موه توق

صفحه 2:
طرح ریزی پروژه نرم افزاری a ‘an ‏ردگیری» و پایش یک پروژه‎ » | _ فنی بیچیده می باشد. * برای چه این کار را انجام می دهیم ؟ Core ee ee ee 0

صفحه 3:
مجموعه فعالیت های طرح ریزی پروژه ؟ تعیین دامنه پروژه ؟ امکان سنجی پروژه * تحليل ريسك ها Ce eee one (c een nae, 6

صفحه 4:
ار ل ا 2 * Off-the-shelf components ‏وري 1 اك‎ 6 oc] an eeepc ons ogee [oe oa ‏نظر تولید ارزانتر تمام شود.‎ * Full-Experience Components 0 ‏ا‎ cen Caren Pepe ra IP Fare * Partial-Experience Components 0 a ٠ New Components 0110 ey @

صفحه 5:

صفحه 6:
مجموعه فعالیت های طرح ریزی پروژه ؟ تخمین هزینه و کار ‎oe‏ ‎Ne ago ae =‏ یی را اسه اسار ‎t Function Point . Process Tasks‏ موارد کاربرد ۳ * تهیه برنامه زمانی پروژه 0000 ey

صفحه 7:
* تخمين منابع» هزينه و زمانبندى براى يك فعاليت مهندسی نرم افزار به موارد زير احتياج دارد: ‎ee‏ ‏ای ال ‎Bens sya‏ - شجاعت براى اطمينان به اطلاعات عددى وقتى اين اطلاعات موجود است. ؟ تخمین به طور ذاتی دارای ریسک می باشد و این ‎SS ene enD‏ 0000 oe

صفحه 8:
طرح پروژه باید مستند شود. 0110 ey 3

صفحه 9:
برای فهم دامنه پروژه * فهم نياز هاى مشترى * فهم حوزه كسب و كار * فهم مرزهاى يروزه * فهم دلایل اشتیاق مشتری | 5 وقتى شما همه جيز را فهميده ايد بازهم هيج جيز قطعی نیست. 0110 ey 6

صفحه 10:
© cus (SCOPE) ancl * دامنه پروژه موارد زیر را شرح می دهد : ‎ee res Sees Sat‏ ك6 شود 7 داده های ورودی و خروجی ‎POSE ee ye ety nee‏ ‎ee‏ ‎rene ac‏ 1۳ افزار و ار ۰ ‎Pee ee eee ae er >‏ می شود. 7 مجموعه ای از موارد کاربرد توسط کاربر نهایی تولید می شود. 0000 0

صفحه 11:
location reusable software ors ponents full-experiena components 0110 ey a

صفحه 12:
تخمين يروزه RSM eee INCL ST ences el etre” ۴ شاخص های آماری سودمند هستند. * حداقل دو روش مختلف بايد استفاده شود. * عدم اطمینان یکی از ویژگی های ذاتی فرایند تخمين است. eee eee ea 06

صفحه 13:
تكنيك هاى تخميز * يروزه هاى ييشين * روش هاى تخمين معمول - شکستن فعالیت ها و تخمین 0 رين * مدل ‎(Empirical Models) (225 cle‏ * ابزارهاى 5053 ‎(Automated Tools)‏ 0110 ey 6

صفحه 14:
دقت تخمین بر مبنای موارد زیر تعیین می شود: - درجه اى از دقت كه طرح ريزى كننده يروزه اندازه ‎eee |‏ ا 0 ‎eee ay FRYER E res‏ 0 ا ‏- درجه اى از قدرت طرح نرم افزار در نمايش توانايى هاى تيم نرم افزارى ‏- ثبات نيازمندى هاى محصول و محيطى كه فعاليت های مهندسی نرم افزار را پشتیبانی می کند. ‎000 0

صفحه 15:
(Functional Decomposition) (695 IS 43> 0 06

صفحه 16:
define product scope: identity functions by decomposing soope: do while Functions remain ‎Function;‏ ۵ مدمه ‎andi ol fanotone ‏انا دنه و۱‎ ‎do whe eubtunotins remsin ‎eloot cub function, ‎i cubfunction, resembles subtunotiony described ia historical data base role historical cos, effort, size (LOC or FP) dala for sublunetion: aj! hictoricl coat, effort, ciz0 data baood on any difersncoo: use adjucted ooot, effort, cize data fo derive partiol eotmate, Ep: project eatin = sum of {Ep}: ‎FF cost, effort, size (LOC or FP) for oubfunetion, can be estimated thon derive petal eotimate, Ey: ‎project estimate = sum of {Ep}: ‎‘ee cubdivide cubtunotion, info emallercubfunetions: ‎‘edd thooe to eubfunctione ki ‎endit ‎

صفحه 17:
روش های تجزیه * با توجه به اندازه نرم افزار صورت می گیرد و تحت ۱ رویکرد های متفاوت آن عبارتند از : ‎Fuzzy-Logic Sizing‏ - ‎Function Point Sizing‏ - ‎Standard Component Sizing‏ - ‎Change Sizing‏ - 0110 ey 0

صفحه 18:
روش های معمول : رویکرد 100/۳۳ 1 لا ۰ * استفاده از داده هاى آمارى 0 برای پروژه eee eee ea is

صفحه 19:
Average productivity for systems of this fype = 620 LOC/pm_ Burdened labor rate =$8000 per month, the cost per line of code is approximately $13. Based on the LOC estimate and the historical productivity data, the ‏دز اممگآه عاههنامی عطا قهه 5431,000 عناوم ععزمدع 0عامهناده هام‎ 54 000 eee eee ea 06

صفحه 20:
ند ند ند unter درو رت ۱ 1۳ 0 EY burdened labor rate = $8000 per month, the cost per FP is approximately $1230. Based on the FP estimate and the historical productivity data, the total estimated project ناد عطا فصه 9461000 دز ام ee teen) 0110 ey

صفحه 21:
تخمین مبتنی بر فرایند كرفته شده أز جارجوب فرايند | Lo

صفحه 22:
مثالى از تخمين برمبناى فرايند لس سل | لل بلطا دس لس 77 ]| 1-7 ] آماما عطا ,رم عم 95,000 ۵۴ عاده مطها تحص کته میردت اه دق ده له جوظ ‎estimated project cost is $368,000 and the estimated effort is 46 person-‏ قلأتم eee eee ea 9

صفحه 23:
تخمین مبتنی بر ابزار ۱ PST ۱ SC a LOC/@ Cc 2. — eee eee ea ‏وه‎

صفحه 24:
»۱ as the average productivity for systems of this type and a burdened labor rate of $8000 per month, the cost per line of code is approximately $13, Based on the use-case estimate and the historical productivity data, the total estimated project cost is $552,000 and the estimated effort is 68 person-months, eee eee ea ‏و‎

صفحه 25:
‎COT‏ اك ‏* این مدل ها به فرم کلی زیر می باشند : ‎ ‏< معمولا کر به به صورت تجربی صورت نفر ماه مود 200 ورد و 0 اسان مى شوق نا رس ‎Os Nena e ers‏ ‏که با وه به سجمدگی بووژه ‎ered‏ ‎0110 ey ‏مه‎

صفحه 26:
روش 66601/0-۱1) ا 0 ‏ا ال ا‎ ane 0 oles ‏ل ل ل ل ا‎ See eG Oe ‏مراحل اولیه توسعه نرم افزار که نمونه سازی. تعیین ارتباط نرم‎ ‏افزار و سيستمهاء ارزيابى كارايى و تكنولوقى انجام مى كيرد‎ ‏را‎ eer ل ل ‎(gt) ens)‏ هنگامی که نیازهای نرم افزار تقريبا ثابت شده و معمارى نرم افزار تعيين كرديد عورد استفاده قرار فى يرك (Post-Architecture Stage Model) (¢,loxs jl au Jao ~ Re es one وه 0000

صفحه 27:
معادله نرم افزار (50]0۷۷/۵۲6 ۲6 ‎(equation‏ a ‏ا‎ ای ار ی و كم زمان‌برویه در قالساه یاسلل] ت ار لا مر ۱ جر :۲ ۱۶ 0110 ey ‏مه‎

صفحه 28:
تخمين در يروزه هاى شىء كرا ا ا ا ا 0 و م ا ل ا لك موارد کاربرد را بشمارید. * کلاس های آنالیز یا کلیدی را تعیین کرده و تعداد آنها را بشمارید ‎Bete eS eee eae‏ ۱ کلاس پشتیبان ضریبی تعیین کنید : ‎Interface type‏ - متا تا ‎No GUI 2.0‏ - ‎Text-based user interface 225‏ - ‎GUI 22g)‏ - ‎Complex GUI 3.0‏ - وه 0000

صفحه 29:
تخمين در يروزه هاى شىء كرا ‎RT ED Cie‏ لت ‏آمده از مرحله قبل ضرب کنید تا تعداد کلاس ‏های پشتیبان به دست آید. ‏؟ تعداد کل کلاس ها را در میانگین واحدهای کاری ‎ete) ease kee ne‏ 2 ۰ نفر روز برای هر کلاس پیشنهاد شده است) ‎eee ee etc eee area 56

تخمین در پروژه های نرم افزاری درس مهندسي نرم‌افزار 2 فصل 23 دكتر احمد عبداله زاده بارفروش تهيه كننده :پويا جافريان 1 ‏Artificial Intelligent Systems Laboratory طرح ریزی پروژه نرم افزاری هدف کل3ی طرح ریزی پروژ3ه ،بنانهادن یک راهبرد کاربردی برای کنترل ،ردگیری ،و پایش یک پروژه فنی پیچیده می باشد. • برای چه این کار را انجام می دهیم ؟ برای اینک3ه محص3ول در زمان معی3ن و ب3ا کیفیت آماده شود. 2 ‏Artificial Intelligent Systems Laboratory مجموعه فعالیت های طرح ریزی پروژه • تعیین دامنه پروژه • امکان سنجی پروژه • تحلیل ریسک ها • مشخص نمودن منابع مورد نیاز – منابع انسانی – نرم افزارهای با قابلیت استفاده مجدد – منابع محیطی 3 ‏Artificial Intelligent Systems Laboratory انواع نرم افزار با قابلیت استفاده مج3دد • Off-the-shelf components • محصوالت تولید شده توسط Third Partyکه باید از3 نظر تولید ارزانتر تمام شود. • Full-Experience Components • استفاده از تجربیات گذشته از نظر آنالیز ،طراحی ،کد و ... • Partial-Experience Components • استفاده تا اندازه ای • New Components 4 ‏Artificial Intelligent Systems Laboratory محیط نرم افزار • محیط یک سیستم بر مبنای کامپیوتر بر اساس سخت افزار و نرم افزار می باشد .و باید در رابطه با Resourceبه آن توجه شود. 5 ‏Artificial Intelligent Systems Laboratory مجموعه فعالیت های طرح ریزی پروژه • تخمین هزینه و کار – شکستن مسئله – تهیه دو یا چند تخمین با استفاده از سایز، Function Point ، Process Tasksیا موارد کاربرد – جمع بندی تخمین ها • تهیه برنامه زمانی پروژه 6 ‏Artificial Intelligent Systems Laboratory تخمین • تخمین منابع ،هزینه و زمانبندی برای یک فعالیت مهندسی نرم افزار به موارد زیر احتیاج دارد: – تجربه – دسترسی به داده های آماری مربوط به شاخص ها – شجاعت برای اطمینان به اطالعات عددی وقتی این اطالعات موجود است. • تخمین به طور ذاتی دارای ریسک می باشد و این ریسک منجر به ابهام می شود. 7 ‏Artificial Intelligent Systems Laboratory طرح پروژه باید مستند شود. طرح پروژه نرم افزاری 8 ‏Artificial Intelligent Systems Laboratory دامنه پروژه تخمین ها ریسک ها زمانبندی راهبرد کنترل برای فهم دامنه پروژه ... • فهم نیاز های مشتری • فهم حوزه کسب و کار • فهم مرزهای پروژه • فهم دالیل اشتیاق مشتری • فهم مسیر احتمالی تغییرات • و فهم اینکه : وقتی شما همه چیز را فهمیده اید بازهم هیچ چیز قطعی نیست. 9 ‏Artificial Intelligent Systems Laboratory دامنه ( )Scopeچیست ؟ • دامنه پروژه موارد زیر را شرح می دهد : – – – – کارکردها و ویژگی هایی که به کاربران نهایی تحویل داده می شود. داده های ورودی و خروجی محتوایی که در نتیجه استفاده از نرم افزار به کاربر نمایش داده می شود. کارایی ،محدودیت ها ،نقاط ارتباطی و قابلیت اطمینان نرم افزار • دامنه با استفاده از تکنیک های زیر مشخص می شود : – پس از ارتباط با همه ذینفعان مجموعه ای از شرح دامنه تهیه می شود. – مجموعه ای از موارد کاربرد توسط کاربر نهایی تولید می شود. 10 ‏Artificial Intelligent Systems Laboratory منابع number software tools skills hardware people environment location network resources project OTS components reusable software full-experience components new components part.-experience components Artificial Intelligent Systems Laboratory 11 تخمین پروژه • دامنه پروژه باید تعیین گردد. • تجزیه سیستم الزم است. • شاخص های آماری سودمند هستند. • حداقل دو روش مختلف باید استفاده شود. • عدم اطمینان یکی از ویژگی های ذاتی فرایند تخمین است. 12 ‏Artificial Intelligent Systems Laboratory تکنیک های تخمین • پروژه های پیشین • روش های تخمین معمول – شکستن فعالیت ها و تخمین کار الزم – تخمین بر مبنای سایز (به طور مثال )FP • مدل های تجربی ()Empirical Models • ابزارهای خودکار ()Automated Tools 13 ‏Artificial Intelligent Systems Laboratory دقت تخ3مین • دقت تخمین بر مبنای موارد زیر تعیین می شود: – – – – 14 درجه ای از دقت که طرح ریزی کننده پروژه اندازه آن را تخمین زده است. توانایی تبدیل تخمین های بر مبنای اندازه به کار انسانی ،زمان ،و ریال درجه ای از قدرت طرح نرم افزار در نمایش توانایی های تیم نرم افزاری ثبات نیازمندی های محصول و محیطی که فعالیت های مهندسی نرم افزار را پشتیبانی می کند. ‏Artificial Intelligent Systems Laboratory )Functional Decomposition( تجزیه کارکردی بیانیه دامنه تجزیه کارکردی انجام یک Grammatical “parse” Artificial Intelligent Systems Laboratory 15 مثالی از یک الگوریتم تجزیه Artificial Intelligent Systems Laboratory 16 روش های تجزیه • با توجه به اندازه نرم افزار صورت می گیرد و تحت . مطرح استSoftware Sizing عنوان : رویکرد های متفاوت آن عبارتند از – – – – Fuzzy-Logic Sizing Function Point Sizing Standard Component Sizing Change Sizing Artificial Intelligent Systems Laboratory 17 روش های معمول :رویکرد LOC/FP • محاس3به LOC/FPبرمبنای تخمی3ن هایی روی اطالعات حوزه مسئله • اس3تفاده از داده های آماری برای تهی3ه تخمین برای پروژه 18 ‏Artificial Intelligent Systems Laboratory LOC مثالی از رویکرد Average Averageproductivity productivityfor forsystems systemsofofthis thistype type==620 620LOC/pm. LOC/pm. Burdened Burdenedlabor laborrate rate=$8000 =$8000per permonth, month,the thecost costper perline lineofofcode codeisis approximately approximately$13. $13. Based Basedon onthe theLOC LOCestimate estimateand andthe thehistorical historicalproductivity productivitydata, data,the the total totalestimated estimatedproject projectcost costisis$431,000 $431,000and andthe theestimated estimatedeffort effortisis54 54 person-months. person-months. Artificial Intelligent Systems Laboratory 19 FP مثالی از رویکرد The Theestimated estimatednumber numberofofFP FPisisderived: derived: FP = count-total 3 [0.65 + 0.01 3 S (Fi)] FPestimated estimated = count-total 3 [0.65 + 0.01 3 S (Fi)] FP = 375 FPestimated estimated = 375 organizational organizationalaverage averageproductivity productivity==6.5 6.5FP/pm. FP/pm. burdened burdenedlabor laborrate rate==$8000 $8000per permonth, month,the thecost costper perFP FPisisapproximately approximately$1230. $1230. Based Basedon onthe theFP FPestimate estimateand andthe thehistorical historicalproductivity productivitydata, data,the thetotal totalestimated estimatedproject project cost costisis$461,000 $461,000and andthe theestimated estimatedeffort effortisis58 58person-months person-months. . Artificial Intelligent Systems Laboratory 20 تخ3مین مبتنی بر فرایند گرفته شده از چارچوب فرایند فعالیت های چارچوب کار الزم برای تکمیل هر فعالیت چارچوب برای هر کارکرد برنامه 21 ‏Artificial Intelligent Systems Laboratory کارکرد های برنامه مثالی از تخمین برمبنای فرایند Act i vi t y CC Pl a n n i n g Ri s k An a l y s i s Task En g i n e e ri n g anal ysi s desi gn Co n s t ru c t i o n Re l e a s e code t est CE To t al s n/a n/a n/a n/a n/a n/a n/a 8.40 7.35 8.50 6.00 5.75 4.25 5.00 Fu n ct i o n UICF 2DGA 3DGA CGDF DSM PCF DAM 0.50 0.75 0.50 0.50 0.50 0.25 0.50 2.50 4.00 4.00 3.00 3.00 2.00 2.00 0.40 0.60 1.00 1.00 0.75 0.50 0.50 5.00 2.00 3.00 1.50 1.50 1.50 2.00 To t al s 0.25 0.25 0.25 3.50 20.50 4.50 16.50 % effo rt 1% 1% 1% 8% 45% 10% 36% 46.00 CC = cust omer communicat ion CE = cust omer evaluat ion Based on an average burdened labor rate of $8,000 per month, the total estimated project cost is $368,000 and the estimated effort is 46 personmonths. Artificial Intelligent Systems Laboratory 22 تخمین مبتنی بر ابزار ویژگی های پروژه فاکتورهای کالیبراسیون داده[ هایLOC/FP 23 ‏Artificial Intelligent Systems Laboratory مثالی از تخمین به کمک موارد کاربرد e subsyst User in terface subsysteem m Engin eerin g subsystem group Infrastructueresubsyst subsyst emgroup group em Total LOC estimate stimate use cases 6 10 5 scenarios 10 20 6 pages 6 8 5 Ź scenarios Ź 12 Ź 16 Ź 10 Ź Ź Ź Ź pages 5 8 6 Ź Ź LOC LOC estimate 560 3,366 3100 31,233 1650 7,970 Ź Ź 42,568 Using 620 LOC/pm as the average productivity for systems of this type and a burdened labor rate of $8000 per month, the cost per line of code is approximately $13. Based on the use-case estimate and the historical productivity data, the total estimated project cost is $552,000 and the estimated effort is 68 person-months. Artificial Intelligent Systems Laboratory 24 مدل های تخمین تجربی • این مدل ها به فرم کلی زیر می باشند : ‏exponent ‏effort = tuning coefficient * size معموال کار به صورت نفر /ماه نشان داده می شود. به صورت تجربی تعیین می شود اندازه معموالً به صورت LOCبیان می شود و.لی می توان از FPهم استفاده نمود. 25 معموالً یک ثابت عددی است که با توجه به پیچیدگی پروژه تعیین می گردد. ‏Artificial Intelligent Systems Laboratory روش COCOMO-II • COCOMO-IIم3جموع3ه ا3یاز م3دلهایت33خمی3نا3س3ت که ب33ه م3سائ3لز3یر م3یپ33ردازد: – مدل ترکی3ب نرم افزار ( )Application Composition Modelکه در مراحل اولیه توسعه نرم افزار که نمونه سازی ،تعیین ارتباط نرم افزار و س3یستمها ،ارزیاب3ی کارایی و تکنولوژ3ی انجام می گیرد مورد استفاده قرار می گیرد. – مدل طراح3ی اولی3ه ( )Early Design Modelهنگام3ی که نیازهای نرم افزار تقریباً ثاب3ت شده و معماری نرم افزار تعیی3ن گردید مورد استفاده قرار می گیرد. – مدل بعد از معماری ()Post-Architecture Stage Model در حین ساخت نرم افزار مورد استفاده قرار می گیرد. 26 ‏Artificial Intelligent Systems Laboratory معادله نرم افزار (The software )equation یک مدل پویا چند متغیره به صورت زیر می باشد : )E = [LOC x B0.333/P]3 x (1/t4 که : 27 .کار ب33ر ا3ساسن33فرماه 3یا ن33فر س33ا3لم3یب33اشد = E 3لب3اه 3یا س33ا3ل= t ز3مانپ33روژ3ه 3در ق33ا 3م ف33اکتور ت33خصصهایو3یژهB = 3 ف33اکتور P = Productivity ‏Artificial Intelligent Systems Laboratory تخمین در پروژه های شیء گرا • • • • از تجزیه کار ،تحلیل FPیا دیگر روش های عمومی استفاده کنید. مدل مورد کاربرد ( )Use caseسیستم را تهیه کرده و تعداد موارد کاربرد را بشمارید. کالس های آنالیز یا کلیدی را تعیین کرده و تعداد آنها را بشمارید. انواع واسط های کاربر برای نرم افزار را تعیین کرده و برای هر کالس پشتیبان ضریبی تعیین کنید : 2.0 2.25 2.5 3.0 28 – Interface type ‏Multiplier – No GUI – Text-based user interface – GUI – Complex GUI ‏Artificial Intelligent Systems Laboratory تخمین در پروژه های شیء گرا • تعداد کالس های کلیدی را در ضریب به دست آمده از مرحله قبل ضرب کنید تا تعداد کالس های پشتیبان به دست آید. • تعداد کل کالس ها را در میانگین واحدهای کاری برای هر کالس ضرب کنید( .این مقدار 15الی 20نفر روز برای هر کالس پیشنهاد شده است) 29 ‏Artificial Intelligent Systems Laboratory

51,000 تومان