Software Development Life Cycle (SDLC) คืออะไร ทำไมจำเป็นต่อการพัฒนาซอฟต์แวร์




     Software development life cycle (SDLC) เป็นกระบวนการที่ใช้ในการพัฒนาซอฟต์แวร์ โดยได้มีการกำหนดขั้นตอนต่างๆ เพื่อสามารถพัฒนาและส่งมอบซอฟต์แวร์ ได้อย่างมีคุณภาพและสมบูรณ์ โดยทั่วไปแล้ว SDLC จะประกอบไปด้วย 6 ขั้นตอนได้แก่ การวางแผน การเก็บรวบรวม Requirement การออกแบบซอฟต์แวร์ การพัฒนาซอฟต์แวร์ การทดสอบซอฟต์แวร์ การบำรุงรักษาซอฟต์แวร์

ขั้นตอนกระบวนการพัฒนาซอฟต์แวร์ - Software Development Life Cycle

1. การวางแผน (Planning) เป็นการวางแผนในการพัฒนาซอฟต์แวร์ ใน Phase นี้ Program manager, Project Manage จะวางแผนใน Project ว่าจะใช้ระยะเวลาในการพัฒนาซอฟต์แวร์เท่าไหร่ (Time) มี Feature อะไรบ้างที่จะพัฒนา (Scope) มีจำนวนคนที่จะใช้พัฒนาซอฟต์แวร์กี่คน (Resource) วางแผนว่าใครหรือองค์​กรไหนที่จะมีส่วนเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ได้บ้างเช่น หากทำ Application เกี่ยวกับการซื้อขายหุ้นก็ต้องอาศัยกฏ ข้อบังคับต่างๆของ กลต เข้ามาเป็นปัจจัยการออกแบบซอฟต์แวร์ด้วย วางแผนเพื่อเก็บ Requirement, Design Software และการทดสอบซอฟต์แวร์ การมีข้อมูลที่ละเอียดจะช่วยให้การวางแผนงานได้อย่างแม่นยำจะช่วยลดความเสี่ยงของการพัฒนาซอฟต์แวร์และสามารถพัฒนาสำเร็จตามวัตถุประสงค์

2. การเก็บรวบรวมและวิเคราะห์ Requirement (Requirement gathering and analysis) ในขั้นตอนนี้ Requirement นั้น Project Manage, Product owner หรือ Business analysis จะเป็นผู้เก็บเก็บรวบรวม Requirement จากลูกค้าหรือผู้มีส่วนเกี่ยวข้อง เพื่อเข้าใจความต้องการจากผู้ใช้งานและการทำงานของระบบ โดยอาจจัดทำอยู่ในรูปแบบ Prototyping เพื่อให้ผู้ใช้งานสามารถเข้าใจการทำงานของระบบได้ง่ายขึ้น หลังจากการรวบรวม Requirement เสร็จแล้วทีมพัฒนาเช่น Developer, QA สามารถช่วยตรวจสอบ Requirement นั้นได้เพื่อใช้ในการ Design Software และประเมินความเสี่ยงและข้อจำกัดของซอฟต์แวร์ที่อาจเกิดขึ้นได้

3. การออกแบบซอฟต์แวร์ (Design Software) ขั้นตอนนี้หลักๆแล้ว Developer จะนำ Requirement ที่ได้มาออกแบบ เช่น Design สถาปัตยกรรมที่จะใช้ (Architects) ส่วนต่อประสานผู้ใช้งาน (User Interface) ภาษาที่จะใช้ในการพัฒนาซอฟต์แวร์ Design ฐานข้อมูล Security และ Network เป็นต้น ผลลัพธ์ที่ได้จากขั้นตอนนี้จะได้ System Design Specification ซึ่งสามารถให้ผู้มีส่วนเกี่ยวข้องหรือผู้เชี่ยวชาญได้ Review และสามารถให้คำแนะนำได้

4. การพัฒนาซอฟต์แวร์ (Software development) ขั้นตอนนี้เป็นการพัฒนาซอฟต์แวร์โดยทีม Developer โดยจะเริ่มนำ Design และ Requirement ต่างๆที่ได้ออกแบบในขั้นตอนที่ 2 และ 3 มาเริ่มเขียนโปรแกรม การพัฒนาซอฟต์แวร์นั้นจะนำเครื่องมือต่างๆมาช่วยพัฒนาซอฟต์แวร์ได้ เครื่องมือที่จะนำมาใช้นั้นก็ขึ้นอยู่กับลักษณะของซอฟต์แวร์ เมื่อการพัฒนาซอฟต์แวร์เริ่มขึ้นจะเริ่มแต่ละ Feature ย่อยจากนั้นค่อยๆรวมแต่ละ Feature ย่อยเข้าด้วยกันให้เป็นระบบ ในการพัฒนาซอฟต์แวร์นั้นจะพัฒนาได้อย่างรวดเร็วหาก Phase ช่วงการ Design นั้นละเอียดและมีเอกสารที่เข้าใจได้ง่าย

5. การทดสอบซอฟต์แวร์ (Software Testing) การทดสอบซอฟต์แวร์เป็นการประกันคุณภาพของซอฟต์แวร์ ค้นหาข้อผิดพลาด ป้องกันการเกิดข้อผิดพลาดของซอฟต์แวร์ รวมไปถึงตรวจสอบว่าซอฟต์แวร์ที่พัฒนานั้นเป็นไปตาม Requirement หรือไม่ ในการทดสอบนั้นจะมีการสร้าง Test case หรือเป็นกรณีที่ผู้ใช้งานจะใช้งานระบบและ Expected results คือผลที่คาดหวังจากการทดสอบโดยผลที่คาดหวังนี้จะอิงตาม Requirement ที่ได้จาก Phase ที่ 2 หากซอฟต์แวร์ทำงานถูกต้องเป็นไปตามสิ่งที่คาดหวังผลการทดสอบก็จะผ่านแต่หากไม่เป็นไปตามผลที่คาดหวังผลการทดสอบก็จะไม่ผ่าน ต้องสิ่งให้ Developer ต่อไป ปัจจุบันนั้นมีการทำ Automated test เข้าใจช่วยในการ Run test เพื่อการทำงานที่รวดเร็วมากขึ้น

