วงจรของการพัฒนาซอฟต์แวร์ หรือ SDLC เป็นกระบวนการที่ติดตามสำหรับความคืบหน้าของซอฟต์แวร์ ตั้งแต่ระยะการเริ่มต้นพัฒนาจนถึงเสร็จสมบูรณ์ ประกอบด้วยแผนโดยละเอียดที่อธิบายวิธีการพัฒนา บำรุงรักษา แทนที่ และแก้ไขหรือปรับปรุงซอฟต์แวร์เฉพาะ SDLC จะกำหนดวิธีการปรับปรุงคุณภาพของซอฟต์แวร์และกระบวนการพัฒนาโดยรวม
การวิเคราะห์ความต้องการของลูกค้าเป็นขั้นตอนพื้นฐานที่สำคัญก่อนจะเริ่มงาน โดยประกอบไปด้วยหัวหน้าทีม และผู้เชี่ยวชาญด้านต่างๆของการพัฒนาโดยอ้างอิงจากข้อมูลของลูกค้า ข้อมูลนี้จะใช้ในการวางแผนแนวทางโครงการเพื่อศึกษาความเป็นไปได้ของซอฟต์แวร์ที่ต้องการพัฒนา
ในระยะนี้ ผู้มีส่วนได้ส่วนเสียของโครงการ รวมถึงลูกค้าและผู้ใช้ จะได้รับการปรึกษาเพื่อรวบรวมและจัดทำเอกสารข้อกำหนดโดยละเอียดสำหรับซอฟต์แวร์ ข้อกำหนดเหล่านี้กำหนดสิ่งที่ซอฟต์แวร์ควรทำและคุณลักษณะต่างๆ
เมื่อการวิเคราะห์ความต้องการแล้ว ขั้นตอนต่อไปคือการบันทึกข้อกำหนดของผลิตภัณฑ์อย่างชัดเจน และได้รับการเห็นชอบกับลูกค้าและนักพัฒนา ซึ่งดำเนินการผ่านเอกสาร SRS (Software Requirement Specification) ซึ่งประกอบด้วยข้อกำหนดผลิตภัณฑ์ทั้งหมดที่จะออกแบบและพัฒนาในระหว่างวงจรชีวิตของโครงการ
โดยสรุปขอบเขต ระยะเวลา งบประมาณ และทรัพยากรที่จำเป็นสำหรับโครงการ ผู้จัดการโครงการและผู้มีส่วนได้ส่วนเสียกำหนดเป้าหมายและวัตถุประสงค์ที่ชัดเจน
SRS เป็นข้อมูลอ้างอิงสำหรับผู้ออกแบบผลิตภัณฑ์ ตามข้อกำหนดที่ระบุไว้ใน SRS โดยปกติแล้วจะเสนอแนวทางการออกแบบมากกว่าหนึ่งแนวทางสำหรับสถาปัตยกรรมผลิตภัณฑ์และจัดทำเป็นเอกสารไว้ใน DDS (Design Document Specification)
DDS นี้ได้รับการตรวจสอบโดยผู้มีส่วนเกี่ยวข้องทั้งหมด และขึ้นอยู่กับพารามิเตอร์ต่างๆ เช่น การประเมินความเสี่ยงของผลิตภัณฑ์ การออกแบบโมดูลาร์ งบประมาณและข้อจำกัดด้านเวลา เมื่อได้รับการพิจารณาแนวทางที่ดีที่สุดแล้ว จะถูกเลือกมาใช้ในการพัฒนาผลิตภัณฑ์
ในขั้นตอนนี้ การพัฒนาจริงจะเริ่มต้นและผลิตภัณฑ์จะถูกสร้าง โดยการเขียนโค้ดจะถูกสร้างขึ้นตาม DDS (Design Document Specification) หากการออกแบบดำเนินการอย่างละเอียดและเป็นระเบียบ การสร้างโค้ดก็สามารถทำได้โดยไม่ต้องยุ่งยากมากนัก
โดยทั่วไปแล้วแนวทางการเขียนโค้ดจะขึ้นอยู่กับข้อกำหนดของแต่ละองค์กร และใช้เครื่องมือการเขียนโปรแกรม เช่น Compilers, Interpreters,Debuggers ฯลฯ เพื่อสร้างโค้ด ภาษาการเขียนโปรแกรมจะถูกเลือกตามประเภทของซอฟต์แวร์ที่กำลังพัฒนา
ในขั้นนี้จะเป็นขั้นตอนย่อยของขั้นตอนทั้งหมด การทดสอบส่วนใหญ่จะเกี่ยวข้องกับทุกขั้นตอนของ SDLC โดยขั้นตอนนี้เป็นการทดสอบเฉพาะของผลิตภัณฑ์ มีการรายงาน ติดตาม แก้ไข และทดสอบซ้ำจนกว่าจะเป็นไปตามมาตรฐานที่กำหนดไว้ใน SRS
การประกันคุณภาพและการทดสอบถือเป็นสิ่งสำคัญเพื่อให้แน่ใจว่าซอฟต์แวร์ทำงานได้อย่างถูกต้องและตรงตามข้อกำหนดที่ระบุ มีการดำเนินการทดสอบประเภทต่างๆ เช่น การทดสอบหน่วย การทดสอบรวม การทดสอบระบบ
เมื่อซอฟต์แวร์ผ่านการทดสอบแล้ว ซอฟต์แวร์จะถูกนำไปใช้งาน โดยอาจนำไปใช้ในกลุ่มที่จำกัดก่อนและทดสอบในสภาพแวดล้อมจริง (UAT- การทดสอบการยอมรับของผู้ใช้) แล้วนำฟีดแบคกลับมาพัฒนา หลังจากการปรับใช้จะมีการบำรุงรักษาอย่างต่อเนื่องเพื่อแก้ไขจุดบกพร่อง ปัญหา หรือการอัปเดต ขั้นตอนนี้ทำให้มั่นใจได้ว่าซอฟต์แวร์ยังคงเชื่อถือได้และทันสมัย
การเลือกโมเดล SDLC ขึ้นอยู่กับข้อกำหนดของโครงการและความเห็นชอบขององค์กร บางโปรเจคอาจได้รับประโยชน์จากแนวทางที่มีโครงสร้างเป็นขั้นเป็นตอนของโมเดล Waterfall ในขณะที่โปรเจคอื่นที่ต่างกันออกไป อาจต้องการความยืดหยุ่นของการทำงานที่ต้องมีการอัปเดตการทำงานเป็นระยะจึงต้อง Agile สิ่งสำคัญคือต้องกำหนดโมเดล และความก้าวหน้าของงานให้เหมาะสมที่สุด โดยโมเดลที่มีการใช้งานอยู่มาก ได้แก่
โมเดลน้ำตกนี้ถูกนำมาใช้กับโครงการที่มีความเป็นขั้นเป็นตอนที่แตกต่างกันชัดเจน รวมถึงการรวบรวมข้อกำหนด การออกแบบ การนำไปปฏิบัติ การทดสอบ การนำไปใช้งาน และการบำรุงรักษา แต่ละระยะจะต้องเสร็จสิ้นก่อนจะก้าวไปสู่ขั้นตอนถัดไป และการเปลี่ยนแปลงจะยากถ้าหากแต่ละเฟสเสร็จสิ้นแล้ว
โมเดลอาจายเป็นแนวทางการพัฒนาซอฟต์แวร์แบบวนซ้ำและแบบเพิ่มหน่วย โดยเน้นการทำงานร่วมกัน ความคิดเห็นของลูกค้า และการส่งมอบซอฟต์แวร์ส่วนเพิ่มการทำงานเป็นรอบสั้นๆ ที่เรียกว่าสปรินต์
โมเดลการวนซ้ำแต่ละครั้งประกอบด้วยขั้นตอนต่างๆ เช่น ข้อกำหนด การออกแบบ การนำไปใช้ และการทดสอบ หลังจากการวนซ้ำแต่ละครั้ง ซอฟต์แวร์จะพัฒนาและปรับปรุงตามคำติชม และคุณสมบัติใหม่ๆ จะถูกเพิ่มเข้ามาในการวนซ้ำครั้งต่อๆ ไป
โมเดล Spiral รวมองค์ประกอบของทั้งโมเดล Waterfall และ Iterative มันเกี่ยวข้องกับการวนซ้ำ แต่ละรอบประกอบด้วยการวางแผน การวิเคราะห์ความเสี่ยง วิศวกรรม การทดสอบ และการประเมินผล มีประโยชน์อย่างยิ่งสำหรับโครงการขนาดใหญ่และซับซ้อนที่มีข้อกำหนดที่เปลี่ยนแปลงได้
V-Model เป็นส่วนขยายของโมเดล Waterfall ที่เน้นความสัมพันธ์ระหว่างการทดสอบและการพัฒนาในแต่ละขั้นตอนการพัฒนา จะมีขั้นตอนการทดสอบที่สอดคล้องกัน ช่วยให้มั่นใจได้ว่ากิจกรรมการทดสอบจะถูกรวมเข้ากับกระบวนการพัฒนา
โมเดล RAD เป็นโมเดลที่เน้นเก็บความคิดเห็นของผู้ใช้แล้วนำกลับมาพัฒนา โดยเหมาะกับโปรเจคที่ต้องการส่วนร่วมของผู้ใช้และนำมาปรับปรุงได้ทันที
DevOps เป็นแนวทางการปฏิบัติงานที่เน้นทดสอบ ปรับปรุง เก็บฟีดแบคของการทำซอฟต์แวร์อย่างต่อเนื่อง โดยเน้นความเร็วในการทดสอบอย่างอัติโนมัติ โดยเน้นการปรับปรุงทีละน้อย เพื่อแล้วนำข้อมูลมาวิเคราะห์ พัฒนา ทดสอบไปเรื่อยๆ (CI/CD)
โมเดลบิ๊กแบง เป็นการทำงานแบบไม่เป็นไปตามกระบวนการที่พัฒนาตั้งแต่เริ่มต้น ไม่มีแผนอย่างเป็นทางการ และทำการเปลี่ยนแปลงตามความจำเป็นจนกว่าซอฟต์แวร์จะถือว่าเสร็จสมบูรณ์
โมเดลส่วนเพิ่ม ทำงานโดยการแบ่งซอฟต์แวร์ออกเป็นส่วนย่อยๆ ที่สามารถจัดการได้เรียกว่าส่วนเพิ่ม แต่ละรายการได้รับการพัฒนาและทดสอบแยกกัน และส่วนเพิ่มใหม่จะถูกเพิ่มจนกว่าซอฟต์แวร์จะเสร็จสมบูรณ์