หัวข้อ
- #การดำเนินการตามลำดับ
- #วิธีการพัฒนาแบบ Waterfall
- #ความต้องการที่กำหนดไว้
- #การจัดทำเอกสาร
- #การพัฒนาซอฟต์แวร์
สร้าง: 2024-05-14
สร้าง: 2024-05-14 09:50
วิธีการพัฒนาแบบ Waterfall
วิธีการพัฒนาแบบ Waterfall (Waterfall Model) เป็นหนึ่งในวิธีการที่เก่าแก่ที่สุดในการพัฒนาซอฟต์แวร์ ซึ่งหมายถึงวิธีการที่ดำเนินการโครงการผ่านขั้นตอนต่างๆ ที่เป็นลำดับขั้นตอน แบบจำลองนี้มีโครงสร้างที่ดำเนินการไปยังขั้นตอนถัดไปหลังจากเสร็จสิ้นขั้นตอนหนึ่งๆ อย่างสมบูรณ์ คล้ายกับน้ำตก (waterfall) ที่ไหลจากที่สูงลงสู่ที่ต่ำ ซึ่งเป็นลักษณะเฉพาะของการดำเนินการทีละขั้นตอน ในบทความนี้ เราจะมาดูรายละเอียดของคำจำกัดความ ลักษณะเฉพาะ ข้อดี ข้อเสีย และตัวอย่างการใช้งานของวิธีการพัฒนาแบบ Waterfall
วิธีการพัฒนาแบบ Waterfall เป็นวิธีการที่ดำเนินการตามขั้นตอนต่างๆ ในวงจรชีวิตการพัฒนาซอฟต์แวร์ (SDLC: Software Development Life Cycle) แบบจำลองนี้ได้รับการแนะนำครั้งแรกโดย Winston W. Royce ในช่วงปี 1970 และได้รับการใช้งานในโครงการต่างๆ มากมายนับตั้งแต่นั้นมา แบบจำลอง Waterfall ประกอบด้วยขั้นตอนต่อไปนี้:
1. การวิเคราะห์ความต้องการ (Requirements Analysis): ขั้นตอนในการรวบรวมและกำหนดความต้องการของโครงการให้ชัดเจน
2. การออกแบบ (Design): ขั้นตอนในการออกแบบสถาปัตยกรรมและรายละเอียดของซอฟต์แวร์
3. การพัฒนา (Implementation): ขั้นตอนในการเขียนโค้ดจริงและพัฒนาซอฟต์แวร์
4. การทดสอบ (Test): ขั้นตอนในการทดสอบซอฟต์แวร์ที่พัฒนาขึ้นเพื่อค้นหาและแก้ไขข้อผิดพลาด
5. การปรับใช้ (Deployment): ขั้นตอนในการปรับใช้ซอฟต์แวร์ในสภาพแวดล้อมการทำงานจริง
6. การบำรุงรักษา (Maintenance): ขั้นตอนในการดูแลรักษาและปรับปรุงซอฟต์แวร์ที่ปรับใช้แล้ว
เช่นเดียวกับภาพด้านบน เมื่อการวางแผนเสร็จสิ้นและได้รับการอนุมัติ ก็จะเริ่มออกแบบ และเมื่อการออกแบบเสร็จสิ้นและได้รับการอนุมัติ ก็จะเริ่มพัฒนาในขั้นตอนถัดไป และเมื่อการพัฒนาเสร็จสิ้นและได้รับการอนุมัติ ก็จะเริ่มทดสอบ และหากไม่มีข้อผิดพลาดก็จะเริ่มเปิดตัว ในขั้นตอนการวางแผน อาจมีการแก้ไขหลายครั้ง หรือในขั้นตอนการออกแบบอาจมีการแก้ไขหลายครั้ง
แต่เนื่องจากน้ำไหลจากที่สูงลงสู่ที่ต่ำ ดังนั้น ในกรณีที่การพัฒนาเริ่มขึ้นแล้ว การแก้ไขแผนงานอย่างกะทันหันเพื่อเปลี่ยนแปลงการพัฒนาจึงไม่เกิดขึ้น
1. โครงสร้างที่ชัดเจน: แบ่งออกเป็นขั้นตอนต่างๆ อย่างชัดเจน ทำให้สามารถติดตามความคืบหน้าได้ง่าย
2. การจัดทำเอกสาร: มีการจัดทำเอกสารอย่างละเอียดในแต่ละขั้นตอน ทำให้สามารถติดตามความคืบหน้าของโครงการและการตัดสินใจต่างๆ ได้ง่าย
3. ความสะดวกในการจัดการ: สามารถจัดการแผนและกำหนดเวลาได้ง่าย และสามารถกำหนดเป้าหมายที่ชัดเจนในแต่ละขั้นตอน
1. การเปลี่ยนแปลงทำได้ยาก: เนื่องจากความต้องการได้รับการกำหนดไว้ในช่วงเริ่มต้น ทำให้การเปลี่ยนแปลงความต้องการในขั้นตอนต่อๆ ไปทำได้ยากและมีค่าใช้จ่ายสูง
2. การพึ่งพาอาศัยกันระหว่างขั้นตอน: ไม่สามารถดำเนินการขั้นตอนถัดไปได้จนกว่าขั้นตอนก่อนหน้าจะเสร็จสิ้น ทำให้มีความเสี่ยงที่โครงการจะล่าช้า
3. การมีส่วนร่วมของลูกค้าต่ำ: หลังจากขั้นตอนเริ่มต้น ลูกค้าจะมีส่วนร่วมจำกัด ทำให้ผลลัพธ์สุดท้ายอาจไม่ตรงกับความคาดหวังของลูกค้า
เป็นคำศัพท์ที่ใช้เมื่อพูดถึงวิธีการพัฒนา และหมายถึงการพัฒนาตามขั้นตอนต่างๆ
❗ข้อมูลเพิ่มเติมที่ควรรู้
วิธีการตรงกันข้ามคือ วิธีการแบบ Agileซึ่งเป็นวิธีการที่เปิดตัวโปรโตไทป์ก่อน แล้วค่อยๆ แก้ไข ปรับปรุง และเพิ่มฟังก์ชันการทำงานอย่างต่อเนื่อง วิธีการนี้มักใช้ในการสร้างบริการของตัวเอง เนื่องจากสามารถเพิ่มความสมบูรณ์แบบของบริการและสามารถจัดการกับบุคลากรที่สามารถแก้ไขได้อย่างต่อเนื่อง
หากใช้ Agile ในการพัฒนาบริการของลูกค้า (SI ออฟชอร์) ลูกค้าจะต้องจ่ายค่าแรงและค่าใช้จ่ายอื่นๆ (ค่าเช่า ค่าใช้จ่ายในการบริหาร ฯลฯ) ทุกเดือน แต่ในความเป็นจริงแล้ว การพัฒนามักจะกำหนดราคาไว้ล่วงหน้า เช่น พัฒนา 2 เดือน พัฒนา 5 เดือน แทนที่จะจ่ายเป็นรายเดือนโดยไม่มีกำหนดสิ้นสุด เนื่องจากการจ่ายเงินแบบนี้ค่อนข้างหายาก
ความคิดเห็น0