วิชา cs342 วิศวกรรมซอฟต์แวร์ (software engineering)

28
กกกกกกกกกกกกกกกกกกกกก (Software Estimation) วววว CS342 ววววววววววววววววว (Software Engineering)

Upload: neve-fry

Post on 03-Jan-2016

87 views

Category:

Documents


5 download

DESCRIPTION

วิชา CS342 วิศวกรรมซอฟต์แวร์ (Software Engineering). การประมาณการซอฟต์แวร์ ( Software Estimation ). การประมาณการซอฟต์แวร์ ( Software Estimation ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การประมาณการซอฟต์�แวร� (Software Estimation )

วิ�ชา CS342 วิ�ศวิกรรมซอฟต์�แวิร� (Software Engineering)

Page 2: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การประมาณการซอฟต์�แวร� (Software Estimation ) การประมาณการซอฟต์�แวิร� เป�นส่�วินที่��ส่�าคั�ญในการ

วิางแผนงาน เน"�องจากแผนงานน�$นจะอยู่&�บนพื้"$นฐานของส่��งที่��ต์+องการที่�าการจ�ดส่ร+างหร"อพื้�ฒนา โดยู่ในส่�วินของซอฟต์�แวิร�น� $นม0มมองหลั�กที่��มองถึ3ง คั"อเร"�องของขนาด (Size) คั�าใช+จ�ายู่ (Cost) บ0คัลัากรที่��ใช+ในการพื้�ฒนา (Effort)

Page 3: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Size Estimation ส่��งแรกที่��จะต์+องที่�าก�อนการ

เร��มต์+นการประมาณการ คั"อ การวิ�ด แยู่กลั�กษณะการวิ�ดออกเป�น 2 เช�ง คั"อ การวิ�ดในเช�งปร�มาณ (Software Quantitative) แลัะการวิ�ดเช�งคั0ณภาพื้ (Software Qualitative)

Page 4: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Size Estimation กรรมวิ�ธี�ที่��ใช+ในการวิ�ดขนาดของซอฟต์�แวิร� ม�

2 ลั�กษณะ คั"อ Line of Code (LOC) Count Function Point (FP)

Page 5: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Line of Code (LOC) Count น�บเฉพื้าะบรรที่�ดที่��ม�การจ�ดส่�งเป�น Source Code ไม�น�บรวิม

ส่�วินของการที่ดส่อบ (Test Driver) หร"อส่�วินงานที่��รองร�บการที่�างานอ"�นๆ

น�บเฉพื้าะบรรที่�ดที่��พื้�ฒนาโดยู่บ0คัลัากร ไม�น�บรวิมส่��งที่��ระบบงานส่ามารถึ Generate ได+อ�ต์โนม�ต์�

ถึ"อวิ�าหน3�งคั�าส่��ง คั"อ หน3�ง Line of Code <LOC> น�บส่�วินของการประกาศคั�า (Declaration) เป�นส่�วินของ

Instruction ไม�น�บส่�วินของการขยู่ายู่คัวิาม หร"อ Comment

Page 6: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) ป:จจ0บ�นการน�บขนาดของโปรแกรมด+วิยู่การน�บบรรที่�ดน�$น ไม�

ส่ามารถึให+ผลัการวิ�ดในเช�งผลัส่�มฤที่ธี�<ของโปรแกรมได+อยู่�างช�ดเจน การน�าวิ�ธี�การน�บด+วิยู่ฟ:งก�ช� �นพื้อยู่ต์�เข+ามาใช+น� $น จ3งได+ร�บคัวิามส่นใจ

การวิ�ดด+วิยู่ฟ:งก�ช�นพื้อยู่ต์� จะม0�งเน+นที่��การวิ�ดด+วิยู่ฟ:งก�ช�น หร"อการวิ�ดโดยู่ผ�านม0มมองคัวิามต์+องการของซอฟต์�แวิร�

