**ฟังก์ชันฟอยต์** เป็นหน่วยวัด (Measurement) เพื่อแสดงถึงจำนวนฟังก์ชันเชิง
ธุรกิจที่ระบบสารสนเทศสามารถให้บริการแก่ผู้ใช้ได้ ฟังก์ชันฟอยต์ นั้นเป็นหน่วย
ที่ใช้โดยวิธีการวัดขนาดฟังก์ชันของกลุ่มผู้ใช้ฟังก์ชันพอยต์สากล (International 
Function Point Users Group Functional Size Measurement: IFPUG FSM) 
วิธีการ IFPUG FSM นี้ได้รับการยอมรับจากISO ให้เป็นหนึ่งในตัววัดซอฟต์แวร์
(Software Metric) เพื่อระบุขนาดของระบบสารสนเทศโดยใช้ฟังก์ชันที่ผู้ใช้ได้รับเป็นพื้นฐาน 
และเป็นอิสระจากเทคโนโลยีที่สร้างผลลัพธ์ (implement) ของระบบสารสนเทศนั้นๆ

ลักษณะของฟังก์ชันพอยต์
----------------------

ฟังก์ชันฟอยต์นั้นชี้วัดค่าระบบจากภาพรวมของฟังก์ชันการใช้งาน (Perspective) 
ซึ่งควรจะเป็นอิสระต่อเทคโนโลยีพื้นฐาน ไม่ขึ้นกับภาษา วิธีการพัฒนา หรือ 
แพลตฟอร์มฮาร์ดแวร์ ที่ใช้ จำนวนฟังก์ชันฟอยต์ในระบบควรจะคงที่ 
ตัวที่ผันแปรได้ควรเป็นความสามารถที่จะทำให้บรรลุฟังก์ชันฟอยต์ที่กำหนดไว้นั้น

หลายองค์กรวัดค่าฟังก์ชันฟอยต์ด้วยความเที่ยงตรง (Accuracy) ในระดับที่แตกต่างกัน 
โดยขึ้นอยู่กับวัตถุประสงค์ในการวัดขนาดของซอฟต์แวร์อีกด้วย

การนำไปใช้งานและประโยชน์ของฟังก์ชันพอยต์
----------------------------------------

ฟังก์ชันพอยต์สามารถใช้เป็นข้อมูลพื้นฐานในการตัดสินใจในระดับโครงการ
และระดับองค์กรหลายๆด้าน ตลอดจนใช้ในการพิจารณาสิ่งต่อไปนี้

* งบประมาณเพื่อใช้จ่ายไปในการพัฒนาหรือปรับปรุงโปรแกรมประยุกต์ให้ดีขึ้น
* งบประมาณเพื่อใช้จ่ายไปในการบำรุงรักษาระบบประจำปีในประวัติการทำงานของโปรแกรมประยุกต์
* ผลิตภาพ (Productivity) ของโครงการหลังจากจบโครงการ
* ขนาดของซอฟต์แวร์เพื่อใช้ในการประมาณการใช้จ่าย

การวิเคราะห์ฟังก์ชันฟอยต์ยังสามารถใช้ในการหาความสามารถในการทดสอบ (Testing Effort) 
ที่ต้องการของระบบสารสนเทศ โดยประมาณจำนวน Test Cases
(Number of Test Cases) จากฟังก์ชันพอยต์ (FP) ได้จากสูตร

{\displaystyle NumberofTestCases\approx (FP)^{1.2}}

การวิเคราะห์ฟังก์ชันฟอยต์
-------------------------

การวิเคราะห์ฟังก์ชันฟอยต์ (Function Point Analysis :FPA) เป็นการวัดขนาดของ
ระบบสารสนเทศและแสดงออกมาในรูปแบบของฟังก์ชันพอยต์ โดยการวิเคราะห์นั้นจะถูก
ปรับปรุงให้เหมาะสมและทันสมัยอยู่เสมอโดยกลุ่มผู้ใช้ฟังก์ชันพอยต์สากล
(International Function Point Users Group : IFPUG) และสมาคมผู้ใช้ตัววัดซอฟต์แวร์แห่งเนเธอร์แลนด์
(The Netherlands Software Metrics users Association :NESMA) โดยมาตรฐานของ IFPUG จะเรียกว่า
IFPUG FSM (Functional Size Measurement) และมาตรฐานของ NESMA จะเรียกว่า NESMA FSM

สำหรับผลลัพธ์ของการวิเคราะห์ฟังก์ชันฟอยต์นั้น 
จะแสดงขนาดฟังก์ชันการใช้งานของระบบสารสนเทศในรูปแบบตัวเลขตัวหนึ่งในหน่วยฟังก์ชันพอยต์ 
หรือ FPs (เช่น ระบบนี้มีขนาด 314 FPs) หลักเกณฑ์การวิเคราะห์ฟังก์ชันพอยต์โดยคร่าวๆ สามารถ
แจกแจงได้ดังหัวข้อย่อยต่อไปนี้

### การแจกแจงฟังก์ชันผู้ใช้ห้าหมวดหมู่

