Top Banner
1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ การประมาณการต้นทุนของซอฟต์แวร์ (Software Cost Estimation) เป็นกิจกรรมหนึ่งที่สาคัญที่สุดในการ วางแผนโครงการ (Project Planning) ทีมงานจะต้องประมาณการค่าใช้จ่ายที่เกิดขึ้นทั้งหมดจกการผลิตซอฟต์แวร์ เพื่อ นามาคิดเป็นต้นทุนของซอฟต์แวร์ และนาไปใช้ประเมินราคาของซอฟต์แวร์ต่อไป ต้นทุนหรือค่าใช้จ่ายที่เกิดขึ้นจากการ ผลิตซอฟต์แวร์มีหลายรายการ ไม่ว่าจะเป็นค่าใช้จ่ายที่เกิดจากการซื้อวัตถุดิบทั่วไป ค่าใช้จ่ายในการเดินทาง หรือ ค่าใช้จ่ายเบ็ดเตล็ด แต่ค่าใช้จ่ายที่สาคัญที่สุด คือ ค่าแรง (Effort)” ซึ่งผู้บริหารโครงการจะต้องกาหนดจานวนของ แรงงาน (ทีมงาน) ที่ต้องใช้ในแต่ละวัน (หรือเดือน) เพื่อการผลิตซอฟต์แวร์จนแล้วเสร็จ (จึงเรียกได้อีกอย่างหนึ่งว่า ความเพียรพยายาม”) ค่าใช้จ่ายด้านแรงงาน เป็นองค์ประกอบหนึ่งของต้นทุนที่มีความไม่แน่นอนสูงมาก เนื่องจาก ปัจจัยหลายประการ เช่น ประสบการณ์ของทีมงาน โครงสร้างของโครงการ ความสามารถของแต่ละบุคคล เป็นต้น ปัจจัยดังกล่าวส่งผลให้ต้องใช้เวลาในการดาเนินงานมากขึ้น และทาให้ต้นทุนเพิ่มสูงขึ้นตามไปด้วย นอกจากนี้ ต้นทุนทีเกิดขึ้นบางครั้งอาจมีต้นทุนแฝง ซึ่งอาจเป็นค่าใช้จ่ายที่ไม่ชัดเจนเป็นส่วนประกอบด้วย อีกทั้งสภาพแวดล้อมในการผลิต ซอฟต์แวร์ยังมีการเปลี่ยนแปลงตลอดระยะเวลาของโครงการ ทาให้ต้นทุนที่ประมาณการไว้ในตอนต้นมีการ เปลี่ยนแปลง ผู้บริหารโครงการต้องปรับต้นทุนอยู่เสมอ การประมาณการต้นทุนจึงเป็นเรื่องยาก และจาเป็นต้องอาศัย เทคนิคในการประมาณการต่าง ๆ เข้ามาช่วย 12.1 การประมาณการต้นทุนของซอฟต์แวร์ Software Cost Estimation จัดทาขึ้นเพื่อนาไปประเมินราคาซอฟต์แวร์ ซึ่งเป็นสิ่งจาเป็นสาหรับการริเริ่ม โครงการ สาหรับโครงการที่ต้องเข้าร่วมประมูล หากบริษัทผู้ผลิตซอฟต์แวร์ต้องการให้ชนะการประมูล จะต้องเสนอ ราคาซอฟต์แวร์หรือราคาโครงการที่ค่อนข้างตากว่าคู่แข่งขัน แต่การเสนอราคาที่ต่ากว่านั้นจะต้องไม่ทาให้บริษัท ขาดทุนเมื่อเทียบกับต้นทุนที่ต้องจ่ายจริง ในอดีต การประเมินราคาซอฟต์แวร์ใช้สูตรแบบง่าย ๆ คือ ใช้ต้นทุนบวกด้วย กาไรที่ต้องการ แต่ไม่สามารถใช้ได้กับภาวะเศรษฐกิจในปัจจุบันที่มีปัจจัยหลายประการส่งผลกระทบต่อการกาหนด ราคา ทาให้การประเมินราคาแบบเดิมคลาดเคลื่อน โดยอาจประเมินต่าหรือสูงเกินไป การประเมินราคาซอฟต์แวร์นั้น เป็นสิ่งสาคัญสาหรับทุกโครงการ หากประเมินราคาต่าทาให้บริษัทขาดทุน แต่หากประเมินสูงเกินไปก็ไม่สามารถชนะ การประมูล หรือไม่ถูกเลือกให้ดาเนินงานต่อไปได้ สิ่งสาคัญในการประเมินราคาก็คือ ต้นทุนของโครงการ (Project Cost)” ที่ไม่ได้หมายถึงเพียงต้นทุนที่ใช้ใน การผลิตซอฟต์แวร์หรือต้นทุนทางตรงเท่านั้น แต่ยังหมายรวมถึงต้นทุนอื่น ๆ ด้วย โดยต้นทุนรวมของโครงการผลิต ซอฟต์แวร์ ประกอบไปด้วย 1. ค่าใช้จ่ายด้านฮาร์ดแวร์ ซอฟต์แวร์ และการบารุงรักษา (Hardware, Software and Maintenance Cost) 2. ค่าใช้จ่ายจากการเดินทาง และการฝึกอบรม (Travel and Training Cost) 3. ค่าใช้จ่ายในความเพียรพยายาม (Effort Cost: หรือค่าใช้จ่ายแรงงาน) สาหรับค่าใช้จ่ายที่เกิดจาก Effort ที่ใช้ในการผลิตนั้น นอกจากจะหมายถึงค่าแรงหรือเงินเดือนบุคลากรใน โครงการแล้ว ยังรวมถึงค่าใช้จ่ายอื่น ๆ เป็นส่วนประกอบด้วย ซึ่งก็คือ ค่าใช้จ่ายเบ็ดเตล็ด (Overhead) เช่น ค่าใช้จ่าย ในการเตรียมงาน ค่าใช้จ่ายในการบริหารงาน การติดต่อสื่อสาร และสวัสดิการ เป็นต้น เมื่อโครงการเริ่มดาเนินการ ผู้บริหารโครงการจะต้องมีการปรับต้นทุนและตารางงานอย่างสมาเสมอ เพื่อจัดสรรการใช้ทรัพยากรให้เหมาะสมที่สุด
16

Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12...

Sep 23, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

1

Lecture 12 การประมาณการตนทนของซอฟตแวร

