COCOMO คืออะไร?

COCOMO เป็นแบบจำลองเพื่อใช้ประมาณค่าใช้จ่ายในการพัฒนาซอฟต์แวร์ที่นิยมใช้บ่อยเพราะมีความน่าเชื่อถือในการประมาณค่าใช้จ่าย โดยทั่วไปแล้วการพัฒนาซอฟต์แวร์หนึ่งขึ้นมา เราอาจะมีคำถามว่าขนาดของซอฟต์แวร์ของเราใหญ่ขนาดไหน ควรตั้งงบประมาณไว้เท่าไหร่ดี ให้ทีมเขียนโปรแกรมเองหรือจ้างคนอื่นมาช่วยเขียนโปรแกรมดี จะใช้เวลาเท่าไหร่ COCOMO เป็นแบบจำลองที่พัฒนาโดย Barry Boehm ในปี 1981 ที่ใช้สมการการคำนวณเพื่อหาต้นทุนในการพัฒนาซอฟต์แวร์ 

แบบจำลอง COCOMO สามารถนำไปใช้กับ Project ได้ 3 ประเภทคือ

1. Organic เหมาะสำหรับซอฟต์แวร์ขนาดเล็ก สมาชิกในทีมมีประสบการณ์กับซอฟต์แวร์นั้นเป็นอย่างดี ใช้คนพัฒาน้อยและเคยมีประสบการณ์แก้ปัญหาในกรณีที่ซอฟต์แวร์เกิดปัญหามาแล้ว เช่น ระบบจัดการคลังสินค้า

2. Semi-detached เป็นซอฟต์แวร์ที่มีความซับซ้อนและยากกว่าแบบ Organic ทีมพัฒนามีความคุ้นเคยน้อยกว่า สมาชิกในทีมมีทั้งคนมีและไม่มีประสบการณ์ในการพัฒนาซอฟต์แวร์นั้นๆ ในบางครั้งสมาชิกในทีมต้องการผู้เชี่ยวชาญมาให้คำแนะนำในบางเรื่อง เช่น ระบบจัดการฐานข้อมูล

3. Embedded คือซอฟต์แวร์ที่มีความซับซ้อนสูง ต้องการคนที่มีประสบการณ์สูงหรือผู้เชี่ยวชาญมาพัฒนา มีกฎระเบียบเข้ามาเกี่ยวข้อง บางครั้งต้องการทีมขนาดใหญ่เข้ามาร่วมพัฒนา เช่น ระบบ ATM

Basic Model

เป็นสูตรการคำนวณต้นทุนของการพัฒนาซอฟต์แวร์โดยคำนวณจาก Effort เวลา และจำนวนคนที่ต้องใช้
Effort คือความพยายามในการพัฒนาซอฟต์แวร์มีหน่วยเป็นหนึ่งคนต่อเดือน(PMs)

KLOC เป็นการประเมินขนาดของซอฟต์แวร์โดยตัวจากจำนวน Code ของซอฟต์แวร์ (Kilo Lines of Code)

Tdev คือเวลาที่ใช้ในการพัฒนาซอฟต์แวร์มีหน่วยเป็นเดือน

a,b,c,d คือค่าคงที่ได้มาจากแต่ละ Model โดยสามารถอ้างอิงได้จากตารางดังนี้


ตัวอย่าง มีการประเมินว่าโครงการจะพัฒนาโดยมีจำนวน Code อยู่ที่ 500 kLOC ให้หา Effort และ Tdev ว่าโครงการนี้จะใช้เวลาเท่าไหร่
 
Effort  = 2.4(500 kLOC) 1.05 =1637.30 คนต่อเดือน 

Tdev =2.5(1637.30) 0.38 =41.6 เดือน 

ดังนั้นโครงงานนี้หากใช้ Developer 1 คนจะใช้เวลา 46 เดือน แต่หากอยากให้โครงการเสร็จไวก็สามารถเพิ่มจำนวนคนลงไปได้

Intermediate Model

เป็น Model ที่ถูกพัฒนามาจาก Basic Model เพื่อคำนวณให้มีความแม่นยำมากขึ้น จากเดิมที่ใช้การคำนวณจำนวนบรรทัดของ Code และค่าคงที่จากตาราง โดยใน Model นี้จะเพิ่มการคำนวณ Effort Adjustment Factor (EAF) ขึ้นมา

Effort = a*(KLOC)b*EAF
Tdev = c*(Effort)d

EAF คือ Factor ที่นำมาคูณด้วยโดยมีทั้งหมด 15 Factor โดยจะเลือกมาเพียง 1 Factor มาแทนค่า EAF หลักเกณฑ์ในการเลือกก็ขึ้นอยู่กับประเภทและความซับซ้อนของซอฟต์แวร์

Product Attributes

Hardware Attributes

Very L

ow

Low

Nominal

High

Very High

Extra High

TIME

...

...

1.00

1.11

1.30

1.66

STOR

...

...

1.00

1.06

1.21

1.56

VIRT

...

0.87

1.00

1.15

1.30

...

TURN

...

0.87

1.00

1.07

1.15

...


Hardware attributes

Hardware Attributes

Very L

ow

Low

Nominal

High

Very High

Extra High

TIME

...

...

1.00

1.11

1.30

1.66

STOR

...

...

1.00

1.06

1.21

1.56

VIRT

...

0.87

1.00

1.15

1.30

...

TURN

...

0.87

1.00

1.07

1.15

...


Personal attributes

Personal attributes

Very Low

Low

Nominal

High

Very High

Extra High

ACAP

1.46

1.19

1.00

0.86

0.71

...

AXEP

1.29

1.13

1.00

0.91

0.82

...

PCAP

1.42

1.17

1.00

0.86

0.70

...

VEXP

1.21

1.10

1.00

0.90

...

...

LEXP

1.14

1.07

1.00

0.95

...

...


Project attributes

Project Attributes

Very Low

Low

Nominal

High

Very High

Extra High

MODP

1.24

1.10

1.00

0.91

0.82

...

TOOL

1.24

1.10

1.00

0.91

0.83

...

SCED

1.23

1.08

1.00

0.04

1.10

...







ป้ายกำกับ

แสดงเพิ่มเติม

บทความยอดนิยม

Software Development Life Cycle (SDLC) คืออะไร ทำไมจำเป็นต่อการพัฒนาซอฟต์แวร์

Automation testing หรือ การทดสอบซอฟต์แวร์อัตโนมัติ คืออะไร ทำไมถึงสำคัญต่อการทดสอบซอฟต์แวร์

ม.ปลายอยากเข้าสายคอม วิทยาการคอม วิศวกรรมคอม เตรียมตัวอย่างไร ต้องมีพื้นฐานอะไรบ้าง

วิธีเก็บ วิเคราะห์ รวบรวม requirement อย่างไรให้มีประสิทธิภาพ

Performance Test คือ อะไร วัดประสิทธิภาพของระบบ ล่มไม่ล่ม จะรู้ได้อย่างไร

8 สิ่งที่ AI จะมาเปลี่ยนโลกในอนาคต

ถอดรหัสความลับเครื่อง Enigma จุดเริ่มต้นและจุดจบของสงครามโลกครั้งที่ 2