กระบวนการผลิตซอฟต์แวร์ Spiral Development
Spiral Development เป็นโมเดลที่นำจุดแข็งของ Waterfall Model มาพัฒนาให้ดีขึ้น โดยแต่เดิมนั้นพบว่าถ้าขั้นตอนไหนผิดพลาดจะไม่สามารถแก้ไขได้ ต้องรอเสร็จกระบวนการทั้งหมดจึงสามารถแก้ไขได้ โดยต้องแก้ไขตั้งแต่ขั้นแรกเรียงลำดับขั้นไปเรื่อย ๆ นั่นเอง
รูปที่ 1 : ตัวอย่าง Waterfall Model
ด้วยเหตุนี้จึงมีการปรับเปลี่ยนรูปแบบเป็นแบบ Spiral Model หรือรูปแบบจำลองบันไดเวียน โดยมีลักษณะเป็นก้นหอยชั้น ๆ ซ้อนกันเหมือนเป็นใยแมงมุม ซึ่งสามารถกลับมาทำซ้ำได้ถ้าต้องการเปลี่ยนแปลง จึงทำให้ลดความเสี่ยงที่ทำให้การพัฒนาระบบล้มเหลวได้ เพราะจะมีการทดสอบระบบในทุก ๆ ขั้นตอน ทุกฟังก์ชัน สามารถเพิ่มและอัพเดท Component ได้ อีกทั้งมีการตรวจสอบและทดสอบระบบให้ถูกต้องมากขึ้นอีกด้วย
รูปที่ 2 : ตัวอย่าง Spiral Model
โดยโครงสร้างของ Spiral Model นั้นจะแบ่งเป็น 2 ส่วนด้วยกัน คือ รัศมี กับ มุม
- รัศมี – ยิ่งมี Cycle มาก ค่าใช้จ่ายในการพัฒนาก็จะมากขึ้นด้วย
- มุม – เป็นการแสดงความก้าวหน้าของงานในแต่ละขั้นตอนในแต่ละ Cycle
ข้อดีของ Spiral Model มีดังนี้
- ผู้พัฒนาสามารถทำการปรับหรือแก้ไขข้อมูลได้ เพราะจะมีการทดลองระบบทุกครั้ง อีกทั้งมีการวิเคราะห์ความเสี่ยงจึงทำให้ลดความเสี่ยงที่เกิดขึ้นได้ด้วย
- การประมวลผลนั้นจะเสร็จสิ้นในแต่ละ Cycle เดียว
- การพัฒนา การแก้ไขงานนั้นมีความเป็นอิสระต่อกัน โดยสามารถแบ่งส่วนพัฒนาเป็น Module ได้
- การพัฒนานั้นจะขึ้นอยู่กับวัตถุประสงค์หรือความต้องการของลูกค้า ทำให้งานเกิดความผิดพลาดน้อยลง
- สามารถวางแผนดำเนินงาน Software Process ต่อไปได้
Software Process คือ พื้นฐานกระบวนการผลิต Software โดยการเลือกใช้ Process นั้นขึ้นอยู่กับการพัฒนางาน ซึ่งมีขั้นตอนต่าง ๆ ดังนี้
- Feasibility and Planning : ความเป็นไปได้ของโปรเจคที่ทำ จะมีการวางแผนแจกแจงงานกันในทีมว่าใครทำอะไรและเสร็จงานเมื่อไหร่
- Requirements : ความต้องการของลูกค้า จะนำมาแปลงเป็นโมเดลเพื่อให้ดูง่ายขึ้น ดูว่า Functionality ทำอะไรได้บ้าง, Constraints ข้อจำกัดต่าง ๆ สามารถทำอะไรได้หรือทำอะไรไม่ได้บ้าง
- User Interface Design : การออกแบบ UI มี 4 ขั้นตอน คือ Design the UI > Test with users > Revise the user interface > Repeat
- System and Program Design : ทำเป็น Diagram ต่าง ๆ เพื่อออกแบบโครงสร้างโปรเจค เช่น ใช้ OS อะไร, ใช้อุปกรณ์อะไรในการทำงาน
- Implementation : การปฏิบัติจริง โดยการเขียน Code จากนั้นทำการทดสอบระบบ
- Acceptance and Release : การยอมรับของลูกค้า
- Operation and Maintenance : การรักษา Software หรือบริการหลังการขาย เช่น มี Call Center ให้คำปรึกษา, มีการ Update Version ต่าง ๆ
ดังนั้นการนำ Spiral Model มาใช้กับโปรเจคนั้น อาจทำให้จบงานโปรเจคยาก เนื่องจากมีการแก้ไขตลอดเวลาและทำให้เกิดค่าใช้จ่ายที่มากตามมาอีกด้วย ดังนั้นควรใช้ Spiral Model ก็ต่อเมื่อระบบมีความเสี่ยงสูง เพราะโมเดลนี้จะช่วยลดความเสี่ยงที่เกิดขึ้นได้
ดูคลิปประกอบได้ที่ด้านล่าง :