Waterfall Model ใน SDLC คืออะไร ข้อดีและข้อเสีย
แบบจำลองน้ำตกคืออะไร?
น้ำตกจำลอง เป็นแบบจำลองต่อเนื่องที่แบ่งการพัฒนาซอฟต์แวร์ออกเป็นระยะที่กำหนดไว้ล่วงหน้า แต่ละเฟสจะต้องทำให้เสร็จสิ้นก่อนจึงจะสามารถเริ่มเฟสถัดไปได้โดยไม่มีการทับซ้อนกันระหว่างเฟส แต่ละระยะได้รับการออกแบบสำหรับการดำเนินกิจกรรมเฉพาะในระหว่างระยะ SDLC เปิดตัวในปี 1970 โดย Winston Royce

ระยะต่างๆ ของแบบจำลองน้ำตกในวิศวกรรมซอฟต์แวร์
ต่อไปนี้เป็นขั้นตอนต่าง ๆ ของโมเดลน้ำตก:
ขั้นตอนต่างๆ | กิจกรรมที่ทำในแต่ละขั้นตอน |
---|---|
ขั้นตอนการรวบรวมความต้องการ |
|
ขั้นตอนการออกแบบ | |
เวทีที่สร้างขึ้น | หลังจากขั้นตอนการออกแบบ ก็จะเป็นขั้นตอนที่สร้างขึ้นซึ่งไม่มีอะไรนอกจากการเขียนโค้ดซอฟต์แวร์ |
ขั้นตอนการทดสอบ | ในขั้นตอนนี้ คุณจะทดสอบซอฟต์แวร์เพื่อตรวจสอบว่าถูกสร้างขึ้นตามข้อกำหนดที่ลูกค้ากำหนด |
ขั้นตอนการปรับใช้ | ปรับใช้แอปพลิเคชันในสภาพแวดล้อมที่เกี่ยวข้อง |
ขั้นตอนการบำรุงรักษา | เมื่อระบบของคุณพร้อมใช้งานแล้ว คุณอาจต้องเปลี่ยนรหัสตามคำขอของลูกค้าในภายหลัง |
เมื่อใดจึงควรใช้ SDLC Waterfall Model
วิธีการน้ำตกสามารถใช้ได้เมื่อ:
- ข้อกำหนดไม่ได้เปลี่ยนแปลงบ่อยนัก
- แอปพลิเคชันไม่ซับซ้อนและใหญ่
- โครงการนี้สั้น
- ความต้องการมีความชัดเจน
- สภาพแวดล้อมมีเสถียรภาพ
- เทคโนโลยีและเครื่องมือที่ใช้ไม่ไดนามิกและมีเสถียรภาพ
- มีทรัพยากรพร้อมและได้รับการฝึกอบรม
ข้อดีและข้อเสียของแบบจำลองน้ำตก
นี่คือข้อดียอดนิยมของโมเดล Waterfall ค่ะ วิศวกรรมซอฟต์แวร์ มีข้อเสียบางประการ:
ข้อดี | ข้อเสีย |
---|---|
ก่อนการพัฒนาระยะต่อไปจะต้องทำให้แต่ละระยะเสร็จสิ้น | ข้อผิดพลาดสามารถแก้ไขได้เฉพาะในระหว่างเฟสเท่านั้น |
เหมาะสำหรับโครงการขนาดเล็กที่มีการกำหนดข้อกำหนดไว้อย่างชัดเจน | ไม่เหมาะสำหรับโครงการที่ซับซ้อนซึ่งความต้องการมีการเปลี่ยนแปลงบ่อยครั้ง |
พวกเขาควรทำการทดสอบการประกันคุณภาพ (การตรวจสอบและการตรวจสอบ) ก่อนที่จะเสร็จสิ้นแต่ละขั้นตอน | ระยะเวลาการทดสอบค่อนข้างล่าช้าในกระบวนการพัฒนา |
มีการจัดทำเอกสารอย่างละเอียดในทุกขั้นตอนของวงจรการพัฒนาซอฟต์แวร์ | เอกสารประกอบใช้เวลามากสำหรับนักพัฒนาและผู้ทดสอบ |
โปรเจ็กต์ขึ้นอยู่กับทีมงานโปรเจ็กต์โดยสมบูรณ์โดยมีการแทรกแซงจากลูกค้าขั้นต่ำ | ความคิดเห็นอันมีค่าของลูกค้าไม่สามารถรวมไว้ในขั้นตอนการพัฒนาที่กำลังดำเนินอยู่ได้ |
การเปลี่ยนแปลงซอฟต์แวร์ใด ๆ เกิดขึ้นระหว่างกระบวนการพัฒนา | การเปลี่ยนแปลงหรือข้อผิดพลาดเล็กน้อยที่เกิดขึ้นในซอฟต์แวร์ที่เสร็จสมบูรณ์อาจทำให้เกิดปัญหามากมาย |