6. การบำรุงรักษาซอฟต์แวร์ (Operations and Maintenance) เมื่อซอฟต์แวร์ผ่านการทดสอบแล้วก็จะมีการ Deployed เพื่อให้ผู้ใช้งานได้ใช้งานระบบจริง ในระหว่างที่ผู้ใช้งานซอฟต์แวร์อยู่นั้นก็อาจจะเกิดปัญหาต่างๆได้เช่น ต้องการ Feature เพิ่มเติม ซอฟต์แวร์ทำงานไม่เป็นไปตามความคาดหวัง ซอฟต์แวร์มี Bug อยู่ หรือการ Deployed ครั้งแรกอาจมีข้อจำกัดอะไรบางอย่าง เมื่อเกิดปัญหาเหล่านี้เกิดขึ้นก็ต้องมีการแก้ไข บำรุงรักษาซอฟต์แวร์เพื่อให้ผู้ใช้งานพึ่งพอใจมากที่สุด ซึ่งในการแก้ไขก็อาจจะกลับไปเริ่มในขั้นตอนที่ 1 ถึง 6 ใหม่ (New Development Cycle)

SDLC Models

     ปัจจุบันนี้มีการนำ Model มาประยุกต์ใช้ในกระบวนการพัฒนาซอฟต์แวร์ หรือเรียกว่า Process model เพื่อเป็นวิธีการหรือแนวทางในการพัฒนาซอฟต์แวร์ให้ประสบผลสำเร็จ เช่น
  • Agile Model เป็น Model ที่เน้นปฏิสัมพันธ์และตอบสนองความต้องการของลูกค้าอย่างรวดเร็ว กรอบการพัฒนาซอฟต์แวร์ในระยะเวลาสั้นๆ (Sprint) เพื่อรองรับการเปลี่ยนแปลงที่อาจเกิดขึ้นอย่างรวดเร็ว สามารถรับ Feedback จากผู้ใช้งานได้อย่างรวดเร็ว
  • Waterfall Model เป็นการพัฒนาซอฟต์แวร์ตามลำดับขั้นตอนโดยต้องพัฒนาแต่ละขั้นตอนให้สำเร็จถึงจะพัฒนาขั้นตอนถัดไปได้ การใช้ Waterfall Model นั้นมีข้อจำกัดอยู่ว่าหากมีการแก้ไขระหว่างที่กำลังพัฒนาซอฟต์แวร์อยู่นั้นทำได้ช้าเพราะหากต้องการแก้ไขจะต้องกลับไปเริ่มในขั้นตอนแรกใหม่
  • Iterative Model เป็นการส่งมอบซอฟต์แวร์ใน Version แรกๆอย่างรวดเร็วเพื่อให้ผู้ใช้งานประเมินว่าเป็นไปตามที่ต้องการหรือไม่ หลังจากนั้นจะซอฟต์แวร์ใน Version ต่อๆไปอย่างรวดเร็ว (Iterative) 
  • Spiral Model เป็นการทำ Waterfall Model มาพัฒนาต่อยอดโดยจะมีการประเมินในแต่ละ Phase เพื่อลดความเสี่ยงในการพัฒนาซอฟต์แวร์ 
  • V-Model เป็น Model ที่พัฒนาต่อยอดจาก Waterfall Model โดยในแต่ละ Phase ของการพัฒนาซอฟต์แวร์สามารถตรวจสอบ (Verification) คุณภาพควบคู่ไปกับการพัฒนาของแต่ละ Phase ได้ ในการตรวจสอบนั้นจะตรวจสอบตั้งแต่ Requirement, Design, Code, Unit Test และ Integration test ดังนั้นเมื่อซอฟต์แวร์มีการตรวจสอบมากขึ้นก็จะสามารถลดข้อผิดพลาดและเพิ่มความถูกต้องในการทำงานของซอฟต์แวร์ได้มากยิ่งขึ้น


ป้ายกำกับ

แสดงเพิ่มเติม

บทความยอดนิยม

Automation testing หรือ การทดสอบซอฟต์แวร์อัตโนมัติ คืออะไร ทำไมถึงสำคัญต่อการทดสอบซอฟต์แวร์

วิธีเก็บ วิเคราะห์ รวบรวม requirement อย่างไรให้มีประสิทธิภาพ

Performance Test คือ อะไร วัดประสิทธิภาพของระบบ ล่มไม่ล่ม จะรู้ได้อย่างไร

ถอดรหัสความลับเครื่อง Enigma จุดเริ่มต้นและจุดจบของสงครามโลกครั้งที่ 2

ม.ปลายอยากเข้าสายคอม วิทยาการคอม วิศวกรรมคอม เตรียมตัวอย่างไร ต้องมีพื้นฐานอะไรบ้าง

วิเคราะห์เทรน แนวโน้มของเทคโนโลยีด้วย Gartner Hype Cycle

Data Privacy คืออะไร ข้อมูลส่วนบุคคลนั้นสำคัญขนาดไหน

Formal verification การหาข้อผิดพลาด การทดสอบ การทวนสอบ ขั้นสูง

Fibonacci ความลับของตัวเลขทางคณิตศาสตร์สู่เครื่องมือวิเคราะห์หุ้น