ฟังก์ชันพอยต์

ฟังก์ชันฟอยต์ เป็นหน่วยวัด (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) ได้จากสูตร

**การวิเคราะห์ฟังก์ชันฟอยต์**
การวิเคราะห์ฟังก์ชันฟอยต์ (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 และให้ค่าของฟังก์ชันพอยต์จากค่าเหล่านี้
# ฟังก์ชันเชิงข้อมูล: แฟ้มข้อมูลเชิงตรรกะภายใน (Internal Logical Files: ILFs)
# ฟังก์ชันเชิงข้อมูล: แฟ้มข้อมูลต่อประสานภายนอก (External Interface Files: EIFs)
# ฟังก์ชันเชิงรายการเปลี่ยนแปลง: ข้อมูลนำเข้าภายนอก (External Inputs: EIs)
# ฟังก์ชันเชิงรายการเปลี่ยนแปลง: ข้อมูลส่งออกภายนอก (External Outputs: EOs)
# ฟังก์ชันเชิงรายการเปลี่ยนแปลง: การสอบถามภายนอก (External Inquries: EQs)

**วิธีการนับจำนวนฟังก์ชันในแต่ละหมวดหมู่**
วิธีการนับว่าระบบสารสนเทศมีจำนวนฟังก์ชันในแต่ละหมวดหมู่ว่ามีค่าเท่าใดนั้น ต้องแล้วแต่ว่าผู้ใช้ต้องการแบ่งความหยาบละเอียดในการวัดอย่างไร โดยการนับฟังก์ชันห้าหมวดหมู่ มีการนับโดยคร่าว ๆ ดังนี้
# แฟ้มข้อมูลเชิงตรรกะภายใน (Internal Logical Files: ILFs) นับตามจำนวนแฟ้มข้อมูลที่ต้องเก็บไว้ในระบบสารสนเทศ แต่วิธีการนี้เป็นวิธีการโดยคร่าว ๆ เพราะโดยละเอียดจริง ๆ อาจมีปัจจัยอื่น ๆ มาเกี่ยวข้องด้วย เช่น ขนาดของแฟ้มข้อมูล ความสำคัญของแฟ้มข้อมูล การซ้ำซ้อน การใช้ฐานข้อมูลเชิงสัมพัทธ์แทนแฟ้มข้อมูล เป็นต้น
# แฟ้มข้อมูลต่อประสานภายนอก (External Interface Files: EIFs) นับตามจำนวนส่วนต่อประสาน (Interface) ภายนอกระบบที่นำเข้าข้อมูล อาทิ เครื่องยิงบาร์โค้ด ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่น ๆ มาเกี่ยวข้องด้วยเช่นเดียวกัน
# ข้อมูลนำเข้าภายนอก (External Inputs: EIs) นับตามจำนวนข้อมูลนำเข้า เช่นแบบฟอร์ม (Forms) เป็นต้น ที่ใช้รับข้อมูลภายนอกระบบจากผู้ใช้ ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่น ๆ เช่น ความซับซ้อนของแบบฟอร์ม เป็นต้น
# ข้อมูลส่งออกภายนอก (External Outputs: EOs) นับตามจำนวนข้อมูลส่งออกที่ ผ่านการประมวลผล เช่น รายงานสรุปสถิติ เป็นต้น  ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่น ๆ เช่น ความซับซ้อนของรายงาน
# การสอบถามภายนอก (External Inquries: EQs) นับตามจำนวนข้อมูลส่งออกที่ ไม่ผ่านการประมวลผล เช่น รายงานข้อมูลสอบถาม (Query Reports) เป็นต้น  ซึ่งการนับโดยละเอียดอาจมีปัจจัยอื่น ๆ ที่ต้องกำหนดต่อไป
โดยเกณฑ์การนับโดยละเอียดอาจศึกษาดูจากเอกสารของ IFPUG

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

**ความซับซ้อนในการปรับค่าฟังก์ชันพอยต์**
เนื่องจากค่าฟังก์ชันพอยต์ที่ยังไม่ได้ปรับค่า ยังไม่ได้ปรับเทียบกับความซับซ้อนเชิงเทคนิคของระบบ 
จึงสร้างค่าตัวเลขตัวหนึ่งที่เรียกว่า ค่าตัวคูณปรับค่า 
(Value Adjustment Factor: VAF) ซึ่งค่าตัวเลขนี้จะได้มาจากการพิจารณาลักษณะจำเพาะของระบบ
โดยทั่วไป (General System Characteristics: GSCs) 14 ลักษณะ โดยใช้เกณฑ์มากน้อย 6 ระดับ (ระดับ 0 คือลักษณะจำเพาะนี้ไม่มีนัยสำคัญกับระบบ ไล่ระดับไปเรื่อย ๆ จนถึงระดับ 5 คือลักษณะจำเพาะนี้มีนัยสำคัญ
กับระบบมาก) ลักษณะจำเพาะของระบบโดยทั่วไป 14 ลักษณะ มีดังนี้
# การสื่อสารการของข้อมูล (Data communications) ช่องทางในการสื่อสารแลกเปลี่ยนข้อมูลของระบบ
# การประมวลผลข้อมูลแบบกระจาย (Distributed data processing) การประมวลผลและการเก็บข้อมูลแบบกระจาย
# ศักยภาพ (Performance) ความเร็วในการตอบสนอง (Response Time) หรือปริมาณงาน (Throughputs) ของระบบ
# โครงแบบการใช้งานหนัก (Heavily used configuration) การใช้ทรัพยากรฮาร์ดแวร์ในการทำงาน	
# อัตรารายการเปลี่ยนแปลง (Transaction Rate) ความถี่ในการใช้งานรายการเปลี่ยนแปลง (Transaction)
# การรับข้อมูลแบบออนไลน์ (On-Line data entry) สัดส่วนของข้อมูลที่ต้องรับเข้าแบบออนไลน์
# การเพิ่มประสิทธิภาพการทำงานของผู้ใช้ (End-User Effiency) การเพิ่มประสิทธิภาพการทำงานของผู้ใช้
# การปรับให้ทันสมัยแบบออนไลน์ (On-Line update) การปรับข้อมูลที่เก็บไว้ให้ทันสมัยแบบออนไลน์อยู่เสมอ
# ความซับซ้อนในการประมวลผล (Complex processing) ความซับซ้อนในการประมวลผลเชิงตรรกะหรือคณิตศาสตร์
# การนำไปใช้ (Reusability) ความง่ายในการไปใช้
# ความง่ายในการติดตั้ง (Installation ease)  ความง่ายในการปรับเปลี่ยนและติดตั้งซอฟต์แวร์
# ความง่ายในการดำเนินการ (Operational ease) ความง่ายในการจัดการการดำเนินการต่าง ๆ เช่น การสำรองและกู้คืนข้อมูล	
# ความหลากหลายของการใช้ (Multiple sites) การปรับให้เข้ากับการใช้งานที่หลากหลาย
# ความง่ายในการเปลี่ยนแปลง (Facilitate change) ความสามารถในการปรับปรุงเปลี่ยนแปลงหรือพัฒนาระบบต่อไปได้
ยกตัวอย่างเช่นหากประเมินแล้วแต่ละข้ออยู่ที่ 4 ดังนั้นจะมีผลรวมในการประเมิน (Sum of Score: SS) เท่ากับ  โดยทั่วไปแล้วค่าตัวคูณปรับค่า (Value Adjustment Factor: VAF) จะคำนวณได้จาก

เพราะฉะนั้นจะได้ว่าตัวคูณปรับค่าในครั้งนี้ 
ค่าฟังก์ชันพอยต์ที่ปรับค่าแล้วคำนวณได้จาก
เช่น ระบบตัวอย่างจะมีค่าฟังก์ชันพอยต์ที่ปรับค่าแล้วเท่ากับ  กล่าวโดยสรุปคือ
เมื่อวิเคราะห์ฟังก์ชันพอยต์แล้ว ระบบตัวอย่างมีขนาด 51 FPs

**แหล่งข้อมูลอื่น**
 http://www.softwaremetrics.com/fpafund.html date=2009-01-24 
หมวดหมู่:ซอฟต์แวร์