การประมาณการตนทนของซอฟตแวร (Software Cost Estimation) เปนกจกรรมหนงทส าคญทสดในการวางแผนโครงการ (Project Planning) ทมงานจะตองประมาณการคาใชจายทเกดขนทงหมดจกการผลตซอฟตแวร เพอน ามาคดเปนตนทนของซอฟตแวร และน าไปใชประเมนราคาของซอฟตแวรตอไป ตนทนหรอคาใชจายทเกดขนจากการผลตซอฟตแวรมหลายรายการ ไมวาจะเปนคาใชจายทเกดจากการซอวตถดบทวไป คาใชจายในการเดนทาง หรอคาใชจายเบดเตลด แตคาใชจายทส าคญทสด คอ “คาแรง (Effort)” ซงผบรหารโครงการจะตองก าหนดจ านวนของแรงงาน (ทมงาน) ทตองใชในแตละวน (หรอเดอน) เพอการผลตซอฟตแวรจนแลวเสรจ (จงเรยกไดอกอยางหนงวา “ความเพยรพยายาม”) คาใชจายดานแรงงาน เปนองคประกอบหนงของตนทนทมความไมแนนอนสงมาก เนองจากปจจยหลายประการ เชน ประสบการณของทมงาน โครงสรางของโครงการ ความสามารถของแตละบคคล เปนตน ปจจยดงกลาวสงผลใหตองใชเวลาในการด าเนนงานมากขน และท าใหตนทนเพมสงขนตามไปดวย นอกจากน ตนทนทเกดขนบางครงอาจมตนทนแฝง ซงอาจเปนคาใชจายทไมชดเจนเปนสวนประกอบดวย อกทงสภาพแวดลอมในการผลตซอฟตแวรยงมการเปลยนแปลงตลอดระยะเวลาของโครงการ ท าใหตนทนทประมาณการไวในตอนตนมการเปลยนแปลง ผบรหารโครงการตองปรบตนทนอยเสมอ การประมาณการตนทนจงเปนเรองยาก และจ าเปนตองอาศยเทคนคในการประมาณการตาง ๆ เขามาชวย

12.1 การประมาณการตนทนของซอฟตแวร Software Cost Estimation จดท าขนเพอน าไปประเมนราคาซอฟตแวร ซงเปนสงจ าเปนส าหรบการรเรมโครงการ ส าหรบโครงการทตองเขารวมประมล หากบรษทผผลตซอฟตแวรตองการใหชนะการประมล จะตองเสนอราคาซอฟตแวรหรอราคาโครงการทคอนขางต ากวาคแขงขน แตการเสนอราคาทต ากวานนจะตองไมท าใหบรษทขาดทนเมอเทยบกบตนทนทตองจายจรง ในอดต การประเมนราคาซอฟตแวรใชสตรแบบงาย ๆ คอ ใชตนทนบวกดวยก าไรทตองการ แตไมสามารถใชไดกบภาวะเศรษฐกจในปจจบนทมปจจยหลายประการสงผลกระทบตอการก าหนดราคา ท าใหการประเมนราคาแบบเดมคลาดเคลอน โดยอาจประเมนต าหรอสงเกนไป การประเมนราคาซอฟตแวรนนเปนสงส าคญส าหรบทกโครงการ หากประเมนราคาต าท าใหบรษทขาดทน แตหากประเมนสงเกนไปกไมสามารถชนะการประมล หรอไมถกเลอกใหด าเนนงานตอไปได

สงส าคญในการประเมนราคากคอ “ตนทนของโครงการ (Project Cost)” ทไมไดหมายถงเพยงตนทนทใชในการผลตซอฟตแวรหรอตนทนทางตรงเทานน แตยงหมายรวมถงตนทนอน ๆ ดวย โดยตนทนรวมของโครงการผลตซอฟตแวร ประกอบไปดวย 1. คาใชจายดานฮารดแวร ซอฟตแวร และการบ ารงรกษา (Hardware, Software and Maintenance Cost) 2. คาใชจายจากการเดนทาง และการฝกอบรม (Travel and Training Cost) 3. คาใชจายในความเพยรพยายาม (Effort Cost: หรอคาใชจายแรงงาน) ส าหรบคาใชจายทเกดจาก Effort ทใชในการผลตนน นอกจากจะหมายถงคาแรงหรอเงนเดอนบคลากรในโครงการแลว ยงรวมถงคาใชจายอน ๆ เปนสวนประกอบดวย ซงกคอ คาใชจายเบดเตลด (Overhead) เชน คาใชจายในการเตรยมงาน คาใชจายในการบรหารงาน การตดตอสอสาร และสวสดการ เปนตน เมอโครงการเรมด าเนนการ ผบรหารโครงการจะตองมการปรบตนทนและตารางงานอยางสม าเสมอ เพอจดสรรการใชทรพยากรใหเหมาะสมทสด

Page 2: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

2

ปจจยทสงผลกระทบตอการก าหนดราคาซอฟตแวร (Software Pricing) ในภาวะปจจบน ไดแก โอกาสในดานการตลาด (Market Opportunity) ขอก าหนดในสญญา (Contractual Term) ความตองการของซอฟตแวรทเปลยนแปลงได (Requirement Volatile) ฐานะทางการเงน (Financial Health) และทส าคญทสดคอ การประมาณการตนทน (Cost Estimation) ซงหากไมมความชดเจนในตวเลขตนทนทประมาณการได จะท าใหราคาซอฟตแวรสงเกนไป อาจท าใหเสยโอกาสในการประมลได

12.2 การประมาณขนาดของซอฟตแวร ส าหรบบางโครงการ ผบรหารโครงการอาจตองใชคาทไดจากการวดประสทธผลในการท างาน (Productivity) ซงหมายถงผลทไดจากการผลตงานของบคลากรในโครงการ ไปค านวณหาตนทนหรอจดตารางด าเนนงาน ตลอดจนอาจน าไปใชในการตดสนใจประเมนกระบวนการหรอการน าเทคโนโลยเขามาใชดวย โดย Productivity วดไดจากจ านวนหนวยของงานทผลตได หารดวยจ านวนเวลาทตองการใชในการผลต (หรอ Effort นนเอง) อาจมหนวยเปน Person-Hours หรอ Man-Day หรอ Man-Month กไดตามตองการ

หากเปนการผลตสนคาทจบตองไดทวไป จ านวนหนวยของงานจะเปนรปธรรมคอจ านวนสนคาทผลตได แตส าหรบการผลตซอฟตแวรทจบตองไมได จ าเปนตองวดจากขนาดของซอฟตแวร (Software Size) ดงนน จงสามารถค านวณ Productivity ในการผลตซอฟตแวรของบคลากร ไดดงน

Productivity = Size / Effort ส าหรบกรรมวธในการวดขนาดของซอฟตแวรนน ม 2 ประเภท คอ วดจากจ านวนบรรทดของซอรสโคด (Line of Code: LoC) และวดจากจ านวนฟงกชนทใชงานได (Function Point: FP) ดงรายละเอยดตอไปน

12.2.1 การนบจ านวนบรรทดของซอรสโคด (Line of Code) เปนวธวดขนาดซอฟตแวรวธแรกทน ามาใชในยคกอน เนองจากภาษาโปรแกรมมงในยคนน มลกษณะการเขยนแบบล าดบเปนบรรทดตอเนองกนไป เชน COBOL, ASSEMBLY, FORTRAN เปนตน การนบจ านวนบรรทดของโคด จงเปนวธวดขนาดซอฟตแวรทงายและใหผลชดเจนทสด แตเนองจากใน 1 โปรแกรมนน นอกจากจะมบรรทดทเปนชดค าสงใหคอมพวเตอรท างานจรง ๆ แลว (Source Line Code) ยงประกอบไปดวยบรรทดทเปน Comment โปรแกรม การประกาศตวแปรและฟงกชน วธการนบจ านวนบรรทดจงแบงออกเปนหลายวธ ดงน