Allan Albrecht [1] John Gaffney, Jr [2] ได+ออกแบบ FPs ที่��ใช+วิ�ดฟ:งก�ช� �นพื้อยู่ต์� FPs เป�นผลัรวิมของขนาด ข+อม&ลัเข+า , ข+อม&ลัออก , ข+อม&ลัคัวิามต์+องการ , แฟ=มข+อม&ลั แลัะส่�วินของโปรแกรมที่��ใช+ในการต์�ดต์�อก�บลั&กคั+า

Page 7: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) กระบวนการน�บฟ�งก�ชั�นพอยต์� ม�ลั�กษณะดั�งน��ขั้��นที่�� 1 น า Requirement ที่��เก"บรวบรวมไว$มาที่ าการแบ%งฟ�งก�ชั�นพอยต์�ขั้��นที่�� 2 ประเม&นความซ�บซ$อนขั้องฟ�งก�ชั�นขั้��นที่�� 3 เปร�ยบเที่�ยบความซ�บซ$อน เพ(�อให้$ไดั$ระดั�บความซ�บซ$อน เพ(�อค านวณ

ฟ�งก�ชั�นพอยต์�ที่��ย�งไม%ไดั$ปร�บค%า (Unadjusted Function Point : UFP) ขั้��นที่�� 4 ค านวณค%าต์�วแปรปร�บค%า (Value Adjustment Factor) ต์าม

ลั�กษณะขั้องโครงการขั้��นที่�� 5 ค านวณจำ านวนฟ�งก�ชั�นพอยต์�ที่��ผ่%านการปร�บค%า (Adjusted Function

Point : AFP)

ขั้��นที่�� 6 ฟ�งก�ชั�นพอยต์�ที่��ผ่%านการปร�บค%า สามารถน าไปค านวณเป0น LOC ไดั$

Page 8: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) ประเภที่ของฟ:งก�ช�นพื้อยู่ต์� ส่ามารถึแบ�งได+ 5 ลั�กษณะ

หลั�ก คั"อ External Input (EI) External Output (EO) External Inquiry (EQ) Internal Logical Files (ILF) External Interface Files (EIF)

Page 9: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP)

Page 10: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

Function Point (FP) แต์�ลัะฟ:งก�ช�นพื้อยู่ต์�น�$น ม�องคั�ประกอบต์�างๆ ใน

ฟ:งก�ช�นแต์�ลัะประเภที่ซ3�งจะแต์กต์�างก�นได+ เช�น การเก��ยู่วิข+องก�บองคั�ประกอบข+อม&ลั (Data Element :

DET) เป�นข+อม&ลั เปร�ยู่บเส่ม"อนฟ>ลัด�ข+อม&ลัที่��ส่นใจในแต์�ลัะฟ>ลัด�

เรคัคัอร�คัข+อม&ลั (Record Element : RET)กลั0�มของข+อม&ลั หร"อกลั0�มยู่�อยู่ของ DET หร"อการน�บประเภที่

ของเรคัคัอร�ดข+อม&ลัที่��เก��ยู่วิข+องส่�มพื้�นธี�ก�บฟ:งก�ช�นที่��ส่นใจ ประเภที่ไฟลั� (File Type of Record : FTR)

Page 11: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

คั�านวิณ Function Point (FP)

จ�านวินของฟ:งก�ช�น หาได+จาก FP ที่��ยู่�งไม�ได+ถึ&กปร�บแต์�ง (Unadjusted Function Point : UFP) คั&ณก�บคั�าป:จจ�ยู่คั0ณลั�กษณะของระบบ (Value Adjustment Factor : VAF)

FP = UFP x VAF

VAF = 0.65 + [0.01 x Total DI]

DI : Degree of Influence

Page 12: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF จะเห?นวิ�าการก�าหนดฟ:งก�ช�นโดยู่แยู่กออกเป�น 5

ประเภที่หลั�ก ต์ามลั�กษณะของการที่�างานน�$น จะช�วิยู่ที่�าให+การประเม�นลั�กษณะคัวิามต์+องการของซอฟต์�แวิร� การพื้�จารณาองคั�ประกอบที่��เก��ยู่วิข+องก�บประเภที่ของแต์�ลัะฟ:งก�ช�นพื้อยู่ต์�น�$น จะที่�าให+ส่ามารถึพื้�จารณาคัวิามซ�บซ+อนของฟ:งก�ช�นพื้อยู่ต์�ได+อยู่�างเป�นร&ปธีรรมมากข3$น โดยู่พื้�จารณาจากต์าราง

