Tuesday, September 27, 2016

2 ตัวแบบการพัฒนาซอฟต์แวร์ (Software development models)



2 ตัวแบบการพัฒนาซอฟต์แวร์ (Software development models)

ตัวแบบหรือโมเดลเพื่อการพัฒนาซอฟต์แวร์โดยทั่วไปมีดังนี้
ตัวแบบ
คำอธิบาย
ลักษณะ
ตัวแบบน้ำตก (Waterfall model)
ตัวแบบการพัฒนาที่แบ่งกระบวนการออกเป็นกระบวนการย่อยเชิงลำดับเป็นขั้นเป็นตอนโดยไม่มีการย้อนกลับ คล้ายกับน้ำตกที่ไหลลงไม่ไหลย้อน โดยการแบ่งระบบออกเป็นระบบย่อยๆ เพื่อสามารถทบทวนการวิเคราะห์ การออกแบบ การพัฒนา การทดสอบ และการนำไปใช้ ตามลำดับได้อย่างเป็นขั้นตอน โดยอาจเรียกว่าตัวแบบเชิงลำดับก้าวหน้า (incremental model)
เป็นระเบียบวิธีในการพัฒนาระบบที่ใช้กันโดยทั่วไป สามารถประเมินค่าใช้จ่ายได้โดยง่าย และนิยมใช้ในการพัฒนาระบบที่มีขอบเขตใหญ่โดยทั่วไป
อย่างไรก็ตาม การทำงานทั้งหมดต้องมีการทำซ้ำหากข้อกำหนดในการพัฒนาระบบมีการเปลี่ยนแปลงมาก
ตัวแบบเกลียว (Spiral model)

ตัวแบบในการพัฒนาที่แบ่งระบบออกเป็นระบบย่อยๆ และมีการทำซ้ำเป็นวนรอบจาก การวิเคราะห์ความต้องการ (requirements analysis) จนถึง การดำเนินการ (operation) ในแต่ละระบบย่อย
เป็นตัวแบบการพัฒนาที่ยอมให้มีการขยายระบบที่ถูกพัฒนาได้
สามารถลดระยะเวลาในการพัฒนาตั้งแต่ระบบย่อยแรกถูกดำเนินการ แต่ละระบบย่อยได้รับการตรวจรับรองโดยผู้ใช้ ทำให้ตัวแบบเกลียวสามารถดำเนินการพัฒนาตามขั้นตอนต่อไปตามวนรอบได้
ตัวแบบต้นแบบ หรือแบบโปรโตไทป์ (Prototyping model)

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



อ้างอิง
ข้อควรระวังเกี่ยวกับตัวแบบน้ำตก (Precautions about the waterfall model)
ด้วยการพัฒนาระบบตามตัวแบบน้ำตกไม่สามารถดำเนินการตามกระบวนการแต่ละขั้นตอนแบบพร้อมกันหรือแบบคู่ขนานได้ ต้องทำทีละขั้นตอน
หากต้องการลดระยะเวลาการทำงานในแต่ละกระบวนการลงสามารถทำได้ด้วยการทำงานแบบคู่ขนาน (parallel) ภายในแต่ละกระบวนการเอง อย่างไรก็ตามการทำงานในลักษณะนี้ต้องการจำนวนคนและเวลาเพื่อการทำงานแบบคู่ขนาน (parallel work) ที่เพิ่มขึ้น รวมถึงค่าใช้จ่ายมีแนวโน้มที่จะเพิ่มมากขึ้นหรือสูงกว่าการทำงานแบบปกติหรือไม่มีการทำงานแบบคู่ขนาน

RAD: Rapid Application Development (การพัฒนาแอพพลิเคชั่นแบบรวดเร็ว)
RAD เป็นระเบียบวิธีในการพัฒนาระบบประเภทหนึ่งที่แบ่งระบบออกเป็นระบบย่อย แล้วทำการพัฒนาแต่ละระบบย่อยโดยเริ่มจากระบบย่อยที่มีความสำคัญสูงสุดก่อน (highest priority) ตามลำดับ โดยมีเป้าหมายเพื่อสามารถพัฒนาระบบด้วยระยะเวลาอันสั้น และค่าใช้จ่ายต่ำ โดยอาศัยเครื่องมือการพัฒนาซอฟต์แวร์ที่มีความซับซ้อน
RAD เป็นระเบียบวิธีที่นิยมใช้ในตัวแบบการสร้างต้นแบบ (Demo version)

วิศวกรรมย้อนกลับ (Reverse engineering)
วิศวกรรมย้อนกลับ เป็นเทคนิคในการสร้างซอฟต์แวร์ขึ้นใหม่จากซอฟต์แวร์เดิม โดยการแตกซอฟต์แวร์เดิมที่มีอยู่แล้ว (breaking down) ออกเป็นส่วนย่อยๆ และทำการวิเคราะห์ซอฟต์แวร์เหล่านั้น นอกจากนี้ยังเป็นเทคนิคที่อาจรวมถึงการศึกษาความสัมพันธ์ระหว่างแต่ละโมดูล และทำการวิเคราะห์คุณสมบัติพื้นฐานของแต่ละระบบ ซึ่งเป็นกระบวนการพัฒนาที่นำมาใช้เพื่อรักษาความเข้ากันได้ของซอฟต์แวร์ที่มีอยู่เดิม

No comments: