The Spiral Model

Spiral Model คือ Software Development Process ที่ถูกพัฒนาขึ้นโดยเอาจุดแข็งของ Development Model อื่นที่ดีอยู่แล้วมาประยุกต์ (waterfall model) และ เพิ่มเติมส่วนของการวิเคราะห์ และตีค่าความเสี่ยงที่เกิดเพื่อจะได้ทราบว่าจุดใดมีความเสี่ยงมากน้อยขนาด ไหน จะได้หาวิธีลดความเสี่ยง ซึ่งความเสี่ยงเป็นสาเหตุ ที่ทำให้การพัฒนาไม่ประสบความสำเร็จ การวิเคราะห์หรือต้นเหตุของความเสี่ยง ก็เพื่อที่จะหาวิธีการที่จะทำให้เกิดความเสี่ยงน้อยที่สุด รวมถึงวิธีการแก้ไขเมื่อเกิดเหตุการที่ไม่คาดคิดเกิดขึ้น ถ้าความเสี่ยงน้อยลง ก็ทำให้ Cost หรือ ต้นทุนที่ใช้ก็จะลดลงตามไปด้วย
Development Process ของ Spiral Model
ถูกพัฒนามากจากโครงสร้างพื้นฐานของ Waterfall Model ที่มีการแบ่งแยกขั้นตอน เช่น Concept Of Operation phase, Software Requirements phase, Design phase, Coding phase, Integration phase, Implement phase เป็นต้น เนื่องจากใน Waterfall model สามารถ ส่งผลลัพธ์ที่ได้ป้อมกลับไปยังขั้นตอนก่อนหน้านั้นโดยที่ไม่ต้องมีการแก้ไขทุกขั้นตอนใหม่หมด แต่ Waterfall Model ยังไม่มีส่วนไปจะมีความสำเร็จที่เป็นไปได้มาน้อยขนาดไหน ฉะนั้น การใช้ Waterfall Model ในแต่ละขั้นตอนจะเกิดการ Feedback บ่อยครั้ง Spiral Model จึงถูกพันกับความเสี่ยงและความเป็นไปได้ที่เกิดขึ้น ตลอดจนหาแนวทางแก้ไขเมื่อเกิดข้อผิดพลาด
โครงสร้างของ Spiral Model
โครงสร้างของ Spiral Model แสดงในรูปที่ 1 โดย
· รัศมี ของวงกลม จะหมายถึง Cost ที่เกิดขึ้นในขบวนการพัฒนา Software ถ้าจำนวนของ Cycle ที่มากขึ้นก็จะหมายถึง Cost ของการพัฒนาก็จะเพิ่มมากขึ้นด้วย
· มุม ของวงกลม หมายถึง
ความก้าวหน้าในการปฏิบัติแต่ละขั้นตอนในแต่ละ Cycle ได้สำเร็จ
ส่วนต่าง ๆ ในแต่ละ Cycle ของ Spiral Model ประกอบด้วย
| No | Description |
1. Determine Phase เป็นส่วนที่ทำหน้าที่กำหนด
- วัตถุประสงค์ (Objective) กำหนดผลลัพธ์ที่จะได้รับ
- ทางเลือก (Alternative) ที่เป็นไปได้ ของการ Implement ทางเลือกอาจมีการนำสิ่ง
ที่มีอยู่แล้วมาใช้ใหม่ (Reuse), ทางเลือกในการจัดซื้อ
- เงื่อนไข (Constraint) เป็นเงื่อนไขที่เกิดขึ้นในการพัฒนา
2. Evaluate Phase จากทางเลือกทั้งหมดที่กำหนดไว้ใน Determine Phase และเงื่อนไข
ที่ได้ตั้งไว้ เพื่อทราบว่าจุดใดในขบวนการที่เป็นจุดสำคัญที่ทำการวิเคราะห์หรือ
การประเมินค่าความเสี่ยงอาจทำได้โดยการทำต้นแบบ (Performance Risk และ
User Requirement, การจำลองสถานะการ (Simulate) เพื่อหาประสิทธิภาพ
ในการทำต้นแบบ หรือ Prototypes เบื้องต้น เป็นความพยายามในการ
แก้ความเสี่ยงที่เกิดในกรณีของ User Interface Risk และความเสี่ยง และความ Interface – Control Risk
3. Develop, verify Phase หลังจากการทำ Prototype เพื่อวิเคราะห์หาค่าความเสี่ยงใน
Phase ถึงขั้นตอนในการพัฒนา Software ให้เป็นไปตามวัตถุประสงค์ที่ว่าความเสี่ยงที่เกิดจาก User Interface หรือ Performance ซึ่งเป็นความเสี่ยงที่ไม่
4. Next Phase หลังจากที่มีการวิเคราะห์ หรือ ตีค่าความเสี่ยงและการวางแผนสำหรับ Cycle ต่อไปของการพัฒนา ซึ่งจุดนี้เองทำให้ในขั้นตอน
เปรียบเทียบ Spiral Model กับ Software Development Process Model อื่น
ข้อดี
เปรียบเทียบกับ Software Development Process Model อื่น ๆ
· ถ้าใน Project มีความเสี่ยงต่ำในด้านของ User Interface หรือ performance และมีความเสี่ยงสูงในแง่ของ Budget และ ระยะเวลามันจะเหมือนกับเป็น Waterfall Model
· ถ้าความต้องการ Software มีค่าค่อนข้างคงที่ คือไม่มีการเปลี่ยนแปลงบ่อย จะเหมือนกับเป็น Two – leg Model
· ถ้าใน Project มีความเสี่ยงต่ำในแง่ของ Budget แต่มีความเสี่ยงสูงในแง่ของ User Interface ว่าจะไม่ตรงกับความต้องการจะเหมือนกับเป็น Evaluation Model
· ถ้าสามารถเปลี่ยนจาก Application ไปเป็น Software หรือ Code ได้ จะเหมือนกับเป็น Transform Model
· ถ้ามีความเสี่ยงในหลายปัจจัยข้างต้น Spiral Model จะช่วยให้เสี่ยงน้อย คือมีความเหมาะสมที่สุดในแต่ละปัจจัย
สรุปข้อดีของ Spiral Model ได้ดังนี้
1. สนับสนุน กานนำ Software กลับมาใช้อย่างเต็มตัว
2. ในแต่ละ Cycle มีขั้นตอนประมวลผลที่สิ้นสุดภายใน Cycle เดียว
3. การวางแผนเพื่อกำหนดทางเดินของ Software Process ในรอบต่อไป
4. เนื่องจากการพัฒนาอยู่บนพื้นฐานของวัตถุประสงค์ที่ตั้งไว้ทำให้ ผลลัพธ์ของ Software Product ตรงกับความ
5. แก้ไขข้อผิดพลาดที่จะเกิดขึ้นตั้งแต่เนิ่น ๆ
6. มีความเป็นอิสระต่อกันทางด้านการพัฒนาและการแก้ไข
ข้อเสีย
· เนื่องจาก Spiral Model ทุก Cycle ของการพัฒนามีการวิเคราะห์และตีค่า ถ้าการวิเคราะห์เกิดผิดพลาด จะทำให้ Software Produce ที่ออกมาผิดพลาดทำให้เกิดค่าใช้จ่ายที่เพิ่มขึ้น
******************
ที่มา: www.cs.buu.ac.th/.../The%20%20Spiral%20%20Model.doc