การวิเคราะห์ฟังก์ชันพอยต์จะแบ่งความต้องการเชิงฟังก์ชันของผู้ใช้ (Functional User Requirement)
ออกเป็นสองประเภท คือ ฟังก์ชันเชิงข้อมูล (Data Function) และฟังก์ชันเชิงรายการเปลี่ยนแปลง 
(Transaction Function) โดยแบ่งออกเป็น 5 หมวดหมู่ตามหลักของวิธี IFPUG FSM 
และให้ค่าของฟังก์ชันพอยต์จากค่าเหล่านี้

1. ฟังก์ชันเชิงข้อมูล: แฟ้มข้อมูลเชิงตรรกะภายใน (Internal Logical Files: ILFs)
2. ฟังก์ชันเชิงข้อมูล: แฟ้มข้อมูลต่อประสานภายนอก (External Interface Files: EIFs)
3. ฟังก์ชันเชิงรายการเปลี่ยนแปลง: ข้อมูลนำเข้าภายนอก (External Inputs: EIs)
4. ฟังก์ชันเชิงรายการเปลี่ยนแปลง: ข้อมูลส่งออกภายนอก (External Outputs: EOs)
5. ฟังก์ชันเชิงรายการเปลี่ยนแปลง: การสอบถามภายนอก (External Inquries: EQs)

### วิธีการนับจำนวนฟังก์ชันในแต่ละหมวดหมู่

วิธีการนับว่าระบบสารสนเทศมีจำนวนฟังก์ชันในแต่ละหมวดหมู่ว่ามีค่าเท่าใดนั้น ต้อง
แล้วแต่ว่าผู้ใช้ต้องการแบ่งความหยาบละเอียดในการวัดอย่างไร โดยการนับฟังก์ชันห้าหมวดหมู่
มีการนับโดยคร่าวๆดังนี้

1. แฟ้มข้อมูลเชิงตรรกะภายใน (Internal Logical Files: ILFs) นับตามจำนวนแฟ้มข้อมูลที่ต้องเก็บไว้ในระบบสารสนเทศ แต่วิธีการนี้เป็นวิธีการโดยคร่าวๆ เพราะโดยละเอียดจริงๆ อาจมีปัจจัยอื่นๆมาเกี่ยวข้องด้วย เช่น ขนาดของแฟ้มข้อมูล ความสำคัญของแฟ้มข้อมูล

การซ้ำซ้อน การใช้ฐานข้อมูลเชิงสัมพัทธ์แทนแฟ้มข้อมูล เป็นต้น

1. แฟ้มข้อมูลต่อประสานภายนอก (External Interface Files: EIFs) นับตามจำนวนส่วนต่อประสาน (Interface) ภายนอกระบบที่นำเข้าข้อมูล อาทิ เครื่องยิงบาร์โค้ด เป็นต้นซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่นๆมาเกี่ยวข้องด้วยเช่นเดียวกัน
2. ข้อมูลนำเข้าภายนอก (External Inputs: EIs) นับตามจำนวนข้อมูลนำเข้า เช่นแบบฟอร์ม (Forms) เป็นต้น ที่ใช้รับข้อมูลภายนอกระบบจากผู้ใช้ ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่นๆ เช่น ความซับซ้อนของแบบฟอร์ม เป็นต้น
3. ข้อมูลส่งออกภายนอก (External Outputs: EOs) นับตามจำนวนข้อมูลส่งออกที่*ผ่านการประมวลผล* เช่น รายงานสรุปสถิติ เป็นต้น ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่นๆ เช่น ความซับซ้อนของรายงาน
4. การสอบถามภายนอก (External Inquries: EQs) นับตามจำนวนข้อมูลส่งออกที่*ไม่ผ่านการประมวลผล* เช่น รายงานข้อมูลสอบถาม (Query Reports) เป็นต้น ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่นๆ ที่ต้องกำหนดต่อไป

โดยเกณฑ์การนับโดยละเอียดอาจศึกษาดูจากเอกสารของ IFPUG

### การให้น้ำหนักฟังก์ชันแต่ละหมวดหมู่

หลังจากที่นับจำนวนฟังก์ชันของระบบสารสนเทศ จะต้องนำไปคูณกับค่าน้ำหนักของแต่ละ
หมวดหมู่ฟังก์ชันซึ่งจะไม่เท่ากัน โดยการคิดจะนำจำนวนของฟังก์ชันที่นับได้ในแต่ละหมวดหมู่
คูณกับค่าน้ำหนักของหมวดหมู่นั้นๆ ผลลัพธ์ที่ได้จะเรียกว่าจะเป็นค่าฟังก์ชันพอยต์ที่ยังไม่ได้ปรับค่า
(Unadjusted Function Point :UAF) โดยรายละเอียดแล้วน้ำหนักที่คูณอาจมีการคำนึงถึงความซับซ้อน
อีกด้วย

