วิชา cs342 วิศวกรรมซอฟต์แวร์ (software engineering)
Post on 03-Jan-2016
87 Views
Preview:
DESCRIPTION
TRANSCRIPT
การประมาณการซอฟต์�แวร� (Software Estimation )
วิ�ชา CS342 วิ�ศวิกรรมซอฟต์�แวิร� (Software Engineering)
การประมาณการซอฟต์�แวร� (Software Estimation ) การประมาณการซอฟต์�แวิร� เป�นส่�วินที่��ส่�าคั�ญในการ
วิางแผนงาน เน"�องจากแผนงานน�$นจะอยู่&�บนพื้"$นฐานของส่��งที่��ต์+องการที่�าการจ�ดส่ร+างหร"อพื้�ฒนา โดยู่ในส่�วินของซอฟต์�แวิร�น� $นม0มมองหลั�กที่��มองถึ3ง คั"อเร"�องของขนาด (Size) คั�าใช+จ�ายู่ (Cost) บ0คัลัากรที่��ใช+ในการพื้�ฒนา (Effort)
Size Estimation ส่��งแรกที่��จะต์+องที่�าก�อนการ
เร��มต์+นการประมาณการ คั"อ การวิ�ด แยู่กลั�กษณะการวิ�ดออกเป�น 2 เช�ง คั"อ การวิ�ดในเช�งปร�มาณ (Software Quantitative) แลัะการวิ�ดเช�งคั0ณภาพื้ (Software Qualitative)
Size Estimation กรรมวิ�ธี�ที่��ใช+ในการวิ�ดขนาดของซอฟต์�แวิร� ม�
2 ลั�กษณะ คั"อ Line of Code (LOC) Count Function Point (FP)
Line of Code (LOC) Count น�บเฉพื้าะบรรที่�ดที่��ม�การจ�ดส่�งเป�น Source Code ไม�น�บรวิม
ส่�วินของการที่ดส่อบ (Test Driver) หร"อส่�วินงานที่��รองร�บการที่�างานอ"�นๆ
น�บเฉพื้าะบรรที่�ดที่��พื้�ฒนาโดยู่บ0คัลัากร ไม�น�บรวิมส่��งที่��ระบบงานส่ามารถึ Generate ได+อ�ต์โนม�ต์�
ถึ"อวิ�าหน3�งคั�าส่��ง คั"อ หน3�ง Line of Code <LOC> น�บส่�วินของการประกาศคั�า (Declaration) เป�นส่�วินของ
Instruction ไม�น�บส่�วินของการขยู่ายู่คัวิาม หร"อ Comment
Function Point (FP) ป:จจ0บ�นการน�บขนาดของโปรแกรมด+วิยู่การน�บบรรที่�ดน�$น ไม�
ส่ามารถึให+ผลัการวิ�ดในเช�งผลัส่�มฤที่ธี�<ของโปรแกรมได+อยู่�างช�ดเจน การน�าวิ�ธี�การน�บด+วิยู่ฟ:งก�ช� �นพื้อยู่ต์�เข+ามาใช+น� $น จ3งได+ร�บคัวิามส่นใจ
การวิ�ดด+วิยู่ฟ:งก�ช�นพื้อยู่ต์� จะม0�งเน+นที่��การวิ�ดด+วิยู่ฟ:งก�ช�น หร"อการวิ�ดโดยู่ผ�านม0มมองคัวิามต์+องการของซอฟต์�แวิร�
Allan Albrecht [1] John Gaffney, Jr [2] ได+ออกแบบ FPs ที่��ใช+วิ�ดฟ:งก�ช� �นพื้อยู่ต์� FPs เป�นผลัรวิมของขนาด ข+อม&ลัเข+า , ข+อม&ลัออก , ข+อม&ลัคัวิามต์+องการ , แฟ=มข+อม&ลั แลัะส่�วินของโปรแกรมที่��ใช+ในการต์�ดต์�อก�บลั&กคั+า
Function Point (FP) กระบวนการน�บฟ�งก�ชั�นพอยต์� ม�ลั�กษณะดั�งน��ขั้��นที่�� 1 น า Requirement ที่��เก"บรวบรวมไว$มาที่ าการแบ%งฟ�งก�ชั�นพอยต์�ขั้��นที่�� 2 ประเม&นความซ�บซ$อนขั้องฟ�งก�ชั�นขั้��นที่�� 3 เปร�ยบเที่�ยบความซ�บซ$อน เพ(�อให้$ไดั$ระดั�บความซ�บซ$อน เพ(�อค านวณ
ฟ�งก�ชั�นพอยต์�ที่��ย�งไม%ไดั$ปร�บค%า (Unadjusted Function Point : UFP) ขั้��นที่�� 4 ค านวณค%าต์�วแปรปร�บค%า (Value Adjustment Factor) ต์าม
ลั�กษณะขั้องโครงการขั้��นที่�� 5 ค านวณจำ านวนฟ�งก�ชั�นพอยต์�ที่��ผ่%านการปร�บค%า (Adjusted Function
Point : AFP)
ขั้��นที่�� 6 ฟ�งก�ชั�นพอยต์�ที่��ผ่%านการปร�บค%า สามารถน าไปค านวณเป0น LOC ไดั$
Function Point (FP) ประเภที่ของฟ:งก�ช�นพื้อยู่ต์� ส่ามารถึแบ�งได+ 5 ลั�กษณะ
หลั�ก คั"อ External Input (EI) External Output (EO) External Inquiry (EQ) Internal Logical Files (ILF) External Interface Files (EIF)
Function Point (FP)
Function Point (FP) แต์�ลัะฟ:งก�ช�นพื้อยู่ต์�น�$น ม�องคั�ประกอบต์�างๆ ใน
ฟ:งก�ช�นแต์�ลัะประเภที่ซ3�งจะแต์กต์�างก�นได+ เช�น การเก��ยู่วิข+องก�บองคั�ประกอบข+อม&ลั (Data Element :
DET) เป�นข+อม&ลั เปร�ยู่บเส่ม"อนฟ>ลัด�ข+อม&ลัที่��ส่นใจในแต์�ลัะฟ>ลัด�
เรคัคัอร�คัข+อม&ลั (Record Element : RET)กลั0�มของข+อม&ลั หร"อกลั0�มยู่�อยู่ของ DET หร"อการน�บประเภที่
ของเรคัคัอร�ดข+อม&ลัที่��เก��ยู่วิข+องส่�มพื้�นธี�ก�บฟ:งก�ช�นที่��ส่นใจ ประเภที่ไฟลั� (File Type of Record : FTR)
คั�านวิณ 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
UAF จะเห?นวิ�าการก�าหนดฟ:งก�ช�นโดยู่แยู่กออกเป�น 5
ประเภที่หลั�ก ต์ามลั�กษณะของการที่�างานน�$น จะช�วิยู่ที่�าให+การประเม�นลั�กษณะคัวิามต์+องการของซอฟต์�แวิร� การพื้�จารณาองคั�ประกอบที่��เก��ยู่วิข+องก�บประเภที่ของแต์�ลัะฟ:งก�ช�นพื้อยู่ต์�น�$น จะที่�าให+ส่ามารถึพื้�จารณาคัวิามซ�บซ+อนของฟ:งก�ช�นพื้อยู่ต์�ได+อยู่�างเป�นร&ปธีรรมมากข3$น โดยู่พื้�จารณาจากต์าราง
UAF
UAF จากต์ารางข+างบน จะได+ระด�บคัวิามซ�บซ+อนของการ
ที่�างาน จากน�$นน�าคั�าคัวิามซ�บซ+อนที่��เป�นคั�าเฉลั��ยู่มาที่�าการคั�านวิณคั�า Complexity weight ต์ามต์ารางน�$
VAFการประเม�น VAF น�$นจะประเม�นคั�าของ 14 ป:จจ�ยู่ ด�งน�$1 . การต์�ดต์�อส่"�อส่ารข+อม&ลั (Data Communication)2. การประมวิลัผลัข+อม&ลัแบบกระจายู่ (Distributed Data
Processing)3. ประส่�ที่ธี�ภาพื้ของระบบ (Performance)4. การแก+ไขคั�าของระบบ (Configuration)5. ปร�มาณรายู่การข+อม&ลั (Transaction)6. การป=อนข+อม&ลัเข+าส่&�ระบบแบบออนไลัน� (Online Data
Entry)
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)
VAF1 4 .รองร�บการเปลั��ยู่นแปลังคัวิามต์+องการของผ&+ใช+ (Change
Requirement)โดยู่การประเม�นน�$น แบ�งออกเป�น 5 ระด�บต์าม Degree of
Influence (DI) 0 Not Present ไม�ม�ผลัเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ
1 Incidental Influenceม�คัวิามเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ โดยู่ม�เก�ดข3$นใน ระบบงาน ไม�กระที่บต์�อการที่�างาน
2 Moderate Influence ม�คัวิามเก��ยู่วิข+องก�บต์�วิแปรน�$นๆ โดยู่ม�เก�ดข3$นใน ระบบงาน กระที่บต์�อการที่�างาน โดยู่ที่�าให+การ ที่�างานซ�บซ+อนข3$นบ+างเลั?กน+อยู่
VAF3 Average Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ
โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนขั้2�น
4 Significant Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนค%อนขั้$างมาก
5 Strong Influence ม�ความเก��ยวขั้$องก�บต์�วแปรน��นๆ โดัยม�เก&ดัขั้2�นใน ระบบงาน กระที่บต์%อการที่ างาน โดัยที่ าให้$การ ที่ างานซ�บซ$อนมาก
ต์ารางเปร�ยู่บเที่�ยู่บคั�า FP เพื้"�อแปลังไปเป�น LOC
ต์�วิอยู่�างการคั�านวิณคั�าฟ:งก�ช�นพื้อยู่ต์� จาก Use case
Diagram ด�งร&ป จะที่�าการแยู่กประเภที่ของ use case ต์ามฟ:งก�ช�นพื้อยู่ต์�
ต์�วิอยู่�าง
ต์�วิอยู่�าง ที่�าการเปร�ยู่บเที่�ยู่บคั�าของ
Value Adjustment Factors : VAF
ต์�วิอยู่�าง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
การประมาณการบ0คัลัากร Productivity : ประส่�ที่ธี�ผลัในการผลั�ต์งาน
Productivity = Output Size (LOC or Function Point)
Effort (Man-Month)
COCOMO B oehm B.W. ได+พื้�ฒนา COCOMO Model
(Constructive Cost Model) เพื้"�อวิ�ด Effort ในการพื้�ฒนาซอฟต์�แวิร�ที่��คั�ดเป�นหน�วิยู่ คัน-เด"อน (person-month) ที่��ประมาณจากขนาดของโปรแกรม โดยู่น�บจ�านวินบรรที่�ดของโปรแกรมต์+นฉบ�บเป�นหลั�ก
แบบจ�าลัอง COCOMO ถึ&กพื้�ฒนาเป�นเวิอร�ช� �น 2 คั"อ COCOMO II แบ�งแบบจ�าลัองออกเป�น 3 ชน�ด เพื้"�อใช+ประมาณการในระยู่ะต์�างๆ ของกระบวินการพื้�ฒนาซอฟต์�แวิร�
COCOMO II Application Composition Model
เห้มาะก�บการผ่ลั&ต์ซอฟต์�แวร�ดั$วยแนวที่างคอมโพเน$นที่� โดัยแต์%ลัะคอมโพเน$นที่�สามารถอธิ&บายแที่นดั$วย Object Point ไดั$ ขั้นาดัขั้องซอฟต์�แวร�น�บเป0น Object Point
Early Design Model ใชั$ประมาณการในระยะก%อนการออกแบบซอฟต์�แวร� แต์%ห้ลั�งจำากการก าห้นดั
ความความต์$องการแลั$ว ใชั$ค%า FP แที่นขั้นาดัขั้องซอฟต์�แวร� Post-Architecture Model
ใชั$ประมาณการในระยะห้ลั�งการออกแบบซอฟต์�แวร� เป0นการประมาณการอ�กคร��งเพ(�อความถ5กต์$องขั้องค%าประมาณการที่��ไดั$
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
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 คั"อ คัวิามร�บเร�งของเวิลัาเม"�อเปร�ยู่บเที่�ยู่บก�บการพื้�ฒนาปกต์�
top related