Sdlc คือ กระบวนการพัฒนาระบบใด

Sdlc คือ กระบวนการพัฒนาระบบใด

เกียรติพงษ์  อุดมธนะธีระ

นักวิชาการคอมพิวเตอร์ชำนาญการพิเศษ สำนักโลจิสติกส์

ที่มา http://logistics.go.th/index.php/en/news-article/bol-article/9386-2017-03-09-03-01-34

ในฉบับที่ผ่านมา (link) เรากล่าวถึง การจัดทำแผนที่นําทางเทคโนโลยี (Technology Road Mapping: TRM) ซึ่งเป็นแนวคิดที่นำเทคโนโลยีมาเป็นปัจจัยร่วมในการกำหนดทิศทางการขับเคลื่อนองค์กร ฉบับนี้จะพูดถึงขั้นตอนการนำระบบ (เทคโนโลยีสารสนเทศ) มาใช้ในองค์กร อาจเรียกว่า การพัฒนาระบบ เนื่องจากปัจจุบันหลายองค์กรล้มเหลวในการนำระบบมาใช้ในงาน เพราะขาดความรู้ความเข้าใจหรือไม่ได้มีการจัดขั้นตอนการพัฒนาระบบที่ถูกต้อง ดังนั้น ทุกองค์กรจึงควรมีการวางแผนการดำเนินงานตามขั้นตอนการพัฒนาระบบที่ดีในองค์กรเพื่อประสิทธิภาพที่สูงสุด

วงจรการพัฒนาระบบ (System Development Life Cycle : SDLC) คือ การแบ่งขั้นตอนกระบวนการพัฒนาระบบงาน หรือระบบเทคโนโลยีสารสนเทศด้วย เพื่อช่วยแก้ปัญหาทางธุรกิจหรือตอบสนองความต้องการขององค์กรโดยระบบที่จะพัฒนานั้นอาจเป็นการพัฒนาระบบใหม่หรือการปรับปรุงระบบเดิมให้ดีขึ้นก็ได้ การพัฒนาระบบแบ่งออกเป็น 7 ขั้นตอน ดังนี้

1. การค้นหาปัญหาขององค์กร (Problem Recognition) เป็นกิจกรรมแรกที่สำคัญในการกำหนดเป้าหมายที่ชัดเจนในการปรับปรุงโดยใช้ระบบเข้ามาช่วยนำข้อมูลปัญหาที่ได้มาจำแนกจัดกลุ่มและจัดลำดับความสำคัญ เพื่อใช้คัดเลือกโครงการที่เหมาะสมที่สุดมาพัฒนา โดยโครงการที่จะทำการพัฒนาต้องสามารถแก้ปัญหาที่มีในองค์กรและให้ประโยชน์กับองค์กรมากที่สุด

2. การศึกษาความเหมาะสม (Feasibility Study) ว่าเหมาะสมหรือไม่ที่จะปรับเปลี่ยนระบบ โดยให้เสียค่าใช้จ่าย (Cost) และเวลา (Time) น้อยที่สุดแต่ให้ได้ผลลัพธ์ที่น่าพอใจ และหาความต้องการของผู้เกี่ยวข้องใน 3 เรื่อง คือ เทคนิคเครื่องมือหรืออุปกรณ์ที่ใช้ บุคลากรและความพร้อม และความคุ้มค่า เพื่อใช้นำเสนอต่อผู้บริหารพิจารณาอนุมัติดำเนินการต่อไป

3. การวิเคราะห์ (Analysis) เป็นการรวบรวมข้อมูลปัญหาความต้องการที่มีเพื่อนำไปออกแบบระบบ ขั้นตอนนี้จะศึกษาจากผู้ใช้ โดยวิเคราะห์การทำงานของระบบเดิม (As Is) และความต้องการที่มีจากระบบใหม่ (To Be) จากนั้นนำผลการศึกษาและวิเคราะห์มาเขียนเป็นแผนภาพผังงานระบบ (System Flowchart) และทิศทางการไหลของข้อมูล (Data Flow Diagram)

4. การออกแบบ (Design) นำผลการวิเคราะห์มาออกแบบเป็นแนวคิด (Logical Design) เพื่อแก้ไขปัญหา โดยในส่วนนี้จะยังไม่ได้มีการระบุถึงรายละเอียดและคุณลักษณะอุปกรณ์มากนัก เน้นการออกแบบโครงร่างบนกระดาษ แล้วส่งให้ผู้ออกแบบระบบนำไปออกแบบ (System Design) ซึ่งขั้นตอนนี้จะเริ่มมีการระบุลักษณะการทำงานของระบบทางเทคนิค รายละเอียดคุณลักษณะอุปกรณ์ที่ใช้ เทคโนโลยีที่ใช้ ชนิดฐานข้อมูลการออกแบบ เครือข่ายที่เหมาะสม ลักษณะของการนำข้อมูลเข้า ลักษณะรูปแบบรายงานที่เกิด และผลลัพธ์ที่ได้

