Waterfall model มีลักษณะอย่างไร

SDLC ย่อมาจาก Systems Development Life Cycle ซึ่งเป็นแนวคิดของกระบวนการพัฒนาระบบ Software หรือโปรแกรมต่างๆ เป็นกระบวนการต่อเนื่องหลายขั้นตอน ตั้งแต่เริ่มคิดพัฒนาถึงสิ้นสุดกระบวนการพัฒนา จนกระทั่งโปรแกรมที่เราพัฒนาใช้งานได้

 

SDLC มีอยู่หลายโมเดล ได้แก่ Waterfall model, V-shaped model, Iterative model,  Agile model และ Spiral model ซึ่งแต่ละโมเดลมีกระบวนการทำงานที่ต่างกันบ้าง แต่ว่าทุกโมเดลล้วนเป็นขั้นตอนในการพัฒนาโปรแกรมจนสำเร็จทั้งสิ้น ขึ้นอยู่กับเราเลือกใช้

 

กระบวนการทำงานพื้นฐานของ SDLC

  1. Planning and requirement analysis : กระบวนการแรกของการพัฒนาโปรแกรม คือ เริ่มต้นเก็บข้อมูลความต้องการ แล้ววิเคราะห์ความต้องการของระบบที่จะเริ่มพัฒนา ซึ่งเป้าหมายของขั้นตอนนี้ คือ กำหนดคำจำกัดความโดยละเอียดของข้อกำหนดของระบบ กำลังทำอะไร และต้องการอะไร ซึ่งผู้ที่อยู่ในกระบวนการนี้ทุกคน ควรจะเข้าใจงานอย่างชัดเจนและนำข้อกำหนดทั้งหมดไปปฏิบัติอย่างไร
  2. Designing project architecture : กระบวนการที่ 2 ของกระบวนการพัฒนาโปรแกรม คือ แก้ปัญหาต่างๆ ที่รวบรวมได้ในกระบวนการแรก เริ่มออกแบบการทำงานของโปรแกรม กำหนดระยะเวลา งบประมาณ และเทคโนโลยีที่ใช้ในการพัฒนาโปรแกรม
  3. Development and programming : หลังจากผ่านการอนุมัติเงื่อนไขต่างๆ ตามข้อที่ 2 แล้ว ก็เข้าสู่กระบวนการพัฒนาโปรแกรม เริ่มการพัฒนาจริง งานของ Programmer และ Designer เริ่มต้นที่นี่ ด้วยการเขียนซอร์สโค้ดโดยคำนึงถึงข้อกำหนดที่กำหนดไว้ก่อนหน้านี้
    - Graphic Design
    - Source code writing
    - Testing and debugging
  4. Testing : เมื่อพัฒนาระบบจนเสร็จก็มาถึง ขั้นตอนทดสอบระบบ ซึ่งกระบวนนี้เป็นกระบวนการหาข้อบกพร่องของระบบทั้งหมด เพื่อให้นักพัฒนาเพื่อแก้ไข กระบวนการทดสอบจะทำซ้ำจนกว่าปัญหาจะหมด และโปรแกรมเสถียรที่สุด
  5. Deployment : เมื่อพัฒนาระบบจนเสร็จ พร้อมใช้งาน ก็เปิดให้บริการ-ใช้งานได้เลย ในขั้นนี้จะเริ่มมีคำติชม ของโปรแกรมที่พัฒนา ก็สามารถนำมาอัปเดตระบบได้

 

จากข้างต้น SDLC มีอยู่หลายโมเดล แต่ละโมเดลก็มีข้อดี-ข้อด้อย แต่ทุกโมเดลล้วนเป็นกระบวนการในการพัฒนาโปรแกรม ตั้งแต่เริ่มต้นจนสำเร็จทั้งสิ้น ส่วนทางทีมออกแบบและพัฒนาเว็บไซต์ ของ RM Online Services ได้เลือกใช้ Agile SDLC Model ในการออกแบบและพัฒนาเว็บไซต์

 

Waterfall SDLC Model

วิธีการของ Waterfall SDLC Model คือ ทำงานเรียงลำดับตามขั้นตอนการออกแบบและพัฒนาต่อเนื่องไปเรื่อยๆ โดย Output ของแต่ละขั้นตอน จะเป็น Input ของขั้นตอนถัดไป

ข้อดีของ Waterfall Model

การทำงานในรูปแบบนี้จะเรียบง่าย เข้าใจง่าย สามารถตรวจสอบขั้นตอนการทำงานได้ เหมาะสำหรับการพัฒนาโครงการขนาดเล็ก กระบวนการขั้นตอนต่างๆ ถูกระบุไว้ชัดเจนในเอกสาร

ข้อเสียของ Waterfall Model

เนื่องจากขั้นตอนการทำงาน ถูกระบุไว้ชัดเจนในเอกสาร ทำให้ไม่ยืดหยุ่นต่อการแก้ไข เปลี่ยนแปลง มากนัก

 

Waterfall model มีลักษณะอย่างไร

