บทที่ 2
วงจรชีวิตของโครงการกับวงจรชีวิตของการพัฒนาซอฟต์แวร์
อ.ศันสนีย์ เลี้ยงพานิชย์
โปรแกรมวิชาวิทยาการสารสนเทศ
เนื้อหา
➢วงจรชีวิตของโครงการ
➢วงจรชีวิตของการพัฒนาซอฟต์แวร์
➢การพัฒนาซอฟต์แวร์ตามมาตรฐาน ISO/IEC 12207
➢การพัฒนาซอฟต์แวร์แบบอาไจล
➢ความสัมพันธ์ระหว่างวงจรชีวิตของโครงการและวงจรชีวิตของการพัฒนาซอฟต์แวร์
➢กระบวนการบริหารโครงการซอฟต์แวร์
➢วงจรชีวิตของโครงการ
กำหนดโครงกำร
วำงแผนโครงกำร
ปฏิบัติกำร
ปิดโครงกำร
เริ่มต้น สิ้นสุดระยะเวลำ
ระดับควำมพยำยำม
กำหนดโครงกำร
1. เป้ำหมำย
2. ขอบเขต
3. งำน
4. ควำมรับผิดชอบ
วำงแผน
1. ตำรำงงำน
2. งบประมำณ
3. ทรัพยำกร
4. ควำมเสี่ยง
5. บุคลำกร
ปฏิบัติกำร
1. รำยงำนสถำนะ
2. กำรเปลี่ยนแปลง
3. คุณภำพ
4. กำรพยำกรณ์
ปิดโครงกำร
1. ฝึกอบรม
2. โอนย้ำยข้อมูล
3. คืนทรัพยำกร
4. ประเมินผล
5. บทเรียนโครงกำร
➢การบริหารโครงการซอฟต์แวร์ตามรูปแบบวงจรชีวิตการพัฒนา
ซอฟต์แวร์แบบน้าตก
กำรกำหนดควำมต้องกำร
กำรเริ่มต้น กำรปฏิบัติกำรกำรวำงแผน กำรปิดโครงกำร
กำรวิเครำะห์
กำรสร้ำง
กำรทดสอบ
กำรนำไปใช้
กำรบำรุงรักษำ
กำรออกแบบ
วงจรชีวิตโครงกำร
วงจรชีวิตของการพัฒนาซอฟต์แวร์
➢วงจรชีวิตแบบน้าตก
➢วงจรชีวิตแบบเพิ่ม
➢วงจรชีวิตแบบก้นหอย
➢ วงจรชีวิตแบบต้นแบบ
➢วงจรชีวิตแบบโค้งรูปตัววี
➢วงจรชีวิตการพัฒนาระบบงานแบบรวดเร็ว
วงจรชีวิตแบบน้าตก(Waterfall life cycle model)
กำรกำหนดควำมต้องกำร
กำรวิเครำะห์
กำรสร้ำง
กำรทดสอบ
กำรนำไปใช้
กำรบำรุงรักษำ
กำรออกแบบ
➢ เป็นวงจรชีวิตที่สร้างขึ้น ในปี 1970 โดย Winston W.
Royce
➢ เป็นรูปแบบวงจรชีวิตที่มีขั้นตอนการพัฒนาที่ชัดเจน มี
การออกแบบกระบวนการทางานเป็นลาดับขั้นตอน
➢ การทางานจะทางานทีละขั้นตอน แต่ละขั้นตอนต้อง
ดาเนินการให้เสร็จก่อนจึงจะทาขั้นตอนต่อไปได้
➢ แต่ละขั้นตอนจะมีการทาเอกสารประกอบ
➢ ข้อเสียคือ ผู้ใช้จะไม่เห็นผลลัพธ์หรือตัวซอฟต์แวร์
จนกว่าจะส่งมอบ ซึ่งอาจต้องใช้เวลานาน และหากไม่
เป็นไปตามความต้องการ อาจเสียเวลาและค่าใช้จ่าย
ในการแก้ไขมากขึ้น
วงจรชีวิตแบบเพิ่ม (Incremental life cycle model)
วิเครำะห์ ออกแบบ สร้ำง ทดสอบ
งำนส่วนที่ 1
ส่งมอบส่วนที่ 1
วิเครำะห์ ออกแบบ สร้ำง ทดสอบ
วิเครำะห์ ออกแบบ สร้ำง ทดสอบ
วิเครำะห์ ออกแบบ สร้ำง ทดสอบ
งำนส่วนที่ 2 ส่งมอบส่วนที่ 2
งำนส่วนที่ 3
งำนส่วนที่ 4
ส่งมอบส่วนที่ 3
ส่งมอบส่วนที่ 4
ระยะเวลำ
➢ เน้นการพัฒนาทีละส่วน โดยแต่ละ
ส่วนประกอบด้วยขั้นตอนหลัก ได้แก่
การวิเคราะห์ การออกแบบ การสร้าง
หรือเขียนโปรแกรม และการทดสอบ
➢ มีการส่งมอบงานทีละส่วนแล้วค่อย ๆ
เพิ่มความสามารถของระบบเข้าไปเรื่อย
ๆ จนได้ระบบที่มีความสมบูรณ์
➢ ข้อดี คือ สามารถส่งมอบงานได้เร็ว ตรง
ตามความต้องการของลูกค้า การที่
ลูกค้าค่อย ๆ ได้รับผลงาน จะเป็นการ
สร้างความคุ้นเคยกับงานมากขึ้น
➢ นอกจากนี้การแบ่งงานออกเป็นส่วน ๆ
จะสามารถหยุดได้โดยไม่มีผลกระทบอื่น
วงจรชีวิตแบบก้นหอย(Spiral life cycle model)
➢พัฒนาโดย Barry Boehm
➢วงจรชีวิตรูปแบบนี้พัฒนามาจากวงจรชีวิตแบบน้าตก
➢วงจรชีวิตจะเป็นการทางานแบบซ้า ๆ หรือก้นหอย โดยแต่
ละงานจะประกอบด้วยการวางแผน การวิเคราะห์ การ
จัดการความเสี่ยงและการพัฒนางาน
➢เหมาะกับการพัฒนาซอฟต์แวร์ที่มีขนาดใหญ่
➢มีการวิเคราะห์ความเสี่ยงทุกขั้นตอน
วงจรชีวิตแบบต้นแบบ(Prototyping life cycle model)
กำรกำหนดควำมต้องกำร
กำรออกแบบอย่ำงเร็ว
ผู้ใช้ประเมินต้นแบบ
ปรับปรุงตำม
คำแนะนำของผู้ใช้
ออกแบบ
กำรบำรุงรักษำ
กำรสร้ำงต้นแบบ
สร้ำง
ทดสอบ
ยอมรับ
กำรพัฒนำต้นแบบ
➢เป็นการพัฒนาโดยใช้ต้นแบบเพื่อ
หาความต้องการของผู้ใช้ที่ชัดเจน
➢ข้อดี คือ ผู้ใช้จะเห็นผลลัพธ์ที่
ต้องการเร็ว
➢เป็นวิธีการในการหาความ
ต้องการที่ดีที่สุด
➢ ข้อเสียคือ ต้องมีการพัฒนา
ต้นแบบ ซึ่งอาจจะใช้เวลานาน
วงจรชีวิตแบบโค้งรูปตัววี(V shaped model)
วิเครำะห์ควำมต้องกำร
ออกแบบโดยรวม
ออกแบบรำยละเอียด
เขียนโปรแกรม
ทดสอบเพื่อกำรยอมรับ
ทดสอบระดับรวมหน่วย
ทดสอบระดับหน่วย
➢เน้นการตรวจสอบและการรองรับความ
ถูกต้องควบคู่กันไป ในการทดสอบ
ความถูกต้อง จะทาขนานกันไปกับการ
พัฒนา
➢ข้อดีคือ สามารถติดตามความก้าวหน้า
และการทดสอบได้ทุกขั้นตอน
➢ข้อเสียคือ ยากต่อการจัดการกับความ
ต้องการที่มีการเปลี่ยนแปลงบ่อยๆ
วงจรชีวิตการพัฒนาระบบงานแบบรวดเร็ว (Rapid application
development (RAD) life cycle model)
วำงแผน
ประสำนงำน ออกแบบโมดูลงำน
ทีมที่ n
ทีมที่ 1
ทีมที่ 2
สร้ำงและทดสอบ
สร้ำงและทดสอบ
สร้ำงและทดสอบ
รวมระบบและ
ส่งมอบออกแบบโมดูลงำน
ออกแบบโมดูลงำน
60-90วัน
➢เป็นวงจรการพัฒนาระบบแบบค่อยเพิ่มขึ้น
➢เน้นวงจรพัฒนาสั้นๆ
➢มีการแบ่งงานเป็นโมดูล แต่ละโมดูลจะใช้
เวลาภายในประมาณ 2-3 เดือน
➢มีกิจกรรมการสื่อสารเพื่อให้เข้าใจปัญหา มี
การวางแผน มีทีมงานหลายทีมงานที่จะทา
การพัฒนาในแต่ละโมดูล เสร็จแล้วจึงนามา
รวมกัน
➢ข้อดี คือ ความรวดเร็วในการพัฒนา
➢ข้อเสีย คือ จาเป็นต้องใช้ทรัพยากรบุคคลมาก
นอกจากนี้ระบบที่ไม่สามารถแบ่งโมดูลได้จะ
มีปัญหาในการสร้างคอมโพเนนท์ที่จะใช้
การพัฒนาซอฟต์แวร์ตาม
มาตรฐานISO/IEC 12207
กำรวิเครำะห์ควำมต้องกำร
กำรออกแบบสถำปัตยกรรม
กำรวิเครำะห์ควำมต้องกำร
กำรออกแบบสถำปัตยกรรม
กำรวิเครำะห์ควำมต้องกำร
กำรออกแบบรำยละเอียด
กำรสร้ำงและทดสอบ
กำรทดสอบโปรแกรม
กำรทดสอบคุณสมบัติ
กำรทดสอบโปรแกรม
กำรทดสอบคุณภำพ
กำรติดตั้ง
กำรสนับสนุนผู้ใช้งำน
ควำมต้องกำร
ระบบ
สร้ำงและทดสอบกำรติดตั้ง/
กำรสนับสนุน
ผู้ใช้งำน
ซอฟต์แวร์ระบบซอฟต์แวร์
กระบวนกำรพัฒนำระบบ
ออกแบบ
1.กำรวิเครำะห์ควำมต้องกำร (Requirement analysis)
2.กำรออกแบบสถำปัตยกรรม (Architecture design)
3.กำรออกแบบรำยละเอียด (Detailed design)
4.กำรเขียนโปรแกรมและกำรทดสอบ (Code and test)
5.กำรทดสอบโปรแกรม (Integration)
6.กำรทดสอบคุณภำพ (Qualification testing)
7.กำรติดตั้ง (Installation)
8.กำรสนับสนุนผู้ใช้งำน (Acceptance support)
➢นอกจากนี้ยังมีมาตรฐาน ISO / IEC 29110 หรือ มาตรฐานวิศวกรรมซอฟต์แวร์สาหรับองค์กรขนาดกลางและเล็ก
(Software life cycle profiles and guidelines for very small entities (VSEs)
standards)
➢มุ่งเน้นให้การรับรองคุณภาพการบริหารงานหรือผลิตภัณฑ์ซอฟต์แวร์ให้แก่หน่วยงานหรือผู้ประกอบการที่มีขนาดเล็กโดยมี
ผู้ร่วมงานไม่เกิน 25 คน
➢ประยุกต์มาจากมาตรฐาน ISO / IEC 12207 ซึ่งเป็นมาตรฐานซอฟต์แวร์ระดับสากลที่เหมาะกับการปฏิบัติงานของ
องค์กรขนาดใหญ่
➢พัฒนาขึ้นมาเพื่อสนับสนุนองค์กรขนาดเล็กให้มีโอกาสในการปรับปรุงกระบวนการและรับรองคุณภาพในระดับสากล
➢ตัวมาตรฐานได้ถูกกาหนดมาเพื่อสร้างบทบาทควบคุมคุณภาพกระบวนการผลิตซอฟต์แวร์ทั้งทางด้านการบริหารงานและ
ทางด้านเทคนิคให้กับผู้ประกอบการขนาดเล็ก
➢เป็นมาตรฐานที่สามารถลดต้นทุนในการบริหารและจัดการกระบวนการควบคุมคุณภาพการผลิตที่ยังไม่สูงมากเมื่อ
เปรียบเทียบกับมาตรฐานอื่น
➢ให้ความสาคัญในกระบวนการที่ต้องการปรับให้เป็นระบบสากล 2 กระบวนการหลัก คือ กระบวนการด้านการบริหาร
โครงการและกระบวนการด้านการสร้างซอฟต์แวร์
การพัฒนาซอฟต์แวร์แบบอาไจล
➢อาไจล (Agile) เป็นเทคนิคหนึ่งที่ช่วยในการพัฒนาซอฟต์แวร์แบบใหม่
➢เหมาะกับระบบงานที่ต้องการความรวดเร็ว มีการเตรียมความพร้อมเพื่อตอบสนองต่อความเปลี่ยนแปลง
ที่อาจเกิดขึ้นได้ โดยเฉพาะการเปลี่ยนแปลงความต้องการของผู้ใช้
➢การพัฒนาซอฟต์แวร์ภายใต้รูปแบบกระบวนการพัฒนาแบบเดิมที่มีขั้นตอนการพัฒนาที่ชัดเจน เช่น
รูปแบบการพัฒนาแบบน้าตก รูปแบบการพัฒนาโดยการสร้างต้นแบบ ยังไม่สามารถดาเนินการโครงการ
ซอฟต์แวร์ให้สาเร็จสมบูรณ์ตามระยะเวลาได้
➢ ในปี ค.ศ. 1990 นักพัฒนาซอฟต์แวร์จึงคิดค้นวิธีการพัฒนาซอฟต์แวร์แบบใหม่ที่มีอิสระและมีความ
คล่องตัวในการทางานสูง วิธีการนี้เรียกว่า “Agile method” ซึ่งมีรายละเอียดที่จะกล่าวถึงดังนี้
หลักการพัฒนาซอฟต์แวร์แบบอาไจล
ประการที่ 1 เน้นการปฏิสัมพันธ์และการทางานร่วมกันระหว่างบุคคลในทีมงาน
ประการที่ 2 เน้นผลผลิตของซอฟต์แวร์มากกว่าเอกสาร
ประการที่ 3 เน้นการทางานร่วมกันกับลูกค้ามากกว่าการเจรจาตามสัญญาว่าจ้างผลิตซอฟต์แวร์
ประการที่ 4 เน้นการตอบสนองต่อการเปลี่ยนแปลงมากกว่าการดาเนินงานตามแผน
หลักการพัฒนาซอฟต์แวร์แบบอาไจล(กฎ12ข้อของอาไจล)
1. มุ่งสร้างความพึงพอใจให้กับลูกค้า โดยการส่งมอบซอฟต์แวร์ให้ลูกค้าอย่างต่อเนื่อง
2. ยอมรับการเปลี่ยนแปลงที่เกิดขึ้นจากความต้องการของลูกค้าที่เปลี่ยนไป ถึงแม้ว่าโครงการได้ดาเนินการมามากแล้ว แต่อาไจล
จะยอมรับการเปลี่ยนแปลงเพื่อประโยชน์ของลูกค้า
3. ส่งมอบงานที่ใช้ได้จริงบ่อยๆ ตั้งแต่ทุก 2 สัปดาห์ ถึง ทุก 2 เดือน
4. นักธุรกิจและนักพัฒนาจะทางานร่วมกันทุกวันตลอดโครงการ
5. สร้างแรงจูงใจให้ทีมงาน สร้างความเชื่อมั่นว่าทีมงานจะทางานได้สาเร็จ โดยสร้างสภาพแวดล้อมเพื่อสนับสนุนงานตามที่
ต้องการ
6. วิธีการสื่อสารที่ดีที่สุดคือการสื่อสารแบบซึ่งหน้า หลีกเลี่ยงการสื่อสารวิธีการอื่น เช่น โทรศัพท์ อีเมลล์
7. ซอฟต์แวร์ที่ใช้งานได้จริง จะเป็นตัววัดความก้าวหน้าของโครงการ
8. ผู้สนับสนุน ผู้พัฒนาและผู้ใช้งานจะร่วมกันพัฒนาโครงการอย่างค่อยเป็นค่อยไปเพื่อให้งานมีความก้าวหน้าขึ้นเรื่อยๆ
9. ความสนใจของทีมงานในการติดตามเทคโนโลยีจะช่วยในการนามาปรับใช้ในการออกแบบให้ดียิ่งขึ้น
10.เน้นความเรียบง่าย การลดงานที่ไม่จาเป็นเป็นเรื่องที่สาคัญ
11.สถาปัตยกรรม ความต้องการ การออกแบบ เกิดจากทีมงานบริหารจัดการเอง
12.ทีมงานต้องสะท้อนภาพตัวเองในการทางานเพื่อให้ได้ผลลัพธ์ดีขึ้น รวมทั้งการปรับพฤติกรรมตามสถานการณ์ที่เปลี่ยนแปลงไป
➢การพัฒนาซอฟต์แวร์แบบอาไจล
➢จุดเด่น คือ ส่งมอบงานได้เร็ว รองรับการเปลี่ยนแปลงที่อาจเกิดขึ้นได้ตลอดเวลาทาให้
กระบวนการพัฒนามีความยืดหยุ่น ลูกค้ามีความพึงพอใจเพราะได้ผลิตภัณฑ์ที่ตรงตามความต้องการใน
ตลอดทุกขั้นตอนการทางาน
➢ข้อจากัดของการพัฒนาซอฟต์แวร์แบบบอาไจล ซึ่งมีลักษณะวิธีการแบบทาซ้า เช่น ต้องมีการส่งมอบ
งานหลายครั้ง มีการปรับเปลี่ยนตามความต้องการหลายครั้ง อาจทาให้ขอบเขตของโครงการกว้างไม่มีที่
สิ้นสุด นอกจากนี้ทีมงานอาไจลต้องมีทักษะในการปฏิสัมพันธ์ที่ดีเพราะต้องติดต่อกับลูกค้าเสมอ
➢การพัฒนาซอฟต์แวร์แบบอาไจล จะเหมาะสาหรับโครงการที่มีทีมพัฒนาขนาดเล็ก ไม่เกิน 20-40 คน
เพราะหากโครงการมีขนาดใหญ่ มีทีมงานมากจะทาให้ยากในการสื่อสารปฏิสัมพันธ์กัน การพัฒนา
ซอฟต์แวร์แบบอาไจลไม่ได้นามาทดแทนวิธีการแบบเก่า แต่เป็นทางเลือกสาหรับนักพัฒนาระบบ ซึ่งอาจ
ต้องพิจารณาตามความเหมาะสม และสภาพแวดล้อมขององค์กรด้วย
แบบจาลองกระบวนการอาไจล
➢เอ็กซ์ทรีมโปรแกรมมิ่ง
➢การพัฒนาซอฟต์แวร์แบบปรับตัว
➢การพัฒนาระบบไม่หยุดนิ่ง
➢สครัม
เอ็กซ์ทรีมโปรแกรมมิ่ง (Extreme programming : XP)
➢เป็นแบบจาลองกระบวนการอาไจลที่ได้รับความนิยม คิดค้นโดย Kent Beck ในปี ค.ศ. 1996
➢เป็นแบบจาลองกระบวนการผลิตซอฟต์แวร์ที่มีการพัฒนาตามรูปแบบการทาซ้าและแบบเพิ่ม (Iteration and
Incremental) โดยพัฒนาแบบทาซ้าและค่อย ๆ เพิ่มทีละส่วนจนได้ซอฟต์แวร์ที่สมบูรณ์และเป็นไปตามความต้องการของลูกค้า
➢มีขั้นตอนการพัฒนา 4 ขั้นตอน ได้แก่
➢การวางแผน ในโครงการพัฒนาซอฟต์แวร์ จะมีการแบ่งงานออกเป็นส่วน ๆ มีการกาหนดการส่งมอบงานทีละส่วน มีการวิเคราะห์และเขียน
รายละเอียดงานตามความต้องการของลูกค้า (User stories) และจัดทาแผนงานในแต่ละส่วนงาน
➢การออกแบบ จะเน้นการออกแบบที่ง่าย ไม่ซับซ้อน ไม่ใส่ฟังก์ชันการทางานที่ยังไม่จาเป็น
➢การเขียนโปรแกรม จะเน้นการเขียนโปรแกรมแบบจับคู่ (Pair programming) เป็นการใช้โปรแกรมเมอร์ 2 คนสลับกันเป็นคนเขียน
โปรแกรมและตรวจสอบโปรแกรม นอกจากนี้จะต้องทาการรวมโค้ดโปรแกรมอย่างสม่าเสมอ
➢การทดสอบ จะทดสอบการทางานทีละส่วน (Unit test) ก่อนส่งมอบงาน และทดสอบระบบโดยผู้ใช้งานจริงเพื่อที่จะดูความสมบูรณ์ของ
ระบบว่าเป็นไปตามที่ผู้ใช้ต้องการหรือไม่ (Acceptance test)
1.วำงแผน
-รำยละเอียดงำนตำมควำมต้องกำรลูกค้ำ
-วำงแผนกำรนำไปใช้
-แผนกำรทำซ้ำ
2.ออกแบบ
-กำรออกแบบอย่ำงง่ำย
-ออกแบบกระบวนกำร
3.สร้ำง
-เขียนโปรแกรมแบบจับคู่
-กำรทดสอบระดับหน่วย
-กำรรวมโค้ดอย่ำงต่อเนื่อง
4.ทดสอบ
-กำรทดสอบระดับหน่วย
-กำรรวมโค้ดอย่ำงต่อเนื่อง
-ทดสอบกำรยอมรับ
กำรนำไปใช้
การพัฒนาซอฟต์แวร์แบบปรับตัว (Adaptive software
development: ASD)
➢เป็นแบบจาลองที่นาเสนอโดย Jim Highsmith
➢เป็นเทคนิคสาหรับการสร้างระบบที่ซับซ้อน เน้นการทางานร่วมกันระหว่างบุคคลและการจัดระเบียบ
ทีมงานด้วยตนเอง มีการแบ่งงานอย่างเป็นระบบและชัดเจน
➢การพัฒนาซอฟต์แวร์รูปแบบนี้มีการทางานหลัก ๆ 3 ส่วน คือ
▪ส่วนของการคาดเดา เป็นส่วนเริ่มต้นโครงการ มีการทาแผนวงจรการปรับตัว
▪ส่วนการร่วมมือ เป็นการกาหนดให้บุคคลมีส่วนร่วมในการทางาน มีการจูงใจให้ทีมงานและผู้เกี่ยวข้อง
ร่วมกันทางานเพื่อสร้างสรรค์ผลงาน
▪ส่วนการเรียนรู้ ทีมงานต้องเรียนรู้ตั้งแต่เริ่มต้นพัฒนาจนกระทั่งเสร็จสิ้นวงจร โดยการเรียนรู้ จะมี 3 วิธี
ได้แก่ การกาหนดกลุ่มเฉพาะ การทบทวนเทคนิคอย่างเป็นทางการ และการตรวจสอบ
กำรคำดเดำ กำรร่วมมือ
กำรเรียนรู้
กำรรวบรวมควำมต้องกำร
จำกทีมงำนและผู้เกี่ยวข้อง
วงจรพัฒนำซอฟต์แวร์แบบ
ปรับตัว
กำรกำหนดกลุ่มเฉพำะ
กำรทบทวนเทคนิคอย่ำงเป็นทำงกำร
กำรตรวจสอบภำยหลัง
แผนวงจรกำรปรับตัว
พันธกิจ
เงื่อนไขโครงกำร
ควำมต้องกำรพื้นฐำน
แผนกำรนำไปใช้
กำรนำไปใช้
การพัฒนาระบบไม่หยุดนิ่ง (Dynamic system
development method: DSDM)
➢การพัฒนาระบบไม่หยุดนิ่ง (Dynamic system development method : DSDM)
➢เป็นวิธีการพัฒนาซอฟต์แวร์ที่มีการกาหนดกรอบงานในการสร้างและบารุงรักษาระบบ โดยมีข้อจากัดด้านเวลา ใช้การสร้าง
ต้นแบบอย่างค่อยเพิ่มขึ้น
➢การพัฒนารูปแบบนี้จะมีการทาวนซ้า แต่ละรอบของวงจรจะเป็นไปตามกฎร้อยละ 80 คือ ร้อยละ 80 ของแอพลิเคชั่นจะทา
สาเร็จภายในเวลาร้อยละ 20 ของเวลาทั้งหมดที่พัฒนา จะทางานให้เพียงพอในแต่ละรุ่น เพื่อเคลื่อนไปสู่รุ่นต่อไป ส่วน
รายละเอียดที่เหลือสามารถทาให้เสร็จในภายหลังเมื่อรู้ความต้องการเพิ่มเติมหรือได้รับการร้องขอให้เปลี่ยนแปลง
➢กระบวนการพัฒนาเริ่มจากการศึกษาความเป็นไปได้ การศึกษาด้านธุรกิจ การทาวนซ้าแบบจาลองเชิงหน้าที่ ซึ่งเป็นการ
รวบรวมความต้องการของลูกค้าหรือผู้ใช้งานเพิ่มเติมจากการใช้งานต้นแบบ โดยต้นแบบจะค่อย ๆ พัฒนาไปจนสามารถส่ง
มอบได้ นอกจากนี้ยังมีการทาวนซ้าการออกแบบและการสร้างและการนาไปใช้งาน
ศึกษำธุรกิจ
แบบจำลอง
เชิงหน้ำที่
วำงแผน
กำหนด
ต้นแบบ
ทบทวน
ต้นแบบ
สร้ำง
ต้นแบบ
ศึกษำควำม
เป็นไปได้
กำรนำไปใช้
นำไปใช้
อบรม
ผู้ใช้งำน
กำรยอมรับจำกผู้ใช้
และกำรแนะนำ
ทบทวน
ธุรกิจ
กำรออกแบบ
และสร้ำง
กำหนดกำร
ออกแบบต้นแบบ
ทบทวนกำร
ออกแบบ
ต้นแบบ
สร้ำงกำร
ออกแบบต้นแบบ
วำงแผน
สครัม(Scrum)
➢เป็นกระบวนการอาไจลที่พัฒนาโดย Jeff Sutherland ในช่วงต้นทศวรรษที่ 1990 และได้พัฒนาต่อโดย Schwaber และ
Beedle
➢ในการพัฒนาสครัม ผู้ใช้งานระบบจะทางานร่วมกันกับทีมงานอย่างใกล้ชิด
➢ทีมงานจะเป็นกลุ่มบุคคลที่ปฏิบัติงานจริงประมาณ 5-9 คน แต่ละคนสามารถทางานทดแทนกันได้
➢วิธีสครัม จะมีการสร้างแบ็คล็อก (Backlog) ซึ่งเป็นข้อมูลความต้องการของระบบ โดยผู้ใช้จะต้องระบุหน้าที่และจัดลาดับ
ความสาคัญของหน้าที่ของระบบที่ต้องการ
➢หลังจากนั้นทีมงานจะวางแผนสรุปเพื่อให้ได้สปริ้นแบ็คล็อก (Sprint Backlog) ซึ่งเป็นเอกสารข้อกาหนดที่ทีมงานต้องพัฒนา
เพื่อให้เป็นซอฟต์แวร์ที่ใช้งานได้จริง
➢ ในระหว่างการพัฒนาแต่ละวันทีมงานต้องคุยกันถึงความก้าวหน้าของงานซึ่งอาจใช้เวลาประมาณ 2-4 ชั่วโมง
➢การส่งมอบงานจะส่งมอบงานบางส่วน เนื่องจากสครัมจะแบ่งงานทั้งหมดออกเป็นส่วนย่อย ๆ ระยะเวลาการส่งมอบงานแต่ละช่วง
ประมาณ 1-4 สัปดาห์
➢หลังส่งมอบแล้วจะทาการแก้ไขข้อผิดพลาด และเลือกแบ็คล็อกที่มีลาดับความสาคัญถัดไป และทาซ้าจนกระทั่งเสร็จสิ้นโครงการ
ความสัมพันธ์ระหว่างวงจรชีวิตของโครงการและวงจรชีวิตของการ
พัฒนาซอฟต์แวร์
➢วงจรชีวิตของโครงการเป็นการดาเนินงานโครงการตั้งแต่เริ่มต้นโครงการจนกระทั่งปิดโครงการซึ่งแบ่งออกเป็น 4 ระยะ
ได้แก่ ระยะกาหนดโครงการ ระยะวางแผน ระยะปฏิบัติการ และระยะส่งมอบหรือปิดโครงการ
➢ซึ่งวงจรชีวิตของโครงการจะเน้นที่กระบวนการจัดการโครงการ
➢ส่วนวงจรชีวิตของการพัฒนาซอฟต์แวร์ที่กล่าวมาข้างต้นจะมีหลายรูปแบบ วงจรชีวิตของการพัฒนาซอฟต์แวร์ จะเป็น
กิจกรรมสาหรับการพัฒนาซอฟต์แวร์ ซึ่งประกอบด้วย การวิเคราะห์ความต้องการ การออกแบบ การพัฒนาหรือการสร้าง
การทดสอบ การติดตั้งและการบารุงรักษา
➢ซึ่งกระบวนการทั้งหมดส่วนใหญ่แล้วจะเกิดขึ้นในระยะของการปฏิบัติการของวงจรชีวิตโครงการ
➢ดังนั้นจึงอาจกล่าวได้ว่า วงจรชีวิตของการพัฒนาซอฟต์แวร์เป็นส่วนหนึ่งของวงจรชีวิตโครงการ
ความสัมพันธ์ระหว่างวงจรชีวิตของโครงการและวงจรชีวิตของการ
พัฒนาซอฟต์แวร์
วงจรชีวิตกำรพัฒนำซอฟต์แวร์
วงจรชีวิตโครงกำร
กำหนดโครงกำร วำงแผน ปฏิบัติกำร ปิดโครงกำร
วิเครำะห์ควำมต้องกำร ออกแบบ พัฒนำและทดสอบ ติดตั้งและบำรุงรักษำ
กระบวนการบริหารโครงการซอฟต์แวร์
กระบวนการบริหารโครงการซอฟต์แวร์ซึ่งประกอบด้วย 5 ขั้นตอนที่ต้องดาเนินการต่อเนื่อง ดังนี้
1.การเริ่มต้นโครงการซอฟต์แวร์
การเริ่มต้นโครงการซอฟต์แวร์ (Software project initiation) เป็นขั้นตอนแรกที่จะต้องดาเนินการ ในขั้นตอนนี้มี
กิจกรรมหลัก ได้แก่ การกาหนดรายละเอียดงานเบื้องต้น การพัฒนาโปรเจ็คชาร์เตอร์ การกาหนดขอบเขตโครงการ การ
กาหนดวัตถุประสงค์ การประมาณการแรงงานเบื้องต้นและการประมาณการค่าใช้จ่ายเบื้องต้น
กิจกรรมหลักของกำรเริ่มต้นโครงกำร
กำรประมำณ
กำรตำรำงงำน
เบื้องต้น
กำหนด
โปรเจ็ค
ชำร์เตอร์
กำหนด
ขอบเขต
โครงกำร
กำหนด
วัตถุประสงค์
ประมำณกำร
แรงงำน
เบื้องต้น
ประมำณกำร
ค่ำใช้จ่ำย
เบื้องต้น
กระบวนการบริหารโครงการซอฟต์แวร์
2.การวางแผนโครงการซอฟต์แวร์
▪ดาเนินการหลังจากที่ทีมงานได้ข้อมูลขอบเขตความต้องการของระบบงานทั้งหมดในขั้นตอนแรกเรียบร้อยแล้ว นามาสร้างแผนที่
เป็นระบบมีลาดับการทางานที่สามารถทาได้จริง
▪งานหลักที่ต้องวางแผน คือ การวางแผนตามกระบวนการพัฒนาซอฟต์แวร์ เพื่อที่จะสร้างผลิตภัณฑ์ซอฟต์แวร์
▪ นอกจากนี้ยังมีกิจกรรมการวางแผนที่ต้องดาเนินการอีก เช่น การวางแผนบริหารความเสี่ยงของโครงการซอฟต์แวร์ วางแผนการ
สื่อสารประสานงาน วางแผนตารางการทางาน วางแผนการจัดการทรัพยากร เป็นต้น หลังจากที่ได้มีการวางแผนแล้วจะต้องมีการ
ตรวจสอบทบทวนแผนเป็นระยะในทุกช่วงของวงจรชีวิตของโครงการ เพื่อให้สอดคล้องกับสถานการณ์หรือการเปลี่ยนแปลงที่
เกิดขึ้นในองค์กร
3.การดาเนินงานตามแผนโครงการซอฟต์แวร์
▪ เป็นช่วงที่ใช้เวลานานที่สุด เป็นการดาเนินงานตามตารางแผนการดาเนินงาน ซึ่งโดยส่วนมากจะเป็นขั้นตอนการพัฒนา
ซอฟต์แวร์ตามวงจรชีวิตของการพัฒนาซอฟต์แวร์
▪ในขั้นตอนการดาเนินงานนี้จะต้องมีการติดต่อประสานงานและมีการใช้ทรัพยากรเพื่อดาเนินงานให้สาเร็จตามแผนที่กาหนด
กระบวนการบริหารโครงการซอฟต์แวร์
4.การตรวจสอบและควบคุมโครงการซอฟต์แวร์
▪ ผู้บริหารโครงการซอฟต์แวร์จะต้องทาการตรวจสอบติดตามความก้าวหน้าของการดาเนินงานโครงการ
และควบคุมการดาเนินงานให้เป็นไปตามแผนงาน
▪หากมีปัญหาหรืออุปสรรคที่ทาให้งานล่าช้า ไม่เป็นไปตามแผน ผู้บริหารโครงการต้องรีบดาเนินการแก้ไข
เพื่อให้โครงการสามารถแล้วเสร็จภายในเวลาที่กาหนดได้ อาจต้องมีการเร่งโครงการ มีการจ้างแรงงาน
เพิ่มเติม เป็นต้น
▪เนื่องจากโครงการซอฟต์แวร์มีลักษณะแตกต่างจากโครงการอื่น มีความเสี่ยงในการดาเนินงานมาก ดังนั้น
การตรวจสอบและควบคุมอย่างต่อเนื่องจึงเป็นสิ่งจาเป็น ในการตรวจสอบและควบคุมอย่างมี
ประสิทธิภาพนั้น ผู้บริหารโครงการซอฟต์แวร์จาเป็นต้องมีข้อมูลระบบการวัดหรือการตรวจสอบที่มีความ
เหมาะสม
กระบวนการบริหารโครงการซอฟต์แวร์
5.การปิดโครงการซอฟต์แวร์
▪ เป็นการส่งมอบผลิตภัณฑ์ซอฟต์แวร์ที่ได้พัฒนาขึ้นมา โดยผลิตภัณฑ์ดังกล่าวได้ผ่านการทดสอบ และได้รับการยอมรับจากผู้ใช้งานแล้ว
▪ การปิดโครงการซอฟต์แวร์ มีกิจกรรมหลักที่ต้องดาเนินการ ได้แก่ การส่งคืนทรัพยากร การเตรียมการให้ข้อมูลบทเรียนที่ได้รับจาก
โครงการที่พัฒนา การจัดการซอร์สโค้ด และการจัดการข้อมูลโครงการ
▪ การส่งมอบโครงการซอฟต์แวร์ก่อนปิดโครงการ ทีมงานจะต้องเตรียมการเพื่อส่งมอบ ผลิตภัณฑ์ซอฟต์แวร์ คู่มือการใช้งาน การฝึกอบรม
ผู้ใช้งาน การติดตั้งระบบ การส่งคืนทรัพยากรและบทเรียนโครงการ
กำรส่งมอบโครงกำรซอฟต์แวร์
ผลิตภัณฑ์
ซอฟต์แวร์
คู่มือกำร
ใช้งำน
กำร
ฝึกอบรม
กำรติดตั้ง
ระบบ
กำรส่งคืน
ทรัพยำกร
บทเรียน
โครงกำร

2