Page 13: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF

Page 14: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

UAF จากต์ารางข+างบน จะได+ระด�บคัวิามซ�บซ+อนของการ

ที่�างาน จากน�$นน�าคั�าคัวิามซ�บซ+อนที่��เป�นคั�าเฉลั��ยู่มาที่�าการคั�านวิณคั�า Complexity weight ต์ามต์ารางน�$

Page 15: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAFการประเม�น VAF น�$นจะประเม�นคั�าของ 14 ป:จจ�ยู่ ด�งน�$1 . การต์�ดต์�อส่"�อส่ารข+อม&ลั (Data Communication)2. การประมวิลัผลัข+อม&ลัแบบกระจายู่ (Distributed Data

Processing)3. ประส่�ที่ธี�ภาพื้ของระบบ (Performance)4. การแก+ไขคั�าของระบบ (Configuration)5. ปร�มาณรายู่การข+อม&ลั (Transaction)6. การป=อนข+อม&ลัเข+าส่&�ระบบแบบออนไลัน� (Online Data

Entry)

Page 16: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF7 . ประส่�ที่ธี�ภาพื้การใช+งานของผ&+ใช+ (End user Efficiency)8. การปร�บปร0งข+อม&ลัแบบออนไลัน� (Online Update)9. คัวิามซ�บซ+อนของการประมวิลัผลั (Complex

Processing)10. การน�าไปใช+ซ�$าได+ (Reusability)1 1 .คัวิามง�ายู่ในการต์�ดต์�$ง (Installation Ease)1 2 .คัวิามง�ายู่ในการด�าเน�นงาน (Operational Ease)1 3 .การใช+งานได+หลัายู่ไซต์� (Multiple Sites)

Page 17: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF1 4 .รองร�บการเปลั��ยู่นแปลังคัวิามต์+องการของผ&+ใช+ (Change

Requirement)โดยู่การประเม�นน�$น แบ�งออกเป�น 5 ระด�บต์าม Degree of

Influence (DI) 0 Not Present ไม�ม�ผลัเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ

1 Incidental Influenceม�คัวิามเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ โดยู่ม�เก�ดข3$นใน ระบบงาน ไม�กระที่บต์�อการที่�างาน

2 Moderate Influence ม�คัวิามเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ โดยู่ม�เก�ดข3$นใน ระบบงาน กระที่บต์�อการที่�างาน โดยู่ที่�าให+การ ที่�างานซ�บซ+อนข3$นบ+างเลั?กน+อยู่

Page 18: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

VAF3 Average Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ

โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนขั้2�น

4 Significant Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนค%อนขั้$างมาก

5 Strong Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนมาก

Page 19: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์ารางเปร�ยู่บเที่�ยู่บคั�า FP เพื้"�อแปลังไปเป�น LOC

Page 20: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์�วิอยู่�างการคั�านวิณคั�าฟ:งก�ช�นพื้อยู่ต์� จาก Use case

Diagram ด�งร&ป จะที่�าการแยู่กประเภที่ของ use case ต์ามฟ:งก�ช�นพื้อยู่ต์�

Page 21: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์�วิอยู่�าง

Page 22: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์�วิอยู่�าง ที่�าการเปร�ยู่บเที่�ยู่บคั�าของ

Value Adjustment Factors : VAF

Page 23: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

ต์�วิอยู่�างVAF = 0.65 + [0.01 x 17]

= 0.82FP = UFP x VAF

= 23 x 0.82= 18.86 FP

ถึ+าหากจ�ดที่�าซอฟต์�แวิร�โดยู่ใช+ภาษาจาวิา จะได+คั�า LOC= 18.86 x 53 = 999.58 ~1000

LOC

Page 24: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

การประมาณการบ0คัลัากร Productivity : ประส่�ที่ธี�ผลัในการผลั�ต์งาน

Productivity = Output Size (LOC or Function Point)

Effort (Man-Month)

Page 25: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO B oehm B.W. ได+พื้�ฒนา COCOMO Model