Waterfall SDLC Model Schema

 

V-shaped SDLC Model

วิธีการของ V-shaped SDLC Model คือ เป็นโมเดลที่ถูกพัฒนาต่อมาจาก Waterfall Model โดยเพิ่มการตรวจสอบคุณภาพและทดสอบส่วนต่างๆ ของการพัฒนาเนื่องจาก Waterfall Model นั้นไม่ได้ให้ความสำคัญด้านการทดสอบมากนัก จึงได้มีการพัฒนา V-shaped Model ขึ้นมา เพื่อทำหน้าที่ในส่วนนี้

 

Waterfall model มีลักษณะอย่างไร

V-shaped SDLC Model Schema

 

Iterative SDLC Model

วิธีการของ Iterative SDLC Model คือ มีการเก็บข้อมูลความต้องการของผู้ใช้ในตัวโปรแกรมครั้งแรก แล้วนำข้อมูลนั้นมาวิเคราะห์มาใช้ออกแบบและพัฒนาโปรแกรม แล้วพัฒนาซ้ำๆ เพื่อปรับปรุงความสามารถ ปรับปรุง Version ของโปรแกรมไปเรื่อยๆ

 

Waterfall model มีลักษณะอย่างไร

Iterative SDLC Model Schema

 

Agile SDLC Model

วิธีการของ Agile SDLC Model คือ หลังจากการพัฒนาแต่ละส่วนๆ ลูกค้าสามารถเห็นผลลัพธ์ ความคืบหน้าของการพัฒนาเรื่อยๆ ซึ่งเป็นข้อดีอย่างหนึ่งของแบบ Agile กล่าวคือ หากมีจุดใดไม่ตรงกับความต้องการ สามารถปรับแก้ไขได้ทันที และก็เป็นข้อเสียของแบบ Agile ด้วย คือ ทางผู้พัฒนาจะประเมินทรัพยากร ระยะเวลาและต้นทุนในการพัฒนายาก ซึ่งอาจจะต้องมีการประชุม ส่งความคืบหน้าอยู่เสมอ

 

Waterfall model มีลักษณะอย่างไร

Agile SDLC Model Schema

 

Spiral SDLC Model

วิธีการของ Spiral SDLC Model คือ เป็นโมเดลรูปแบบเกลียว มุ่งเน้นด้านประเมินความเสี่ยงเพื่อลดความเสี่ยงของโครงการ โดยจะแบ่งโครงสร้างใหญ่ ออกเป็นโครงการย่อยๆ ซึ่งจะช่วยให้การปรับเปลี่ยนความต้องการ ทำได้ง่ายขึ้น และระหว่างขั้นตอนการออกแบบและพัฒนา จะมีการประเมินความเสี่ยงและความต่อเนื่องของโครงการอยู่เรื่อยๆ

Waterfall Model ก็คือกระบวนการทำงานแบบน้ำตกหรือแบบลำดับชั้นที่ไหลลงมา เป็นกระบวนการตามTimelineการทำงานจาก stage สูงสุดสู่ stage สุดท้ายของระบบ

ทำไมต้อง Waterfall Model

รู้มั้ย!! Waterfall ก็มีส่วนดีๆอยู่บ้างนะ

  • สามารถกำหนดระยะเวลาที่ชัดเจนได้ของแต่stageงาน
  • สามารถควบคุมการทำงานของแต่ละstageได้ดีทีเดียว
  • การทำงานทีละขั้นตอน เป็นการกำหนดทรัพยากรต่างๆไว้ใช้งานได้ตั้งแต่เริ่มต้น
Waterfall Model กระบวนการทำงานรูปแบบลำดับชั้นที่น่าสนใจ

จะเห็นว่ากระบวนทำงานนั้น สั้นนิดเดียวแต่ระยะเวลาในการทำงานนั้นไม่สั้นอย่างที่คิด 😟

เรามาดูว่าการทำงานแต่ละstageนั้นเป็นยังไงกัน let’s go 👍

  • Requirement ->เปรียบได้เป็นเป้าหมายของการทำงาน หรือก็คือความต้องการของลูกค้าที่มีต่อระบบนั้นแหละ ถือได้ว่าเป็นการวางแผนและกำหนดการทำงานของทั้งระบบ
  • Design ->แปลตามตัวเลยจ้า ก็คือการออกแบบนั้นแหละ ออกแบบในที่นี้รวมไปถึงการออกแบบแผนการทำงานและทรัพยากรต่างๆที่ต้องใช้งาน แนวทางแก้ไขปัญหาในระบบงาน และรวมไปถึงการออกแบบเพื่อพัฒนาระบบด้วยนะ
  • Implementation ->สั้นๆได้ใจความว่า การพัฒนาระบบในขั้นลึกหรือๆๆๆ การ’coding’นั้นแหละ
  • Verification ->เปรียบอีกแล้ว!! เปรียบให้เป็นการ Test ระบบงานทั้งหมด ตรวจสอบ หรือทดสอบระบบหลังจากพัฒนาแล้ว เพื่อให้แน่ใจว่าไอ่เจ้าระบบที่พัฒนานั้น ตรงตามrequirement ที่ลูกค้าต้องการจริงๆนะ ถ้าไม่ตรงและก็เรื่องใหญ่เลยนะ 😥
  • Maintenance -> ระบบก็เหมือนเครื่องใช้ไฟฟ้า ใช้งานไปสักพักก็ต้องซ่อมบำรุง ระบบก็เช่นกันเมื่อสร้างให้ใช้งานได้ก็ต้องมีการปรับปรุงระบบให้มีประสิทธิภาพอยู่ตลอดเวลา