Simple Line Count เปนวธการนบโคดทงายทสด เนองจากนบทกบรรทดทอยใน Source File โดยจะนบรวมบรรทดวางหรอบรรทดทเปน Comment โปรแกรมดวย Physical Lines (LINES) เปนวธการนบจ านวนบรรทดของโคดทยงคงใชกนอยในการบรหารโครงการผลตซอฟตแวร โดยจะนบโคดทกบรรทด (ยกเวนบรรทดทเปนการนยามตวแปรของโคดทเขยนดวย) Physical Line Of Code เปนวธนบจ านวนบรรทด แตไมนบรวมบรรทดวางและบรรทดทเปน Comment โปรแกรม บางครงจงเรยกวธแบบนวา “Source Line Code (sLOC)” Logical Lines of Code (LLOC) วธการนบแบบ Logical มลกษณะคลายกบ Physical แตกตางกนคอ Logical Lines นน จะนบบรรทดทมการเชอมตอกนดวยอกขระ “_” รวมเปนบรรทดเดยว

Page 3: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

3

Statements (STMT) วธการนไมใชการนบจ านวนบรรทด แตเปนการนบจ านวนประโยคค าสง โดยภาษาโปรแกรมมงสวนใหญจะมเพยง 1 ประโยคค าสงตอ 1 บรรทด

