การพัฒนาซอฟต์แวร์หนึ่งขึ้นมา จำเป็นต้องมีการวางแผนโครงการ เพื่อดูว่าในโครงการนั้นๆจะใช้ค่าใช้จ่าย คนที่ใช้พัฒนาซอฟต์แวร์ ระยะเวลาในการพัฒนาเท่าไหร่ อาศัยการประมาณการโดยใช้การประเมินจากคนใดคนหนึ่งก็อาจไม่แม่นยำนัก ปัจจุบันจึงมีแนวคิดมากมายที่จะนำมาช่วยประเมินขนาดซอฟต์แวร์เพื่อเพิ่มความแม่นยำในการวางแผนโครงการ Function Point จึงเป็นหนึ่งในแนวความคิดที่ใช้วัดขนาดของซอฟต์แวร์โดยการนับฟังก์ชันการทำงานของโปรแกรม เช่น Input Output ไฟล์ การแสดงข้อมูลของระบบ เป็นต้น
FP (Function Point) พัฒนาโดย Allan J. Albrecht ในปี 1979 เป็นการวัดขนาดของซอฟต์แวร์จากจำนวนฟังก์ชันที่สร้างขึ้นมาเพื่อแสดงถึงขนาดของซอฟต์แวร์ การหาขนาดของซอฟต์แวร์จะต้องหาค่า FP โดย Function Point มี 2 ประเภทด้วยกันคือ
- Function Point แบบไม่ปรับค่า
- Function Point แบบปรับค่า
การประเมิน Function Point แบบปรับค่าจะคำนวณละเอียดมากขึ้นนำปัจจัยต่างๆมาคำนวณเพิ่มเติม ซึ่งจะคำนวณจากFP= UFP * TCF
การประเมินหา Function Point จะพิจารณาจาก 5 องค์ประกอบหลักคือ
ฟังก์ชัน | รายละเอียด |
---|
External Input (EI) | ข้อมูลที่รับเข้ามาในระบบเพื่อนำไป เพิ่ม ลบ แก้ไข ข้อมูล เช่น ข้อมูลจาก Keyboard |
External Output (EO) | ข้อมูลที่ถูกส่งออกไปนอกระบบ เช่น ข้อมูลที่แสดงบนจอ |
External Inquiry (EQ) | คือการดึงข้อมูล(Query) ขึ้นมาเพื่อแสดงผล |
Internal Logical Files (ILF) | เป็นกลุ่มข้อมูลที่มี Logic หรือเป็นข้อมูลที่มีการประมวลผล เช่น การประมวลผลจากฐานข้อมูล เป็นข้อมูลที่ถูกเก็บไว้และปรับปรุงข้อมูลได้จากข้อมูลภายนอกที่รับเข้ามา (EI) |
External Interface Files (EIF) | คือกลุ่มของข้อมูลเชิงตรรกะที่ใช้เพื่ออ้างอิงถึงโดยระบบเราจะไปเรียกข้อมูลจากระบบอื่น การสร้างและดูแลข้อมูลก็จะเป็นระบบอื่นดูแล |
การประเมินความซับซ้อนของซอฟต์แวร์ทั้ง 5 องค์ประกอบสามารถแยกระดับความซับซ้อนได้อีก 3 ระดับคือ
- ระดับต่ำ (Low or Simple)
- ระดับกลาง (Average)
- รับดับสูงหรือซับซ้อน (High or Complex)
ค่าความซับซ้อนของ EI
จำนวนไฟล์ที่ใช้ในการอ้างถึง | 1-4 | 5-15 | >15 |
---|
0-1 | ต่ำ | ต่ำ | ปานกลาง |
2 | ต่ำ | ปานกลาง | สูง |
>3 | ปานกลาง | สูง | สูง
|
ค่าความซับซ้อนของ EO และ EQ
จำนวนไฟล์ที่ใช้ในการอ้างถึง | <6 | 6-19 | >19 |
---|
0-1 | ต่ำ | ต่ำ | ปานกลาง |
2-3 | ต่ำ | ปานกลาง | สูง |
>3 | ปานกลาง | สูง | สูง
|
ค่าความซับซ้อนของ ILF และ EIF
จำนวนไฟล์ที่ใช้ในการอ้างถึง | 1-19 | 20-50 | >50 |
---|
1 | ต่ำ | ต่ำ | ปานกลาง |
2-5 | ต่ำ | ปานกลาง | สูง |
>5 | ปานกลาง | สูง | สูง
|
ตัวคูณปัจจัย (Factor Multiplier) ของค่าความซับซ้อนองค์ประกอบทั้ง 5 คือ ILF EIF EI EO และ EQ ของ Function Point
| ต่ำ | ปานกลาง | สูง
|
---|
ILF | 7 | 10 | 15 |
EIF | 5 | 7 | 10 |
EI | 3 | 4 | 6 |
EO | 4 | 5 | 7 |
EQ | 3 | 4 | 6 |
ตัวอย่างการคำนวณ Function Point แบบไม่ปรับค่า
มีจำนวนไฟล์ที่อ้างอิง 4 ไฟล์ (EI) และมีองค์ประกอบข้อมูลเท่ากับ 12 จะสรุปได้ว่า ค่าความซับซ้อนอยู่ในระดับสูง
จากค่าความซับซ้อน EI ที่อยู่ในระดับสูงสามารถนำค่ามาคำนวณ Function Point ได้จาก 4*6 = 24
เราต้องคำนวณให้ครบทุกองค์ประกอบ (EI, EO, EQ, ILF, EIF) แล้วนำมารวมกันก็จะได้ค่า Function Point จากนั้นนำค่า Function Point มาคูณกับภาษาที่ใช้ (Function Point Languages Table) เช่นเราคำนวณได้ 24 ฟังก์ชันพอยต์ ภาษาที่ใช้เขียนคือ JAVA จะได้ค่าเท่ากับ 24*134 = 3216 ฟังก์ชันพอยต์
ตัวอย่างการคำนวณ Function Point แบบปรับค่า
สูตรคำนวณ Function Point แบบปรับค่า FP= UFP * TCF
UFP คือ Function Point ที่ยังไม่ปรับค่า
TCF = 0.65 + 0.01 (ผลรวมค่าความซับซ้อน 14 ค่า)
ค่าความซับซ้อนจากปัจจัยทั้ง 14 ปัจจัย | คุณลักษณะ | | คุณลักษณะ |
---|
1 | การสื่อสารข้อมูล (Data Communication) | 8 | การปรับปรุงข้อมูลแบบออนไลน์ (Online Update) |
2 | การประมวลผลข้อมูลแบบกระจาย (Distributed Data Processing) | 9 | ความซับซ้อนของการประมวลผล (Complex Processing) |
3 | ประสิทธิภาพของระบบ (Performance) | 10 | ความสามารถนํากลับมาใช้ใหม่ (Reusability) |
4 | ความต้องการใช้งานหนักด้านฮาร์ดแวร์ (Heavily Used Configuration) | 11 | ความง่ายในการติดตั้ง (Installation Ease) |
5 | อัตรารายการเปลี่ยนแปลง (Transaction Rate) | 12 | ความสะดวกในการปฏิบัติงาน (Operational Ease) |
6 | การบันทึกข้อมูลออนไลน์ (Online Data Entry) | 13 | การใช้งานได้หลายสถานที่ (Multiple Sites) |
7 | ประสิทธิภาพการใช้งานของผู้ใช้(End-user Effciency) | 14 | อํานวยความสะดวกในการเปลี่ยนแปลง (Facilitate Change) |
ในแต่ละปัจจัยจะมีการให้คะแนนแต่ละข้อโดยให้คะแนน 0 ถึง 5 โดยที่ 0 แสดงถึงไม่มีความเกี่ยวข้อง ไปจนถึง 5 คือ เกี่ยวข้องมาก ซึ่งหลังจากที่รวบคะแนนแต่ละข้อแล้ว คะแนนจะอยู่ในช่วง 0 ถึง 70
ตัวอย่างการคำนวณ
ซอฟต์แวร์ชนิดหนึ่งมีค่าความซับซ้อนคือ 5, 1, 0, 4, 3, 5, 4, 3, 4, 5, 2, 3, 4, 2 และมีค่า Factor Multiplier คือ
- EI(Avg) = 22
- EO(Low) = 45
- EI(High) = 6
- ILF(Avg) = 5
- ELF(Low) = 2
คำนวณหา Function Point จาก FP= UFP * TCF
UFP = (22*4) + (45*5) + (06*6) + (05*10) + (02*5) = 409
TCF = [0.65 + 0.01*∑ (Xi)]
TCF = [0.65 + 0.01*(5+1+0+4+3+ 5+4+3+4+5+ 2+3+ 4+2)]
TCF = [0.65 + 0.01*45]
TCF = 1.10
FP = UFP * TCF
FP = 409 * 1.10
ดังนั้นค่า Function Point คือ 450