| หมวดหมู่ | น้ำหนักของหมวดหมู่ | จำนวนฟังก์ชัน | ผลคูณ |
| --- | --- | --- | --- |
| EIs | 4 | 3 | 12 |
| EOs | 5 | 2 | 10 |
| EQs | 4 | 1 | 4 |
| ILFs | 10 | 1 | 10 |
| EIFs | 7 | 1 | 7 |
| ค่าฟังก์ชันพอยต์ที่ยังไม่ได้ปรับค่า | 43 |

### ความซับซ้อนในการปรับค่าฟังก์ชันพอยต์

เนื่องจากค่าฟังก์ชันพอยต์ที่ยังไม่ได้ปรับค่า ยังไม่ได้ปรับเทียบกับความซับซ้อนเชิงเทคนิคของระบบ 
จึงสร้างค่าตัวเลขตัวหนึ่งที่เรียกว่า ค่าตัวคูณปรับค่า 
(Value Adjustment Factor:VAF) ซึ่งค่าตัวเลขนี้จะได้มาจากการพิจารณาลักษณะจำเพาะของระบบ
โดยทั่วไป (General System Characteristics:GSCs) 14 ลักษณะ โดยใช้เกณฑ์มากน้อย 6 ระดับ
(ระดับ 0 คือลักษณะจำเพาะนี้ไม่มีนัยสำคัญกับระบบ ไล่ระดับไปเรื่อยๆ จนถึงระดับ 5 คือลักษณะจำเพาะนี้มีนัยสำคัญ
กับระบบมาก) ลักษณะจำเพาะของระบบโดยทั่วไป 14 ลักษณะ มีดังนี้

1. การสื่อสารการของข้อมูล (Data communications) ช่องทางในการสื่อสารแลกเปลี่ยนข้อมูลของระบบ
2. การประมวลผลข้อมูลแบบกระจาย (Distributed data processing) การประมวลผลและการเก็บข้อมูลแบบกระจาย
3. ศักยภาพ (Performance) ความเร็วในการตอบสนอง (Response Time) หรือปริมาณงาน (Throughputs) ของระบบ
4. โครงแบบการใช้งานหนัก (Heavily used configuration) การใช้ทรัพยากรฮาร์ดแวร์ในการทำงาน
5. อัตรารายการเปลี่ยนแปลง (Transaction Rate) ความถี่ในการใช้งานรายการเปลี่ยนแปลง (Transaction)
6. การรับข้อมูลแบบออนไลน์ (On-Line data entry) สัดส่วนของข้อมูลที่ต้องรับเข้าแบบออนไลน์
7. การเพิ่มประสิทธิภาพการทำงานของผู้ใช้ (End-User Effiency) การเพิ่มประสิทธิภาพการทำงานของผู้ใช้
8. การปรับให้ทันสมัยแบบออนไลน์ (On-Line update) การปรับข้อมูลที่เก็บไว้ให้ทันสมัยแบบออนไลน์อยู่เสมอ
9. ความซับซ้อนในการประมวลผล (Complex processing) ความซับซ้อนในการประมวลผลเชิงตรรกะหรือคณิตศาสตร์
10. การนำไปใช้ (Reusability) ความง่ายในการไปใช้
11. ความง่ายในการติดตั้ง (Installation ease) ความง่ายในการปรับเปลี่ยนและติดตั้งซอฟต์แวร์
12. ความง่ายในการดำเนินการ (Operational ease) ความง่ายในการจัดการการดำเนินการต่างๆ เช่น การสำรองและกู้คืนข้อมูล
13. ความหลากหลายของการใช้ (Multiple sites) การปรับให้เข้ากับการใช้งานที่หลากหลาย
14. ความง่ายในการเปลี่ยนแปลง (Facilitate change) ความสามารถในการปรับปรุงเปลี่ยนแปลงหรือพัฒนาระบบต่อไปได้

ยกตัวอย่างเช่นหากประเมินแล้วแต่ละข้ออยู่ที่ 4 ดังนั้นจะมีผลรวมในการประเมิน (Sum of Score: SS) เท่ากับ {\displaystyle 4\times 14=56} โดยทั่วไปแล้วค่าตัวคูณปรับค่า (Value Adjustment Factor:VAF) จะคำนวณได้จาก

{\displaystyle VAF=0.65+(0.01\times SS)}

เพราะฉะนั้นจะได้ว่าตัวคูณปรับค่าในครั้งนี้ {\displaystyle 0.65+(0.01\times 56)=1.21}

ค่าฟังก์ชันพอยต์ที่ปรับค่าแล้วคำนวณได้จาก

{\displaystyle FP=UAF\times VAF}

เช่นระบบตัวอย่างจะมีค่าฟังก์ชันพอยต์ที่ปรับค่าแล้วเท่ากับ {\displaystyle 42\times 1.21=50.82\approx 51} กล่าวโดยสรุปคือ
เมื่อวิเคราะห์ฟังก์ชันพอยต์แล้ว ระบบตัวอย่างมีขนาด 51 FPs

แหล่งข้อมูลอื่น
---------------

* เก็บถาวร 2009-01-24 ที่ เวย์แบ็กแมชชีน