5. การพัฒนาและทดสอบ (Development & Test) เป็นขั้นตอนการการเขียนโปรแกรม (Coding) เพื่อพัฒนาระบบจากแบบบนกระดาษให้เป็นระบบตามคุณลักษณะที่กำหนดไว้ จากนั้นทำการทดสอบหาข้อผิดพลาด (Testing) เพื่อตรวจสอบความถูกต้อง จนมั่นใจว่าถูกต้องและตรงตามความต้องการ หากพบว่ามีข้อผิดพลาดเกิดขึ้นจากการทำงานของระบบต้องปรับแก้ไขให้เรียบร้อยพร้อมใช้งานก่อนนำไปติดตั้งใช้จริง

6. การติดตั้ง (Implementation) เป็นขั้นตอนการนำระบบที่พัฒนาจนสมบูรณ์มาติดตั้ง (Installation) และเริ่มใช้งานจริง ในส่วนนี้นอกจากติดตั้งระบบใช้งานแล้ว ยังต้องมีการจัดเตรียมขั้นตอนการสนับสนุนส่งเสริมการใช้งานให้สามารถใช้งานได้อย่างสมบูรณ์ โดยจัดทำหลักสูตรฝึกอบรมผู้ใช้งาน (Training) เอกสารประกอบระบบ (Documentation) และแผนการบริการให้ความช่วยเหลือ (Support) เพื่อให้ระบบสามารถใช้งานได้อย่างต่อเนื่อง

7. การซ่อมบำรุงระบบ (System Maintenance) เป็นขั้นตอนการบำรุงรักษาระบบต่อเนื่องหลังจากเริ่มดำเนินการ ผู้ใช้ระบบอาจจะพบกับปัญหาที่เกิดขึ้นภายหลัง เช่น ปัญหาเนื่องจากความไม่คุ้นเคยกับระบบใหม่ จึงควรกำหนดแผนค้นหาปัญหาอย่างต่อเนื่อง ติดตามประเมินผล เก็บรวบรวมคำร้องขอให้ปรับปรุงระบบ วิเคราะห์ข้อมูลร้องขอให้ปรับปรุงระบบ จากนั้นออกแบบการทำงานที่ต้องการปรับปรุงแก้ไขและติดตั้ง ซึ่งต้องมีการฝึกอบรมการใช้งานระบบให้แก่ผู้ใช้งาน เพื่อที่จะทราบความพึงพอใจของผู้ใช้

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

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 ดังนั้นเมื่อซอฟต์แวร์มีการตรวจสอบมากขึ้นก็จะสามารถลดข้อผิดพลาดและเพิ่มความถูกต้องในการทำงานของซอฟต์แวร์ได้มากยิ่งขึ้น

การพัฒนาระบบงานแบบวงจรชีวิต SDLC ว่ามีอะไรบ้าง

วงจรการพัฒนาระบบงาน (SYSTEM DEVELOPMENT LIFE CYCLE : SDLC).
กำหนดปัญหา (Problem Definition).
วิเคราะห์ (Analysis).
ออกแบบ (Design).
พัฒนา (Development).
ทดสอบ (Testing).
ติดตั้ง (Implementation).
บำรุงรักษา (Maintenance).

วงจรพัฒนาระบบมีกี่ขั้นตอน (SDLC)

ตามทฤษฎีวงจรการพัฒนาระบบ (System Development life Cycle : SDLC) 7 ขั้นตอน 1. การค้นหาปัญหาขององค์กร (Problem Study) 2. การศึกษาความเหมาะสม (Feasibility Study) 3. การวิเคราะห์ระบบ (System Analysis) 4. การออกแบบระบบ (System Design) 5. การพัฒนา และการทดสอบระบบ (Development and Test) 6. การติดตั้งระบบ (System Implement) 7. ...

ขั้นตอนการพัฒนาระบบมีกี่ขั้นตอน อะไรบ้าง

วงจรการพัฒนาระบบ หรือ SDLC เป็นวงจรที่แสดงถึงกิจกรรมต่างๆ ที่เป็นล าดับขั้นในการพัฒนา ระบบสารสนเทศ ประกอบด้วยกิจกรรม 7 ขั้นตอน ดังนี้ 1. การกาหนดความต้องการ (Requirement Definition) 2. การวิเคราะห์ระบบ (System Analysis) 3. การออกแบบระบบ (System Design) 4. การพัฒนาระบบ (System Development) 5.

การพัฒนาระบบสารสนเทศคืออะไร

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