การประมาณการแรงงานด้วยวิธีโคโคโม
Download
Report
Transcript การประมาณการแรงงานด้วยวิธีโคโคโม
การประมาณการแรงงานด้วยวิธีโคโคโม
อ.วิวฒ
ั น์ ชินนาทศิริกุล
บทนา
COCOMO
ย่อมาจาก COnstruction COst MOdel พัฒนาโดย โบ
แอม (ค.ศ.1981) เรียกว่า COCOMO81 หรือ COCOMOI
วัตถุประสงค์ เพื่อประมาณการแรงงานและเวลาที่ตอ้ งใช้ในการพัฒนา
ซอฟแวร์
ปี ค.ศ.2004 โบแอม ได้พฒ
ั นาปรับปรุงตัวแบบ COCOMO ใหม่ให้
สอดคล้องกับวิธีการพัฒนาซอฟแวร์ที่เปลี่ยนไปจากเดิม ตัวแบบใหม่
เรียกว่า COCOMO2000 หรือ COCOMOII
COCOMOI
COCOMOI
เป็ นตัวแบบที่ประมาณการแรงงาน (effort) และระยะเวลา
ที่ใช้จานวนบรรทัดของโปรแกรม (LOC)
ประกอบด้วยตัวแบบ 3 แบบ คือ
1. ตัวแบบระดับพื้ นฐาน (Basic Model)
2. ตัวแบบระดับกลาง (Intermediate model)
3. ตัวแบบระดับสูง (Advance Model)
ตัวแบบระดับพื้ นฐาน
ประมาณการแรงงาน โดยไม่มีตวั ปรับค่า
ตัวแบบระดับกลาง
เป็ นตัวแบบที่มีการพัฒนาจากตัวแบบระดับพื้ นฐาน แต่มีความละเอียดมาก
ขึ้ น โดยมีการปรับค่าที่ได้จากตัวแบบแรกด้วยตัวขับเคลื่อนค่าใช้จ่าย
(Cost Driven)
ตัวแบบระดับสูง
มีการประมาณการแบบเดียวกับตัวแบบระดับกลาง แต่การคานวณแรงงาน
และการประเมินตัวขับเคลื่อนค่าใช้จ่าย จะทาในแต่ละเฟสของการพัฒนา
ระบบงาน
ขั้นตอนการประมาณการ
จัดประเภทของระบบงานที่กาลังพิจารณา มี 3 ประเภท
1.1 ประเภทออกานิ ก (Organic Model)
1.2 ประเภทเซมิดีเทช (Semi-detached Model)
1.3 ประเภทเอมเบดเด็ด (Embedded Model)
2. คานวณหาแรงงานปกติ และระยะเวลาการพัฒนาระบบงาน
3. คานวณหาปั จจัยปรับแรงงาน (Effort Adjustment Factor)
1.
1.1 ประเภทออกานิก (Organic Model)
ทีมงานที่พฒ
ั นามีขนาดเล็ก
ระบบงานมีขนาดเล็ก ประมาณไม่เกิน 50 KLOC
พัฒนาภายในสภาวะแวดล้อมภายในองค์กร (in-house environment)
ทีมงานมีความคุน้ เคย หรือมีประสบการณ์กบั ระบบงานที่จะพัฒนา
สามารถต่อรอง ขอปรับเปลี่ยนรายละเอียดของซอฟแวร์ได้
ระบบงานพัฒนาอยูบ่ นสภาพแวดล้อมที่คงที่ (static environment)
อัลกอริทึมของการประมวลผลไม่มีความซับซ้อน
ระยะเวลาในการพัฒนาไม่เป็ นตัวกดดันต่อผูพ้ ฒ
ั นามากนัก
1.2 ประเภทเซมิดีเทช (Semi-detached Model)
คนในทีม มีท้งั คนที่มี และไม่มีประสบการณ์ในระบบงานที่กาลังพัฒนา
คนในทีมทุกคนมีประสบการณ์ในระบบงานที่เกี่ยวข้องปานกลาง
มีแรงกดดันจากระยะเวลาของโครงการบ้าง
ระบบงานมีขนาดปานกลาง ประมาณไม่เกิน 300 KLOC
อัลกอริทึมของการประมวลผลมีความซับซ้อนพอประมาณ
1.3 ประเภทเอมเบดเด็ด (Embedded Model)
ทีมงาน ไม่มีความคุน้ เคย หรือไม่มีประสบการณ์กบั ระบบงานทีจ่ ะพัฒนา
ข้อกาหนดของระบบงานที่พฒ
ั นา ไม่สามารถเปลี่ยนแปลงได้ เนื่ องมาจาก
ข้อจากัดต่างๆ
ต้องพัฒนาระบบงานที่ทางานร่วมกับอุปกรณ์เฉพาะ หรือระบบพัฒนาขึ้ น
โดยผูกกับกฎ ระเบียบ หรือขั้นตอนการดาเนิ นงานอย่างเคร่งครัด
ต้องพัฒนาระบบงานภายในเวลาที่กาหนด
อัลกอริทึมของการประมวลผลมีความซับซ้อน
ต้องทดสอบความถูกต้องอย่างมาก
การคานวณหาแรงงาน และระยะเวลา
ตัวแบบพื้ นฐาน
แรงงาน (คน-เดือน) = a x KLOCb
ระยะเวลาการพัฒนา = c X แรงงานd
โดยที่ a, b, c, d มีค่าตามตาราง
ตาราง แสดงค่าพารามิเตอร์สาหรับตัวแบบระดับพื้นฐาน
a
b
c
d
ออกานิ ก
2.4
1.05
2.5
0.38
เซมิดีเทช
3.0
1.12
2.5
0.35
เอมเบดเด็ด
3.6
1.20
2.5
0.32
ประเภทระบบงาน
ตัวอย่าง ระบบงานมีขนาด 33.3 KLOC เป็ นระบบแบบเซมิดีเทช จงคานวณหา
แรงงาน ระยะเวลา และจานวนคน
แรงงาน (คน-เดือน) = 3.0 x KLOC1.12
=
3.0 x 33.31.12
= 152
ระยะเวลา
จานวนคน
คน-เดือน
= 2.5 x 152
= 14.5 เดือน
= 152/14.5
= 11 คน
ตัวแบบระดับกลาง
แรงงาน (คน-เดือน) = a x KLOCb x ตัวขับเคลื่อนค่าใช้จา่ ย
ระยะเวลาการพัฒนา = c X แรงงานd
โดยที่ a, b, c, d มีคา่ ตามตาราง
a
b
c
d
ออกานิ ก
3.2
1.05
2.5
0.38
เซมิดีเทช
3.0
1.12
2.5
0.35
เอมเบดเด็ด
2.8
1.20
2.5
0.32
ประเภทระบบงาน
ตัวอย่าง
จากการประมาณขนาดซอฟแวร์ ของโครงการแบบ organic พบว่า
data entry
data update
query
report gen.
TOTAL
0.6 KLOC
0.6 KLOC
0.8 KLOC
1.0 KLOC
3.0 KLOC
cost driver attribute
Complexity
Storage
Experience
Programmer capability
high
high
low
low
1.15
1.06
1.13
1.17
ตัวขับเคลื่อนค่าใช้จ่าย =
=
แรงงาน (คน-เดือน) = a x KLOCb x ตัวขับเคลื่อนค่าใช้จ่าย
=
=
ระยะเวลา = c X แรงงานd
=
การคานวณหาปั จจัยปรับแรงงาน
ถ้าการคานวณแรงงาน ใช้ตวั แบบระดับกลาง ผูจ้ ดั การโครงการต้องปรับ
ค่าของแรงงานปกติ ที่คานวณได้จากข้อ 2 ด้วยปั จจัยปรับแรงงาน ซึ่งได้
จากตัวขับเคลื่อนค่าใช้จ่าย (Cost Driver) ที่มี 15 ตัว แบ่งออกเป็ น 4
กลุ่ม ดังตาราง
ตัวขับเคลื่อนค าใช จ ายแต ละตัว จะมีอตั ราแตกต างกัน ตั้งแต
ตา่ มาก
(very low) จนกระทัง่ สูงเป นพิเศษ (extra high)
ผู จัดการโครงการจะต องระบุให ได ว าตัวขับเคลื่อนค าใช
จ ายแต ละตัวมีค า เท าไร แล วจึงนาค าของตัวขับเคลื่อนค
าใช จ ายทุกตัวมาคูณกัน
จากนั้นจึงนาผลคูณของตัวขับเคลื่อนค าใช จ ายทั้งหมดไปคูณกับ
แรงงานปกติที่ได จากข อ 2
ตารางที่ 6.11 และ 6.12 จะช วยให ผู จัดการโครงการสามารถ
กาหนดระดับของตัวขับเคลื่อนค าใช จ ายแต ละตัว เช น ความ
เชื่อถือของระบบงาน (RELY) จะได ระดับสูงมาก (1.40) ถ า
ระบบงานนั้นมีผลกระทบต อ ชีวิตมนุ ษย หรือสถานภาพการเงินขอ
งงค การอย างรุนแรง
แต ถ าระบบงานล มเหลวแล วมีผลเพียงแค ทาให เกิดความ
ไม สะดวกในการทางานเท านั้นค าระดับของ RELY ในกรณีนี้จะ
ตา่ มาก (0.75) สาหรับความซับซ อนของระบบงาน (CPLX) นั้น
ผู จัดการโครงการจะกาหนดระดับของตัวขับเคลื่อนค าใช จ ายได
โดยพิจารณาจากตารางที่ 6.12 ถ าระบบงานมีการคานวณที่มีสตู ร
การคานวณทางคณิตศาสตร หรือสถิติที่ซบั ซ อน ค าระดับของ
CPLX จะสูงมาก (1.30)
แต ถ าเป นการคานวณง ายๆ ค าระดับของ CPLX จะตา่
(0.70) ส วนตารางที่ 6.13 คือ ตัวอย างการกาหนดระดับและคา
ของตัวขับเคลื่อน
ค าใช จ าย
COCOMOII
โบแอมได พิจารณาถึงการเปลี่ยนแปลงการพัฒนาซอฟต แวร หรือ
ระบบงาน
ในป จจุบนั ที่มีวธิ ีการพัฒนาที่แตกต างไปจากป ค.ศ. 1981
COCOMO81 มีสมมติฐานว า ซอฟต แวร พัฒนาตามกระบวนการ
แบบ
น้ าตก และซอฟต แวร ส วนใหญ พัฒนาจากจุดเริ่มต นทั้งหมด
เมื่อมีการ
เปลี่ยนวิธีการพัฒนาซอฟต แวร อย่างมากมายตั้งแต รุ นแรกที่
นาเสนอผู ใช
เช น การพัฒนาใช วิธีการพัฒนาต นแบบ (prototyping)
การพัฒนาโดยการนาซอฟต แวร แต ละส วนมาประกอบเป นระบ
บงาน
(components composition) หรือการพัฒนาด วยภาษารุ นที่ 4
ดังนั้น ตัวแบบที่กาหนดใน COCOMOI จึงไม เหมาะสมกับวิธีการ
พัฒนาแบบใหม ดังกล าว
โบแอมจึงทาการวิจยั และนาเสนอตัวแบบใหม สาหรับการประมาณการ
แรงงาน ตัวแบบใหม จึงเรียก COCOMOII ซึ่งมี 3 ตัวแบบ
COCOMOII เป นตัวแบบสาหรับการประมาณการเป นระยะๆ
ตามรายละเอียดของข อมูลที่ผู จัดการโครงการ/นักวิเคราะห ระบบ
ได รับ ซึ่งจะทาให การปรับค าแรงงานที่ต องใช ใกล เคียง
ความเป นจริงมากยิง่ ขึ้ น
ตัวแบบ 3 ระดับของ COCOMOII ได้แก่
1. ระยะการพัฒนาต้นแบบช่วงต้น
2. ระยะการออกแบบช่วงต้น
3. ระยะหลังจากการออกแบบสถาปั ตยกรรม
1.
ระยะการพัฒนาต้นแบบช่วงต้น
เป็ นตัวแบบที่ใช้สาหรับการประมาณแรงงาน ในช่วงเริ่มต้นโครงการ
ผูจ้ ดั การโครงการ ยังไม่ทราบรายละเอียดของระบบงาน แต่ทราบฟั งก์ชนั
งานคร่าวๆ
การประมาณการจึงใช้ อ็อบเจกต์พอยต์ (Object Points) ตัวแบบนี้
เหมาะกับการพัฒนาระบบด้วยวิธีการใช้ซอฟแวร์ต่างๆที่มีมาประกอบกัน
2.
ระยะการออกแบบช่วงต้น
เป็ นตัวแบบที่ใช้สาหรับประมาณแรงงาน เมื่อผูจ้ ดั การโครงการ ทราบ
ความต้องการแล้ว
การประมาณการนี้ จะประมาณการโดยใช้ฟังก์ชนั พอยต์ แล้วปรับเป็ น
LOC และมีชุดของปั จจัยที่ไม่ยุง
่ ยากมาใช้ในการปรับค่าที่ได้ประมาณการ
3.
ระยะหลังจากการออกแบบสถาปั ตยกรรม
เป็ นตัวแบบที่ใช้ในการประมาณการขนาดของซอฟแวร์ ให้แม่นยามากขึ้ น
หลังจากออกแบบสถาปั ตยกรรมระบบงานแล้ว
ตัวแบบของระดับนี้ มีสตู รคานวณ เช่นเดียวกับระดับการออกแบบ
ระยะแรก แต่มีชุดของปั จจัยที่เข้มข้นมาปรับค่าอีกชุด
การประมาณการแรงงาน สาหรับระยะการพัฒนาต้นแบบ
ช่วงต้น
ตัวแบบการคานวณแรงงาน คือ
แรงงาน
( PM )
%reuse
))
100
PROD
( NOP (1
โดยที่
PM =
แรงงาน (คน-เดือน)
NOP = อ็อบเกจต์พอยต์ใหม่ (New Object Point)
%reuse = ร้อยละของซอฟแวร์ที่นากลับมาใช้ใหม่
PROD = ผลผลิตเพิ่ม
ขั้นตอนการคานวณ
1. นับจานวนอ็อบเจกต์พอยต์ ที่ประกอบกันเป็ นระบบงาน
อ็อบเจกต์ได้แก่ จอภาพ รายงาน และส่วนประกอบที่เป็ น 3 GL
(3 General Language)
2.
จัดระดับของอ็อบเจกต์แต่ละอ็อบเจกต์ ซึ่งมี 3 ระดับคือ ง่าย ปานกลาง
และยาก
การจัดว่าแต่ละอ็อบเจกต์อยูใ่ นระดับใด ให้พิจารณาตามประเภทของ
อ็อบเจกต์ ออกเป็ น 2 ประเภทคือ จอภาพ และรายงาน
ระดับของอ็อบเจกต์ แต่ละประเภท แสดงดังตาราง
จานวน
จานวน
ทรรศนะ
รายงาน
# และแหล่งของตารางข้อมูล
จานวน
ส่วน
รวมทั้งหมด < รวมทั้งหมด รวมทั้งหมด
4
8+
<
8
(<2 srvr
(<3 srvr
#
และแหล่งของตารางข้อมูล
รวมทั้งหมด รวมทั้งหมด รวมทั้งหมด
8+
<4
<8
(<3 srvr
<3 clnt)
(<2/3 srvr
<3-5 clnt)
>5 clnt)
<3
ง่าย
ง่าย
ปานกลาง
0
3-7
ง่าย
ปานกลาง
ยาก
2
>8
ปานกลาง
ยาก
ยาก
(<2 srvr
<3 clnt)
(<2/3 srvr
<3-5 clnt)
>5 clnt)
หรือ 1
ง่าย
ง่าย
ปานกลาง
หรือ 3
ง่าย
ปานกลาง
ยาก
ปานกลาง
ยาก
ยาก
4+
3. ให้น้ าหนักความยาก-ง่าย ของแต่ละอ็อบเจกต์ เพื่อสะท้อนให้เห็นถึงแรงงานที่
ต้องใช้ในการสร้างอ็อบเจกต์น้ันๆ
น้ าหนักความยากง่าย ของอ็อบเจกต์ แต่ละประเภทแสดงดังตาราง
ประเภทอ็อบเจกต์
ง่าย
ความซับซ้อน-น้ าหนัก
ปานกลาง
ยาก
จอภาพ
1
2
3
รายงาน
2
5
8
3GL
Component
10
4.
หาผลรวมของอ็อบเจกต์พอยต์ หลังจากถ่วงน้ าหนักของอ็อบเจกต์พอยต์ทุกๆ
ตัวแล้ว
5. ประมาณร้อยละของการนาโปรแกรมกลับมาใช้หใม่ แล้วคานวณหาอ็อบ
เจกต์พอยต์ใหม่ที่ตอ้ งพัฒนา (NOP) โดยมีสตู รการคานวณดังนี้
NOP (Object Po int s)(100 %reuse) /100
6.
กาหนดระดับผลผลิตเพิ่ม (PROD) โดยที่ PROD หาได้จากตาราง
ประสบการณ์และความสามารถของผูพ้ ฒ
ั นา
ตา่ มาก
ตา่
ปกติ
สูง
สูงมาก
วุฒิภาวะและความสามารถของ ICASE
ตา่ มาก
ตา่
ปกติ
สูง
สูงมาก
4
7
13
25
50
PROD
7.
ประมาณการ แรงงานที่ตอ้ งใช้
(PM) = NOP/PROD
การประมาณการแรงงาน สาหรับระยะการออกแบบช่วงต้น
ตัวแบบการประมาณแรงงาน ระดับนี้ คือ
แรงงาน (effort) = 2.94 X sizeB x M + PMauto
โดยที่
size คือ ขนาดของระบบงานวัดเป็ นกิโลบรรทัด (KLOC) ซึ่งคานวณได้
จากจานวนฟั งก์ชนั พอยต์
M คือ ผลคูณของตัวคูณแรงงาน (effort multipliers) เพื่อปรับค่าของ
แรงงานให้สอดคล้องกับลักษณะของระบบงานและโครงการ ตัวคูณมี
ทั้งหมด 7 ตัวคือ
RCPX
ความน่ าเชื่อถือและความซับซ้อนของระบบงาน (Reliability and
complexity)
RUSE
โปรแกรมที่นากลับมาใช้ใหม่ (reuse requires)
PDIF ความยากของแพล็ตฟอร์ม (Platform difficulty)
PERS ความสามารถของบุคลากร (Personal Capability)
PREX ประสบการณ์ของบุคลากร (Personal Experience)
FCIL สิ่งอานวยความสะดวกในการพัฒนาระบบงาน (Support Facilities)
SCED แรงกดดันจากตารางเวลาการพัฒนา (Schedule)
M = PERS x RCPX x RUSE x PDIF x PREX x FCIL x SCED
เอกสารอ้างอิง
การบริหารโครงการเทคโนโลยีสารสนเทศ โดย ผศ.ดร.วราภรณ์ จิรชีพพัฒนา