แต่..เดี๋ยวก่อน!! ถึง waterfall จะเป็นกระบวนการทำงานดี มีการจัดลำดับการทำงานที่ดีนั้น แต่จริงๆแล้ว waterfall ก็มีข้อเสียของตัวมันเองอยู่นะ

อย่างที่ทราบ waterfall การทำงานตามลำดับชั้น หากว่าเราทำงานไปได้ถึงขั้น Implement แล้ว เกิดข้อผิดพลาดหรืออยู่ๆว่า ลูกค้าอยากจะเพิ่ม Requirement นั้น สิ่งเดียวที่ทีมทำได้คือ การกลับไปเริ่มต้นใหม่ตั้งแต่ต้น process จะไม่สามารถแก้ไขระหว่างทางได้

ทำให้วิธีนี้ไม่ยืดหยุ่นในกรณีที่มีการเปลี่ยนแปลงอย่างรวดเร็ว หลายๆองค์กรได้มีการเปลี่ยนแปลงไปใช้ process ที่เหมาะสมกว่านี้ อย่างเช่น Agile ในรูปแบบ Scrum ซะส่วนใหญ่ ^^

ทั้งหมดคือการเรียนรู้ว่า waterfall รูปร่างหน้าตาเป็นยังไง

เนื่องจากเป็นการเขียนBlog ครั้งแรก และข้อมูลทั้งหมดเป็นข้อมูลที่ได้จากการเรียนรู้และความเข้าใจของผู้เขียนเอง หากข้อมูลมีข้อผิดพลาดหรือไม่ถูกต้อง ขออภัยด้วยค่ะ 🙏🙏

โปรแกรมแบบ Waterfall Model มีลักษณะอย่างไร

Waterfall Model เป็น Seriesของขั้นตอนการทำงาน คล้ายสายงานการผลิต (Product Line) รูปแบบการจัดการผลิต Software รูปแบบหนึ่ง ซึ่งจะเหมือนน้ำตกที่ไหลจากบนลงล่างเท่านั้น โดย Model ชนิดนี้จะมีการทำงานแบบทำให้เสร็จสิ้นทีละ Stage แบบ 100 % จากนั้นค่อยเริ่มทำ Stage ถัดไป แต่ละขั้น หน้าที่และProduct ถูกกำหนดอย่างชัดเจน

การพัฒนาโปรแกรมแบบ Waterfall Model มีลักษณะอย่างไร 1 คะแนน

Waterfall Model คือ โมเดลที่มีขั้นตอนการดำเนินงานที่ชัดเจนและง่ายต่อการนำไปใช้จริง โดยใช้วงจรชีวิตแบบฉบับ (Class Lift Cycle) หมายถึง การเรียงลำดับงานในการพัฒนาซอฟต์แวร์ โดยเริ่มด้วยการกำหนดความต้องการของลูกค้า การวางแผน การสร้างแบบจำลองการพัฒนาซอฟต์แวร์ และการให้ความเหลือในการใช้งานซอฟต์แวร์

การทำงานแบบ Waterfall เป็นการทำงานแบบใด

ขั้นตอนการทำงานแบบ Waterfall เป็นการทำงานแบบไล่ระดับลงมา อาจจะมีทีมงานจำนวนมากในแต่ละส่วน ซึ่งทำงานแยกส่วนกัน เป็นการทำงานประเภท Top-down ตามคำสั่งของผู้มีอำนาจ และด้วยความที่มีกระบวนการตัดสินใจที่หัวเรือใหญ่ที่เดียว แต่มีขั้นตอนมากมายหลายขั้นกว่าจะไปถึงหัวเรือใหญ่ได้ ทำให้วิธีการนี้ใช้เวลาค่อนข้างมาก

ลักษณะของ SDLC แบบใดที่มีลักษณะเปรียบเสมือนน้ำตก

SDLC แบบ Waterfall มีหลักการเปรียบเสมือนกับน้ำตก ซึ้งไหลจากที่สูงลงที่ต่ำ และไม่สามารถไหลกลับมาในทางตรงกันข้ามได้อีก การพัฒนาระบบงานด้วยหลักการนี้ เมื่อทำขั้นตอนหนึ่งแล้วจะไม่สามารถย้อนกลับมาที่ขั้นตอนก่อนหน้าได้อีก ซึ่งจะมองเห็นจุดอ่อนของ