(Constructive Cost Model) เพื้"�อวิ�ด Effort ในการพื้�ฒนาซอฟต์�แวิร�ที่��คั�ดเป�นหน�วิยู่ คัน-เด"อน (person-month) ที่��ประมาณจากขนาดของโปรแกรม โดยู่น�บจ�านวินบรรที่�ดของโปรแกรมต์+นฉบ�บเป�นหลั�ก

แบบจ�าลัอง COCOMO ถึ&กพื้�ฒนาเป�นเวิอร�ช� �น 2 คั"อ COCOMO II แบ�งแบบจ�าลัองออกเป�น 3 ชน�ด เพื้"�อใช+ประมาณการในระยู่ะต์�างๆ ของกระบวินการพื้�ฒนาซอฟต์�แวิร�

Page 26: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO II   Application Composition Model

เห้มาะก�บการผ่ลั&ต์ซอฟต์�แวร�ดั$วยแนวที่างคอมโพเน$นที่� โดัยแต์%ลัะคอมโพเน$นที่�สามารถอธิ&บายแที่นดั$วย Object Point ไดั$ ขั้นาดัขั้องซอฟต์�แวร�น�บเป0น Object Point

   Early Design Model ใชั$ประมาณการในระยะก%อนการออกแบบซอฟต์�แวร� แต์%ห้ลั�งจำากการก าห้นดั

ความความต์$องการแลั$ว ใชั$ค%า FP แที่นขั้นาดัขั้องซอฟต์�แวร�   Post-Architecture Model

ใชั$ประมาณการในระยะห้ลั�งการออกแบบซอฟต์�แวร� เป0นการประมาณการอ�กคร��งเพ(�อความถ5กต์$องขั้องค%าประมาณการที่��ไดั$

Page 27: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO II โมเดัลัการค านวณขั้อง COCOMO II

PM คั"อ Effort ม�หน�วิยู่เป�น Person-Months (PM)A คั�าคังที่��ที่��ได+จากการรวิบรวิมข+อม&ลัใน 161 โคัรงการ โดยู่ A = 2.94E คั"อ Economics of Scale ซ3�งเป�นผลัที่��ขนาดของซอฟต์�แวิร�ส่�มพื้�นธี�ก�บขนาดของโคัรงการ

โดยู่ E = B + 0.01 * Scale FactorsB Scaling Base-exponent ส่�าหร�บคั�านวิณ EffortEM คั"อ Effort Multipliers เป�นคั�าที่��ได+จากการคั�านวิณ Cost Driver ที่��เก��ยู่วิก�บ

โคัรงการ ที่��ส่�งผลัต์�อ Effort ในการพื้�ฒนาซอฟต์�แวิร�PMauto คั�าของ Effort ที่��ได+จากการแปลังอ�ต์โนม�ต์� ซ3�งจะเก�ดเม"�อม�การ Reuse Code โดยู่

คั�าน�$นจะไม�ม�ผลัต์�อการพื้�ฒนา แต์�เน"�องจากม�ผลัต์�อคั�าใช+จ�ายู่ ถึ+าเป�นการพื้�ฒนาซอฟต์�แวิร�ใหม� คั�า PMauto จะเป�น 0

PM = A x SizeE x EM + PMauto

Page 28: วิชา  CS342 วิศวกรรมซอฟต์แวร์  (Software Engineering)

COCOMO II ระยู่ะเวิลัาที่��ใช+ในการพื้�ฒนาซอฟต์�แวิร�ม�ส่&ต์รด�งน�$

TDEV = [ C x (PM)F ] x SCED%

100

C คั"อ Schedule Coefficient ที่��ใช+มาคั�านวิณ โดยู่ C = 3.67F คั"อ Scaling Exponent ส่�าหร�บระยู่ะเวิลัา โดยู่ F = [ D + 0.2 (E-B) ]D Scaling Base-exponent ส่�าหร�บ ระยู่ะเวิลัา โดยู่ D = 0.28SCED คั"อ คัวิามร�บเร�งของเวิลัาเม"�อเปร�ยู่บเที่�ยู่บก�บการพื้�ฒนาปกต์