การวดขนาดซอฟตแวรดวยวธการนบจ านวนบรรทด ปจจบนพบวายงคงถกน ามาใชเปนดชนชวดโครงการ (Project Metric) อย แตดวยวธการนบจ านวนบรรทดในยคกอนนนยงมขอจ ากดอยบาง หากตองเปรยบเทยบโคดทเขยนดวยภาษาโปรแกรมมงทแตกตางกน ดงนน จงพบวามการแบงแยกวธการนบออกเปนหลายแบบขางตน อยางไรกตาม วธการนบจ านวนบรรทดยงแตกตางออกไป ขนอยกบผคดคนวธนบเหลานน ทงน กเพอใหผลทไดจากการนบ สามารถอธบายขนาดของซอฟตแวรไดถกตองและชดเจนทสด (วธนบจ านวนบรรทดขางตน ในทนอางองมาจากเครองมอชวยวดทชอวา “Project Analyzer 7.1” ซงเปนเครองมอจดท าดชนวดโครงการผลตซอฟตแวร) ปจจบน ถงแมวาจะมการพฒนาเครองมอนบจ านวนบรรทดแบบอตโนมตขนมาหลายผลตภณฑกตาม แตทกผลตภณฑไมสามารถรองรบภาษาโปรแกรมมงไดครบถวน หรอบางผลตภณฑสามารถใชไดกบภาษาโปรแกรมมงเพยงภาษาเดยวเทานน (คนหาเครองมอนบจ านวนบรรทดส าหรบระบบปฎบตการ UNIX ไดท http://sarovar.org/projects/kloc สวนระบบปฏบตการ Windows คนทไดท http://www.anologx.com/contents/download/program/kloc.htm สวนเครองมออน ๆ ทใชนบจ านวนบรรทดแบบ Physical และสนบสนนภาษาโปรแกรมมงทหลายหลายเชน C, Java, COBL, Fortran และ C# คนหาไดท http://www.geronesoft.com)

ขอเสยของการประมาณการขนาดของซอฟตแวรดวยการนบจ านวนบรรทด คอ จ านวนบรรทดทนบได ขนอยกบภาษาโปรแกรมมงทใชและคณภาพในการออกแบบโปรแกรม หากภาษาโปรแกรมมงทใชแตกตางกนจะไมสามารถเปรยบเทยบกนได บางภาษาตองเขยนโคดหลายบรรทดในการสรางฟงกชนงานเดยว กบภาษาโปรแกรมมงอนทเขยนเพยงไมกบรรทด หากออกแบบโปรแกรมไดด อาจท าใหจ านวนบรรทดของโคดนอยกวาการออกแบบโปรแกรมในลกษณะอนได ดงนนคาทไดจากการนบจ านวนบรรทด จงไมสามารถน ามาใชประมาณขนาดของซอฟตแวรไดอยางสมบรณ ยกตวอยางโปรแกรม “Hello World” ทเขยนจากภาษาโปรแกรมมงทแตกตางกน ดงน

C Programming Language COBOL Programming Language #include<stdio.h> #include<conio.h> void main() { printf(“Hello, World”); getch(); }

100 IDENTIFICATION DIVISION. 200 PROGRAM-ID. EXAMHELLO. 300 ENVIRONMENT DIVISION. 400 CONFIGURATION SECTION. 500 SOURCE-COMPUTER. KTP. 600 OBJECT-COMPUTER. KTP. 700 DATA DIVISION. 800 FILE SECTION. 900 PROCEDURE DIVISION. 1000 MAIN-DISPLAY SECTION. 2000 BEGIN. 3000 DISPLAY “Hello World” LINE 10 POSITION 10 4000 STOP RUN.

Page 4: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

4

เมอประมาณการขนาดของซอฟตแวรไดแลว กสามารถน ามาค านวณหาประสทธผลในการผลตซอฟตแวรได โดยน าขนาดของซอฟตแวร (ในทนคอจ านวนบรรทดของโคดทนบได) มาหารดวย Effort ยกตวอยางดงน

ตวอยางท 12.1 แสดงการค านวณหา Productivity ของโปรแกรมเมอร

วเคราะห ออกแบบ เขยนโปรแกรม ทดสอบ จดท าเอกสาร โคด Assembly 4 สปดาห 6 สปดาห 10 สปดาห 12 สปดาห 2 สปดาห โคดภาษาระดบสง 4 สปดาห 6 สปดาห 5 สปดาห 7 สปดาห 2 สปดาห

Size Effort Productivity โคด Assembly 6,000 บรรทด 34 สปดาห 705 บรรทด/เดอน โคดภาษาระดบสง 2,500 บรรทด 24 สปดาห 416 บรรทด/เดอน

Effort ตองหารดวย 4 กอน เพอท าใหหนวยเปนเดอน

LoC ถกคดคนขนในยคแรกของภาษาระดบสง เชน COBOL, FORTRAN เปนตน แตปจจบน ภาษาโปรแกรมมงถกพฒนาไปอยางมาก ท าใหเกดปญหาความไมเทาเทยมกนของผลจากการวดประสทธผลการผลตงานซอฟตแวร เนองจากภาษาโปรแกรมมงทโปรแกรมเมอรใชแตกตางกนมาก ในงานเดยวกนทใหผลลพธเหมอนกน เมอเขยนดวยภาษาโปรแกรมมงทแตกตางกน จ านวนบรรทดจะแตกตางกนมาก ดงตวอยางท 12.1 ท าใหตองมการคดคนวธการวดขนาดของซอฟตแวรขนมาใหม นนคอ “นบจ านวนฟงกชน (Function Point: FP)”

12.2.2 การนบจ านวนฟงกชน (Function Point: FP) การนบจ านวนฟงกชน (Function Point: FP) เปนการวดขนาดของซอฟตแวรดวยการนบจ านวนฟงกชนการท างานของโปรแกรมจากขอก าหนดความตองการของซอฟตแวร ดงนน วธการนบจ านวนฟงกชนจงลดปญหาดานความแตกตางของภาษาโปรแกรมมงทใช และความแตกตางในเทคโนโลยดานอน ๆ ดวย วธการนบจ านวนฟงกชนถกปรบปรงโดยคณะกรรมการก าหนดและรวบรวมกรรมวธในการวดขนาดซอฟตแวรดวยฟงกชนพอยท (International Function Point User Group: IFPUG) โดยมสตรการค านวณดงน

FP = UFP * VAF จากสตรการค านวณ จ านวนของฟงกชนจะหาไดจากคา FP ทยงไมไดถกปรบแตง (Unadjusted Function Point: UFP) คณกบคาปจจยคณลกษณะของระบบ (Value Adjustment Factor: VAF) ดงรป

Page 5: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

5

การน าคาปจจยคณลกษณะของระบบมาค านวณดวยนน เนองจากคณลกษณะเดนของแตละระบบแตกตางกน ท าใหความยากงายในการผลตซอฟตแวรแตกตางกน หากไมน าปจจยเหลานมาค านวณดวย คา FP ทไดในแตละระบบจะไมเทาเทยมกน ท าใหคา FP ไมสามารถบงบอกถงประสทธผลในการท างานของโปรแกรมเมอรแตละคน ไดอยางแทจรง จากสตรการค านวณ ในทนขอแบงขนตอนการค านวณออกเปน 3 ขนตอน คอ ค านวณหา FP ทยงไมไดปรบแตง (UFP) ค านวณคาปจจยคณลกษณะของระบบ (VAF) และค านวณคา FP ทปรบแตงแลว

1. ค านวณหาคา FP ทยงไมไดปรบแตง (UFP) กอนอนตองแบงประเภทของฟงกชนเสยกอน โดยฟงกชนการท างานทตองนบ แบงเปน 5 ประเภท ไดแก Internal Logical Files (ILF), External Interface Files (EIF), External Inputs (EI), External Outputs (EO) และ External Queries (EQ) แสดงรายละเอยดดงตารางท 12.1

ตารางท 12.1 แสดงรายละเอยดของฟงกชนแตละประเภท

ฟงกชน รายละเอยด External Inputs (EI) ขอมลทรบเขามาในระบบ (อาจเปนขอมลทางธรกจหรอ

ขอมลควบคม) เพอน าไปอพเดทขอมลใน ILF เชน ขอมลในกระบวนการ เพม ลบ แกไข ขอมล เปนตน

External Outputs (EO) ขอมลทเปนผลลพธจากการประมวลผลขอมลทไดรบจากภายในระบบ ใหนบการแสดงผลขอมลทมรปแบบแตกตางกน

External Queries (EQ) กระบวนการดงขอมลและประมวลผลเพอแสดงผลตอผใช (คอ Query ขอมลนนเอง)

Internal Logical Files (ILF) ไฟลทเกยวของกบขอมลทอยในระบบตลอดชวงอายของระบบ และเปนไฟลทมกจะถกบ ารงรกษาหรอปรบปรงดวยขอมลทไดรบจากภายนอก (EI) ใหนบรวมเรคคอรดทท าหนาทเทยบเทากบไฟลดวย

External Interface Files (EIF) ไฟลทเกยวของกบขอมลทใชเพอการอางองเทานน และใชรวมกบระบบอน EIF เปนไฟลทถกเรยกใชโดยระบบทจะพฒนา แตจะบ ารงรกษาหรอถกสรางโดยระบบอน

ฟงกชนแตละประเภทเกดจากการท ารายการขอมล (Transaction) ของผใช จงมความซบซอนแตกตางกนตามจ านวนของขอมล (Data Element Type: DET) เรคคอรด (Record Element Type: RET) และไฟลทเกยวของ (File Type Reference: FTR) ทประกอบขนเปน Transaction แตละรายการ ดงนน การนบฟงกชนแตละประเภท จงตองนบทจ านวนของ DET, RET และ FTR ทเกยวของกบฟงกชนแตละประเภท แลวน ามาเทยบกบตารางเกณฑระดบความซบซอนของฟงกชน ซงแบงเปน 3 ระดบ คอ ระดบต า (Low) ปานกลาง (Average) และสง (High) ในฟงกชนแตละประเภทจะถกวดขนาดความซบซอนออกมาไดหลายระดบ ใหนบวาแตละฟงกชนมระดบ ต า กลาง และสงจ านวนเทาใด แลวน ามาคณกบตวถวงน าหนกของแตละระดบในฟงกชนแตละประเภท ตามตารางตวถวงน าหนก จากนน หาผลรวมฟงกชนทงหมดทนบไดกจะไดคา UFP (คา FP ทยงไมไดปรบแตง)

Page 6: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

6

ตารางท 12.2 แสดงตารางเกณฑระดบความซบซอนของฟงกชนแตละประเภท ตารางถวงน าหนก และการค านวณหาคา UFP

จากตวอยางในตาราง สมมต ขอมลสนคาทจะน าเขาสระบบ (EI) เกยวของกบไฟล 2 ชนด (FTR) และขอมลสนคานประกอบไปดวยฟลดขอมลไมเกน 15 ฟลด (DET) เมอเทยบกบตาราง EI แลวพบวาฟงกชน EI นมระดบความซบซอนอยท Average แตขอมลทจะน าเขาสระบบทงหมดม 10 ชนด (คอ นอกจากขอมลสนคาแลวยงมขอมลอน ๆ ดวย) เมอประเมนแลวพบวา อยในระดบ “Low” 2 ชนด อยในระดบ “Average” 5 ชนด และระดบ “High” 3 ชนด เมอน าไปคณกบตวถวงน าหนกแลวรวมกนทงหมดไดคาความซบซอนของ EI เทากบ 44 จงด าเนนการหาคาความซบซอนของขอมลชนดตอไปจนครบเพอหาผลรวม UFP ของขอมลทกชนด

2. ค านวณหาคาปจจยคณลกษณะของระบบ (VAF) กอนค านวณหาคา FP สดทาย ใหค านวณคาปจจยทสงผลตอความแตกตางกนของแตละระบบ ปจจยดงกลาวคอ คณลกษณะเดนของระบบทงหมด 14 ดานตามขอก าหนดความตองการทลกคาตองการ โดยใหก าหนดระดบอทธพลของคณลกษณะในแตละดานวามความเกยวของกบระบบมากนอยเพยงใด โดยมคาตงแต 0 (ไมเกยวของ) ถง 5 (เกยวของมาก)

Page 7: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

7

ตารางท 12.3 คณลกษณะเดนของระบบทง 14 ดาน คาทประเมนตงแต 0 (ไมเกยวของ) ถง 5 (เกยวของมาก)

คณลกษณะ คา คณลกษณะ คา 1 การตดตอสอสารขอมล (Data

Communication) 8 การปรบปรงขอมลแบบออนไลน (Online

Update)

2 การประมวลผลขอมลแบบกระจาย (Distribution Data Processing)

9 ความซบซอนของการประมวลผล (Complex Processing

3 ประสทธภาพของระบบ (Performance) 10 การน าไปใชซ าได (Reusability) 4 การแกไขคาของระบบ (Configuration) 11 ความงายในการตดตง (Installation

Ease)

5 ปรมาณรายการขอมล (Transaction) 12 ความงายในการด าเนนงาน (Operational Ease)

6 การปอนขอมลเขาสระบบแบบออนไลน (Online Data Entry)

13 การใชงานไดหลายไซต (Multiple Sites)

7 ประสทธภาพการใชงานของผใช (End-user Effciency)

14 รองรบการเปลยนแปลงความตองการของผใช (Change Requirement)

จากนน ใหรวมระดบอทธพลทง 14 ดานเขาดวยกน แลวน ามาค านวณหา VAF ตามสตรค านวณ ดงน

VAF = 0.65 + [0.01 * ผลรวมคาคณลกษณะ 14 ดาน]

3. ค านวณหาคา FP ทปรบแตงแลว เมอค านวณหา UFP และ VAF แลว น ามาคณกน จะไดผลลพธเปนคา FP ทปรบแตงตามคณลกษณะเดนของระบบ ตามสตร FP = UFP * VAF

ทง LoC และ FP คอ วธวดขนาดของซอฟตแวร โดยสามารถน าไปค านวณหา Productivity และ Effort ตอไปได อยางไรกตาม สตรค านวณเพอประมาณการ Effort นนบางครงอาจตองการใชขนาดของซอฟตแวรทเปน LoC ดงนน คา FP ทหาได อาจตองแปลงไปเปน LoC ซงมตารางเปรยบเทยบ ดงน

ตารางท 12.4 ตารางเปรยบเทยบคา FP เพอแปลงไปเปน LoC ตามมาตรฐานของ QSM (Quantitiative Software Management: www.qsm.com)

ภาษาโปรแกรมมง LoC ตอ 1 FP Average Medium Low High

Access 35 38 15 47 Ada 154 - 104 205 ASP 59 62 32 127 C 148 104 9 704 C++ 60 53 29 178 C# 59 59 51 66 Clipper 38 39 27 70

Page 8: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

8

COBOL 73 77 8 400 FoxPro 32 35 25 35 HTML 43 42 35 53 Informix 42 31 24 57 J2EE 61 50 50 100 Java 60 59 14 97 JavaScript 56 54 44 65 JSP 59 - - - Oracle 38 29 4 122 Perl 60 - - - PL/1 59 59 22 92 PL/SQL 46 31 14 110 Powerbuilder 30 24 7 105 SQL 39 35 15 143 VBScript 45 34 27 50 Visual Basic 50 42 14 276

12.3 เทคนคการประมาณการตนทนและ Effort การประมาณการตนทน และ Effort ทดจะตองใกลเคยงกบความเปนจรง แตการประมาณการใหใกลเคยงกบคาจรงนนเปนสงทท าไดยาก จงไดมการคดคนเทคนคในการประมาณการตนทนและ Effort ขนมาหลายเทคนค ดงตวอยางตอไปน

ตารางท 12.5 ตารางแสดงตวอยางเทคนคในการประมาณการตนทนและ Effort

เทคนค รายละเอยด Algorithm Cost Modeling การใชแบบจ าลองทางคณตศาสตรเพอการประมาณการ โดยแบบจ าลองนนถกพฒนา

จากการรวบรวมขอมลตนทนทใชจรงในอดตทมความสมพนธกบหนวยวดบางอยางของซอฟตแวร เชน ขนาดของซอฟตแวร เพอใชเปนตวแปรทสงผลตอการประมาณการตนทน

Expert Judgment การใชผเชยวชาญประมาณการ โดยใชความเหนของผเชยวชาญ เปรยบเทยบกบขอมลในอดต ปรกษา และตกลงก าหนดตนทนรวมกน

Estimation by Analogy การประมาณการดวยการวเคราะห โดยอาศยขอมลจากโครงการในธรกจเดยวกนทด าเนนการประสบความส าเรจแลวมาเปนขอมลหลกในการวเคราะห

Parkinson’s Law กฎของพารคนสน คอ การกระจายงานใหกบบคลากรตามระยะเวลาทมอย เชน ถาตองสงมอบซอฟตแวรภายใน 12 เดอน และมบคลากรอยเพยง 5 คน จะตองจดสรรบคลากรทง 5 ใหท างานไดเทากบ 60 Person-Month

Pricing to Win การประมาณการเพอใหชนะการประมล กลาวคอ ตองประมาณการตนทนใหต าทสด เพอจะไดก าหนดราคาซอฟตแวรใหต ากวาคแขงขน โดยไมสนใจวาการประมาณการนจะถกตองหรอไม

ตวอยางเทคนคในตารางขางตน เปนเทคนคทอาศยความรและประสบการณหรอขอมลในอดตเปนสวนใหญ แตโครงการในปจจบนนนมความแตกตางจากในอดตเปนอยางมาก วธการดงกลาวจงคลาดเคลอนสง ในทนจงขอ

Page 9: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

9

กลาวถงการประมาณการดวยแบบจ าลอง หรอสตรทางคณตศาสตรทเรยกวา “COCOMO Model” ซงมการน าปจจยทสงผลตอตนทนหลายประการมาค านวณดวย

12.4 เทคนคการประมาณการแบบ COCOMO COCOMO (Constructive Cost Model) เปนแบบจ าลองประมาณการ Effort ตนทน และจดตารางการท างาน ทคดคนโดย Dr. Barry Boehm ในป ค.ศ. 1981 โดยการพจารณาจากขนาดของซอฟตแวรและคณลกษณะของซอฟตแวรทผใชตองการ เนองจากความซบซอนและคณลกษณะของซอฟตแวรเรมมมากขน อนเปนผลมาจากแนวทาง เครองมอ และเทคโนโลยทใชผลตซอฟตแวรนนถกพฒนาขดความสามารถมากขน ไมวาจะเปนเทคโนโลยการออกแบบเชงวตถ (Object-oriented Design: OOD) การผลตซอฟตแวรเปนคอมโพเนนท รวมถงเครองมอทดสอบโปรแกรมแบบอตโนมต การประมาณการตนทนและ Effort ดวยแบบจ าลอง COCOMO นน เปนการค านวณจากขนาดของซอฟตแวร รวมกบปจจยแวดลอมอน ๆ ทเกยวของ เชน ความแนนอนของกระบวนการ และความสามารถในการผลตซอฟตแวรของทมงาน ความยดหยน ความเสยง และวธจดการกบความเสยง เปนตน นอกจากน แบบจ าลอง COCOMO ยงมการค านวณแบบเอกซโปเนนเชยล (Exponential) เนองจาก Dr.Barry Boehm พบวา Effort กบขนาดของซอฟตแวรมความสมพนธกนแบบไมเปนเสนตรง กลาวคอ Effort แปรผนตามขนาดของซอฟทแวรแบบยกก าลง เชน หากเพมขนาดของซอฟตแวร นอกจากจะท าใหจ านวนบคลากรในทมงานเพมขนแลว ยงอาจท าใหคาใชจายอน ๆ เพมขนตามไปดวย ไมวาจะเปนคาใชจายในการตดตอสอสาร คาใชจายในการบรหาร ตลอดจนคาใชจายในการรวมระบบ (เรยกคาใชจายเหลานวา “Overhead”) เปนตน นอกจากขนาดของซอฟตแวรและปจจยแวดลอม ทสงผลตอ Effort ทงการเพมขนหรอลดลงของ Effort แลว ยงมปจจยอนทตองพจารณาเพมเตม เชน คณลกษณะของซอฟตแวร คณลกษณะของ Platform คณลกษณะของทมงาน และคณลกษณะของการบรหารโครงการ เปนตน แลวใหน าหนกกบคณลกษณะดงกลาวเพอปรบคาจ านวน Effort ทเหมาะสมทสด แบบจ าลอง COCOMO ถกพฒนาเปนเวอรชน 2 คอ COCOMO II ตงแตป ค.ศ. 1997 โดยรวบรวมขอมลจากโครงการทงหมด 161 โครงการ จ าแนกตามขนาดของโครงการ และใชหลกการวเคราะหทางสถต (Bayesian Statistical Analysis) วเคราะหขอมลของโครงการทประสบความส าเรจเหลานน รวมทงความคดเหนของผเชยวชาญตาง ๆ ดวย COCOMO II แบงแบบจ าลองออกเปน 3 ชนด เพอใชประมาณการในระยะตาง ๆ ของกระบวนการพฒนาซอฟตแวร 1. Application-composition Model เหมาะกบการผลตซอฟตแวรตามแนวทางคอมโพเนนท (Component-based Development) และอยในระยะสรป Concept ในการด าเนนงาน ใช Object Point แทนขนาดของซอฟตแวร 2. Early Design Model ใชประมาณการในระยะกอนการออกแบบซอฟตแวร แตหลงจากการก าหนดความตองการเรยบรอยแลว ใชคา FP แทนขนาดของซอฟตแวร 3. Post-architecture Model ใชประมาณการในระยะหลงการออกแบบซอฟตแวร เปนการประมาณการอกครงเพอความถกตองของคาประมาณการทได

Page 10: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

10

อยางไรกตาม ในระบบงานหรอโครงการขนาดใหญ อาจแบงการประมาณการออกเปนสวนยอย โดยในแตละสวนสามารถใชเทคนคในการประมาณการทแตกตางกนได จากนนจงน าผลทไดในแตละสวนมารวมกน โดยทผบรหารโครงการไมจ าเปนตองประเมนทกสวนกได ขนอยกบความเหมาะสมและขอตกลง

Application-composition Model Application-composition Model เปนแบบจ าลอง COCOMO II ทเหมาะกบการผลตซอฟตแวรดวยแนวทางคอมโพเนนท โดยแตละคอมโพเนนทสามารถอธบายแทนดวย Object Point ได นนคอ ขนาดของซอฟตแวรจะตองนบเปนออบเจกพอยท เปนการนบจ านวนออบเจกต ทหมายถงคอมโพเนนท 3 สวน ไดแก หนาจอ (Screen) รายงาน (Report) และโมดลทเขยนดวยภาษาโปรแกรมมงในยค 3GL (Third Generation Language) ขนไป ดงนน ออบเจกตในทนจงตางจากออบเจกตตามการนยามของเทคโนโลยเชงวตถ (Object-oriented Technology) ออบเจกตคอมโพเนนทเหลาน จะมจ านวนออบเจกตพอยทแตกตางกน ขนอยกบระดบความซบซอน โดยแบงออกเปน 3 ระดบ แตละระดบมคะแนนความซบซอน ดงตารางตอไปน

ตารางท 12.6 แสดงระดบความซบซอนของออบเจกตพอยท

งาย (Simple) ซบซอน (Complex) ซบซอนมาก (Very Complex) Screen 1 2 3 Reports 2 5 6 3GL Modules 4 10 -

กรณคอมโพเนนทของซอฟตแวรถกออกแบบใหมการน ากลบมาใชใหม และมการใชงานไลบรารดวย จะตองน าอตราการน าไปใชใหมมาลบออกจากจ านวนออบเจกตพอยททนบไดทงหมด ผลลพธทไดคอ คาของออบเจกตพอยททถกปรบลดแลว หรอเรยกวา “Revised Object Point (ROP)” มสตรค านวณ ดงน

Revised Object Point (ROP) = Object Point x [(100 - %reuse)/100] จากนนใหน า ROP ทไดไปค านวณหา Effort ดงน

MME (Man Month Effort) = [ROP / Productivity Constant] โดย Effort ทได จะมหนวยเปน Man-Month หาไดจากอตราสวนระหวาง ROP กบคาคงทของประสทธผลในการผลตซอฟตแวร (Productivity Constant) ซงคดจากประสบการณและความสามารถของทมงาน มคาคงทดงตารางตอไปน

ตารางท 12.7 แสดงคาคงทของประสทธผลในการผลตซอฟตแวร โดยพจารณาจากระดบประสบการณและความสามารถของทมงาน

ระดบประสบการณและความสามารถ

ต ามาก (Very Low)

ต า (Low)

ปานกลาง (Nominal)

สง (High)

สงมาก (Very High)

Productivity Constant (NOP per Month)

4 7 13 25 50

Page 11: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

11

ประสทธผลในการผลตซอฟตแวร จะมหนวยเปนจ านวนของออบเจกตพอยทตอเดอน (Number of Object Point per Month) ยกตวอยางเชน ในระยะการกอนการด าเนนงาน โครงการ ก นบจ านวนออบเจกตพอยทได 40 OP มอตราการน าโคดไปใชใหม 10% และเมอประเมนประสบการณและความสามารถของทมงานแลว พบวาอยในระดบปานกลาง(Nominal/Normal) สามารถค านวณหา Effort ทตองการใชในโครงการได ดงน

𝑅𝑂𝑃 = 40 × 100 − 10

100= 40 × 0.90 = 36

𝑀𝑀𝐸 𝑀𝑎𝑛𝑀𝑜𝑛𝑡𝑕𝐸𝑓𝑓𝑜𝑟𝑡 = 36

13= 3 𝑀𝑎𝑛 𝑀𝑜𝑛𝑡𝑕𝑠

การประมาณการ Effort ดวยแบบจ าลองชนดน นอกจากจะใชในระยะการหา Concept ในการด าเนนงานแลว ยงสามารถใชประมาณการจ านวนแรงงานจากโปรโตไทปทสรางขนมา เพอเสนอลกคา ในกรณทขอมลความตองการของลกคายงไมชดเจนไดอกดวย

Early Design Model เปนแบบจ าลอง COCOMO II ทใชในระยะกอนการออกแบบซอฟตแวร โดยมสตรค านวณพนฐาน ดงน

𝑀𝑀𝐸 = 𝐴 × (𝑆𝑖𝑧𝑒)𝐵

โดยท MME คอ Effort ทมหนวยเปน Man-Month (Man Month Effort) A คอ คาคงทของประสทธผลในการผลตซอฟตแวร คดทระดบปานกลาง (Nominal) B คอ คาของปจจยทสงผลกระทบให Effort และขนาดแปรผนตรงตอกนแบบไมเปน เสนตรง (Exponential) เรยกปจจยเหลานวา “Scaling Factor” หรอ “Economics Scale” หรอ “Cost Driver” ในทนขอเรยกวา “ปจจยขบ” Size คอ ขนาดของซอฟตแวร มหนวยเปน KLoC (Kilo of Line of Code = Loc x 1000)

ตามทเคยกลาวไปแลววา COCOMO II ไดน าปจจยอน ๆ มาค านวณดวย เนองจากพบวา ปจจยดงกลาวท าใหขนาดและ Effort แปรผนตอกนแบบไมเปนเสนตรง ปจจยดงกลาวเรยกวา “Scaling Factor” หรอ คาของปจจยขบ แสดงแทนดวย B จากสตรค านวณ จะสงเกตวา B เปนเลขชก าลงของขนาดซอฟตแวร ดงนน B จะสงผลให Size of Software เปลยนแปลง โดยจะสงผลให Effort เปลยนแปลงไปดวย ดงน - ถา B = 1 หมายถง Scaling Factor ไมสงผลกระทบตอขนาดซอฟตแวร (ไมท าใหขนาดซอฟตแวรเปลยนแปลง) - ถา B > 1 หรอ B < 1 หมายถง Scaling Factor สงผลกระทบใหขนาดของซอฟตแวรเปลยนแปลงขนหรอลง ปจจยขบทน ามาใชใน Early Design Model มทงหมด 5 ปจจย โดยเบองตนจะตองประเมนระดบและใหคะแนนแตละปจจย (Rating) จากนนหาผลรวมของคะแนนทประเมนไดในปจจยทงหมด แลวน ามาค านวณหาคาของปจจยทแทนดวย B จากสตรค านวณ ดงน

Page 12: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

12

𝐵 = 0.91 + 0.01( 𝑅𝑎𝑡𝑖𝑛𝑔𝑠)

5

1

ระดบในการประเมนปจจยทง 5 ม 4 ระดบ ไดแก ต ามาก(Very Low) ต า (Low) ปานกลาง (Nominal) และสง (High) แตละระดบมคะแนน ดงตารางตอไปน

ตารางท 12.8 แสดงคะแนนของปจจยแตละระดบ (Value of Rating for Scaling Factor)

Factor Code ต ามาก (Very Low)

ต า (Low)

ปานกลาง (Nominal)

สง (High)

Factor Name

PREC 6.20 4.96 3.72 2.48 Precedentness FLEX 5.07 4.05 3.04 2.03 Flexibility

RESL 7.07 5.65 4.24 2.83 Risk Resolution TEAM 5.48 4.38 3.29 2.19 Team Cohesion PMAT 7.80 6.24 4.68 3.12 Process Maturity

ส าหรบความหมายของ ปจจยขบ ทง 5 มดงน

ตารางท 12.9 แสดงปจจยขบส าหรบ COCOMO II ในระยะ Early Design

ปจจย รายละเอยด PREC ความเหมอนของซอฟตแวรใหมกบซอฟตแวรเดมทเคยพฒนามาแลว (เหมอนมาก คะแนนนอยอยในระดบสง แปลวา

ผลกระทบนอย แตถาเหมอนนอย อยในระดบต า คะแนนสง เพราะสงผลกระทบมาก) FLEX การวดระดบความยดหยนในการบรหารจดการและด าเนนโครงการ (เชน การใชเครองมอ) RESL การวดระดบความสามารถในการจดการหรอควบคมความเสยงขององคกรหรอทมงานของโครงการ TEAM การวดระดบของการท างานเปนทมขององคกรหรอทมงานโครงการ PMAT การวดระดบวฒภาวะความสามารถขององคกร หรอทมงานโครงการ ตงแตระดบต าสดคอ 1 จนถงระดบสงสดคอ 5

ตวอยางท 12.2 สมมตวา ปจจยขบทง 5 ขอ ถกจดอนดบใหอยในระดบต ามาก (Very Low) ทงหมด และก าหนดใหขนาดของซอฟตแวรทนบแบบฟงกชนพอยทและแปลงมาเปน LoC แลวมคาเทากบ 10 KLoC สามารถค านวณหาแรงงานโดยประมาณ บนพนฐานของคาคงทของประสทธผลในการผลตทระดบปกต (Nominal) ไดดงน หาคาระดบคะแนนรวมของปจจยขบ หรอคา B กอน ดงน

B = 0.91 + 0.01 x (6.20 + 5.07 + 7.07 +5.48 + 7.80) = 0.91 + 0.01 x 31.62 = 1.2262

สงเกต B มคามากกวา 1 ท าใหทราบในเบองตนวา ปจจยขบสงผลกระทบตอขนาดของซอฟตแวรและ Effort แนนอน ตอไปค านวณหา Effort โดยประมาณ ดงน

MME = A x (Size)B = 13 x (10)1.2262 ** A = 13 เทยบจากตารางท 12.7 ** = 13 x 16.8344 = 218.84 หรอ ประมาณ 219 Man Month

Page 13: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

13

ตวอยางท 12.3 ในทางตรงกนขามกบตวอยางท 12.2 สมมต ปจจยขบทง 5 ขอ ถกจดอนดบใหอยในระดบสง (High) ทงหมด และก าหนดใหขนาดของซอฟตแวรทนบแบบฟงกชนพอยทมคาเทาเดม สามารถค านวณหาแรงงานโดยประมาณ บนพนฐานของคาคงทของประสทธผลในการผลตทระดบปกต (Nominal) ไดดงน

B = 0.91 + 0.01 x (2.48 + 2.03 + 2.83 + 2.19 + 3.12) = 0.91 + 0.01 x 12.65 = 1.0365 หรอประมาณ 1.04

MME = A x (Size)B = 13 x (10)1.04 ** A = 13 เทยบจากตารางท 12.7 ** = 13 x 10.9647 = 142.54 หรอ ประมาณ 143 Man Month

จะเหนวา คา B มากกวา 1 เชนกน แตมากกวาเพยงเลกนอยเทานน ดงนน จงสงผลใหขนาดของซอฟตแวรเพมขน เพยงเลกนอย กลาวคอ เพมจาก 10 เปน 10.9647 ท าใหใชแรงงานหรอความพยายามโดยประมาณเพยง 143 Man Month

Post Architecture Model ในระยะหลงการออกแบบ จะพบวานอกจากปจจยขบทง 5 ในระยะกอนออกแบบ ทมผลตอ Effort ทตองใชโดยประมาณแลว ยงมปจจยทมผลกระทบรวมดวย ทงในดานคณลกษณะของผลตภณฑหรอซอฟตแวร (Product Factor) ดาน Platform (Platform Factor) ดานบคลากร (Personnel Factor) และดานโครงการ (Project Factor) รวมทงสน 16 ปจจย เรยกปจจยเหลานวา “Effort Multiplier” ดงนน จงตองปรบคา Effort โดยประมาณทค านวณไดจากระยะกอนออกแบบใหมเปน MME (Modified) ดวยการประเมนระดบการสงผลกระทบตอ Effort ของทง 16 ปจจย ออกมาเปนคาคะแนนในแตละระดบ ไดแก ต ามาก (Very Low) ต า (Low) ปานกลาง (Nominal) และสง (High) น าคะแนนระดบทประเมนไดทง 16 มาคณกน เพอใหไดเปน Effort Multiplier คอ Effort ตามสตรค านวณตอไปน

MME (Modified) = MME x (EM) โดย EM คอ Effort Multiplier เปนผลคณของปจจยทสงผลใหจ านวน Effort เปลยนแปลงไป นนคอ EM1 x EM2 x Em3 x ….. x EM16 ส าหรบปจจยในระยะหลงการออกแบบ ทง 16 ปจจย จะแบงออกเปน 4 กลม ดงน

Page 14: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

14

ตารางท 12.10 แสดงปจจยส าหรบ COCOMO II ในระยะ Post Architecture

กลมปจจย ปจจย รายละเอยด ผลตภณฑซอฟตแวร (Product)

RELY: Software Reliability ระดบความนาเชอถอและไววางใจไดของซอฟตแวรทตองการ DATA: Database Size ขนาดของฐานขอมล CPLX: Software Complexity ระดบความซบซอนของซอฟตแวร RUSE: Required Reusability ความตองการในการน าโคดไปใชซ า DOCU: Documentation ระดบมาตรฐานของเอกสาร

แพลตฟอรม (Platform)

TIME: Time Constraint on Execution ขอจ ากดดานเวลาในการรนซอฟตแวร STOR: Main Storage Constraint ขอจ ากดดานเนอทการเกบขอมล PVOL: Platform Volatility ความถในการเปลยนแพลทฟอรมหรอระบบปฏบตการ

บคลากร (Personnel)

ACAP: Analyst Capability ความสามารถของนกวเคราะหระบบ PCAP: Programmer Capability ความสามารถของโปรแกรมเมอร PCON: Personnel Continuity ความถในการเปลยนแปลงพนกงานหรอทมงาน AEXP: Analyst Experience ประสบการณของนกวเคราะหระบบ PEXP: Programmer Experience ประสบการณของโปรแกรมเมอร LTEX: Language and Tools Experience

ประสบการณในการใชภาษาโปรแกรมมงและเครองมอ

โครงการ (Project)

TOOL: Use of Software Tools การใชเครองมอในการบรหารโครงการ SITE: Site Environment จ านวนของไซตงาน

เมอประเมนระดบการสงผลกระทบตอ Effort ของทง 16 ปจจยจนครบแลว ใหน าระดบทประเมนได มาเทยบเปนคะแนน ตามเกณฑในตารางตอไปน

ตารางท 12.11 แสดงระดบการสงผลกระทบตอ Effort ของปจจยทง 16 ประการในระยะ Post Architecture

Factor Levels and Ratings ต ามาก (Very Low) ต า (Low) ปานกลาง (Nominal) สง (High)

Product Factor 1. RELY 0.82 0.92 1.00 1.10 2. DATA 0.80 0.90 1.00 1.14 3. CPLX 0.73 0.87 1.00 1.17 4. RUSE 0.85 0.95 1.00 1.07 5. DOCU 0.81 0.91 1.00 1.11 Platform Factors 1. TIME - - 1.00 1.11 2. STOR - - 1.00 1.05 3. PVOL - - 1.00 1.15 Personnel Factors 1. ACAP 1.42 1.19 1.00 0.85 2. PCAP 1.34 1.15 1.00 0.88 3. AEXP 1.22 1.10 1.00 0.88 4. PEXP 1.19 1.09 1.00 0.91 5. LTXP 1.20 1.09 1.00 0.91

Page 15: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

15

6. PCON 1.29 1.12 1.00 0.90 Project Factors 1. TOOL 1.17 1.09 1.00 0.90 2. SITE 1.22 1.09 1.00 093 ตวอยางท 12.4 จากตวอยางท 12.2 และ 12.3 เปนการหาคา MME (Effort) โดยประมาณในระยะกอนการออกแบบ เมอมาถงระยะหลงการออกแบบ ตองน าคา Effort ทไดมาปรบคาใหมตามปจจยเพมเตม 16 ปจจย โดยยงคงใหขนาดของซอฟตแวรมคาเทากบ 10 KLoC เชนเดม แตในตวอยางน จะค านวณหา MME ใน 2 กรณ คอ กรณท 1 ปจจยขบทง 16 ประการอยในระดบ “Very Low” และกรณท 2 คอ ปจจยขบทง 16 ประการอยในระดบ “High” กรณท 1 ปจจยขบทง 16 ประการ ถกจดใหอยในระดบ “Very Low” ทงหมด Effort Multiplier กรณท 1 = EM1 x EM2 x ….. EM16 = 0.82 x 0.80 x 0.73 x 0.85 x 0.81 x 1.42 x 1.34 x 1.22 x 1.19 x 1.20 x 1.29 x 1.17 x 1.22 = 2.01

กรณท 2 ปจจยขบทง 16ประการ ถกจดใหอยในระดบ “High” ทงหมด Effort Multiplier กรณท 2 = EM1 x EM2 x ….. EM16 = 1.10 x 1.14 x 1 17 x 1.07 x 1.11 x 1.11 x 1.05 x 1.15 x 0.85 x = 0.88 x 0.88 x 0.91 x 0.91 x 0.90 x 0.90 x 0.93 = 0.96 ดงนน MME (Modified) ของทง 2 กรณ ค านวณได ดงน

MME (Modified) = MME x (EM)

MME (จากตวอยางท 12.2) = 219 x 2.01 440 Man Month

MME (จากตวอยางท 12.3) = 143 x 0.96 137 Man Month

หากตองการค านวณคาใชจายของ Effort (Man Month Cost) โดยประมาณ ใหน า MME โดยประมาณคณดวยอตราคาแรงตอคน (Man Month Rate)

สรป การประมาณการตนทนของซอฟตแวร (Software Cost Estimation) จดท าขนเพอน าตนทนทประมาณการไดมาประเมนราคาโครงการหรอประเมนราคาของซอฟตแวร การประมาณการตนทนซอฟตแวรจงเปนอกกจกรรมหนงทส าคญเทยบเทากบกจกรรมอน เนองจากหากตนทนทประมาณการไดน าไปสการประมาณราคาของซอฟตแวรไมถกตองอาจท าใหองคกรตองขาดทนหรอก าไรทไดไมคมคา หรออาจไมชนะการแขงขนประมลโครงการ ในระหวางการประมาณการตนทน ยอมตองมปจจยทท าใหตนทนเปลยนแปลง ผบรหารโครงการมหนาทในการปรบคาตนทนใหเหมาะสมกบปจจยทเปลยนแปลงไปดวย เพอใหตนทนโดยประมาณใกลเคยงกบตนทนจรงมากทสด และจะสงผลให

Page 16: Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์ เป็นกิจกรรมหนึ่ง ... · 1 Lecture 12 การประมาณการต้นทุนของซอฟต์แวร์

16

การประมาณราคาซอฟตแวรถกตองทสดดวย ตนทนของโครงการผลตซอฟตแวรประกอบไปดวยคาใชจายหลายประเภท เชน คาเดนทาง คาฝกอบรม คาฮารดแวร ซอฟตแวร และแรงงาน เปนตน แตการประมาณการแรงงาน (Effort) เพอใหไดประสทธผลการท างานทตองการ (Productivity) นน จ าเปนตองอาศย “ขนาด (Size)” ของซอฟตแวรในการประมาณการ ดงนน จงตองมการคดคนวธการวดขนาดของซอฟตแวรขนมา โดยนยมใชวธ “นบจ านวนบรรทด (Line of Code: LoC)” และวธ “นบฟงกชน (Function Point: FP)” โดยวธนบจ านวนบรรทดเปนวธทงายและชดเจนมากกวา แตขอเสยคอ ไมสามารถน ามาใชวดประสทธผลการผลตซอฟตแวรของโปรแกรมเมอรทใชภาษาโปรแกรมมงทแตกตางกนได เนองจากภาษาโปรแกรมมงทแตกตางกน จะใชจ านวนบรรทดทไมเทากน เมอตองเขยนฟงกชนงานเดยวกน ดงนนจงตองใชวธ FP แทน เนองจากเปนการนบทจ านวนฟงกชนงาน และยงมการน าคาคณลกษณะของซอฟตแวรมาค านวณรวมดวย ท าใหลดปญหาความแตกตางของภาษาโปรแกรมมงได เทคนคในการค านวณหาตนทนและแรงงานทนยมใชกนมากในปจจบน คอ “COCOMO (Constructive Cost Model)” เนองจากเปนวธทมการเกบขอมลทางสถตในการผลตซอฟตแวรของโครงการทงสน 161 โครงการ แลวน ามาสรางเปนสตรค านวณหาตนทน ท าใหไดคาทนาเชอถอมากขน